tom
2024-08-04 9d2d560dbe4fc6578b5aab8c82a1746f23c726b0
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,62 +181,6 @@
                  this.popupParames = clone(Root.popupParames);
                  this.title = this.popupParames.title || this.popupParames.text
                  if (this.popupParames.data) {
                     // var formdata_ = {}
                     // let formdata_ = {
                     //    account_name,
                     //    actor_code,
                     //    actor_name,
                     //    authorize_province,
                     //    authorize_province_remark,
                     //    bu_id,
                     //    bu_name,
                     //    business_address,
                     //    business_email,
                     //    business_need_code,
                     //    business_need_name,
                     //    business_need_others,
                     //    business_person,
                     //    business_phone,
                     //    check_error,
                     //    code,
                     //    combined_score,
                     //    company_id,
                     //    company_name,
                     //    create_time,
                     //    creator_id,
                     //    creator_name,
                     //    credit_amt,
                     //    credit_available,
                     //    degree,
                     //    file_authorization_name,
                     //    file_authorization_id,
                     //    h_rowindex,
                     //    id,
                     //    is_frozen,
                     //    objective_score,
                     //    open_date,
                     //    opening_reason,
                     //    org_id,
                     //    org_ncc_id,
                     //    platform_account_code,
                     //    platform_account_id,
                     //    platform_account_name,
                     //    platform_org_id,
                     //    remark,
                     //    settlement,
                     //    state_code,
                     //    state_name,
                     //    subjective_score,
                     //    update_time,
                     // } = clone(this.popupParames.data);
                     // this.formData = {}
                     // 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
                  }
                  
@@ -523,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放入(而不是放入obj_) 构建的formdata_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 需要异步关闭
@@ -638,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) {
@@ -760,6 +760,8 @@
                           //设置字段事件
                           me.tableFieldClick();
                        }
                     //数据处理
                        
                        var formData_ = {};
                        if (me.accountnccdata.id) {
@@ -1326,6 +1328,7 @@
                        this.saveChangeRowTable();
                     }
                     else { // 开户提交
                        me.loading_pass = true ;
                        var bo_JCXX = this.$refs.JCXX.checkForm();
                        
                        if (!bo_JCXX) {
@@ -1435,7 +1438,6 @@
                     //    return
                     // }
                     
                     console.log(param);
                     // return 0
                     Server.call("root/data/" + operator_, param, function(result) {
                        console.log(result);
@@ -1503,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]]
                        //       }
                        //       // 如果已经存过则id保持不变
                        //       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]
                        //       };
                        //       // 如果已经存过则id保持不变
                        //       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) {
@@ -1562,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({
@@ -1571,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) {
@@ -1589,6 +1590,7 @@
                        }
                        
                     }
                     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_;
@@ -1607,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({
@@ -1660,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) {
@@ -1692,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) {
@@ -1828,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>
@@ -1893,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%">
@@ -1915,10 +2128,8 @@
                     <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 && isedit" type="success" :loading="loading_pass"  @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>