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