马宇豪
2023-10-07 21e03c21386fb124774df48c8bb1fe3b185dbb48
src/views/coalMine/cPeopleManage/components/peopleDialog.vue
@@ -1,7 +1,7 @@
<template>
  <el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
    <div class="main_form">
      <el-form :model="form" :rules="rules" ref="ruleForm" label-width="200px" :label-position="labelPosition">
      <el-form :model="form" :rules="rules" ref="ruleForm" label-width="120px" :label-position="labelPosition">
        <el-row>
          <el-col :span="20">
            <el-form-item label="姓名" prop="name">
@@ -50,7 +50,14 @@
        <el-row>
          <el-col :span="20">
            <el-form-item label="最高学历" prop="eduLevel">
              <el-input v-model="form.eduLevel" :readonly="disable"></el-input>
              <el-select v-model="form.eduLevel" placeholder="请选择" :disabled="disable" style="width: 100%">
                <el-option
                  v-for="dict in dict.type.sys_highest_education_code"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                />
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
@@ -75,8 +82,82 @@
            </el-form-item>
          </el-col>
        </el-row>
        <template v-if="title == '查看人员'">
          <el-row v-if="form.violationRegistrationVOS && form.violationRegistrationVOS.length>0">
            <el-col :span="24">
              <el-form-item label="违章记录">
                <el-table :data="form.violationRegistrationVOS" border>
                  <el-table-column label="发生时间" align="center" prop="violationTime"/>
                  <el-table-column label="违章(时)所属单位" align="center" prop="dept"/>
                  <el-table-column label="作业类别/操作项目" align="center" prop="dept"/>
                </el-table>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row v-if="form.cmStaffResumes && form.cmStaffResumes.length>0">
            <el-col :span="24">
              <el-form-item label="个人履历">
                <el-table :data="form.cmStaffResumes" border>
                  <el-table-column label="时间" align="center">
                    <template #default="scope">
                      {{scope.row.startTime.substring(0,7) + '~' + scope.row.endTime.substring(0,7)}}
                    </template>
                  </el-table-column>
                  <el-table-column label="单位" align="center" prop="unit" />
                </el-table>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row v-if="form.cmStaffQas && form.cmStaffQas.length>0">
            <el-col :span="24">
              <el-form-item label="资格证书">
                <el-table :data="form.cmStaffQas" border>
                  <el-table-column label="证书名称" align="center" prop="name"/>
                  <el-table-column label="资格类型" align="center" prop="qualificationType" />
                  <el-table-column label="作业类别" align="center" prop="jobCategory" />
                  <el-table-column label="操作项目" align="center" prop="operationItems" />
                  <el-table-column label="人员" align="center" prop="staffId" />
                  <el-table-column label="有效期至" align="center" prop="expiredTime"/>
                </el-table>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row v-if="form.cmStaffTrains && form.cmStaffTrains.length>0">
            <el-col :span="24">
              <el-form-item label="培训经历">
                <el-table :data="form.cmStaffTrains" border>
                  <el-table-column label="培训时间" align="center" prop="startTime">
                    <template #default="scope">
                      {{scope.row.startTime.substring(0,7) + '~' + scope.row.endTime.substring(0,7)}}
                    </template>
                  </el-table-column>
                  <el-table-column label="培训单位" align="center" prop="unit" />
                  <el-table-column label="所属批次" align="center" prop="batch" />
                  <el-table-column label="科目" align="center" prop="subject" />
                </el-table>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row v-if="form.cmStaffExams && form.cmStaffExams.length>0">
            <el-col :span="24">
              <el-form-item label="考试经历">
                <el-table :data="form.cmStaffExams" border>
                  <el-table-column label="考试时间" align="center" prop="examTime"/>
                  <el-table-column label="考试中心" align="center" prop="examCenter"/>
                  <el-table-column label="科目" align="center" prop="subject"/>
                  <el-table-column label="考试结果" align="center" prop="result">
                    <template #default="scope">
                      {{scope.row.result == 0 ? '通过' : '未通过'}}
                    </template>
                  </el-table-column>
                </el-table>
              </el-form-item>
            </el-col>
          </el-row>
        </template>
      </el-form>
      <div style="width: 100%;padding-bottom: 30px;display: flex;justify-content: center">
        <el-button @click="open = false">取消</el-button>
        <el-button v-if="title == '查看人员'" type="primary" @click="open = false">确认</el-button>
        <el-button v-else type="primary" @click="submit()">提交</el-button>
      </div>
@@ -92,7 +173,7 @@
import { verifySimplePhone, verifyIdCard } from "@/utils/validate";
export default {
  name: "peopleDialog",
  dicts: ['sys_nation_code'],
  dicts: ['sys_nation_code','sys_highest_education_code'],
  data() {
    var validatePass = (rule, value, callback) => {
      if (this.fileList.length == 0) {
@@ -154,15 +235,11 @@
  },
  created() {
    const t = this
    const width = document.documentElement.clientWidth
    if(width < 750){t.labelPosition = 'top'}
  },
  methods: {
    openDialog(val,type){
      const t = this
      t.fileList = []
      const width = document.documentElement.clientWidth
      if(width < 750){this.labelPosition = 'top'}
      t.open = true
      if(type == 'add'){
        t.title = '新增人员'
@@ -181,26 +258,46 @@
        if(type == 'edit'){
          t.title = '编辑人员'
          t.disable = false
          if(val){
            for(let i in val){
              if(t.isValidKey(i,this.form)){
                t.form[i] = val[i]
              }
            }
            t.form.sex = Number(t.form.sex)
            // 仅限单张图片处理
            t.form.photoAttachment = val.photoAttachment.id
            let file = {
              name: val.photoAttachment.fileName,
              url: process.env.VUE_APP_BASE_API + val.photoAttachment.fileUrl
            }
            t.fileList.push(file)
          }
        }else{
          t.title = '查看人员'
          t.disable = true
        }
        if(val){
          for(let i in val){
            if(t.isValidKey(i,this.form)){
              t.form[i] = val[i]
          if(val){
            for(let i in val){
              if(t.isValidKey(i,this.form)){
                t.form[i] = val[i]
              }
            }
            t.form.sex = Number(t.form.sex)
            t.form.violationRegistrationVOS = val.violationRegistrationVOS
            t.form.cmStaffResumes = val.cmStaffResumes
            t.form.cmStaffQas = val.cmStaffQas
            t.form.cmStaffTrains = val.cmStaffTrains
            t.form.cmStaffExams = val.cmStaffExams
            // 仅限单张图片处理
            t.form.photoAttachment = val.photoAttachment.id
            let file = {
              name: val.photoAttachment.fileName,
              url: process.env.VUE_APP_BASE_API + val.photoAttachment.fileUrl
            }
            t.fileList.push(file)
          }
          t.form.sex = Number(t.form.sex)
          // 仅限单张图片处理
          t.form.photoAttachment = val.photoAttachment.id
          let file = {
            name: val.photoAttachment.fileName,
            url: process.env.VUE_APP_BASE_API + val.photoAttachment.fileUrl
          }
          t.fileList.push(file)
          console.log(t.form,'form')
        }
        console.log(t.fileList,'fileList1')
      }
    },
    isValidKey(key,obj){
@@ -308,9 +405,6 @@
          })
        }
      })
    },
    changeSource(num){
      this.form.source = num
    }
  }
};