luoyb
2021-06-07 4676141dae020bd3e2a078b8350df84ed6c325ab
src/views/user/inemployees.vue
@@ -7,7 +7,7 @@
            <h3 class="bu-tian-jia-title">在职员工</h3>
          </el-col>
          <el-col :span="9" style="margin-top: 15px;">
            <el-input v-model="queryParams.vague" placeholder="请输入内容" style="width:300px" />
            <el-input v-model="queryParams.baseKey" placeholder="请输入内容" style="width:300px" />
            <span class="search-btn" @click="vagueSearch">查询</span>
            <span class="sup-search-btn" @click="advancedQueryShowMethods">高级查询</span>
          </el-col>
@@ -124,7 +124,7 @@
                  </td>
                </tr>
                <tr>
                  <td class="td">保险类型:</td>
                  <td class="td">社保档位:</td>
                  <td class="td-group">
                    <el-checkbox-group v-model="queryParams.insuranceType" class="fj-checkbox">
                      <el-checkbox label="" @change="selectAllInsuranceType">全部</el-checkbox>
@@ -170,11 +170,51 @@
                </tr>
                <tr>
                  <td class="td">员工类型:</td>
                  <td class="td-group" />
                  <td class="td-group">
                    <el-checkbox-group v-model="queryParams.empType" class="fj-checkbox">
                      <el-checkbox label="" @change="selectAllEmpType">全部</el-checkbox>
                      <el-checkbox
                        v-for="data in empTypeOptions"
                        :key="data.dicItemName"
                        :label="data.dicItemCode"
                      >
                        {{ data.dicItemName }}
                      </el-checkbox>
                    </el-checkbox-group>
                  </td>
                </tr>
                <tr>
                  <td class="td">入职类型:</td>
                  <td class="td-group" />
                  <td class="td-group">
                    <el-checkbox-group v-model="queryParams.entryType" class="fj-checkbox">
                      <el-checkbox label="" @change="selectAllEntryType">全部</el-checkbox>
                      <el-checkbox :label="20">新入职</el-checkbox>
                      <el-checkbox :label="21">重新入职</el-checkbox>
                      <el-checkbox :label="22">返聘入职</el-checkbox>
                      <!--                      <el-checkbox-->
                      <!--                        v-for="data in dimissionTypeOptions"-->
                      <!--                        :key="data.dicItemName"-->
                      <!--                        :label="data.dicItemCode"-->
                      <!--                      >-->
                      <!--                        {{ data.dicItemName }}-->
                      <!--                      </el-checkbox>-->
                    </el-checkbox-group>
                  </td>
                </tr>
                <tr>
                  <td class="td">相关证件:</td>
                  <td class="td-group">
                    <el-checkbox-group v-model="queryParams.certificateList" class="fj-checkbox">
                      <el-checkbox label="" @change="selectAllCertificateList">全部</el-checkbox>
                      <el-checkbox
                        v-for="data in certificateListOptions"
                        :key="data.dicItemName"
                        :label="data.dicItemCode"
                      >
                        {{ data.dicItemName }}
                      </el-checkbox>
                    </el-checkbox-group>
                  </td>
                </tr>
              </table>
            </el-col>
@@ -188,18 +228,19 @@
            <el-button type="primary" style="background-color: #409EFF" @click="delEmp">删除员工</el-button>
            <el-button type="danger" class="hr-but-all" @click="showYgdg(0)">员工调岗</el-button>
            <!-- <el-button type="danger" class="hr-but-all" @click="showDryg(0)">导入员工</el-button> -->
            <el-button type="danger" class="hr-but-all" @click="exportExcel()">导出员工</el-button>
            <el-button type="danger" class="hr-but-all" @click="doDcda">导出档案</el-button>
            <el-button type="danger" class="hr-but-all" @click="showDcyg(0)">导出EXCEL</el-button>
            <el-button type="primary" style="background-color: #409EFF" @click="showGbda(0)">关闭档案</el-button>
          </el-col>
        </el-row>
        <el-table
          ref="multipleTable"
          :data="tableData"
          :cell-style="{padding:'7px 0'}"
          :header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6'}"
          :cell-style="{padding:'7px 0','text-align':'center'}"
          :header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
          stripe
          border
          style="width: 100%;color: #000;"
          @sort-change="changeSort"
        >
          <el-table-column type="selection" width="55" />
          <el-table-column label="操作" width="130">
@@ -222,24 +263,28 @@
              >编辑</span>
            </template>
          </el-table-column>
          <el-table-column show-overflow-tooltip="true" prop="empNumb" label="编号" width="100" />
          <el-table-column show-overflow-tooltip="true" prop="deptName" label="部门(护卫点)" />
          <el-table-column show-overflow-tooltip="true" prop="jobName" label="岗位" width="100" />
          <el-table-column show-overflow-tooltip="true" prop="empName" label="姓名" width="100" />
          <el-table-column show-overflow-tooltip="true" prop="certificateNumb" label="身份证号码" />
          <el-table-column show-overflow-tooltip="true" prop="sex" label="性别" width="60" :formatter="sexFormat" />
          <el-table-column show-overflow-tooltip="true" prop="age" label="年龄" width="60" />
          <el-table-column show-overflow-tooltip="true" prop="education" label="学历" width="60" :formatter="educationFormat" />
          <el-table-column show-overflow-tooltip="true" prop="nativePlace" label="籍贯" width="70" :formatter="nativePlaceFormat" />
          <el-table-column show-overflow-tooltip="true" prop="empTypeName" label="员工类型" width="80" />
          <el-table-column show-overflow-tooltip="true" prop="telePhone" label="联系电话" />
          <el-table-column show-overflow-tooltip="true" prop="entryDate" label="入职日期" />
          <el-table-column show-overflow-tooltip="true" prop="empStatus" label="员工状态" width="80">
          <el-table-column show-overflow-tooltip prop="empNumb" label="编号" width="80" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="allDeptName" label="部门(护卫点)" width="300" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="80" />
          <el-table-column show-overflow-tooltip prop="empName" label="姓名" width="100" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="160" />
          <el-table-column show-overflow-tooltip prop="sex" label="性别" width="60" :formatter="sexFormat" />
          <el-table-column show-overflow-tooltip prop="age" label="年龄" width="80" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="education" label="学历" width="80" :formatter="educationFormat" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="nativePlace" label="籍贯" width="70" :formatter="nativePlaceFormat" />
          <el-table-column show-overflow-tooltip prop="telePhone" label="联系电话" width="110" />
          <el-table-column show-overflow-tooltip prop="empTypeName" label="员工类型" width="80" />
          <el-table-column show-overflow-tooltip prop="entryDate" label="入职日期" width="110" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="empStatus" label="员工状态" width="80">
            <template slot-scope="{row}">
              {{ transEmpStatus(row.empStatus) }}
            </template>
          </el-table-column>
          <el-table-column prop="entryTypeName" label="入职类型" width="80" />
          <el-table-column prop="entryType" label="入职类型" width="120" sortable="custom" :sort-orders="['ascending', 'descending']">
            <template slot-scope="{row}">
              {{ transEntryType(row.entryType) }}
            </template>
          </el-table-column>
        </el-table>
        <pagination
          v-show="total>0"
@@ -299,7 +344,7 @@
                  </el-select>
                </el-form-item>
                <el-form-item label="民族" prop="nation">
                  <el-select v-model="empBaseInfoForm.nation" placeholder="请选择民族">
                  <el-select v-model="empBaseInfoForm.nation" filterable placeholder="请选择民族">
                    <el-option
                      v-for="dict in nationOptions"
                      :key="dict.dicItemCode"
@@ -359,11 +404,11 @@
                <el-form-item label="招聘介绍人" prop="introducer">
                  <el-input v-model="empBaseInfoForm.introducer" />
                </el-form-item>
                <el-form-item label="银行名称" prop="bankName">
                <el-form-item label="银行名称">
                  <el-input v-model="empBaseInfoForm.bankName" />
                </el-form-item>
                <el-form-item label="保险类型" prop="insuranceType">
                  <el-select v-model="empBaseInfoForm.insuranceType" placeholder="请选择保险类型">
                <el-form-item label="社保档位" prop="insuranceType">
                  <el-select v-model="empBaseInfoForm.insuranceType" placeholder="请选择社保档位">
                    <el-option
                      v-for="dict in insuranceTypeOptions"
                      :key="dict.dicItemCode"
@@ -391,6 +436,7 @@
                    :clear-value-text="$t('common.clear')"
                    placeholder="请选择部门(护卫点)"
                    style="width:100%"
                    @select="empDeptNameSelect"
                  />
                </el-form-item>
                <el-form-item label="岗位" prop="jobName">
@@ -462,7 +508,7 @@
                    />
                  </el-select>
                </el-form-item>
                <el-form-item label="银行账号" prop="bankNumb">
                <el-form-item label="银行账号">
                  <el-input v-model="empBaseInfoForm.bankNumb" />
                </el-form-item>
                <el-form-item label="社保电脑号" prop="socialNumb">
@@ -491,7 +537,7 @@
              </el-col>
              <el-col :span="24">
                <el-form-item label="相关证件" prop="certificateList">
                  <el-select v-model="empBaseInfoForm.certificateList" placeholder="请选择相关证件">
                  <el-select v-model="empBaseInfoForm.certificateList" multiple placeholder="请选择相关证件">
                    <el-option
                      v-for="dict in certificateListOptions"
                      :key="dict.dicItemCode"
@@ -580,7 +626,7 @@
              <el-upload
                ref="upload"
                class="upload-demo"
                action="http://120.24.23.155:8301/hr/empBaseInfo/importEmp"
                action="http://127.0.0.1:8301/hr/empBaseInfo/importEmp"
                accept=".xls, .xlsx, .excel"
                :headers="headers()"
                :file-list="fileList"
@@ -603,20 +649,21 @@
          <el-col span="24">
            <el-form-item label="离职类型" prop="dimissionType">
              <el-radio-group v-model="gbdaForm.dimissionType" @change="changeDimissionType">
                <el-radio :label="1">正常离职</el-radio>
                <el-radio :label="2">自动离职</el-radio>
                <el-radio :label="3">公司劝退</el-radio>
                <el-radio :label="4">公司辞退</el-radio>
                <el-radio :label="1">合同期满</el-radio>
                <el-radio :label="2">公司劝退</el-radio>
                <el-radio :label="3">公司辞退</el-radio>
                <el-radio :label="4">自动离职</el-radio>
                <el-radio :label="5">试用期内</el-radio>
                <el-radio :label="6">正常离职</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
          <el-col v-if="selectDimissionType === 2" span="12">
          <el-col v-if="selectDimissionType === 4" span="12">
            <el-form-item label="自离天数" prop="selfLeaveDay">
              <el-input v-model="gbdaForm.selfLeaveDay" onkeyup="value=value.replace(/[^0-9.]/g,'')" />
            </el-form-item>
          </el-col>
          <el-col v-if="selectDimissionType === 2" span="12">
          <el-col v-if="selectDimissionType === 4" span="12">
            <el-form-item label="报告人" prop="reporter">
              <el-input v-model="gbdaForm.reporter" />
            </el-form-item>
@@ -649,7 +696,8 @@
        <el-button type="primary" @click="showGbda(2,'gbdaForm')">确 定</el-button>
      </div>
    </el-dialog>
    <el-dialog title="导出员工    请勾选需要导出的字段" :visible.sync="dialogShowDcyg" width="40%">
    <el-dialog title="导出员工" :visible.sync="dialogShowDcyg" width="40%">
      <div style="font-size: 16px;font-weight: 400;height: 35px;margin-top: -30px;color: #409EFF;">请勾选需要导出的字段</div>
      <table id="dcygTable" width="100%">
        <tr>
          <td colspan="6" style="text-align: left;">
@@ -675,7 +723,7 @@
          <tr>
            <td>部门(护卫点)</td>
            <td>
              <el-checkbox label="deptName"><span /></el-checkbox>
              <el-checkbox label="allDeptName"><span /></el-checkbox>
            </td>
            <td>所属岗位</td>
            <td>
@@ -771,13 +819,27 @@
            </td>
          </tr>
          <tr>
            <td>家庭成员及关系</td>
            <td>
              <el-checkbox label="family"><span /></el-checkbox>
            </td>
            <td>员工状态</td>
            <td>
              <el-checkbox label="empStatusName"><span /></el-checkbox>
            </td>
            <td>离职日期</td>
            <td>
              <el-checkbox label="dimissionDate"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>入职日期</td>
            <td>
              <el-checkbox label="entryDate"><span /></el-checkbox>
            </td>
            <td>保险类型</td>
            <td>社保档位</td>
            <td>
              <el-checkbox label="InsuranceTypeName"><span /></el-checkbox>
              <el-checkbox label="insuranceTypeName"><span /></el-checkbox>
            </td>
            <td>社保电脑号</td>
            <td>
@@ -795,13 +857,13 @@
            </td>
            <td>工作证</td>
            <td>
              <el-checkbox label="empCardStatus"><span /></el-checkbox>
              <el-checkbox label="empCardStatusName"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>相关证件</td>
            <td>
              <el-checkbox label="certificateList"><span /></el-checkbox>
              <el-checkbox label="certificateListName"><span /></el-checkbox>
            </td>
            <td>紧急联系电话</td>
            <td>
@@ -813,15 +875,29 @@
            </td>
          </tr>
          <tr>
            <td>家庭成员及关系</td>
            <td>入职类型</td>
            <td>
              <el-checkbox label="family"><span /></el-checkbox>
              <el-checkbox label="entryTypeName"><span /></el-checkbox>
            </td>
            <td />
            <td />
            <td />
            <td />
            <td>离职类型</td>
            <td>
              <el-checkbox label="dimissionTypeName"><span /></el-checkbox>
            </td>
            <td>编号</td>
            <td>
              <el-checkbox label="empNumb"><span /></el-checkbox>
            </td>
          </tr>
          <!--          <tr>-->
          <!--            <td>家庭成员及关系</td>-->
          <!--            <td>-->
          <!--              <el-checkbox label="family"><span /></el-checkbox>-->
          <!--            </td>-->
          <!--            <td />-->
          <!--            <td />-->
          <!--            <td />-->
          <!--            <td />-->
          <!--          </tr>-->
        </el-checkbox-group>
      </table>
      <div slot="footer" class="dialog-footer">
@@ -834,8 +910,45 @@
      :dialog-visible="dialog.isVisible"
      :title="dialog.title"
      :type="dialog.type"
      @success="editSuccess"
      @close="editClose"
    />
    <el-dialog title="打开档案" :visible.sync="dialogShowDkda" width="50%">
      <el-form
        ref="openArchivesForm"
        :model="openArchivesForm"
        rules="openArchivesRules"
        label-position="right"
        label-width="120px"
      >
        <el-row>
          <el-col span="24">
            <el-form-item label="打开类型" prop="region">
              <el-radio-group v-model="openArchivesForm.openType">
                <el-radio :label="20">重新入职</el-radio>
                <el-radio :label="21">返聘</el-radio>
              </el-radio-group>
              (主要对已退休员工返聘)
            </el-form-item>
            <el-form-item label="打开日期">
              <el-date-picker
                v-model="openArchivesForm.openDate"
                value-format="yyyy-MM-dd"
                type="date"
                placeholder="选择打开日期"
              />
            </el-form-item>
            <el-form-item label="备注说明">
              <el-input v-model="openArchivesForm.remark" type="textarea" :rows="4" />
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="showDkda(1, '')">取 消</el-button>
        <el-button type="primary" @click="showDkda(2, 'openArchivesForm')">确 定</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
@@ -862,6 +975,7 @@
      },
      total: 0, // 总数量
      queryParams: {
        baseKey: '',
        empNumb: '',
        vague: '',
        sex: [],
@@ -872,7 +986,10 @@
        insuranceType: [],
        empStatus: [],
        empCardStatus: [],
        handbookStatus: []
        handbookStatus: [],
        entryType: [],
        empType: [],
        certificateList: []
      }, // 查询参数
      sort: {}, // 排序
      pagination: { // 分页参数
@@ -886,9 +1003,10 @@
        empId: '',
        customerId: '',
        archivesNumb: '',
        deptId: '',
        deptId: null,
        deptName: '',
        empNumb: '',
        allDeptName: '',
        empName: '',
        sex: '1',
        JobId: '',
@@ -930,9 +1048,23 @@
        modifier: '',
        delFlag: '0',
        empStatus: 0,
        version: ''
        version: '',
        entryType: '20'
      },
      ygdgForm: {},
      ygdgForm: {
        empIds: [],
        empNames: [],
        oldDeptNames: [],
        oldJobNames: [],
        changeType: '',
        changeDate: '',
        changeReason: '',
        jobId: '',
        newJobName: '',
        deptId: '',
        newDeptName: '',
        allDeptName: ''
      },
      gbdaForm: {
        dgryIds: '',
        dimissionType: 1,
@@ -948,7 +1080,7 @@
          message: this.$t('rules.noMoreThan20'),
          trigger: 'blur'
        }],
        empName: [{ required: true, message: '请输入员工姓名', trigger: 'blur' },
        empName: [{ required: true, message: '请输入姓名', trigger: 'blur' },
          { min: 2, max: 50, message: this.$t('rules.noMoreThan50'), trigger: 'blur' }],
        empNumb: [{ required: true, message: '请输入员工编号', trigger: 'blur' },
          { min: 2, max: 20, message: this.$t('rules.noMoreThan20'), trigger: 'blur' }],
@@ -963,7 +1095,7 @@
          message: '长度不超过36个字符',
          trigger: 'blur'
        }],
        insuranceType: [{ required: true, message: '请选择保险类型', trigger: 'change' }],
        insuranceType: [{ required: true, message: '请选择社保档位', trigger: 'change' }],
        entryDate: [{ required: true, message: '请选择入职日期', trigger: 'change' }],
        seniority: [{ required: true, message: '请输入入司工龄', trigger: 'blur' }],
        archivesStatus: [{ required: true, message: '请选择档案情况', trigger: 'change' }],
@@ -1067,15 +1199,17 @@
      dialogShowYgdg: false,
      dialogShowDryg: false,
      dialogShowGbda: false,
      dialogShowDkda: false,
      exportUrl: '',
      checkAll: false,
      isIndeterminate: false,
      cityOptions: ['archivesNumb', 'deptName', 'jobName', 'empName', 'certificateNumb', 'certificateValidity', 'sexName', 'nationName', 'age', 'marriageName', 'stature', 'birthdate', 'politicsName', 'empTypeName', 'educationName', 'nativePlaceName', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatusName', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'InsuranceTypeName', 'socialNumb', 'introducer', 'seniority', 'empCardStatus', 'certificateList', 'urgencyPhone', 'handbookStatusName', 'family'],
      cityOptions: ['archivesNumb', 'allDeptName', 'jobName', 'empName', 'certificateNumb', 'certificateValidity', 'sexName', 'nationName', 'age', 'marriageName', 'stature', 'birthdate', 'politicsName', 'empTypeName', 'educationName', 'nativePlaceName', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatusName', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'insuranceTypeName', 'socialNumb', 'introducer', 'seniority', 'empCardStatusName', 'certificateListName', 'urgencyPhone', 'handbookStatusName', 'family', 'empStatusName', 'dimissionDate', 'entryTypeName', 'dimissionTypeName', 'empNumb'],
      checkedCities: [],
      tableData: [],
      selectDimissionType: 1,
      statusOptions: [],
      empTypeOptions: [],
      inTypeOptions: [],
      nationOptions: [],
      marriageOptions: [],
      educationOptions: [],
@@ -1099,7 +1233,7 @@
      dimissionTypeOptions: [],
      ageStrOptions: [],
      sexOptions: [],
      openArchivesForm: {}
      openArchivesForm: { }
    }
  },
  mounted() {
@@ -1156,7 +1290,7 @@
    this.getDicts('LEAVETYPE').then(response => {
      this.leaveTypeOptions = response.data
    })
    this.getDicts('insuranceGaers').then(response => {
    this.getDicts('INSURANCETYPE').then(response => {
      this.insuranceGaersOptions = response.data
    })
    this.getDicts('applayStatus').then(response => {
@@ -1180,9 +1314,13 @@
    this.getDicts('LZTYPE').then(response => {
      this.dimissionTypeOptions = response.data
    })
    this.initJob()
  },
  methods: {
    exportExcel() {
      this.queryParams.baseKey = this.queryParams.vague
      this.queryParams.delFlag = 0
      this.queryParams.empStatus = 0
      var params = this.queryParams
      this.$download('hr/empBaseInfo/exportEmpAll', { ...params }, `基本信息_${new Date().getTime()}.xls`).then(() => {
        this.$message({
@@ -1193,7 +1331,7 @@
    },
    editArchives(row) {
      this.$refs.article.setArchives(row)
      this.dialog.title = '档案管理'
      this.dialog.title = row.empName + '员工档案'
      this.dialog.isVisible = true
    },
    editClose() {
@@ -1211,12 +1349,22 @@
        insuranceType: [],
        empStatus: [],
        empCardStatus: [],
        handbookStatus: []
        handbookStatus: [],
        baseKey: '',
        empType: [],
        entryType: [],
        certificateList: []
      }
      this.search()
    },
    initJob() {
      this.$get('system/position/dicJob').then((r) => {
        this.restaurJob = r.data.data
      })
    },
    // 翻页方法
    search() {
      this.queryParams.baseKey = ''
      this.fetch({
        ...this.queryParams,
        ...this.sort
@@ -1238,12 +1386,7 @@
    },
    vagueSearch() {
      this.fetch({
        empNumb: this.queryParams.vague,
        empName: this.queryParams.vague,
        deptName: this.queryParams.vague,
        certificateNumb: this.queryParams.vague,
        nativePlaceName: this.queryParams.vague,
        censusAddress: this.queryParams.vague
        baseKey: this.queryParams.baseKey
      })
    },
    transEmpStatus(empStatus) {
@@ -1254,6 +1397,16 @@
          return '离职'
        case '2':
          return '退休'
      }
    },
    transEntryType(entryType) {
      switch (entryType) {
        case '20':
          return '新入职'
        case '21':
          return '重新入职'
        case '22':
          return '返聘入职'
      }
    },
    typeFormat(row, column) {
@@ -1445,18 +1598,27 @@
      this.empBaseInfoForm.deptName = row.deptName
      this.empBaseInfoForm.empNumb = row.empNumb
      this.empBaseInfoForm.empName = row.empName
      this.empBaseInfoForm.sex = row.sex
      this.empBaseInfoForm.JobId = row.JobId
      this.empBaseInfoForm.jobName = row.jobName
      this.empBaseInfoForm.empType = row.empType
      this.empBaseInfoForm.certificateType = row.certificateType
      this.empBaseInfoForm.certificateNumb = row.certificateNumb
      this.empBaseInfoForm.nation = row.nation
      this.empBaseInfoForm.certificateValidity = row.certificateValidity
      this.empBaseInfoForm.marriage = row.marriage
      this.empBaseInfoForm.age = row.age
      this.empBaseInfoForm.certificateNumb = row.certificateNumb
      if (!row.birthdate) {
        var userinfo = toCardGetUserInfo(this.empBaseInfoForm.certificateNumb)
        if (userinfo !== null) {
          this.empBaseInfoForm.age = userinfo.age
          this.empBaseInfoForm.birthdate = userinfo.birth
          this.empBaseInfoForm.sex = userinfo.sex
        }
      } else {
        this.empBaseInfoForm.age = row.age
        this.empBaseInfoForm.birthdate = row.birthdate
        this.empBaseInfoForm.sex = row.sex
      }
      this.empBaseInfoForm.stature = row.stature
      this.empBaseInfoForm.birthdate = row.birthdate
      this.empBaseInfoForm.politics = row.politics
      this.empBaseInfoForm.entryDate = row.entryDate
      this.empBaseInfoForm.education = row.education
@@ -1479,6 +1641,11 @@
      this.empBaseInfoForm.handbookStatus = row.handbookStatus
      this.empBaseInfoForm.urgencyPhone = row.urgencyPhone
      this.empBaseInfoForm.empCardStatus = row.empCardStatus
      let certificateList = []
      if (row.certificateList && typeof row.certificateList === 'string') {
        certificateList = row.certificateList.split(',')
        row.certificateList = certificateList
      }
      this.empBaseInfoForm.certificateList = row.certificateList
      this.empBaseInfoForm.createTime = row.createTime
      this.empBaseInfoForm.creator = row.creator
@@ -1486,58 +1653,14 @@
      this.empBaseInfoForm.modifier = row.modifier
      this.empBaseInfoForm.delFlag = row.delFlag
      this.empBaseInfoForm.version = row.version
      this.empBaseInfoImageUrl = pages.getEmpBaseInfoImage + row.empId
      // this.empBaseInfoImageUrl = ''
      this.empBaseInfoImageUrl = pages.getEmpBaseInfoImage + row.empId + '?t=' + parseInt(100 * Math.random())
      this.showXzyg(1)
    },
    putEmpBase(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          this.submitEmpInfo()
          // if (this.isAdd) {
          //   this.$post('hr/empBaseInfo/addInEmp', { ...this.empBaseInfoForm }).then((r) => {
          //     if (r.data != null) {
          //       if (r.data.data.empStatus === '0') {
          //         this.$confirm('该员工已存在,是否修改?', '提示', {
          //           confirmButtonText: '确定',
          //           cancelButtonText: '取消',
          //           type: 'warning'
          //         }).then(() => {
          //           this.editEmpBase(r.data.data)
          //         })
          //       } else {
          //         this.$confirm('该员工已离职,是否重新打开档案?', '提示', {
          //           confirmButtonText: '确定',
          //           cancelButtonText: '取消',
          //           type: 'warning'
          //         }).then(() => {
          //           this.openArchivesForm = {
          //             empId: r.data.data.empId,
          //             empName: r.data.data.empName,
          //             certificateNumb: r.data.data.certificateNumb,
          //             openType: 2,
          //             openDate: this.getDateString(),
          //             remark: ''
          //           }
          //           this.$post('hr/empOpenArchives', { ...this.openArchivesForm }).then(() => {
          //             this.$message({
          //               message: this.$t('员工档案打开成功'),
          //               type: 'success'
          //             })
          //           })
          //         })
          //       }
          //     }
          //   })
          // } else {
          //   this.$put('hr/empBaseInfo', { ...this.empBaseInfoForm }).then(() => {
          //     this.$message({
          //       message: this.$t('tips.updateSuccess'),
          //       type: 'success'
          //     })
          //     this.$emit('success')
          //     this.cleanEmpBase()
          //   })
          // }
          this.fetch({
            ...this.queryParams,
            ...this.sort
@@ -1626,6 +1749,7 @@
          break
        case 2:
          var params = this.queryParams
          params.empStatus = '0'
          params.exportField = this.checkedCities.join(',')
          this.$download('hr/empBaseInfo/exportWithField', { ...params }, '在职员工列表.xls').then(() => {
            this.$message({
@@ -1635,6 +1759,9 @@
          })
          break
      }
    },
    editSuccess() {
      this.search()
    },
    showYgdg(operate, formName) {
      switch (operate) {
@@ -1654,7 +1781,7 @@
              var data = selection[i]
              ids.push(data.empId)
              names.push(data.empName)
              deptNames.push(data.deptName)
              deptNames.push(data.allDeptName)
              jobNames.push(data.jobName)
            }
            this.ygdgForm = {
@@ -1704,7 +1831,9 @@
      this.empBaseInfoForm.nativePlace = item.code
    },
    deptNameSelect(node) {
      this.ygdgForm.deptId = node.deptId
      this.ygdgForm.newDeptName = node.label
      this.ygdgForm.allDeptName = node.allDeptName
    },
    querySearchJob(queryString, cb) {
      const restaurants = this.restaurJob
@@ -1718,6 +1847,10 @@
      this.ygdgForm.newJobName = item.value
      this.ygdgForm.jobId = item.code
    }, empDeptNameSelect(val) {
      this.empBaseInfoForm.deptId = val.id
      this.empBaseInfoForm.deptName = val.label
      this.empBaseInfoForm.allDeptName = val.allDeptName
    },
    generateUserInfo(index, val) {
      var userinfo = toCardGetUserInfo(val)
@@ -1743,7 +1876,6 @@
    },
    changeDimissionType(value) {
      this.selectDimissionType = value
      console.log('值:' + value)
    },
    validSelfLeaveDay(rule, value, callback) {
      const type = this.gbdaForm.dimissionType
@@ -1834,14 +1966,21 @@
      }
    },
    doDcda() {
      this.$confirm('是否确定要导出档案?', '提示', {
      this.$confirm('是否确定要导出档案,请耐心等待?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.$message({
          type: 'success',
          message: '导出成功!'
        var params = this.queryParams
        this.$post('hr/pdf/exportWithField', {
          ...params
        }).then((r) => {
          const data = r.data.data
          for (let i = 0; i < data.length; i++) {
            this.$download('hr/pdf/contract', {
              empNumb: data[i].empNumb
            }, `${data[i].empName}.pdf`)
          }
        })
      }).catch(() => {
        this.$message({
@@ -1850,67 +1989,90 @@
        })
      })
    },
    // dic列表转为数组
    dicListToArr(dicList) {
      var arr = []
      for (var i = 0; i < dicList.length; i++) {
        var dic = dicList[i]
        arr.push(dic.dicItemCode)
      }
      return arr
    },
    selectAllSex(val) {
      if (val) {
        this.queryParams.sex = ['1', '2']
        this.queryParams.sex = this.dicListToArr(this.sexOptions)
      } else {
        this.queryParams.sex = []
      }
    },
    selectAllEducation(val) {
      if (val) {
        this.queryParams.education = ['91', '81', '71', '61', '42', '41', '31', '21', '11', '10']
        this.queryParams.education = this.dicListToArr(this.educationOptions)
      } else {
        this.queryParams.education = []
      }
    },
    selectAllPolitics(val) {
      if (val) {
        this.queryParams.politics = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13']
        this.queryParams.politics = this.dicListToArr(this.statusOptions)
      } else {
        this.queryParams.politics = []
      }
    },
    selectAllAgeStr(val) {
      if (val) {
        this.queryParams.ageStr = ['18-29', '30-39', '40-49', '50-59', '60-69', '69-999']
        this.queryParams.ageStr = this.dicListToArr(this.ageStrOptions)
      } else {
        this.queryParams.ageStr = []
      }
    },
    selectAllArchivesStatus(val) {
      if (val) {
        this.queryParams.archivesStatus = ['0', '1']
        this.queryParams.archivesStatus = this.dicListToArr(this.archivesStatusOptions)
      } else {
        this.queryParams.archivesStatus = []
      }
    },
    selectAllInsuranceType(val) {
      if (val) {
        this.queryParams.insuranceType = ['1', '2', '3', '4', '5']
        this.queryParams.insuranceType = this.dicListToArr(this.insuranceTypeOptions)
      } else {
        this.queryParams.insuranceType = []
      }
    },
    selectAllEmpStatus(val) {
      if (val) {
        this.queryParams.empStatus = ['0', '1', '2', '3']
      } else {
        this.queryParams.empStatus = []
      }
    },
    selectAllEmpCardStatus(val) {
      if (val) {
        this.queryParams.empCardStatus = ['0', '1']
        this.queryParams.empCardStatus = this.dicListToArr(this.empCardStatusOptions)
      } else {
        this.queryParams.empCardStatus = []
      }
    },
    selectAllHandbookStatus(val) {
      if (val) {
        this.queryParams.handbookStatus = ['0', '1']
        this.queryParams.handbookStatus = this.dicListToArr(this.handbookStatusOptions)
      } else {
        this.queryParams.handbookStatus = []
      }
    },
    selectAllEmpType(val) {
      if (val) {
        this.queryParams.empType = this.dicListToArr(this.empTypeOptions)
      } else {
        this.queryParams.empType = []
      }
    },
    selectAllEntryType(val) {
      if (val) {
        this.queryParams.entryType = [20, 21, 22]
      } else {
        this.queryParams.entryType = []
      }
    },
    selectAllCertificateList(val) {
      if (val) {
        this.queryParams.certificateList = this.dicListToArr(this.certificateListOptions)
      } else {
        this.queryParams.certificateList = []
      }
    },
    headers() {
@@ -1939,7 +2101,31 @@
                this.editEmpBase(r.data.data)
              })
            } else {
              this.$confirm('该员工已离职,是否重新打开档案?', '提示', {
              let tempName
              switch (r.data.data.dimissionType) {
                case '1':
                  tempName = '合同期满'
                  break
                case '2':
                  tempName = '公司劝退'
                  break
                case '3':
                  tempName = '公司辞退'
                  break
                case '4':
                  tempName = '自动离职'
                  break
                case '5':
                  tempName = '试用期内'
                  break
                case '6':
                  tempName = '正常离职'
                  break
              }
              var msg = '该员工已存在,' + tempName + '状态!\n\r'
              msg += r.data.data.remark + '\n\r'
              msg += '由于' + r.data.data.empName + '已离职,是否重新打开档案?'
              this.$confirm(msg, '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
@@ -1948,16 +2134,17 @@
                  empId: r.data.data.empId,
                  empName: r.data.data.empName,
                  certificateNumb: r.data.data.certificateNumb,
                  openType: 2,
                  openType: 20,
                  openDate: this.getDateString(),
                  remark: ''
                }
                this.$post('hr/empOpenArchives', { ...this.openArchivesForm }).then(() => {
                  this.$message({
                    message: this.$t('员工档案打开成功'),
                    type: 'success'
                  })
                })
                this.dialogShowDkda = true
                // this.$post('hr/empOpenArchives', { ...this.openArchivesForm }).then(() => {
                //   this.$message({
                //     message: this.$t('员工档案打开成功'),
                //     type: 'success'
                //   })
                // })
              })
            }
          }
@@ -1971,6 +2158,61 @@
          this.$emit('success')
          this.cleanEmpBase()
        })
      }
    },
    changeSort(val) {
      this.sort.field = val.prop
      this.sort.order = val.order
      this.search()
    },
    showDkda(operate, formName) {
      switch (operate) {
        // case 0:
        //   var selection = this.$refs.multipleTable.store.states.selection
        //   if (selection.length === 1) {
        //     var id = selection[0].empId
        //     var name = selection[0].empName
        //     var number = selection[0].certificateNumb
        //     const nowDate = new Date()
        //     const year = nowDate.getFullYear()
        //     const month = nowDate.getMonth() + 1
        //     const day = nowDate.getDate()
        //     this.baseicInformationForm = {
        //       empId: id,
        //       empName: name,
        //       certificateNumb: number,
        //       openType: 2,
        //       openDate: year + '-' + month + '-' + day,
        //       remark: ''
        //     }
        //     this.dialogShowDkda = true
        //   } else {
        //     this.$message({
        //       message: '请选中一个要打开档案的人员',
        //       type: 'error'
        //     })
        //   }
        //   break
        case 1:
          this.dialogShowDkda = false
          break
        case 2:
          this.$refs[formName].validate((valid) => {
            if (valid) {
              this.$post('hr/empOpenArchives', { ...this.openArchivesForm }).then(() => {
                this.dialogShowDkda = false
                this.$message({
                  message: this.$t('员工档案打开成功'),
                  type: 'success'
                })
                this.fetch({
                  ...this.queryParams,
                  ...this.sort
                })
              })
            }
          })
          break
      }
    }
  }
@@ -2112,9 +2354,10 @@
#dcygTable td {
  width: 160px;
  text-align: center;
  height: 36px;
  line-height: 36px;
  height: 35px;
  line-height: 35px;
  font-size: 15px;
  font-weight: 400;
}
.search-btn {