From 99563684fb0432f5d755b9b99aaf95fa32634b96 Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期日, 03 三月 2024 19:28:43 +0800
Subject: [PATCH] 入离职记录增加部门护卫点信息: - 信息录入:写入入职的部门信息 - 在职员工:关闭档案时写入离职时的部门信息 - 离职员工:打开档案时写入打开时的部门信息 - 档案导出:在职员工和离职员工模板导出档案时的入离职记录的部门信息导出 上传左边的标签面是动态生成,调整数据库中标签数据,使生成的标签和更改的要求一致

---
 src/views/user/outemployess.vue |  945 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 754 insertions(+), 191 deletions(-)

diff --git a/src/views/user/outemployess.vue b/src/views/user/outemployess.vue
index f9e959b..b08233c 100644
--- a/src/views/user/outemployess.vue
+++ b/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 />
@@ -347,9 +445,9 @@
                 <td>已发</td>
               </tr>
               <tr>
-                <td>家庭成员及关系</td>
+                <td>家庭成员及关系1</td>
                 <td />
-                <td>紧急联系电话</td>
+                <td>家庭成员及关系2</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>家庭成员及关系1</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>家庭成员及关系2</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,54 @@
     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
+            var deptName = selection[0].allDeptName
+            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: 21,
+              openDate: year + '-' + month + '-' + day,
+              remark: '',
+              allDeptName: deptName
+            }
+            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 +1592,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>

--
Gitblit v1.8.0