From 98cb381b16dafa272e68bf0e5058ffeaa304624d Mon Sep 17 00:00:00 2001 From: tom <tom.he@highdatas.com> Date: 星期日, 04 八月 2024 17:04:43 +0800 Subject: [PATCH] 调整 --- module/md/page/customer/page/customer_basic_acct.html | 473 ++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 369 insertions(+), 104 deletions(-) diff --git a/module/md/page/customer/page/customer_basic_acct.html b/module/md/page/customer/page/customer_basic_acct.html index 35cb2f3..4b86bc8 100644 --- a/module/md/page/customer/page/customer_basic_acct.html +++ b/module/md/page/customer/page/customer_basic_acct.html @@ -71,6 +71,12 @@ isnotoption: true, //true:涓嶆槸閫夐」 filter: "1<>1", }, + { + name: "md_org_account_criteria_rule", //rule绛斿嵎瀛楁 + dataname: "md_org_account_criteria_rule", + isnotoption: true, //true:涓嶆槸閫夐」 + filter: "", + }, ], options_md_org_master: [], isExistsAccount: false, @@ -89,7 +95,9 @@ meta_account_position_list: [], meta_account_change: [], + formFields_criteria: [], formData_change: {}, + formdata_rule_group:[], formAttr: { istitle: false, @@ -173,13 +181,7 @@ this.popupParames = clone(Root.popupParames); this.title = this.popupParames.title || this.popupParames.text if (this.popupParames.data) { - this.formData = clone(this.popupParames.data); - if (this.formData.source && !this.formData.md_org__source) { - this.newformData.md_org__source = this.formData.source; - } - else if (this.formData.md_org__ncc_code) { - this.newformData.md_org__source = "NCC" - } + this.formData = this.popupParames.data } var customer_id = "" @@ -319,6 +321,10 @@ //棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson if (me.dataRequestObj.newEntity) { var formData = clone(me.dataRequestObj.newEntity.data[me.dataname]); + formData['company_id'] = '1181' + formData['company_name'] = '姹囧畤鍒惰嵂' + formData['bu_id'] = 'BU-GM' + formData['bu_name'] = '鑲跨槫' // formData.product_category_name = []; if (me.newformData) { let formData_ = clone(formData); @@ -469,6 +475,26 @@ // me.options_tree_province = options_tree_province_; me.options_province = clone(me.dataRequestObj.md_geo_province); } + if (me.dataRequestObj.md_org_account_criteria_rule) { + var obj_ = {} + me.formFields_criteria = me.dataRequestObj.md_org_account_criteria_rule; + me.formFields_criteria.map(e=>{ + if (!obj_[e.group_code]) { + var obj = {} + obj_[e.group_code] = e.group_code + obj_[e.group_name] = e.group_name + //obj_鐢ㄤ綔妫�娴嬫槸鍚﹂噸澶嶏紝鑻ユ湭閲嶅锛屽垯灏嗚obj鏀惧叆(鑰屼笉鏄斁鍏bj_) 鏋勫缓鐨刦ormdata_rule_group缁撴瀯濡備笅 + // formdata_rule_group:[{group_name:'瀹㈣璇勫垎',group_code:'Objective',children:[]},{group_name:'涓昏璇勫垎',group_code:'Subjective',children:[]}], + obj['group_code'] = e.group_code + obj['group_name'] = e.group_name + obj['type_code'] = e.type_code + obj['type_name'] = e.type_name + obj['children'] = [] + // obj.children.push(e) + me.formdata_rule_group.push(obj) + } + }) + } me.initData(); // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂� @@ -584,7 +610,35 @@ id_ = this.formData.id; } this.getRowDataById(id_, function(result) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑 - console.log(result) + if (result.data.md_org_account_criteria && result.data.md_org_account_criteria.length>0) { + var criteria_data = [] + me.formData_criteria = result.data.md_org_account_criteria + me.formFields_criteria.map(f=>{ + me.formData_criteria.map(v=>{ + if (f.id == v.criteria_id) { + var obj_ = {} + Object.assign(obj_,f,v) + criteria_data.push(obj_) + } + }) + }) + me.formdata_rule_group.map(g => { + criteria_data.map(v => { + if (v.group_code == g.group_code) { + g.children.push(v) + } + }) + }) + } + else { + me.formdata_rule_group.map(g=>{ + me.formFields_criteria.map(f=>{ + if(f.group_code == g.group_code) { + g.children.push(f) + } + }) + }) + } if (result.meta) { var metaBydataname = {}; for (var dataname_ in result.meta) { @@ -706,6 +760,8 @@ //璁剧疆瀛楁浜嬩欢 me.tableFieldClick(); } + //鏁版嵁澶勭悊 + var formData_ = {}; if (me.accountnccdata.id) { @@ -722,20 +778,20 @@ business_address: me.accountnccdata.md_org__business_address, // 缁忛攢鍟嗗叧鑱斾俊鎭� - business_person: me.accountnccdata.md_org__business_person, - business_phone: me.accountnccdata.md_org__business_phone, - business_email: me.accountnccdata.md_org__business_email, - md_org__license_business_no: me.accountnccdata.md_org__license_business_no, - md_org__register_address: me.accountnccdata.md_org__register_address, - md_org__code: me.accountnccdata.md_org__code, - md_org__ncc_code: me.accountnccdata.md_org__ncc_code, - md_org__province: me.accountnccdata.md_org__province, - md_org__city: me.accountnccdata.md_org__city, - md_org__county: me.accountnccdata.md_org__county, - - md_org__receive_address: me.accountnccdata.md_org__receive_address, - md_org__receiver_name: me.accountnccdata.md_org__receiver_name, - md_org__receiver_phone: me.accountnccdata.md_org__receiver_phone, + business_person: me.accountnccdata.md_org__business_person, + business_phone: me.accountnccdata.md_org__business_phone, + business_email: me.accountnccdata.md_org__business_email, + md_org__license_business_no: me.accountnccdata.md_org__license_business_no, + md_org__register_address: me.accountnccdata.md_org__register_address, + md_org__code: me.accountnccdata.md_org__code, + md_org__ncc_code: me.accountnccdata.md_org__ncc_code, + md_org__province: me.accountnccdata.md_org__province, + md_org__city: me.accountnccdata.md_org__city, + md_org__county: me.accountnccdata.md_org__county, + + md_org__receive_address: me.accountnccdata.md_org__receive_address, + md_org__receiver_name: me.accountnccdata.md_org__receiver_name, + md_org__receiver_phone: me.accountnccdata.md_org__receiver_phone, } for (var k in me.formData) { @@ -1272,6 +1328,7 @@ this.saveChangeRowTable(); } else { // 寮�鎴锋彁浜� + me.loading_pass = true ; var bo_JCXX = this.$refs.JCXX.checkForm(); if (!bo_JCXX) { @@ -1285,7 +1342,7 @@ if (this.formData.business_email) { // 濉啓浜嗛偖绠憋紝鍒欐洿鏂癿d_org涓殑閭淇℃伅 var param = { - dataname: "md_org", + dataname: "md_org_account", id: this.formData.org_id, data: { md_org: { @@ -1381,7 +1438,6 @@ // return // } - console.log(param); // return 0 Server.call("root/data/" + operator_, param, function(result) { console.log(result); @@ -1449,56 +1505,13 @@ // var table_provinces_ = []; for (var r in entity_) { - // if (r == "product_id") { - // var products_ = entity_[r]; - // products_.map(p=>{ - // var p_ = { - // product_line_id: p[0], - // product_line_name: me.productobj_map[p[0]], - - // }; - // if (p.length == 2) { - // p_.product_id = p[1]; - // p_.product_name = me.productobj_map[p[1]] - // } - - // // 濡傛灉宸茬粡瀛樿繃鍒檌d淇濇寔涓嶅彉 - // if (me.old_md_org_account_product_obj[p[0] + p[1]]) { - // p_.id = me.old_md_org_account_product_obj[p[0] + p[1]].id - // } - - // // 锛堢己鍔熻兘锛夊鏋滄湰娆℃暟鎹腑娌℃湁浜嗭紝鍒欓渶瑕佸垹闄ゅ師鏁版嵁銆傜洰鍓嶆病鏈夊垹闄ゅ姩浣溿�� - - - // table_products_.push(p_); - // }) - // } - // else if (r == "province") { - // var provinces_ = entity_[r]; - // provinces_.map(p=>{ - // var p_ = { - // area: p[0], - // province: p[1] - // }; - - // // 濡傛灉宸茬粡瀛樿繃鍒檌d淇濇寔涓嶅彉 - // if (me.old_md_org_account_province_obj[p[0] + p[1]]) { - // p_.id = me.old_md_org_account_province_obj[p[0] + p[1]].id - // } - - // // 锛堢己鍔熻兘锛夊鏋滄湰娆℃暟鎹腑娌℃湁浜嗭紝鍒欓渶瑕佸垹闄ゅ師鏁版嵁銆傜洰鍓嶆病鏈夊垹闄ゅ姩浣溿�� - - - // table_provinces_.push(p_); - // }) - // } - // else if (entity_[r] || entity_[r] == 0) { entity[r] = entity_[r]; } } var tableData_ = []; + var md_org_account_criteria_ = [] this.tableData.map(r=>{ var row_ = {}; for (var k in r) { @@ -1508,6 +1521,33 @@ } tableData_.push(row_); }) + if (me.formData_criteria && me.formData_criteria.length > 0) { //涓嶆槸鏂板 + me.formdata_rule_group.map(group => {// + group.children.map(unitobj => { + var row_ = { + id: unitobj.id, + parent_id: me.formData.id, + criteria_id: unitobj.criteria_id, + criteria_value: unitobj.criteria_value, + remark: unitobj.remark ? unitobj.remark : '', + } + md_org_account_criteria_.push(row_); + }) + }) + } + else { + me.formdata_rule_group.map(group => {// + group.children.map(unitobj => { + var row_ = { + parent_id: me.formData.id, + criteria_id: unitobj.id, + criteria_value: unitobj.criteria_value, + remark: unitobj.remark ? unitobj.remark : '', + } + md_org_account_criteria_.push(row_); + }) + }) + } if (tableData_.length == 0) { Root.message({ @@ -1517,9 +1557,24 @@ me.iscommit = false return } - + if (tableData_.length == 0) { + Root.message({ + type: 'warning', + message: '璇峰厛娣诲姞鏄庣粏鏁版嵁' + }); + me.iscommit = false + return + } + if (md_org_account_criteria_.some(e=>e.criteria_value == '' || e.criteria_value == null)) { + Root.message({ + type: 'warning', + message: '璇峰厛娣诲姞鏄庣粏鏁版嵁' + }); + me.iscommit = false + return + } let param = { - dataname: this.dataname, + dataname: 'md_org_account', data: {}, } if (me.formData.id) { @@ -1528,13 +1583,14 @@ if(me.iscommit) { // param.to_state = "OpeningApproval";//鎻愪氦 if (me.formData.org_ncc_id) { - param.refer = { - dataname: "md_org_account_ncc", - id: me.formData.org_ncc_id - } + // param.refer = { + // dataname: "md_org_account", + // id: me.formData.org_ncc_id + // } } } + param.data["md_org_account_criteria"] = md_org_account_criteria_.length ? md_org_account_criteria_ : null; param.data[this.dataname] = entity; param.data[this.table_dataname] = tableData_; @@ -1553,18 +1609,16 @@ return } - console.log(param); - // return Server.call("root/data/" + operator_, param, function(result) { console.log(result); if (result.success) { if(me.iscommit){ me.iscommit = false; - Root.message({ - type: 'success', - message: '鎻愪氦鎴愬姛' - }); - me.saveAfter(); + // Root.message({ + // type: 'success', + // message: '鎻愪氦鎴愬姛' + // }); + me.doapprove() } else { Root.message({ @@ -1606,6 +1660,57 @@ } }); }, + doapprove(){ + var me = this + me.loading_pass = true; + let param = { + dataname: "md_org_account", + id: me.formData.id, + remark: this.approveremark + } + Server.call("root/data/approve", param, function(result) { + me.loading_pass = false; + // Root.message({ + // type: 'success', + // message: '瀹℃壒鎴愬姛' + // }); + 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: '鎻愪氦澶辫触' + }); + } + }); + }, // 閫氳繃鎴栨嫆缁� onShowApproval(passOrRefuse) { @@ -1638,26 +1743,6 @@ // this.getMachine(function(next_step, up_step) { // // me.doRunApproval(next_step, up_step); // }); - }, - - getMachine(callback) { - var me = this; - let param = { - dataname: "md_org_account", - } - Server.call("root/state/getMachine", param, function(result) { - var next_step = {}; // 鍚戜笅娴佺▼ - var up_step = {}; // 鍚戜笂娴佺▼ - - if (result && result.machine && result.machine.detail) { - result.machine.detail.map(md=>{ - next_step[md.from_code] = md.to_code; - up_step[md.to_code] = md.from_code; - }) - - callback(next_step, up_step); - } - }) }, doRunApproval(next_step, up_step) { @@ -1774,6 +1859,22 @@ padding: 5px; box-sizing: border-box; } + .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; + } </style> </head> @@ -1839,6 +1940,172 @@ </div> + <div class="el-dialog__body" style="width: 100%; float: right; " > + <div v-if="formFields.length>0" > + <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> + <!-- <el-row style="display: flex;flex-direction: row;justify-content:space-between;padding-left: 91px;padding-top: 10px;" > + <el-col :span="16"><div class="itemgroup_field"><span>璇勫垎椤�</span></div></el-col> + <el-col :span="8"><div class="itemgroup_field"><span>璇勫垎</span></div></el-col> + </el-row> --> + <div style="width: 100%;height: 5px;margin: 10px 0px 25px 0px;background-color: gainsboro; opacity: 40%;"></div> + <template v-for="(formgroup, k) in formdata_rule_group.filter(e=>e.type_code == 'Selection')" > + <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.groupname}} --> + {{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}} --> + {{unitobj.content_before}} + </span> + </div> + </el-col> + <el-col :span="18" > + <div v-if="unitobj.content_type == 'textarea'"> + <el-input :disabled="formAttr.disabled" 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 :disabled="formAttr.disabled" 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 :disabled="formAttr.disabled" 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 :disabled="formAttr.disabled" style="width:100%" + v-model="unitobj.criteria_value"> + </el-input> + </div> + <div v-else-if="unitobj.content_type == 'date'"> + <el-date-picker + :disabled="formAttr.disabled" + 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 :disabled="formAttr.disabled" 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 :disabled="formAttr.disabled" 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-top: 25px;background-color: gainsboro;opacity: 40%"></div> + </template > + </div> + </div> + <div class="el-dialog__body" style="width: 100%; float: right; " > + <div v-if="formFields.length>0 " > + <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> + <!-- <el-row style="display: flex;flex-direction: row;justify-content:space-between;padding-left: 91px;padding-top: 10px;" > + <el-col :span="16"><div class="itemgroup_field"><span>璇勫垎椤�</span></div></el-col> + <el-col :span="8"><div class="itemgroup_field"><span>璇勫垎</span></div></el-col> + </el-row> --> + <div style="width: 100%;height: 5px;margin: 10px 0px 25px 0px;background-color: gainsboro; opacity: 40%;"></div> + <template v-for="(formgroup, k) in formdata_rule_group.filter(e=>e.type_code == 'Evaluation')"> + <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.groupname}} --> + {{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}} --> + {{unitobj.content_before}} + </span> + </div> + </el-col> + <el-col :span="18" > + <div v-if="unitobj.content_type == 'textarea'"> + <el-input :disabled="formAttr.disabled" 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 :disabled="formAttr.disabled" 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 :disabled="formAttr.disabled" 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 :disabled="formAttr.disabled" style="width:100%" + v-model="unitobj.criteria_value"> + </el-input> + </div> + <div v-else-if="unitobj.content_type == 'date'"> + <el-date-picker + :disabled="formAttr.disabled" + 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 :disabled="formAttr.disabled" 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 :disabled="formAttr.disabled" 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-top: 25px;background-color: gainsboro;opacity: 40%"></div> + </template > + </div> + </div> </div> <el-dialog title="濉啓鍘熷洜" :visible.sync="reasonvisible" height="50%"> @@ -1861,11 +2128,9 @@ <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="isChange" type="success" :loading="loading_pass" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.name}}</el-button> <el-button size="small" v-if="isrefuseedit" type="success" @click="">鍐嶆鎻愪氦</el-button> -- Gitblit v1.8.0