luoyb
2021-04-23 3e17cbacf0deb6d55988b531b584c4a81b50c6f9
src/views/user/outemployess.vue
@@ -1,20 +1,20 @@
<template>
  <div>
  <div style="background-color: #fff;height: 100%;">
    <el-container>
      <el-header :height="headerHeight">
        <el-row>
          <el-col :span="16">
          <el-col :span="15">
            <h3 class="bu-tian-jia-title">离职员工</h3>
          </el-col>
          <el-col :span="8" style="margin-top: 15px;">
            <el-input v-model="queryParams.vague" placeholder="请输入内容" style="width:200px" />
            <el-button type="primary" @click="vagueSearch">查询</el-button>
            <el-button type="danger" @click="advancedQueryShowMethods">高级查询</el-button>
          <el-col :span="9" style="margin-top: 15px;">
            <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>
        </el-row>
        <div v-show="advancedQueryShow">
          <el-row style="margin-bottom: 10px;">
            <el-col :span="3">员工编号:
          <el-row style="margin: 10px 0;">
            <el-col :span="3">编号:
              <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" />
            </el-col>
            <el-col :span="3">姓名:
@@ -23,39 +23,39 @@
            <el-col :span="4">身份证号:
              <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" />
            </el-col>
            <el-col :span="3">护卫点:
            <el-col :span="4">部门(护卫点):
              <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" />
            </el-col>
            <el-col :span="8">入职日期:
            <el-col :span="7">入职日期:
              <el-date-picker
                v-model="queryParams.entryDateStr"
                size="small"
                type="daterange"
                align="right"
                unlink-panels
                range-separator="至"
                range-separator="~"
                value-format="yyyy-MM-dd"
                start-placeholder="开始日期"
                end-placeholder="结束日期"
                :picker-options="pickerOptions"
                style="width: 400px;"
                style="width: 300px;"
              />
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">离职日期:
            <el-col :span="7">离职日期:
              <el-date-picker
                v-model="queryParams.dimissionDateStr"
                size="small"
                type="daterange"
                align="right"
                unlink-panels
                range-separator="至"
                range-separator="~"
                value-format="yyyy-MM-dd"
                start-placeholder="开始日期"
                end-placeholder="结束日期"
                :picker-options="pickerOptions"
                style="width: 400px;"
                style="width: 300px;"
              />
            </el-col>
            <el-col :span="3">
@@ -72,26 +72,28 @@
                    <td class="td-group">
                      <el-checkbox-group v-model="queryParams.sex" class="fj-checkbox">
                        <el-checkbox label="" @change="selectAllSex">全部</el-checkbox>
                        <el-checkbox label="1">男性</el-checkbox>
                        <el-checkbox label="2">女性</el-checkbox>
                        <el-checkbox
                          v-for="data in sexOptions"
                          :key="data.dicItemName"
                          :label="data.dicItemCode"
                        >
                          {{ data.dicItemName }}
                        </el-checkbox>
                      </el-checkbox-group>
                    </td>
                  </tr>
                  <tr>
                    <td class="td">最高学历:</td>
                    <td class="td">学历:</td>
                    <td class="td-group">
                      <el-checkbox-group v-model="queryParams.education" class="fj-checkbox">
                        <el-checkbox label="" @change="selectAllEducation">全部</el-checkbox>
                        <el-checkbox label="91">无学历</el-checkbox>
                        <el-checkbox label="81">小学</el-checkbox>
                        <el-checkbox label="71">初中</el-checkbox>
                        <el-checkbox label="61">高中</el-checkbox>
                        <el-checkbox label="42">中技</el-checkbox>
                        <el-checkbox label="41">中专</el-checkbox>
                        <el-checkbox label="31">大学专科</el-checkbox>
                        <el-checkbox label="21">大学本科</el-checkbox>
                        <el-checkbox label="11">硕士</el-checkbox>
                        <el-checkbox label="10">博士</el-checkbox>
                        <el-checkbox
                          v-for="data in educationOptions"
                          :key="data.dicItemName"
                          :label="data.dicItemCode"
                        >
                          {{ data.dicItemName }}
                        </el-checkbox>
                      </el-checkbox-group>
                    </td>
                  </tr>
@@ -100,19 +102,13 @@
                    <td class="td-group">
                      <el-checkbox-group v-model="queryParams.politics" class="fj-checkbox">
                        <el-checkbox label="" @change="selectAllPolitics">全部</el-checkbox>
                        <el-checkbox label="01">党员</el-checkbox>
                        <el-checkbox label="02">预备</el-checkbox>
                        <el-checkbox label="03">共青</el-checkbox>
                        <el-checkbox label="04">民革</el-checkbox>
                        <el-checkbox label="05">民盟</el-checkbox>
                        <el-checkbox label="06">民建</el-checkbox>
                        <el-checkbox label="07">民进</el-checkbox>
                        <el-checkbox label="08">农工</el-checkbox>
                        <el-checkbox label="09">致公</el-checkbox>
                        <el-checkbox label="10">九三</el-checkbox>
                        <el-checkbox label="11">台盟</el-checkbox>
                        <el-checkbox label="12">民主</el-checkbox>
                        <el-checkbox label="13">群众</el-checkbox>
                        <el-checkbox
                          v-for="data in statusOptions"
                          :key="data.dicItemName"
                          :label="data.dicItemCode"
                        >
                          {{ data.dicItemName }}
                        </el-checkbox>
                      </el-checkbox-group>
                    </td>
                  </tr>
@@ -121,12 +117,13 @@
                    <td class="td-group">
                      <el-checkbox-group v-model="queryParams.ageStr" class="fj-checkbox">
                        <el-checkbox label="" @change="selectAllAgeStr">全部</el-checkbox>
                        <el-checkbox label="18-29">18-29</el-checkbox>
                        <el-checkbox label="30-39">30-39</el-checkbox>
                        <el-checkbox label="40-49">40-49</el-checkbox>
                        <el-checkbox label="50-59">50-59</el-checkbox>
                        <el-checkbox label="60-69">60-69</el-checkbox>
                        <el-checkbox label="69-999">69及以上</el-checkbox>
                        <el-checkbox
                          v-for="data in ageStrOptions"
                          :key="data.dicItemName"
                          :label="data.dicItemCode"
                        >
                          {{ data.dicItemName }}
                        </el-checkbox>
                      </el-checkbox-group>
                    </td>
                  </tr>
@@ -135,21 +132,79 @@
                    <td class="td-group">
                      <el-checkbox-group v-model="queryParams.archivesStatus" class="fj-checkbox">
                        <el-checkbox label="" @change="selectAllArchivesStatus">全部</el-checkbox>
                        <el-checkbox label="0">已移交</el-checkbox>
                        <el-checkbox label="1">未移交</el-checkbox>
                        <el-checkbox
                          v-for="data in archivesStatusOptions"
                          :key="data.dicItemName"
                          :label="data.dicItemCode"
                        >
                          {{ data.dicItemName }}
                        </el-checkbox>
                      </el-checkbox-group>
                    </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>
                        <el-checkbox label="1">深户(五险一档)</el-checkbox>
                        <el-checkbox label="2">非深户(五险一档)</el-checkbox>
                        <el-checkbox label="3">非深户(五险二档)</el-checkbox>
                        <el-checkbox label="4">非深户(五险三档)</el-checkbox>
                        <el-checkbox label="5">非深户(四险三档)</el-checkbox>
                        <el-checkbox
                          v-for="data in insuranceTypeOptions"
                          :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.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">
                      <el-checkbox-group v-model="queryParams.dimissionType" class="fj-checkbox">
                        <el-checkbox label="" @change="selectAllDimissionType">全部</el-checkbox>
                        <el-checkbox :label="6">正常离职</el-checkbox>
                        <el-checkbox :label="4">自动离职</el-checkbox>
                        <el-checkbox :label="2">公司劝退</el-checkbox>
                        <el-checkbox :label="1">合同期满</el-checkbox>
                        <el-checkbox :label="3">公司辞退</el-checkbox>
                        <el-checkbox :label="5">试用期内</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>
@@ -170,47 +225,90 @@
          </form>
        </div>
      </el-header>
      <el-main style="height: 85%;">
      <el-main style="height: 85vh;">
        <el-row style="margin: 10px 0 10px 0;">
          <el-col :span="24">
            <el-button type="primary" @click="delEmp">删除员工</el-button>
            <el-button type="danger" @click="showDkda(0)">打开档案</el-button>
            <el-button type="danger">离职证明</el-button>
            <el-button type="danger" @click="doDcbb">导出报表</el-button>
            <el-button type="danger" class="hr-but-all" @click="showDkda(0)">打开档案</el-button>
            <el-button type="danger" class="hr-but-all" @click.native="showDcyg(0)">导出EXCEL
            </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-col>
        </el-row>
        <el-table ref="multipleTable" :data="tableData" style="width: 100%;">
        <el-table
          ref="multipleTable"
          :data="tableData"
          stripe
          border
          :header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
          :cell-style="{padding:'7px 0','text-align':'center'}"
          style="width: 100%;color: #000;"
          @sort-change="changeSort"
        >
          <el-table-column type="selection" width="55" />
          <el-table-column label="操作" width="100">
          <el-table-column label="操作" width="70">
            <template slot-scope="scope">
              <el-button type="text" size="small" @click="editEmpBase(scope.row)">编辑
              </el-button>
              <!--              <el-button-->
              <!--                type="text"-->
              <!--                size="small"-->
              <!--                @click="editArchives(scope.row)"-->
              <!--              >-->
              <!--                档案</el-button>-->
              <!--              <el-button type="text" size="small" @click="editEmpBase(scope.row)">编辑-->
              <!--              </el-button>-->
              <span
                style="color: #a00515;display: inline-block;width: 90%;cursor: pointer"
                @click="editArchives(scope.row)"
              >档案</span>
              <!-- <span
                style="color: #a00515;display: inline-block;width: 50%;cursor: pointer"
                @click="editEmpBase(scope.row)"
              >编辑</span> -->
            </template>
          </el-table-column>
          <el-table-column prop="empNumb" label="员工编号" width="100" />
          <el-table-column prop="deptName" label="护卫点" width="100" />
          <el-table-column prop="jobName" label="岗位" width="100" />
          <el-table-column prop="empName" label="姓名" width="100" />
          <el-table-column prop="certificateNumb" label="身份证号码" width="180" />
          <el-table-column prop="sexName" label="性别" width="50" />
          <el-table-column prop="age" label="年龄" />
          <el-table-column prop="educationName" label="最高学历" width="100" />
          <el-table-column prop="censusAddress" label="籍贯" />
          <el-table-column prop="telePhone" label="联系电话" />
          <el-table-column prop="entryDate" label="入职日期" width="100" />
          <el-table-column prop="empStatus" label="员工状态">
          <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="280" 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="80" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="160" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="sex" label="性别" width="50" :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="60"
            :formatter="educationFormat"
            ortable="custom"
            :sort-orders="['ascending', 'descending']"
          />
          <el-table-column show-overflow-tooltip prop="nativePlaceName" label="籍贯" width="70" />
          <el-table-column show-overflow-tooltip prop="telePhone" label="联系电话" width="110" />
          <el-table-column
            show-overflow-tooltip
            prop="empType"
            label="员工类型"
            width="80"
            :formatter="empTypeFormat"
          />
          <el-table-column show-overflow-tooltip prop="entryDate" label="入职日期" width="110" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="dimissionDate" 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="dimissionType" label="离职类型">
          <el-table-column prop="dimissionType" label="离职类型" width="120" sortable="custom" :sort-orders="['ascending', 'descending']">
            <template slot-scope="{row}">
              {{ transDimissionType(row.dimissionType) }}
              {{ transEntryType(row.dimissionType) }}
            </template>
          </el-table-column>
        </el-table>
        <pagination
          v-show="total>0"
          style="text-align: right;width: 98%;"
          :total="total"
          :page.sync="pagination.num"
          :limit.sync="pagination.size"
@@ -224,7 +322,7 @@
        <el-container>
          <el-aside width="200px">
            <el-card class="info-card" shadow="always" @click.native="isShow(showArr[0],0)">
              员工编号
              编号
            </el-card>
            <el-card class="info-card" shadow="always" @click.native="isShow(showArr[0],0)">
              100452312
@@ -303,7 +401,7 @@
                <td>群众</td>
                <td>出生日期</td>
                <td>1974-02-22</td>
                <td>最高学历</td>
                <td>学历</td>
                <td>高中</td>
              </tr>
              <tr>
@@ -333,7 +431,7 @@
              <tr>
                <td>入职日期</td>
                <td>2020-01-02</td>
                <td>保险类型</td>
                <td>社保档位</td>
                <td>深户(五险一档)</td>
                <td>社保电脑号</td>
                <td />
@@ -897,13 +995,19 @@
    </el-dialog>
    <el-dialog title="打开档案" :visible.sync="dialogShowDkda" width="50%">
      <el-form :model="baseicInformationForm" label-position="right" label-width="120px">
      <el-form
        ref="baseicInformationForm"
        :model="baseicInformationForm"
        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="baseicInformationForm.openType">
                <el-radio :label="1">重新入职</el-radio>
                <el-radio :label="2">返聘</el-radio>
                <el-radio :label="21">重新入职</el-radio>
                <el-radio :label="22">返聘</el-radio>
              </el-radio-group>
              (主要对已退休员工返聘)
            </el-form-item>
@@ -922,28 +1026,243 @@
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="showDkda(1)">取 消</el-button>
        <el-button type="primary" @click="showDkda(2)">确 定</el-button>
        <el-button @click="showDkda(1, '')">取 消</el-button>
        <el-button type="primary" @click="showDkda(2, 'baseicInformationForm')">确 定</el-button>
      </div>
    </el-dialog>
    <el-dialog title="选择员工" :visible.sync="dialogShowXzyg">
      <Selectuser @selectedUser="selectedUser" @cancleChooseUser="cancleChooseUser" />
    </el-dialog>
    <el-dialog title="选择员工" :visible.sync="dialogShowXzbm">
    <el-dialog title="选择部门" :visible.sync="dialogShowXzbm">
      <Selectdept @selectedDept="selectedDept" @cancleChooseDept="cancleChooseDept" />
    </el-dialog>
    <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;">
            <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange" />
            全部字段
          </td>
        </tr>
        <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
          <tr>
            <td>档案号</td>
            <td>
              <el-checkbox label="archivesNumb"><span /></el-checkbox>
            </td>
            <td>姓名</td>
            <td>
              <el-checkbox label="empName"><span /></el-checkbox>
            </td>
            <td>性别</td>
            <td>
              <el-checkbox label="sexName"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>部门(护卫点)</td>
            <td>
              <el-checkbox label="allDeptName"><span /></el-checkbox>
            </td>
            <td>所属岗位</td>
            <td>
              <el-checkbox label="jobName"><span /></el-checkbox>
            </td>
            <td>员工类别</td>
            <td>
              <el-checkbox label="empTypeName"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>民族</td>
            <td>
              <el-checkbox label="nationName"><span /></el-checkbox>
            </td>
            <td>身份证号码</td>
            <td>
              <el-checkbox label="certificateNumb"><span /></el-checkbox>
            </td>
            <td>年龄</td>
            <td>
              <el-checkbox label="age"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>婚姻状况</td>
            <td>
              <el-checkbox label="marriageName"><span /></el-checkbox>
            </td>
            <td>身份证有效期</td>
            <td>
              <el-checkbox label="certificateValidity"><span /></el-checkbox>
            </td>
            <td>身高</td>
            <td>
              <el-checkbox label="stature"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>政治面貌</td>
            <td>
              <el-checkbox label="politicsName"><span /></el-checkbox>
            </td>
            <td>出生日期</td>
            <td>
              <el-checkbox label="birthdate"><span /></el-checkbox>
            </td>
            <td>最高学历</td>
            <td>
              <el-checkbox label="educationName"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>籍贯</td>
            <td>
              <el-checkbox label="nativePlaceName"><span /></el-checkbox>
            </td>
            <td>户籍地址</td>
            <td>
              <el-checkbox label="censusAddress"><span /></el-checkbox>
            </td>
            <td>现住址</td>
            <td>
              <el-checkbox label="currentAddress"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>保安员证号</td>
            <td>
              <el-checkbox label="guardNumb"><span /></el-checkbox>
            </td>
            <td>保安员回执</td>
            <td>
              <el-checkbox label="returnReceipt"><span /></el-checkbox>
            </td>
            <td>档案情况</td>
            <td>
              <el-checkbox label="archivesStatusName"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>银行名称</td>
            <td>
              <el-checkbox label="bankName"><span /></el-checkbox>
            </td>
            <td>银行账号</td>
            <td>
              <el-checkbox label="bankNumb"><span /></el-checkbox>
            </td>
            <td>电话号码</td>
            <td>
              <el-checkbox label="telePhone"><span /></el-checkbox>
            </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>
              <el-checkbox label="insuranceTypeName"><span /></el-checkbox>
            </td>
            <td>社保电脑号</td>
            <td>
              <el-checkbox label="socialNumb"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>招聘介绍人</td>
            <td>
              <el-checkbox label="introducer"><span /></el-checkbox>
            </td>
            <td>入司工龄</td>
            <td>
              <el-checkbox label="seniority"><span /></el-checkbox>
            </td>
            <td>工作证</td>
            <td>
              <el-checkbox label="empCardStatusName"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>相关证件</td>
            <td>
              <el-checkbox label="certificateListName"><span /></el-checkbox>
            </td>
            <td>紧急联系电话</td>
            <td>
              <el-checkbox label="urgencyPhone"><span /></el-checkbox>
            </td>
            <td>员工手册</td>
            <td>
              <el-checkbox label="handbookStatusName"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>入职类型</td>
            <td>
              <el-checkbox label="entryTypeName"><span /></el-checkbox>
            </td>
            <td>离职类型</td>
            <td>
              <el-checkbox label="dimissionTypeName"><span /></el-checkbox>
            </td>
            <td>编号</td>
            <td>
              <el-checkbox label="empNumb"><span /></el-checkbox>
            </td>
          </tr>
        </el-checkbox-group>
      </table>
      <div slot="footer" class="dialog-footer">
        <el-button @click="showDcyg(1)">取 消</el-button>
        <el-button type="primary" @click="showDcyg(2)">确 定</el-button>
      </div>
    </el-dialog>
    <archives-change
      ref="article"
      :dialog-visible="dialog.isVisible"
      :title="dialog.title"
      :type="dialog.type"
      @close="editClose"
    />
  </div>
</template>
<script>
import Pagination from '@/components/Pagination'
import ArchivesChange from './archivesChange'
export default {
  components: {
    ArchivesChange,
    Pagination
  },
  data() {
    return {
      dialog: {
        isVisible: false,
        title: '',
        type: ''
      },
      total: 0, // 总数量
      queryParams: {
        baseKey: '',
        empNumb: '',
        vague: '',
        sex: [],
@@ -952,11 +1271,14 @@
        ageStr: [],
        archivesStatus: [],
        insuranceType: [],
        empStatus: []
        empStatus: [],
        dimissionType: [],
        empType: [],
        certificateList: []
      }, // 查询参数
      sort: {}, // 排序
      pagination: { // 分页参数
        size: 10,
        size: 15,
        num: 1
      },
      headerHeight: '30px',
@@ -965,19 +1287,100 @@
      dialogShowDkda: false,
      dialogShowXzyg: false,
      dialogShowXzbm: false,
      dialogShowDcyg: false,
      openArchivesRules: {
        openType: [{ required: true, message: '请选择打开类型', trigger: 'change' }],
        openDate: [{ required: true, message: '请选择打开日期', trigger: 'change' }],
        remark: [{ max: 500, message: '长度不超过500个字符', trigger: 'blur' }]
      },
      tableData: [],
      baseicInformationForm: {
        openDate: new Date()
      }
      },
      educationOptions: [],
      statusOptions: [],
      ageStrOptions: [],
      insuranceTypeOptions: [],
      archivesStatusOptions: [],
      sexOptions: [],
      empTypeOptions: [],
      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: []
    }
  },
  mounted() {
    this.fetch()
    this.getDicts('INSURANCETYPE').then(response => {
      this.insuranceTypeOptions = response.data
    })
    this.getDicts('archivesStatus').then(response => {
      this.archivesStatusOptions = response.data
    })
    this.getDicts('EDUCATION').then(response => {
      this.educationOptions = response.data
    })
    this.getDicts('sex').then(response => {
      this.sexOptions = response.data
    })
    this.getDicts('PLITICAL').then(response => {
      this.statusOptions = response.data
    })
    this.getDicts('ageStr').then(response => {
      this.ageStrOptions = response.data
    })
    this.getDicts('EMPTYPE').then(response => {
      this.empTypeOptions = response.data
    })
    this.getDicts('certificateList').then(response => {
      this.certificateListOptions = response.data
    })
  },
  methods: {
    exportExcel() {
      this.queryParams.baseKey = this.queryParams.vague
      var params = this.queryParams
      params.empStatus = '1,2,3'
      this.$download('hr/empBaseInfo/exportEmpAll', { ...params }, `基本信息_${new Date().getTime()}.xls`).then(() => {
        this.$message({
          message: '下载成功!',
          type: 'success'
        })
      })
    },
    doDcda() {
      this.$confirm('是否确定要导出档案?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.$message({
          type: 'success',
          message: '导出成功!'
        })
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消'
        })
      })
    },
    educationFormat(row, column) {
      return this.selectDictLabel(this.educationOptions, row.education)
    },
    sexFormat(row, column) {
      return this.selectDictLabel(this.sexOptions, row.sex)
    },
    empTypeFormat(row, column) {
      return this.selectDictLabel(this.empTypeOptions, row.empType)
    },
    editClose() {
      this.dialog.isVisible = false
    },
    resetSearch() {
      this.queryParams = {
        empNumb: '',
        empName: '',
        deptName: '',
        vague: '',
        sex: [],
        education: [],
@@ -985,14 +1388,19 @@
        ageStr: [],
        archivesStatus: [],
        insuranceType: [],
        empStatus: []
        certificateNumb: '',
        nativePlaceName: '',
        censusAddress: '',
        empStatus: [],
        baseKey: '',
        empType: [],
        dimissionType: []
      }
      this.search()
    },
    // 翻页方法
    search() {
      this.queryParams.empName = this.queryParams.empNumb
      this.queryParams.deptName = this.queryParams.empNumb
      this.queryParams.baseKey = ''
      this.fetch({
        ...this.queryParams,
        ...this.sort
@@ -1014,9 +1422,7 @@
    },
    vagueSearch() {
      this.fetch({
        empNumb: this.queryParams.vague,
        empName: this.queryParams.vague,
        deptName: this.queryParams.vague
        baseKey: this.queryParams.baseKey
      })
    },
    transEmpStatus(empStatus) {
@@ -1029,6 +1435,22 @@
          return '退休'
      }
    },
    transEntryType(entryType) {
      switch (entryType) {
        case '1':
          return '合同期满'
        case '2':
          return '公司劝退'
        case '3':
          return '公司辞退'
        case '4':
          return '自动离职'
        case '5':
          return '试用期内'
        case '6':
          return '正常离职'
      }
    },
    transDimissionType(dimissionType) {
      switch (dimissionType) {
        case '1':
@@ -1036,11 +1458,11 @@
        case '2':
          return '自动离职'
        case '3':
          return '公司劝退'
        case '4':
          return '公司辞退'
        case '5':
          return '试用期内'
        // case '4':
        //   return '公司辞退'
        // case '5':
        //   return '试用期内'
      }
    },
    advancedQueryShowMethods() {
@@ -1048,9 +1470,14 @@
        this.headerHeight = '30px'
        this.advancedQueryShow = false
      } else {
        this.headerHeight = '400px'
        this.headerHeight = 'auto'
        this.advancedQueryShow = true
      }
    },
    editArchives(row) {
      this.$refs.article.setArchives(row)
      this.dialog.title = row.empName + '员工档案'
      this.dialog.isVisible = true
    },
    delEmp() {
      var selection = this.$refs.multipleTable.store.states.selection
@@ -1083,21 +1510,52 @@
    showEmpInfo() {
      this.dialogTableVisible = true
    },
    showDkda(operate) {
    showDkda(operate, formName) {
      switch (operate) {
        case 0:
          this.dialogShowDkda = true
          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: 5,
              openDate: year + '-' + month + '-' + day,
              remark: ''
            }
            this.dialogShowDkda = true
          } else {
            this.$message({
              message: '请选中一个要打开档案的人员',
              type: 'error'
            })
          }
          break
        case 1:
          this.dialogShowDkda = false
          break
        case 2:
          this.$post('hr/empBaseInfo', { ...this.baseicInformationForm }).then(() => {
            this.dialogShowDkda = false
            this.$message({
              message: this.$t('tips.createSuccess'),
              type: 'success'
            })
          this.$refs[formName].validate((valid) => {
            if (valid) {
              this.$post('hr/empOpenArchives', { ...this.baseicInformationForm }).then(() => {
                this.dialogShowDkda = false
                this.$message({
                  message: this.$t('员工档案打开成功'),
                  type: 'success'
                })
                this.fetch({
                  ...this.queryParams,
                  ...this.sort
                })
              })
            }
          })
          break
      }
@@ -1132,159 +1590,262 @@
      alert('已选择部门' + names)
      console.log(users)
    },
    // 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) {
    selectAllEmpType(val) {
      if (val) {
        this.queryParams.empStatus = ['0', '1', '2', '3']
        this.queryParams.empType = this.dicListToArr(this.empTypeOptions)
      } else {
        this.queryParams.empStatus = []
        this.queryParams.empType = []
      }
    },
    doDcbb() {
      this.$confirm('是否确定要导出报表?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.$message({
          type: 'success',
          message: '导出成功!'
        })
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消'
        })
      })
    selectAllDimissionType(val) {
      if (val) {
        this.queryParams.dimissionType = [1, 2, 3, 4, 5, 6]
      } else {
        this.queryParams.dimissionType = []
      }
    },
    handleCheckedCitiesChange(value) {
      const checkedCount = value.length
      this.checkAll = checkedCount === this.cityOptions.length
      this.isIndeterminate = checkedCount > 0 && checkedCount < this.cityOptions.length
    },
    handleCheckAllChange(val) {
      this.checkedCities = val ? this.cityOptions : []
      this.isIndeterminate = false
    },
    selectAllCertificateList(val) {
      if (val) {
        this.queryParams.certificateList = this.dicListToArr(this.certificateListOptions)
      } else {
        this.queryParams.certificateList = []
      }
    },
    showDcyg(operate) {
      switch (operate) {
        case 0:
          this.dialogShowDcyg = true
          break
        case 1:
          this.dialogShowDcyg = false
          break
        case 2:
          var params = this.queryParams
          params.empStatus = '1,2,3'
          params.exportField = this.checkedCities.join(',')
          this.$download('hr/empBaseInfo/exportWithField', { ...params }, '员工列表.xls').then(() => {
            this.$message({
              message: '下载成功!',
              type: 'success'
            })
          })
          break
      }
    },
    changeSort(val) {
      this.sort.field = val.prop
      this.sort.order = val.order
      this.search()
    }
  }
}
</script>
<style lang="scss">
.fj-checkbox{
.fj-checkbox {
  .el-checkbox__input.is-checked .el-checkbox__inner {
      border-color: #a32c30;;
      background: #a32c30;;
    border-color: #a32c30;;
    background: #a32c30;;
  }
  .el-checkbox__label {
    color: #000 !important;
  }
}
</style>
<style lang="scss" scoped>
  .el-main {
    height: 600px;
  }
  .el-aside {
    padding: 20px;
    background: #f3f5f8;
    height: 600px;
.el-main {
  height: 600px;
}
  }
.el-aside {
  padding: 20px;
  background: #f3f5f8;
  height: 600px;
}
.searchTable {
   margin-top: 10px;
   border-collapse: collapse;
   width: 100%;
  .td {
   background-color: #dddcdc !important;
   width: 160px;
   text-align: center;
  margin-top: 10px;
  border-collapse: collapse;
  width: 100%;
  tr {
    border-bottom: 1px dashed #d9dadb;
  }
  .td {
    width: 90px;
    text-align: right;
  }
  .td-group {
   padding-left: 20px;
    padding-left: 20px;
  }
}
.searchTable td,
.searchTable th {
   border: 1px solid #b0b0b0;
   color: #000;
   height: 40px;
   background-color: #fff;
  color: #000;
  height: 50px;
  background-color: #fff;
}
  #ygxq table {
    border-collapse: collapse;
    margin: 0 auto;
    text-align: center;
#ygxq table {
  border-collapse: collapse;
  margin: 0 auto;
  text-align: center;
  width: 100%;
  margin-top: 20px;
}
#ygxq table td,
#ygxq table th {
  border: 1px solid #DDDCDC;
  color: #666;
  height: 30px;
}
#ygxq table thead th {
  background-color: #CCE8EB;
  width: 100px;
}
#ygxq table tr:nth-child(odd) {
  background: #fff;
}
#ygxq table tr:nth-child(even) {
  background: #F5FAFA;
}
#dcygTable {
  border-collapse: collapse;
  tr {
    width: 100%;
    margin-top: 20px;
    border-bottom: 1px dashed #ccc;
    >td:nth-child(even) {
      width: 100px;
      text-align: left;
    }
  }
  #ygxq table td,
  #ygxq table th {
    border: 1px solid #DDDCDC;
    color: #666;
    height: 30px;
  }
}
  #ygxq table thead th {
    background-color: #CCE8EB;
    width: 100px;
  }
#dcygTable td {
  width: 160px;
  text-align: center;
  height: 35px;
  line-height: 35px;
  font-size: 15px;
  font-weight: 400;
}
  #ygxq table tr:nth-child(odd) {
    background: #fff;
  }
.tdTitle {
  font-size: 14px;
  font-weight: 700;
  text-align: left;
}
  #ygxq table tr:nth-child(even) {
    background: #F5FAFA;
  }
.link_button {
  color: #169BD5;
}
  .tdTitle {
    font-size: 14px;
    font-weight: 700;
    text-align: left;
  }
.del_button {
  color: #D9001B;
}
  .link_button {
    color: #169BD5;
  }
</style>
<style>
.search-btn {
  display: inline-block;
  width: 3.64vw;
  height: 3.2vh;
  line-height: 3.2vh;
  text-align: center;
  background-color: #a00515;
  color: #fff;
  margin-left: 1vw;
  box-sizing: border-box;
  cursor: pointer;
  vertical-align: middle;
}
  .del_button {
    color: #D9001B;
  }
.sup-search-btn {
  display: inline-block;
  width: 5.2vw;
  height: 3.2vh;
  line-height: 3.2vh;
  text-align: center;
  margin-left: 1vw;
  color: #a00515;
  border: 1px solid #a00515;
  box-sizing: border-box;
  cursor: pointer;
  vertical-align: middle;
}
.el-dialog.is-fullscreen {
  overflow: hidden;
}
</style>