linwenxin 5 ماه پیش
والد
کامیت
9ccda668cb

+ 1 - 1
src/views/setting/networkSigning/contractManagement/enterpriseCaCertification/index.vue

@@ -387,7 +387,7 @@ export default {
       })
     },
     openWindow(cb) {
-      Promise.all([getWebsit({ type: 'C', status: true, queryPartsWebsit: true, level: 1 })]).then(([res1]) => {
+      Promise.all([getWebsit({ type: 'C', status: true, level: 1 })]).then(([res1]) => {
         this.websitList = res1.data
         this.$nextTick(() => {
           cb?.()

+ 466 - 106
src/views/userManagement/masterManagement/index.vue

@@ -55,25 +55,23 @@
             :form-items="formItems2"
           >
           </zj-form-module>
+          <zj-form-module
+            title="保险信息"
+            label-width="100px"
+            :showPackUp="false"
+            :form-data="formData"
+            :form-items="formItems3"
+          >
+          </zj-form-module>
         </zj-form-container>
         <div slot="footer" class="dialog-footer">
-          <el-button
-            v-if="formData.examineStatus == 'WAIT' && activeKey == 'examine'"
-            size="mini"
-            type="primary"
-            @click="audit('OK', data.removeTab)"
+          <el-button v-if="formData.examineStatus == 'WAIT' && activeKey == 'examine'" size="mini" type="primary"
             >审核通过</el-button
           >
-          <el-button
-            v-if="formData.examineStatus == 'WAIT' && activeKey == 'examine'"
-            size="mini"
-            type="danger"
-            @click="audit('FAIL', data.removeTab)"
+          <el-button v-if="formData.examineStatus == 'WAIT' && activeKey == 'examine'" size="mini" type="danger"
             >审核驳回</el-button
           >
-          <el-button v-if="activeKey == 'detail'" size="mini" type="primary" @click="update(data.removeTab)"
-            >保存</el-button
-          >
+          <el-button v-if="activeKey == 'detail'" size="mini" type="primary">保存</el-button>
           <el-button size="mini" @click="data.removeTab()">取 消</el-button>
         </div>
       </div>
@@ -100,9 +98,10 @@ import {
 } from '@/api/masterManagement'
 import operation_mixin from '@/components/template/operation_mixin.js'
 import ImageUpload from '@/components/file-upload'
+import editTable from '@/components/template/editTable.js'
 export default {
   components: { TemplatePage, ImageUpload },
-  mixins: [import_mixin, operation_mixin],
+  mixins: [import_mixin, operation_mixin, editTable],
   data() {
     return {
       // 事件组合
@@ -132,7 +131,8 @@ export default {
         examineStatus: '',
         idCardImg: [],
         user: {},
-        workerImgs: [{}]
+        workerImgsCp: [{ type: '', number: '', startTime: '', endTime: '', reexamineTime: '', filesList: [] }],
+        workerPolicies: []
       },
       examineStatus: ''
     }
@@ -251,34 +251,6 @@ export default {
             rules: []
           }
         }
-
-        // {
-        //   md: 12,
-        //   isShow: true,
-        //   name: 'el-input',
-        //   attributes: { placeholder: '请输入' },
-        //   formItemAttributes: {
-        //     label: '身份证号码',
-        //     prop: 'idCard',
-        //     rules: [...required]
-        //   }
-        // },
-        // {
-        //   md: 12,
-        //   isShow: true,
-        //   name: 'slot-component',
-        //   attributes: {},
-        //   formItemAttributes: {
-        //     label: '身份证',
-        //     prop: 'idCardImg',
-        //     rules: [...required]
-        //   },
-        //   render: (h, { props, onInput }) => {
-        //     var { value } = props
-        //     console.log(this.formData.idCardImg)
-        //     return <ImageUpload fileList={this.formData.idCardImg} limit={1} isEdit={true} />
-        //   }
-        // },
       ]
     },
     formItems2() {
@@ -290,7 +262,7 @@ export default {
             'label-width': '0px',
             label: '',
             prop: 'items',
-            rules: [...required]
+            rules: []
           },
           render: (h, { props }) => {
             return (
@@ -307,7 +279,7 @@ export default {
                           <el-form-item
                             label=""
                             label-width="0px"
-                            prop={`workerImgs.${index}.${column.columnAttributes.prop}`}
+                            prop={`workerImgsCp.${index}.${column.columnAttributes.prop}`}
                           >
                             <el-select
                               value={row[column.columnAttributes.prop]}
@@ -315,6 +287,7 @@ export default {
                                 row[column.columnAttributes.prop] = val
                               }}
                               placeholder="请选择"
+                              disabled={true}
                             >
                               {[
                                 { value: 'HIGHT', label: '高空证' },
@@ -331,8 +304,7 @@ export default {
                   {
                     columnAttributes: {
                       label: '证件号码',
-                      prop: 'number',
-                      width: 150
+                      prop: 'number'
                     },
                     render: (h, { row, column, index }) => {
                       return (
@@ -359,7 +331,7 @@ export default {
                           <el-form-item
                             label=""
                             label-width="0px"
-                            prop={`workerImgs.${index}.${column.columnAttributes.prop}`}
+                            prop={`workerImgsCp.${index}.${column.columnAttributes.prop}`}
                           >
                             <el-date-picker
                               value={row[column.columnAttributes.prop]}
@@ -385,7 +357,7 @@ export default {
                           <el-form-item
                             label=""
                             label-width="0px"
-                            prop={`workerImgs.${index}.${column.columnAttributes.prop}`}
+                            prop={`workerImgsCp.${index}.${column.columnAttributes.prop}`}
                           >
                             <el-date-picker
                               value={row[column.columnAttributes.prop]}
@@ -406,33 +378,377 @@ export default {
                       prop: 'reexamineTime'
                     },
                     render: (h, { row, column, index }) => {
+                      if (index) {
+                        return (
+                          <div class="redbordererr">
+                            <el-form-item
+                              label=""
+                              label-width="0px"
+                              prop={`workerImgsCp.${index}.${column.columnAttributes.prop}`}
+                            >
+                              <el-date-picker
+                                value={row[column.columnAttributes.prop]}
+                                onInput={val => {
+                                  row[column.columnAttributes.prop] = val
+                                }}
+                                type="date"
+                                placeholder="选择日期"
+                              ></el-date-picker>
+                            </el-form-item>
+                          </div>
+                        )
+                      } else {
+                        return null
+                      }
+                    }
+                  },
+                  {
+                    columnAttributes: {
+                      label: '正面',
+                      prop: 'positive',
+                      width: 130
+                    },
+                    render: (h, { row, column, index }) => {
                       return (
                         <div class="redbordererr">
-                          <el-form-item
-                            label=""
-                            label-width="0px"
-                            prop={`workerImgs.${index}.${column.columnAttributes.prop}`}
-                          >
-                            <el-date-picker
-                              value={row[column.columnAttributes.prop]}
-                              onInput={val => {
-                                row[column.columnAttributes.prop] = val
-                              }}
-                              type="date"
-                              placeholder="选择日期"
-                            ></el-date-picker>
-                          </el-form-item>
+                          <ImageUpload fileList={row[column.columnAttributes.prop]} limit={1} isEdit={true} />
+                        </div>
+                      )
+                    }
+                  },
+                  {
+                    columnAttributes: {
+                      label: '反面',
+                      prop: 'negative',
+                      width: 130
+                    },
+                    render: (h, { row, column, index }) => {
+                      return (
+                        <div class="redbordererr">
+                          <ImageUpload fileList={row[column.columnAttributes.prop]} limit={1} isEdit={true} />
                         </div>
                       )
                     }
                   }
                 ]}
-                table-data={this.formData.workerImgs || []}
+                table-data={this.formData.workerImgsCp || []}
               />
             )
           }
         }
       ]
+    },
+    formItems3() {
+      return [
+        {
+          name: 'slot-component',
+          md: 24,
+          formItemAttributes: {
+            label: '',
+            'label-width': '0px',
+            prop: 'workerPolicies',
+            rules: []
+          },
+          render: (h, { props, onInput }) => {
+            var { value } = props
+            return this.convertTableJson(
+              value,
+              [
+                {
+                  columnAttributes: {
+                    label: '保险公司名字',
+                    prop: 'company'
+                  },
+                  render: (h, { row, column, index }) => {
+                    return (
+                      <div class="redbordererr">
+                        <el-form-item
+                          label=""
+                          label-width="0px"
+                          prop={`workerPolicies.${index}.${column.columnAttributes.prop}`}
+                          rules={[{ required: true, message: '请填写', trigger: 'blur' }]}
+                        >
+                          <el-input
+                            value={row[column.columnAttributes.prop]}
+                            onInput={val => {
+                              row[column.columnAttributes.prop] = val
+                            }}
+                            placeholder="请输入内容"
+                            disabled={row.type == 'IN'}
+                          ></el-input>
+                        </el-form-item>
+                      </div>
+                    )
+                  }
+                },
+                {
+                  columnAttributes: {
+                    label: '购买类型',
+                    prop: 'type'
+                  },
+                  render: (h, { row, column, index }) => {
+                    return (
+                      <div class="redbordererr">
+                        <el-form-item
+                          label=""
+                          label-width="0px"
+                          prop={`workerPolicies.${index}.${column.columnAttributes.prop}`}
+                          rules={[{ required: true, message: '请填写', trigger: 'blur' }]}
+                        >
+                          <el-select
+                            value={row[column.columnAttributes.prop]}
+                            onInput={val => {
+                              row[column.columnAttributes.prop] = val
+                            }}
+                            placeholder="请输入内容"
+                            disabled={true}
+                          >
+                            {[
+                              { label: '线下购买', value: 'LINE' },
+                              { label: '在线购买', value: 'IN' }
+                            ].map((item, index_) => (
+                              <el-option key={index_} label={item.label} value={item.value}></el-option>
+                            ))}
+                          </el-select>
+                        </el-form-item>
+                      </div>
+                    )
+                  }
+                },
+                {
+                  columnAttributes: {
+                    label: '保险单名称',
+                    prop: 'policyName'
+                  },
+                  render: (h, { row, column, index }) => {
+                    return (
+                      <div class="redbordererr">
+                        <el-form-item
+                          label=""
+                          label-width="0px"
+                          prop={`workerPolicies.${index}.${column.columnAttributes.prop}`}
+                          rules={[{ required: true, message: '请填写', trigger: 'blur' }]}
+                        >
+                          <el-input
+                            value={row[column.columnAttributes.prop]}
+                            onInput={val => {
+                              row[column.columnAttributes.prop] = val
+                            }}
+                            placeholder="请输入内容"
+                            disabled={row.type == 'IN'}
+                          ></el-input>
+                        </el-form-item>
+                      </div>
+                    )
+                  }
+                },
+                {
+                  columnAttributes: {
+                    label: '保单类型',
+                    prop: 'type'
+                  },
+                  render: (h, { row, column, index }) => {
+                    return (
+                      <div class="redbordererr">
+                        <el-form-item
+                          label=""
+                          label-width="0px"
+                          prop={`workerPolicies.${index}.${column.columnAttributes.prop}`}
+                          rules={[{ required: true, message: '请填写', trigger: 'blur' }]}
+                        >
+                          <el-select
+                            disabled={row.type == 'IN'}
+                            value={row[column.columnAttributes.prop]}
+                            onInput={val => {
+                              row[column.columnAttributes.prop] = val
+                            }}
+                            placeholder="请输入内容"
+                          >
+                            {[
+                              { label: '意外险', value: 'AC' },
+                              { label: '雇主险', value: 'EM' },
+                              { label: '工伤险', value: 'IN' }
+                            ].map((item, index_) => (
+                              <el-option key={index_} label={item.label} value={item.value}></el-option>
+                            ))}
+                          </el-select>
+                        </el-form-item>
+                      </div>
+                    )
+                  }
+                },
+                {
+                  columnAttributes: {
+                    label: '保单状态',
+                    prop: 'status'
+                  },
+                  render: (h, { row, column, index }) => {
+                    return (
+                      <div class="redbordererr">
+                        <el-form-item
+                          label=""
+                          label-width="0px"
+                          prop={`workerPolicies.${index}.${column.columnAttributes.prop}`}
+                          rules={[{ required: true, message: '请填写', trigger: 'blur' }]}
+                        >
+                          <el-select
+                            disabled={row.type == 'IN'}
+                            value={row[column.columnAttributes.prop]}
+                            onInput={val => {
+                              row[column.columnAttributes.prop] = val
+                            }}
+                            placeholder="请输入内容"
+                          >
+                            {[
+                              { label: '保障中', value: 'ON' },
+                              { label: '失效', value: 'OFF' },
+                              { label: '待生效', value: 'WAIT_ON' }
+                            ].map((item, index_) => (
+                              <el-option key={index_} label={item.label} value={item.value}></el-option>
+                            ))}
+                          </el-select>
+                        </el-form-item>
+                      </div>
+                    )
+                  }
+                },
+                {
+                  columnAttributes: {
+                    label: '保险单号',
+                    prop: 'policyOrder'
+                  },
+                  render: (h, { row, column, index }) => {
+                    return (
+                      <div class="redbordererr">
+                        <el-form-item
+                          label=""
+                          label-width="0px"
+                          prop={`workerPolicies.${index}.${column.columnAttributes.prop}`}
+                          rules={[{ required: true, message: '请填写', trigger: 'blur' }]}
+                        >
+                          <el-input
+                            disabled={row.type == 'IN'}
+                            value={row[column.columnAttributes.prop]}
+                            onInput={val => {
+                              row[column.columnAttributes.prop] = val
+                            }}
+                            placeholder="请输入内容"
+                          ></el-input>
+                        </el-form-item>
+                      </div>
+                    )
+                  }
+                },
+                {
+                  columnAttributes: {
+                    label: '有效期开始日期',
+                    prop: 'startTime'
+                  },
+                  render: (h, { row, column, index }) => {
+                    return (
+                      <div class="redbordererr">
+                        <el-form-item
+                          label=""
+                          label-width="0px"
+                          prop={`workerPolicies.${index}.${column.columnAttributes.prop}`}
+                          rules={[{ required: true, message: '请填写', trigger: 'blur' }]}
+                        >
+                          <el-date-picker
+                            value={row[column.columnAttributes.prop]}
+                            onInput={val => {
+                              row[column.columnAttributes.prop] = val
+                            }}
+                            type="date"
+                            placeholder="选择日期"
+                          ></el-date-picker>
+                        </el-form-item>
+                      </div>
+                    )
+                  }
+                },
+                {
+                  columnAttributes: {
+                    label: '有效期结束日期',
+                    prop: 'endTime'
+                  },
+                  render: (h, { row, column, index }) => {
+                    return (
+                      <div class="redbordererr">
+                        <el-form-item
+                          label=""
+                          label-width="0px"
+                          prop={`workerPolicies.${index}.${column.columnAttributes.prop}`}
+                          rules={[{ required: true, message: '请填写', trigger: 'blur' }]}
+                        >
+                          <el-date-picker
+                            value={row[column.columnAttributes.prop]}
+                            onInput={val => {
+                              row[column.columnAttributes.prop] = val
+                            }}
+                            type="date"
+                            placeholder="选择日期"
+                          ></el-date-picker>
+                        </el-form-item>
+                      </div>
+                    )
+                  }
+                },
+                {
+                  columnAttributes: {
+                    label: '附件',
+                    prop: 'policyUrl'
+                  },
+                  render: (h, { row, column, index }) => {
+                    return (
+                      <div class="redbordererr">
+                        <ImageUpload fileList={row[column.columnAttributes.prop]} limit={1} isEdit={true} />
+                      </div>
+                    )
+                  }
+                }
+              ],
+              {
+                isEdit: true,
+                isAdd: true,
+                isDel: true,
+                isUpdate: false,
+                isConfirm: false
+              },
+              {
+                add: () => {
+                  this.formData.workerPolicies.push({
+                    company: '',
+                    endTime: '',
+                    exTime: '',
+                    policyId: '',
+                    policyName: '',
+                    policyOrder: '',
+                    policyPrice: '',
+                    policyType: '',
+                    startTime: '',
+                    status: '',
+                    type: '',
+                    websitId: '',
+                    websitName: '',
+                    websitUserId: '',
+                    workerId: '',
+                    workerName: ''
+                  })
+                  this.isEditTableIndex = this.formData.workerPolicies.length - 1
+                },
+                delete: ({ row, column, index }, cb) => {
+                  if (this.isEditTableIndex == index) {
+                    this.isEditTableIndex = -1
+                  } else if (this.isEditTableIndex > index) {
+                    this.isEditTableIndex--
+                  }
+                  cb && cb()
+                }
+              }
+            )
+          }
+        }
+      ]
     }
   },
   methods: {
@@ -503,7 +819,51 @@ export default {
                       user: {
                         ...res.data.user,
                         examineStatus_t: res.data.examineStatus
-                      }
+                      },
+                      workerImgsCp: [
+                        {
+                          type: 'ID',
+                          number: res.data?.user?.idCard || '',
+                          startTime: res.data?.user?.idCardStartTime || '',
+                          endTime: res.data?.user?.idCardEndTime || '',
+                          reexamineTime: '',
+                          positive:
+                            (res.data?.workerImgs || [])
+                              .filter(item => item.type == 'ID')
+                              .map(item => ({
+                                name: item.imgName,
+                                url: item.imgUrl
+                              }))?.[0] || [],
+                          negative:
+                            (res.data?.workerImgs || [])
+                              .filter(item => item.type == 'ID')
+                              .map(item => ({
+                                name: item.imgName,
+                                url: item.imgUrl
+                              }))?.[1] || []
+                        },
+                        {
+                          type: 'HIGHT',
+                          number: res.data?.user?.number || '',
+                          startTime: res.data?.user?.startTime || '',
+                          endTime: res.data?.user?.endTime || '',
+                          reexamineTime: res.data?.user?.hightExamineTime || '',
+                          positive:
+                            (res.data?.workerImgs || [])
+                              .filter(item => item.type == 'HIGHT')
+                              .map(item => ({
+                                name: item.imgName,
+                                url: item.imgUrl
+                              }))?.[0] || [],
+                          negative:
+                            (res.data?.workerImgs || [])
+                              .filter(item => item.type == 'HIGHT')
+                              .map(item => ({
+                                name: item.imgName,
+                                url: item.imgUrl
+                              }))?.[1] || []
+                        }
+                      ]
                     }
                   })
                 })
@@ -608,48 +968,48 @@ export default {
     guanbi() {
       this.$refs?.formRef?.$refs?.inlineForm?.clearValidate()
       this.$data.formData = this.$options.data().formData
-    },
-    audit(examineStatusEnum, removeTab) {
-      memberAudit({
-        userId: this.formData.userId,
-        websitId: this.formData.websitId,
-        bankAccount: this.formData.bankAccount,
-        workerNumber: this.formData.workerNumber,
-        isEs: this.formData.isEs,
-        idCard: this.formData.idCard,
-        idCardImg: this.formData.idCardImg[0].url,
-        name: this.formData.nickName,
-        examineStatus: examineStatusEnum,
-        examineRemark: this.formData.examineRemark,
-        id: this.formData.id
-      }).then(res => {
-        this.$message({ type: 'success', message: '审核成功!' })
-        removeTab('list')
-        this.$refs.pageRef.refreshList()
-      })
-    },
-    update(removeTab) {
-      console.log(this.formData)
-      return
-      this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
-        if (valid) {
-          update({
-            userId: this.formData.userId,
-            websitId: this.formData.websitId,
-            bankAccount: this.formData.bankAccount,
-            workerNumber: this.formData.workerNumber,
-            isEs: this.formData.isEs,
-            idCard: this.formData.idCard,
-            idCardImg: this.formData.idCardImg[0].url,
-            name: this.formData.nickName
-          }).then(res => {
-            this.$message({ type: 'success', message: '保存成功!' })
-            removeTab('list')
-            this.$refs.pageRef.refreshList()
-          })
-        }
-      })
     }
+    // audit(examineStatusEnum, removeTab) {
+    //   memberAudit({
+    //     userId: this.formData.userId,
+    //     websitId: this.formData.websitId,
+    //     bankAccount: this.formData.bankAccount,
+    //     workerNumber: this.formData.workerNumber,
+    //     isEs: this.formData.isEs,
+    //     idCard: this.formData.idCard,
+    //     idCardImg: this.formData.idCardImg[0].url,
+    //     name: this.formData.nickName,
+    //     examineStatus: examineStatusEnum,
+    //     examineRemark: this.formData.examineRemark,
+    //     id: this.formData.id
+    //   }).then(res => {
+    //     this.$message({ type: 'success', message: '审核成功!' })
+    //     removeTab('list')
+    //     this.$refs.pageRef.refreshList()
+    //   })
+    // },
+    // update(removeTab) {
+    //   console.log(this.formData)
+    //   return
+    //   this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
+    //     if (valid) {
+    //       update({
+    //         userId: this.formData.userId,
+    //         websitId: this.formData.websitId,
+    //         bankAccount: this.formData.bankAccount,
+    //         workerNumber: this.formData.workerNumber,
+    //         isEs: this.formData.isEs,
+    //         idCard: this.formData.idCard,
+    //         idCardImg: this.formData.idCardImg[0].url,
+    //         name: this.formData.nickName
+    //       }).then(res => {
+    //         this.$message({ type: 'success', message: '保存成功!' })
+    //         removeTab('list')
+    //         this.$refs.pageRef.refreshList()
+    //       })
+    //     }
+    //   })
+    // }
   }
 }
 </script>