From b5812cecf98745f4b36a8bf72ff082c3220ef1d6 Mon Sep 17 00:00:00 2001
From: zhangyanpeng <bob.zhang@highdatas.com>
Date: 星期五, 02 八月 2024 14:32:07 +0800
Subject: [PATCH] Merge branch 'master' of http://highdatas.com:9000/r/promotion/promotion_html

---
 module/md/page/customer/page/customer_basic.html |  418 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 405 insertions(+), 13 deletions(-)

diff --git a/module/md/page/customer/page/customer_basic.html b/module/md/page/customer/page/customer_basic.html
index 970b6c0..2c272fc 100644
--- a/module/md/page/customer/page/customer_basic.html
+++ b/module/md/page/customer/page/customer_basic.html
@@ -64,7 +64,13 @@
 								label:"name",//鏄笅鎷夐�夐」鏃惰缃�
 								filter: "",
 								orderby: "name"
-							}
+							},
+							{
+								name: "md_org_account_criteria_rule",
+								dataname: "md_org_account_criteria_rule",
+								isnotoption: true, //true:涓嶆槸閫夐」
+								filter: "",
+							},
 						],
 						options_md_geo_province: [],
 						md_geo_city_obj: {},
@@ -80,15 +86,29 @@
 						},
 						
 						formFields: [],
+						formFields_criteria: [],
 						
 						formData: {},
-						
+						formData_criteria: {},
+						formData1:[],
+						imgLoading:false,
+						imgurl:'',
+
+						formdata_group:[{group_name:'瀹㈣璇勫垎',group_code:'Objective',children:[]},{group_name:'涓昏璇勫垎',group_code:'Subjective',children:[]}],
+
 						//鎸夐敭鏉冮檺璁剧疆
 						isedit: false,//鎻愪氦鍓嶇紪杈戯紝淇濆瓨/鎻愪氦
 						isrefuseedit: false,//鎷掔粷鍚庣紪杈戯紝淇濆瓨/鍐嶆鎻愪氦
 						isapproval: false,//瀹℃壒锛屽悓鎰�/鎷掔粷/杞姙/閫�鍥�
+						isChange:false,
 						
 						iscommit: false,//鎻愪氦鏍囪
+
+						// 瀹℃壒
+						reasonvisible: false, // 瀹℃壒澶囨敞濉啓寮圭獥
+						approveremark: "", // 瀹℃壒澶囨敞
+						passOrRefuse: false, // 閫氳繃鎴栨嫆缁�
+						loading_pass: false,
 						
 						//寮圭獥鍙傛暟
 						popupParames: {},
@@ -156,6 +176,44 @@
 							this.loadRequestData(this.dataRequest, result, function(data) {
 								me.dataRequestObj = data;
 								//棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson
+								if (me.dataRequestObj.md_org_account_criteria_rule) {
+									me.formFields_criteria = me.dataRequestObj.md_org_account_criteria_rule;
+									//鏁版嵁澶勭悊
+									me.formdata_group.map(g=>{
+										me.formFields_criteria.map(v=>{
+											if (v.group_code == g.group_code) {
+												v['criteria_value'] = null
+												v['remark'] = null
+												g.children.push(v)
+											}
+										})
+									})
+									console.log(me.formdata_group)
+								}
+								if (me.dataRequestObj.md_org_account_criteria && me.dataRequestObj.md_org_account_criteria.data && me.dataRequestObj.md_org_account_criteria.data.entityset.length>0) {
+									me.formData_criteria = me.dataRequestObj.md_org_account_criteria.data.entityset
+									//鏁版嵁澶勭悊
+									me.formFields_criteria.map(g=>{
+										me.formData_criteria.map(e=>{
+											if (g.id == e.criteria_id) {
+												e['group_name'] = g.group_name
+												e['group_code'] = g.group_code
+												e['content_before'] = g.content_before
+												e['content_type'] = g.content_type
+											}
+										})
+									})
+									me.formdata_group.map(g=>{
+										formData_criteria.map(v=>{
+											if (v.group_code == g.group_code) {
+												// v['content_before'] = g.content_before
+												g.children.push(v)
+											}
+										})
+									})
+									console.log(me.formdata_group)
+
+								}
 								if (me.dataRequestObj.md_geo_province) {
 									me.options_md_geo_province = me.dataRequestObj.md_geo_province
 								}
@@ -263,6 +321,7 @@
 							if (this.formData.id) {
 								id_ = this.formData.id;
 							}
+
 							this.getRowDataById(id_, function(result) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
 								if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) {
 									var metas = clone(result.meta[me.dataname].fields);
@@ -304,6 +363,8 @@
 									}
 								}
 							})
+							console.log(me.formdata_group)
+
 						},
 						
 						tableFieldClick() {
@@ -495,6 +556,40 @@
 								}
 							});
 						},
+						uploadFileFun_file(one,fileList,type) {
+							var me = this; 
+							me.imgLoading = true
+							me.imgurl =URL.createObjectURL(one.raw) //淇濇寔鏂囦欢鍦ㄦ湰绐楀彛锛屽惁鍒欎細鍔犺浇澶辫触
+							// me.imgurl = one.url
+							// console.log(one+fileList+type)
+					
+						},
+						showThumbnail(file, type, num) {
+							var me = this;
+                            
+                            if(num == "2"){
+                                return me.fileUrl;
+                            }
+                            if(type == "pic") {
+                                return file.url;
+                            }
+							console.log(file)
+                            // var me = this;
+                            
+                            // if(num == "2"){
+                            //     return me.fileUrl;
+                            // }
+                            // if(type == "pic") {
+							// 	me.imgurl = file.url
+                            //     return file.url;
+                            // }
+                            
+                        },
+						delyyzz() {//鍒犻櫎钀ヤ笟鎵х収
+							var me = this;
+                            me.imgurl = "";
+							me.formData1 = []
+						},
 						
 						//鎻愪氦
 						submitRowTable() {
@@ -510,11 +605,138 @@
 							this.iscommit = true;
 							this.saveRowTable();
 						},
-						
+						showCluster() {
+							this.$forceUpdate();
+						},
+						onShowApproval(passOrRefuse) {
+						    this.approveremark = "";
+						    this.reasonvisible = true;//瀹℃壒澶囨敞濉啓寮圭獥
+						    this.passOrRefuse = passOrRefuse;// commit涓嬩竴涓姸鎬�;approve閫氳繃;gohome;//鎷掔粷 goback;//鍥為��
+						},
+						saveReason() {
+						    this.loading_pass = true;
+						    if(this.passOrRefuse == "commit" || this.passOrRefuse == "approve"){
+						        this.doApproval();
+						    }
+							else{
+						        if(this.approveremark != ""){
+						            this.doApproval();
+						        }
+						        else{
+						            Root.message({
+						                type: 'warning',
+						                message: '璇峰~鍐欏師鍥�'
+						            });
+									this.loading_pass = false;
+						        }
+						    }
+						},
+						doApproval() {
+						    var me = this;
+							me.doRunApproval();
+							
+							// this.getMachine(function(next_step, up_step) { // 
+							// 	me.doRunApproval(next_step, up_step);
+							// });
+						},
+						doRunApproval(next_step, up_step) {
+							var me = this;
+							if (!next_step) {
+								next_step = {}
+							}
+							if (!up_step) {
+								up_step = {}
+							}
+							
+							// this.passOrRefuse;//棣栨寮�鎴�-閫氳繃
+							// commit // 涓嬩竴涓姸鎬�
+							// approve // 閫氳繃
+							// gohome // 鎷掔粷
+							// goback // 鍥為��
+							
+							var to_state_ = "";
+							if (this.passOrRefuse == "commit") {
+								to_state_ = next_step[this.formData.state_code];
+							}
+							else if (this.passOrRefuse == "approve") {
+								// to_state_ = up_step[this.formData.state_code];
+							}
+							else if (this.passOrRefuse == "gohome") {
+								// to_state_ = up_step[this.formData.state_code];
+							}
+							else if (this.passOrRefuse == "goback") {
+								to_state_ = up_step[this.formData.state_code];
+							}
+							
+							let param = {
+							    dataname: "md_org",
+							    id: me.formData.id,
+								remark: this.approveremark
+							}
+							if (to_state_) {
+								param.to_state = to_state_
+							}
+							//
+							// return
+							Server.call("root/data/" + this.passOrRefuse, param, function(result) {
+							    me.loading_pass = false;
+							    console.log(result);
+								if (me.passOrRefuse == "commit" || me.passOrRefuse == "approve") {
+									Root.message({
+										type: 'success',
+										message: '瀹℃壒鎴愬姛'
+									}); 
+								}
+							    else if (me.passOrRefuse == "goback") {
+							        Root.message({
+							            type: 'success',
+							            message: '宸查��鍥�'
+							        }); 
+							    }
+								else if (me.passOrRefuse == "gohome") {
+								    Root.message({
+								        type: 'success',
+								        message: '宸叉嫆缁�'
+								    }); 
+								}
+								me.saveAfter();
+							}, function(errorresult) {
+								console.log("閿欒淇℃伅", errorresult);
+								me.loading_pass = false;
+								if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) {
+									if (errorresult.messages.list) {
+										var config = {
+										    totab: false,
+										    // width: "1200px",
+										    // height: 800,
+										    icon: "icon-product",
+										    text: "閿欒淇℃伅",
+										    url: "module/tool/page/popup_error_messages.html",
+										    data: {},
+										    delta: errorresult.messages.list,
+										    callback: function(obj, callback) {
+										        if (callback) {
+										            callback();
+										        }
+										    }
+										};
+										me.doPopupByPublic(config);
+										
+									}
+								}
+								else {
+									Root.message({
+										type: 'error',
+										message: '瀹℃壒澶辫触'
+									}); 
+								}
+							});
+						},
 						//淇濆瓨
 						saveRowTable() {
 							var me = this;
-							var operator_ = "save";//淇濆瓨
+							var operator_ = "saveEntity";//淇濆瓨
+							var md_org_account_criteria_ = []
 						
 							var entity_ = clone(this.formData);
 							var entity = {};
@@ -525,8 +747,6 @@
 							}
 							if(me.iscommit) {
 								operator_ = "commit";//鎻愪氦
-								entity.state_code = "Open"
-								entity.state_name = "宸茬敓鏁�"
 							}
 							let param = {
 								dataname: this.dataname,
@@ -534,9 +754,25 @@
 								// operator: operator_,
 								data: {},
 							}
+							//鏂板鐨勬儏鍐�
+							me.formdata_group.map(group => {//
+								group.children.map(unitobj => {
+									var row_ = {
+										id: uuid_short(),
+										parent_id: me.formData.id,
+										criteria_id: unitobj.id,
+										criteria_value: unitobj.criteria_value,
+										remark: unitobj.remark,
+									}
+									md_org_account_criteria_.push(row_);
+								})
+							})
+							param.data["md_org_account_criteria"] = md_org_account_criteria_.length ? md_org_account_criteria_ : null;
 							param.data[this.dataname] = entity;
+
+
 							
-							Server.call("root/data/uniqueSaveEntity", param, function(result) {
+							Server.call("root/data/"+operator_, param, function(result) {
 								console.log(result);
 								if (result.success) {
 									if(me.iscommit){
@@ -631,6 +867,30 @@
 			[v-cloak] {
 				display: none !important;
 			}
+			.me_h_itemgroup_row {
+                margin-bottom: 10px;
+            }
+			.me_h_itemgroup_row .me_h_unitlabel:before {
+                content: '*';
+                color: #F56C6C;
+                margin-right: 4px;
+            }
+			.me_h_itemgroup_row .me_h_nounitlabel:before {
+			    content: '*';
+			    color: #F56C6C00;
+			    margin-right: 4px;
+			}
+			.itemgroup_row_item {
+				text-align: left;
+			}
+			.ocr_img .el-upload-list--picture-card .el-upload-list__item {
+                width: 100% ;
+                height: 100% ;
+            }
+			div .el-upload--picture-card {
+                width: 100% ;
+
+			}
 		</style>
 		
 	</head>
@@ -647,7 +907,29 @@
 					</div>	
 					<div :style="{height: dheight + 'px', 'overflow-y': 'auto'}">
 					<!-- <div style="position: absolute; top:40px; bottom: 50px; left: 0px; right: 0px;  overflow-y: auto;"> -->
-						<div class="el-dialog__body">
+						<div class="el-dialog__body" style="width: 20%; float: left;">
+							<el-image 
+								v-if="imgurl.length>0" 
+								:style="{width: '100%', 'max-height': dheight + 'px'}" 
+								:src="imgurl"
+								:preview-src-list="[imgurl]">
+							</el-image>
+							<el-upload
+								v-else-if="!imgurl"
+								class="ocr_img"
+								action="#" style="margin-top: 15px;margin-bottom: 15px;" accept="image/jpeg,image/gif,image/png"
+								ref="reportUpload1" list-type="picture-card" :file-list="formData1"
+								:on-change="(file, fileList) => {uploadFileFun_file(file, fileList, '1')}" :auto-upload="false">
+								<!-- <i slot="default" class="el-icon-plus"></i> -->
+								<span style="font-size: 14px; color: #909399;">钀ヤ笟鎵х収涓婁紶</span>
+								<div slot="file" slot-scope="{file}">
+									<img class="el-upload-list__item-thumbnail" :src="showThumbnail(file, 'pic', '1')" alt="">
+								</div>
+							</el-upload>
+							<el-button v-if="imgurl" size="small" type="danger" @click="delyyzz">鍒犻櫎钀ヤ笟鎵х収</el-button>
+						</div>
+
+						<div class="el-dialog__body" style="width: 79%; float: right;">
 							<h-form
 								ref="form1"
 								:form-attr="formAttr"
@@ -657,17 +939,127 @@
 							>
 							</h-form>
 						</div>
+						<!-- <div v-if='formFields.length>0' class="el-dialog__body" style="width: 100%; float: right; ">
+							<div style="border: 1px solid #C0C4CC ;padding: 5px">
+								<div class="h_table_title"><i class="iconfont icon-fuzhushuxian" style="color: rgb(2, 112, 193);"></i><span style="font-size: 16px;">鎺ㄥ箍鍟嗚瘎鍒�</span></div>
+								</i>
+								<div style="width: 100%;height: 5px;margin: 10px 0px 25px 0px;background-color: gainsboro; opacity: 40%;"></div>
+								<template v-for="(formgroup, k) in formdata_group">
+									<div  style="display: flex;justify-content: space-between;padding: 5px;">
+										<div style="width: 7%; display: flex; align-items: center; justify-content: center; text-align: center;font-weight: bold;border-right: 3px solid gainsboro;">
+											<div style="display: flex;justify-content: center;align-items: center;margin-right: 15px;">
+												{{formgroup.group_name}}
+											</div>
+										</div>
+										<div style="width: 93%;padding: 0 10px;">
+											
+											<el-row v-for="(unitobj, kc) in formgroup.children" :key="'YWNL' + k + kc" class="me_h_itemgroup_row">
+												<el-col :span="6" class="itemgroup_row_item">
+													<div>
+														<span :class="[unitobj.required_no ? 'me_h_nounitlabel' : 'me_h_unitlabel']" style="font-size: 12px;">
+															{{unitobj.content_before}}
+														</span>
+													</div>
+												</el-col>
+												<el-col :span="18" >
+													<div v-if="unitobj.content_type == 'textarea'">
+														<el-input  style="width:100%" type="textarea" 
+															v-model="unitobj.criteria_value">
+														</el-input>
+													</div>
+													<div v-else-if="unitobj.content_type == 'radio' && !unitobj.dictionary_id">
+														<el-radio-group  v-model="unitobj.criteria_value">
+															<el-radio label="T">鏄�</el-radio>
+															<el-radio label="F">鍚�</el-radio>
+														</el-radio-group>
+													</div>
+													<div v-else-if="unitobj.content_type == 'radio' && unitobj.dictionary_id">
+														<el-radio-group  v-model="unitobj.criteria_value">
+															<el-radio v-for="(r, k) in unitobj.options" :key="unitobj.id + k" :label="r.code">{{r.value}}</el-radio>
+														</el-radio-group>
+													</div>
+													<div v-else-if="unitobj.content_type == 'input'">
+														<el-input  style="width:100%"  @input="showCluster"
+															v-model="unitobj.criteria_value">
+														</el-input>
+													</div>
+													<div v-else-if="unitobj.content_type == 'date'">
+														<el-date-picker  style="width:100%" type="date" value-format="yyyy-MM-dd"
+															v-model="unitobj.criteria_value">
+														</el-date-picker>
+													</div>
+													<div v-else-if="unitobj.content_type == 'upload'">
+														<table>
+															<tr>
+																<td align="left" style="width: 100%; padding: 0px; overflow: hidden; border-bottom: 1px solid #DCDFE6;">
+																	<span class="h_cellclick" @click="buttonArrayClick(unitobj, {code:'showfile'})">{{unitobj.criteria_value}}</span>
+																</td>
+																<td >
+																	<template v-if="isBusiness && unitobj.criteria_value">
+																		<el-button type="primary" style="padding: 5px;" @click="buttonArrayClick(unitobj, {code:'delfile'})" icon="el-icon-delete" class="form_delfile">鍒犻櫎闄勪欢</el-button>
+																	</template >
+																	
+																	<template v-else-if="isBusiness && !unitobj.criteria_value">
+																		<el-button type="primary" style="padding: 5px;" @click="buttonArrayClick(unitobj, {code:'upload'})" icon="el-icon-upload" class="form_uploadfile">闄勪欢涓婁紶</el-button>
+																	</template >
+																</td>
+															</tr>
+														</table>
+													</div>
+												</el-col>
+											</el-row>
+										</div>
+									</div>
+									<div style="width: 100%;height: 5px;margin: 25px 0px;background-color: gainsboro;opacity: 40%"></div>
+								</template >
+							</div>
+						</div> -->
 					</div>
-					<div class="el-dialog__footer" style="position: absolute; bottom: 0px;  left: 0px; right: 0px;">
+					<!-- <div class="el-dialog__footer" style="position: absolute; bottom: 0px;  left: 0px; right: 0px;">
+						<el-button size="small" type="default" @click="reasonvisible = false">鍙� 娑�</el-button>
 						<el-button size="small" type="default" @click="closeDialog">鍙� 娑�</el-button>
 						<el-button size="small" v-if="isedit || isrefuseedit" type="primary" :loading="loading_save" @click="saveRowTable":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button>
 						<el-button size="small" v-if="isedit" type="success" :loading="loading_submit" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.name}}</el-button>
 						<el-button size="small" v-if="isrefuseedit" type="success" @click="">鍐嶆鎻愪氦</el-button>
 						
-						<el-button size="small" v-if="isapproval" type="success" @click="">閫� 杩�</el-button>
-						<el-button size="small" v-if="isapproval" type="danger" @click="">鎷� 缁�</el-button>
-						<el-button size="small" v-if="isapproval" type="primary" @click="">杞� 鍔�</el-button>
-						<el-button size="small" v-if="isapproval" type="success" @click="">閫� 鍥�</el-button>
+						<el-button-group style="margin-right: 80px;" >		
+							<el-button  size="small" v-if="isapproval" type="warning" plain @click="onShowApproval('gohome')">閫�鍥炲埌鐢宠浜�</el-button>
+							<el-button  size="small" v-if="isapproval" type="danger" plain @click="onShowApproval('goback')">閫�鍥炲埌涓婁竴姝�</el-button>
+						</el-button-group>
+						<el-button size="small" v-if="isapproval" type="success" @click="onShowApproval('approve')">閫� 杩�</el-button>
+					</div> -->
+					<el-dialog title="濉啓鍘熷洜" :visible.sync="reasonvisible" height="50%">
+					    <el-input
+					      type="textarea"
+					      :autosize="{ minRows: 2, maxRows: 10}"
+					      placeholder="璇疯緭鍏ュ師鍥�"
+					      v-model="approveremark">
+					    </el-input>
+					    
+					    <div slot="footer" class="dialog-footer" >
+					        <el-button size="small" type="default" @click="reasonvisible = false">鍙� 娑�</el-button>
+					        <el-button size="small" type="primary" :loading="loading_pass" @click="saveReason">纭� 瀹�</el-button>
+					    </div>
+					</el-dialog>
+					
+					<div class="el-dialog__footer">
+						<el-button-group style="margin-right: 80px;" >		
+							<el-button  size="small" v-if="isapproval" type="warning" plain @click="onShowApproval('gohome')">閫�鍥炲埌鐢宠浜�</el-button>
+							<el-button  size="small" v-if="isapproval" type="danger" plain @click="onShowApproval('goback')">閫�鍥炲埌涓婁竴姝�</el-button>
+						</el-button-group>
+						<el-button size="small" type="default" @click="closeDialog">鍙� 娑�</el-button>
+						<el-button size="small" v-if="!isChange && (isedit || isrefuseedit)" type="primary" @click="saveRowTable":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button>
+						<el-button size="small" v-if="!isChange && isedit" type="success" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.name}}</el-button>
+						
+						<el-button size="small" v-if="isChange" type="primary" @click="saveChangeRowTable":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button>
+						<el-button size="small" v-if="isChange" type="success" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.name}}</el-button>
+						
+						<el-button size="small" v-if="isrefuseedit" type="success" @click="">鍐嶆鎻愪氦</el-button>
+						
+						<el-button size="small" v-if="isapproval" type="success" @click="onShowApproval('approve')">閫� 杩�</el-button>
+						<!-- <el-button size="small" v-if="isapproval" type="danger" @click="onShowApproval('goback')">鎷� 缁�</el-button> -->
+						<!-- <el-button size="small" v-if="isapproval" type="primary" @click="">杞� 鍔�</el-button> -->
+						<!-- <el-button size="small" v-if="isapproval" type="success" @click="onShowApproval('gohome')">閫� 鍥�</el-button> -->
 					</div>
 				</div>
 			</div>

--
Gitblit v1.8.0