孔祥富
2021-03-14 680c4f9e4e8b079593c8e57c100b92890e70960d
src/views/yunpan/fujian.vue
@@ -1,5 +1,5 @@
<template>
  <div>
  <div style="background-color: #fff;height: 100%;">
    <el-container>
      <el-header :height="headerHeight">
        <el-row class="search-title">
@@ -7,14 +7,9 @@
            <div class="zs-title">附件管理</div>
          </el-col>
          <el-col :span="8" class="search">
            <el-input v-model="basic" class="input-empName" maxlength="10" size="medium" style="width:220px" />
            <el-button type="primary" size="mini" @click="findEmpAccessory()">查询</el-button>
            <el-button
              type="danger"
              size="mini"
              class="hr-but-all"
              @click="advancedQueryShowMethods"
            >高级查询</el-button>
            <el-input v-model="basic" class="input-empName" maxlength="18" size="medium" style="width:220px" />
            <span class="search-btn" @click="findEmpAccessory">查询</span>
            <span class="sup-search-btn" @click="advancedQueryShowMethods">高级查询</span>
          </el-col>
        </el-row>
        <el-form v-show="advancedQueryShow" ref="queryform" :model="queryform">
@@ -52,90 +47,94 @@
          </el-row>
          <el-row>
            <el-col :span="24">
              <table id="searchTable">
              <table id="searchTable" class="searchTable">
                <tr>
                  <td class="td">性别</td>
                  <td class="td">性别:</td>
                  <td class="td-group">
                    <el-checkbox-group v-model="queryform.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="queryform.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>
                <tr>
                  <td class="td">政治面貌</td>
                  <td class="td">政治面貌:</td>
                  <td class="td-group">
                    <el-checkbox-group v-model="queryform.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>
                <tr>
                  <td class="td">年龄</td>
                  <td class="td">年龄:</td>
                  <td class="td-group">
                    <el-checkbox-group v-model="queryform.age" class="fj-checkbox">
                      <el-checkbox label="" @change="selectAllage">全部</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 label="" @change="selectAllAgeStr">全部</el-checkbox>
                      <el-checkbox
                        v-for="data in ageStrOptions"
                        :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="queryform.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="queryform.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>
@@ -145,9 +144,64 @@
                    <el-checkbox-group v-model="queryform.empStatus" class="fj-checkbox">
                      <el-checkbox label="" @change="selectAllEmpStatus">全部</el-checkbox>
                      <el-checkbox label="0">在职</el-checkbox>
                      <el-checkbox label="1">正常离职</el-checkbox>
                      <el-checkbox label="2">自动离职</el-checkbox>
                      <el-checkbox label="3">公司辞退</el-checkbox>
                      <el-checkbox label="1">离职</el-checkbox>
                      <el-checkbox label="2">退休</el-checkbox>
                    </el-checkbox-group>
                  </td>
                </tr>
                <tr>
                  <td class="td">工作证:</td>
                  <td class="td-group">
                    <el-checkbox-group v-model="queryform.empCardStatus" class="fj-checkbox">
                      <el-checkbox label="" @change="selectAllEmpCardStatus">全部</el-checkbox>
                      <el-checkbox
                        v-for="data in empCardStatusOptions"
                        :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="queryform.handbookStatus" class="fj-checkbox">
                      <el-checkbox label="" @change="selectAllHandbookStatus">全部</el-checkbox>
                      <el-checkbox
                        v-for="data in handbookStatusOptions"
                        :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="queryform.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="queryform.entryType" class="fj-checkbox">
                      <el-checkbox label="" @change="selectAllEntryType">全部</el-checkbox>
                      <el-checkbox :label="4">新入职</el-checkbox>
                      <el-checkbox :label="5">最新入职</el-checkbox>
                      <el-checkbox :label="6">返聘入职</el-checkbox>
                    </el-checkbox-group>
                  </td>
                </tr>
@@ -156,11 +210,11 @@
          </el-row>
        </el-form>
      </el-header>
      <el-main>
      <el-main style="height: 85vh;">
        <el-row style="margin-bottom: 10px;height: 40px;">
          <el-col :span="24">
            <el-button class="hr-but-all" type="danger" @click="dialogFormVisible = true">新建标签</el-button>
            <el-button class="hr-but" type="danger" @click="deldialogFormVisible = true">删除标签</el-button>
            <el-button type="primary" @click="deldialogFormVisible = true">删除标签</el-button>
            <el-button class="hr-but-all" type="danger" @click="downloaddialogFormVisible = true">下载附件</el-button>
            <el-dialog
              title="新建标签"
@@ -267,45 +321,59 @@
          </el-col>
        </el-row>
        <el-dialog title="附件管理" :visible.sync="dialogShowUploadfj" width="80%" class="fjgl-class" top="10px" @close="closeDialog()">
          <uploadfj v-if="dialogShowUploadfj" :rowitem="rowitem" />
        <el-dialog title="附件管理" :visible.sync="dialogShowUploadfj" height="100vh" fullscreen class="fjgl-class" @close="closeDialog()">
          <uploadfj v-if="dialogShowUploadfj" :rowitem="rowitem" :tableindex="tableindex" />
        </el-dialog>
        <el-row>
          <el-col :span="21" style="line-height: 50px;">
            已为您搜索出<span style="color:red">{{ total }}</span>条符合条件的记录
          </el-col>
        </el-row>
        <el-table ref="empAccessoryTable" :data="tableData" class="fj-table" style="width: 100%;color: #000;">
        <el-table
          ref="empAccessoryTable"
          :data="tableData"
          stripe
          border
          :cell-style="{padding:'4.8px 0','text-align':'center'}"
          :header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
          style="width: 100%;color: #000;"
        >
          <el-table-column
            type="selection"
            width="55"
          />
          <el-table-column label="操作" width="120">
          <el-table-column label="操作" width="80">
            <template slot-scope="scope">
              <el-button
                type="text"
                size="small"
                @click.native.prevent="dialogShow(scope.$index, scope.row)"
              >
                上传
              </el-button>
              <!--              <el-button-->
              <!--                type="text"-->
              <!--                size="small"-->
              <!--                @click.native.prevent="dialogShow(scope.$index, scope.row)"-->
              <!--              >-->
              <!--                上传-->
              <!--              </el-button>-->
              <span
                style="color: #a00515;display: inline-block;width: 50%;cursor: pointer"
                @click="dialogShow(scope.$index, scope.row)"
              >上传</span>
            </template>
          </el-table-column>
          <el-table-column prop="empName" label="姓名" />
          <el-table-column prop="certificateNumb" label="身份证号" />
          <el-table-column prop="deptName" label="护卫点(部门)" />
          <el-table-column prop="jobName" label="岗位" />
          <el-table-column show-overflow-tooltip prop="empNumb" label="编号" width="80px" />
          <el-table-column show-overflow-tooltip prop="deptName" label="护卫点(部门)" width="120px" />
          <el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="70px" />
          <el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="180" />
          <el-table-column show-overflow-tooltip prop="empName" label="姓名" width="70px" />
          <template v-for="(col) in labelData">
            <el-table-column :key="col.labelid" :prop="col.labelcode" :label="col.labelname">
            <el-table-column :key="col.labelid" show-overflow-tooltip :prop="col.labelcode" :label="col.labelname">
              <template slot-scope="scope">
                <el-link type="primary"> {{ scope.row[col.labelcode] }}</el-link>
                <el-link type="primary" @click.native="dialogShow(scope.$index, scope.row, scope.column.property)"> {{ scope.row[col.labelcode] }}</el-link>
              </template>
            </el-table-column>
          </template>
        </el-table>
        <pagination
          v-show="total>0"
          style="text-align: right;width: 98%;"
          :total="total"
          :page.sync="pagination.num"
          :limit.sync="pagination.size"
@@ -317,6 +385,7 @@
</template>
<script>
import Pagination from '@/components/Pagination'
import { Loading } from 'element-ui'
export default {
  components: {
@@ -368,11 +437,15 @@
        age: [],
        archivesStatus: [],
        insuranceType: [],
        empStatus: []
        empStatus: [],
        empCardStatus: [],
        handbookStatus: [],
        empType: [],
        entryType: []
      },
      total: 0, // 总数量
      pagination: { // 分页参数
        size: 10,
        size: 15,
        num: 1
      },
      headerHeight: '20px',
@@ -415,12 +488,49 @@
        children: 'children',
        label: 'label'
      },
      rowitem: {}
      tableindex: 0,
      rowitem: {},
      sexOptions: [],
      insuranceTypeOptions: [],
      educationOptions: [],
      statusOptions: [],
      ageStrOptions: [],
      archivesStatusOptions: [],
      empCardStatusOptions: [],
      handbookStatusOptions: [],
      empTypeOptions: []
    }
  },
  mounted() {
    this.initLabel()
    this.fetch()
    this.getDicts('empType').then(response => {
      this.empTypeOptions = response.data
    })
    this.getDicts('empCardStatus').then(response => {
      this.empCardStatusOptions = response.data
    })
    this.getDicts('handbookStatus').then(response => {
      this.handbookStatusOptions = response.data
    })
    this.getDicts('sex').then(response => {
      this.sexOptions = response.data
    })
    this.getDicts('EDUCATION').then(response => {
      this.educationOptions = response.data
    })
    this.getDicts('PLITICAL').then(response => {
      this.statusOptions = response.data
    })
    this.getDicts('ageStr').then(response => {
      this.ageStrOptions = response.data
    })
    this.getDicts('archivesStatus').then(response => {
      this.archivesStatusOptions = response.data
    })
    this.getDicts('INSURANCETYPE').then(response => {
      this.insuranceTypeOptions = response.data
    })
  },
  methods: {
    closeDialog() {
@@ -445,8 +555,10 @@
            empIds.push(j.empId)
          })
          this.labelform.empIds = empIds
          const loadingInstance = Loading.service({ fullscreen: true })
          this.$download('hr/empAccessory/singledownload', { ...this.labelform }, '附件_' + new Date().getTime() + '.zip').then(() => {
            this.downloaddialogFormVisible = false
            loadingInstance.close()
            this.$message({
              message: this.$t('下载成功'),
              type: 'success'
@@ -500,14 +612,22 @@
        }
      })
    },
    dialogShow(index, tableData) {
      this.rowitem = tableData
    dialogShow(index, tableData, property) {
      var this_ = this
      this_.rowitem = tableData
      this_.labelData.forEach((j) => {
        if (j.labelcode === property) {
          this_.tableindex = this_.labelData.indexOf(j)
        }
      })
      this.dialogShowUploadfj = true
    },
    skipuploadfj() {
      this.resolvePath('/uploadfj')
    },
    resetQueryform() {
      this.basic = ''
      this.queryform = {
        empNumb: '',
        empName: '',
@@ -570,7 +690,7 @@
        this.headerHeight = '20px'
        this.advancedQueryShow = false
      } else {
        this.headerHeight = '360px'
        this.headerHeight = 'auto'
        this.advancedQueryShow = true
      }
    },
@@ -579,44 +699,72 @@
    },
    selectAllSex(val) {
      if (val) {
        this.queryform.sex = ['1', '2']
        this.queryParams.sex = this.dicListToArr(this.sexOptions)
      } else {
        this.queryform.sex = []
        this.queryParams.sex = []
      }
    },
    selectAllEducation(val) {
      if (val) {
        this.queryform.education = ['91', '81', '71', '61', '42', '41', '31', '21', '11', '10']
        this.queryParams.education = this.dicListToArr(this.educationOptions)
      } else {
        this.queryform.education = []
        this.queryParams.education = []
      }
    },
    selectAllPolitics(val) {
      if (val) {
        this.queryform.politics = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13']
        this.queryParams.politics = this.dicListToArr(this.statusOptions)
      } else {
        this.queryform.politics = []
        this.queryParams.politics = []
      }
    },
    selectAllage(val) {
    selectAllAgeStr(val) {
      if (val) {
        this.queryform.age = ['18-29', '30-39', '40-49', '50-59', '60-69', '69-999']
        this.queryParams.ageStr = this.dicListToArr(this.ageStrOptions)
      } else {
        this.queryform.age = []
        this.queryParams.ageStr = []
      }
    },
    selectAllArchivesStatus(val) {
      if (val) {
        this.queryform.archivesStatus = ['0', '1']
        this.queryParams.archivesStatus = this.dicListToArr(this.archivesStatusOptions)
      } else {
        this.queryform.archivesStatus = []
        this.queryParams.archivesStatus = []
      }
    },
    selectAllInsuranceType(val) {
      if (val) {
        this.queryform.insuranceType = ['1', '2', '3', '4', '5']
        this.queryParams.insuranceType = this.dicListToArr(this.insuranceTypeOptions)
      } else {
        this.queryform.insuranceType = []
        this.queryParams.insuranceType = []
      }
    },
    selectAllEmpCardStatus(val) {
      if (val) {
        this.queryParams.empCardStatus = this.dicListToArr(this.empCardStatusOptions)
      } else {
        this.queryParams.empCardStatus = []
      }
    },
    selectAllHandbookStatus(val) {
      if (val) {
        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 = [4, 5, 6]
      } else {
        this.queryParams.entryType = []
      }
    },
    selectAllEmpStatus(val) {
@@ -625,19 +773,51 @@
      } else {
        this.queryParams.empStatus = []
      }
    },
    // dic列表转为数组
    dicListToArr(dicList) {
      var arr = []
      for (var i = 0; i < dicList.length; i++) {
        var dic = dicList[i]
        arr.push(dic.dicItemCode)
      }
      return arr
    }
  }
}
</script>
<style lang="scss" scoped>
.el-main {
   margin-top: 10px;
}
.el-input-number {
   width: 100%;
}
.searchTable {
  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;
  }
}
</style>
<style lang="scss">
.el-image-viewer__btn{
 color: #a00515;
}
.fj-checkbox{
  .el-checkbox__input.is-checked .el-checkbox__inner {
      border-color: #a32c30;;
@@ -648,8 +828,24 @@
  }
}
.fjgl-class{
    height: 90%;
     overflow: auto;
  .el-dialog__body {
    padding: 0 20px;
  }
  button.el-dialog__headerbtn {
    height: 30px;
    width: 30px;
    background-color: #a00515;
    opacity: 0.8;
    line-height: 30px;
    border-radius: 50%;
    i {
      color: #fff !important;
    }
    &:hover {
      opacity: 0.5;
    }
  }
}
.add-lable {
   text-align: initial;
@@ -659,11 +855,6 @@
}
.fj-table thead {
    color: #000;
}
.td {
   background-color: #dddcdc !important;
   width: 160px;
   text-align: center;
}
.td-group {
   padding-left: 20px;
@@ -695,10 +886,10 @@
#searchTable td,
#searchTable th {
   border: 1px solid #b0b0b0;
   color: #000;
   height: 40px;
   background-color: #fff;
  border: 0;
  color: #000;
  height: 50px;
  background-color: #fff;
}
#ygxq table {
@@ -708,13 +899,6 @@
   text-align: center;
   width: 100%;
   margin-top: 20px;
}
#ygxq table td,
#ygxq table th {
   border: 1px solid #eae9e9;
   color: #666;
   height: 30px;
}
#ygxq table thead th {
@@ -730,4 +914,31 @@
   background: #f5fafa;
}
.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;
}
.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;
}
</style>