马宇豪
2024-03-05 2bc59d909462d305e9c71db0c8d54b70a26c43a4
src/views/notCoalMine/nCertificateList/index.vue
@@ -1,24 +1,24 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="用户姓名" prop="userName">
      <el-form-item label="用户姓名" prop="name">
        <el-input
          v-model="queryParams.userName"
          v-model="queryParams.name"
          placeholder="请输入用户姓名"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="身份证号" prop="idCard">
      <el-form-item label="身份证号" prop="idcardNum">
        <el-input
          v-model="queryParams.idCard"
          v-model="queryParams.idcardNum"
          placeholder="请输入身份证号"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">证书查询</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
@@ -30,94 +30,176 @@
          plain
          icon="el-icon-refresh"
          size="mini"
          @click="handleAdd"
          @click="getAsyncData"
          v-hasPermi="['system:experts:add']"
        >同步数据</el-button>
        >同步国家平台数据</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getPage"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="expertList">
      <el-table-column type="index" label="序号" width="55" align="center" />
    <el-table v-loading="loading" :data="dataList">
      <el-table-column type="index" label="归档序号" width="55" align="center" />
      <el-table-column label="姓名" align="center" prop="name" />
      <el-table-column label="性别" align="center" prop="name" />
      <el-table-column label="身份证号" align="center" prop="name" />
      <el-table-column label="电话" align="center" prop="phone"/>
      <el-table-column label="民族" align="center" prop="phone"/>
      <el-table-column label="最高学历" align="center" prop="degree" />
      <el-table-column label="资格类型" align="center" prop="job" />
      <el-table-column label="作业类别" align="center" prop="job" />
      <el-table-column label="操作项目" align="center" prop="speciality" />
      <el-table-column label="初领日期" align="center"/>
      <el-table-column label="发证日期" align="center"/>
      <el-table-column label="有效期从" align="center"/>
      <el-table-column label="有效期到" align="center"/>
      <el-table-column label="一次复审期" align="center"/>
      <el-table-column label="二次复审期" align="center"/>
      <el-table-column label="历史记录" align="center"/>
      <el-table-column label="性别" align="center" prop="sex"/>
      <el-table-column label="身份证号" align="center" prop="idcardNum">
        <template #default="scope">
          {{scope.row.idcardNum | peridcardtm}}
        </template>
      </el-table-column>
<!--      <el-table-column label="电话" align="center" prop="phone"/>-->
<!--      <el-table-column label="民族" align="center" prop="phone"/>-->
<!--      <el-table-column label="最高学历" align="center" prop="degree" />-->
      <el-table-column label="资格类型" align="center" prop="personTypeName" />
      <el-table-column label="作业类别" align="center" prop="jobTypeName" />
      <el-table-column label="操作项目" align="center" prop="operItemName" />
      <el-table-column label="证书初申请" align="center" prop="firstCertDate"/>
      <el-table-column label="证书发放" align="center" prop="createTime">
        <template #default="scope">
          {{scope.row.createTime.substring(0,7)}}
        </template>
      </el-table-column>
      <el-table-column label="有效期从" align="center" prop="validBeginDate"/>
      <el-table-column label="有效期到" align="center" prop="validEndDate"/>
      <el-table-column label="复审期" align="center" prop="shouldReviewDate"/>
<!--      <el-table-column label="二次复审期" align="center" prop="operItemName"/>-->
     <el-table-column label="证书领取" align="center" > 机构代领 </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template #default="scope">
<!--          <el-button-->
<!--            size="mini"-->
<!--            type="text"-->
<!--            icon="el-icon-edit"-->
<!--            @click="handleUpdate(scope.row)"-->
<!--          >编辑</el-button>-->
          <el-button
            size="mini"
            type="text"
            icon="el-icon-check"
            @click="openCert(scope.row,'view')"
          >审核发证</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="openCert(scope.row,'view')"
          >查看</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="openSupplementary(scope.row,'view')"
          >证书补打</el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageIndex"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
      @pagination="getPage"
    />
    <certificate-dialog ref="certificate" @getList="getPage"></certificate-dialog>
    <el-dialog title="证书补打" :visible.sync="supplementaryVisible" width="50%" append-to-body>
      <div style="display: flex;flex-direction: column;align-items: center">
        <el-image
          style="width: 100px; height: 100px"
          :src="print"
          fit="contain"></el-image>
        <p style="font-size: 16px">请使用专业打印机连接</p>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import {getCertificatePage, getCertificateSync} from "@/api/notCoalMine/certifiate";
import printImg from '@/assets/images/print.png'
import certificateDialog from "@/views/notCoalMine/nCertificateList/components/certificateDialog";
export default {
  name: "nPeopleManage",
  name: "nCertificateManage",
  dicts: [],
  components: {},
  components: {certificateDialog},
  data() {
    return {
      loading: false,
      single: true,
      multiple: true,
      showSearch: true,
      addForm: false,
      supplementaryVisible: false,
      total: 0,
      expertTypes: [],
      expertList: [],
      queryParams: {},
      classiFy: [],
      form: {},
      rules: {
        classifyName: [
          { required: true, message: "分类名称不能为空", trigger: "blur" }
        ]
      }
      dataList: [],
      queryParams: {
        idcardNum: '',
        name: '',
        idcardTypeCode: '',
        pageNum: 1,
        pageSize: 10
      },
      print: printImg
    };
  },
  created() {
    this.getPage()
  },
  methods: {
    getList(){
    async getAsyncData(){
      const t = this
      t.loading = true
      if(t.queryParams.idcardNum !== ''){
        t.queryParams.idcardTypeCode = '01'
        const {pageNum,pageSize,...data} = t.queryParams
        const res = await getCertificateSync(data)
        if(res.code == 200){
          await t.getPage()
        }else{
          t.$message({
            message: res.msg,
            type: 'warning'
          })
        }
      }else{
        t.$message({
          message: '请输入身份证号',
          type: 'warning'
        })
      }
      t.loading = false
    },
    async getPage(){
      const t = this
      t.loading = true
      if(t.queryParams.idcardNum !== ''){
        t.queryParams.idcardTypeCode = '01'
      }else{
        t.queryParams.idcardTypeCode = ''
      }
      const res = await getCertificatePage(t.queryParams)
      if(res.code == 200){
        t.dataList = res.rows
        t.total = res.total
      }else{
        t.$message({
          message: res.msg,
          type: 'warning'
        })
      }
      t.loading = false
    },
    handleChange(){
    },
    handleQuery(){
      this.queryParams.pageNum = 1
      this.getPage()
    },
    resetQuery(){
      this.queryParams={
        idcardNum: '',
        name: '',
        idcardTypeCode: '01',
        pageNum: 1,
        pageSize: 10
      }
      this.getPage()
    },
    handleAdd(){
    openCert(data,type){
      this.$refs.certificate.openDialog(data,type)
    },
    openSupplementary(data,type){
      this.supplementaryVisible = true
    }
  }
};