马宇豪
2023-10-07 aff4ce9ab81be8709efe4ebf1bc0383872aea205
对接接口
已修改5个文件
已添加2个文件
793 ■■■■ 文件已修改
src/api/notCoalMine/batch.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/notCoalMine/certifiate.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/filter.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notCoalMine/nBatchManage/components/batchDialog.vue 370 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notCoalMine/nBatchManage/index.vue 344 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notCoalMine/nCertificateList/components/certificateDialog.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notCoalMine/nCertificateList/index.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/notCoalMine/batch.js
对比新文件
@@ -0,0 +1,18 @@
import request from '@/utils/request'
// 数据分页
export function getBatchSync() {
  return request({
    url: '/nc/exam/plan/sync/data',
    method: 'get'
  })
}
// 数据分页
export function getBatchPage(query) {
  return request({
    url: '/nc/exam/plan/page/list',
    method: 'get',
    params: query
  })
}
src/api/notCoalMine/certifiate.js
@@ -1,6 +1,15 @@
import request from '@/utils/request'
// 数据分页
export function getCertificateSync(query) {
  return request({
    url: '/nc/cert/sync/data',
    method: 'get',
    params: query
  })
}
// 数据分页
export function getCertificatePage(query) {
  return request({
    url: '/nc/cert/page/list',
src/utils/filter.js
@@ -23,3 +23,20 @@
Vue.filter('threeName', (value) => {
  return value
});
Vue.filter('formatDate',(value) => {
  const date = new Date(value);
  // 使用日期对象的方法获取年、月、日、小时、分钟、秒
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, "0");
  const day = String(date.getDate()).padStart(2, "0");
  const hours = String(date.getHours()).padStart(2, "0");
  const minutes = String(date.getMinutes()).padStart(2, "0");
  const seconds = String(date.getSeconds()).padStart(2, "0");
  // 构建所需格式的字符串
  const formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  return formattedDate;
})
src/views/notCoalMine/nBatchManage/components/batchDialog.vue
对比新文件
@@ -0,0 +1,370 @@
<template>
  <el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
    <div class="main_form">
      <el-form :model="form" :rules="rules" ref="ruleForm" label-width="200px">
        <el-row>
          <el-col :span="20">
            <el-form-item label="计划名称" prop="examPlanName">
              <el-input v-model="form.examPlanName" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="人员类型" prop="personTypeName">
              <el-input v-model="form.personTypeName" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="作业类别" prop="jobTypeName">
              <el-input v-model="form.jobTypeName" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="操作项目" prop="operitemName">
              <el-input v-model="form.operitemName" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="计划考试人数" prop="plannedExamNumber">
              <el-input v-model="form.plannedExamNumber" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="备案机关" prop="filingOrg">
              <el-input v-model="form.filingOrg" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="理论考试点" prop="theoryExamPlaceName">
              <el-input v-model="form.theoryExamPlaceName" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="理论考试方式" prop="theoryExamUseMethod">
              <el-radio-group v-model="form.theoryExamUseMethod" :disabled="disable">
                <el-radio label="1">流水考试</el-radio>
                <el-radio label="2">固定场次</el-radio>
                <el-radio label="3">其他</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="理论考试开始时间" prop="theoryExamStartTime">
              <el-input v-model="form.theoryExamStartTime" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="理论考试结束时间" prop="theoryExamEndTime">
              <el-input v-model="form.theoryExamEndTime" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="理论补考开始时间" prop="theoryExamMakeupStartTime">
              <el-input v-model="form.theoryExamMakeupStartTime" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="理论补考结束时间" prop="theoryExamMakeupEndTime">
              <el-input v-model="form.theoryExamMakeupEndTime" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="实操考试点" prop="practicalExamPlaceName">
              <el-input v-model="form.practicalExamPlaceName" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="实操考试方式" prop="practicalExamMethod">
              <el-radio-group v-model="form.practicalExamMethod" :disabled="disable">
                <el-radio label="1">人工考评</el-radio>
                <el-radio label="2">实操设备考评</el-radio>
                <el-radio label="3">其他</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="实操考试开始时间" prop="practicalExamStartTime">
              <el-input v-model="form.practicalExamStartTime" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="实操考试结束时间" prop="practicalExamEndTime">
              <el-input v-model="form.practicalExamEndTime" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="实操补考开始时间" prop="practicalExamMakeupStartTime">
              <el-input v-model="form.practicalExamMakeupStartTime" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="实操补考结束时间" prop="practicalExamMakeupEndTime">
              <el-input v-model="form.practicalExamMakeupEndTime" :readonly="disable"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div style="width: 100%;padding-bottom: 30px;display: flex;justify-content: center">
        <el-button v-if="title == '查看'" type="primary" @click="open = false">确认</el-button>
        <el-button v-else type="primary" @click="submit()">提交</el-button>
      </div>
    </div>
  </el-dialog>
</template>
<script>
// import {getExpertTypes,addExpertInfo,uploadFile} from '@/api/system/form'
// import { verifySimplePhone, verifyIdCard } from "@/utils/validate";
import {formatDate} from "@/utils";
export default {
  name: "nBatchDialog",
  dicts: ['sys_nation_code'],
  data() {
    let validatePhone = (rule, value, callback)=>{
      if(value === ''){
        callback(new Error('请输入手机号'))
      }else{
        if(!verifySimplePhone(value)){
          callback(new Error('手机号格式有误'))
        }else{
          callback()
        }
      }
    }
    let verifyId = (rule, value, callback)=>{
      if(value === ''){
        callback(new Error('请输入身份证号'))
      }else{
        if(!verifyIdCard(value)){
          callback(new Error('身份证号格式有误'))
        }else{
          callback()
        }
      }
    }
    return {
      title: '新增',
      disable: false,
      open: false,
      form:{
      },
      rules:{
        name:[{ required: true, message: '请填写姓名', trigger: 'blur' }],
        sex:[{ required: true, message: '请选择性别', trigger: 'blur' }],
        idCard: [{ required: true, validator: verifyId, trigger: 'blur' }],
        race: [{ required: true, message: '请选择民族', trigger: 'blur' }],
        phone:[{ required: true, validator: validatePhone, trigger: 'blur' }],
        degree: [{ required: true, message: '请填写最高学历', trigger: 'blur' }]
      },
    };
  },
  created() {
    const t = this
  },
  methods: {
    openDialog(val,type){
      if(type == 'add'){
        this.title = '新增'
        this.disable = false
      }else{
        if(type == 'edit'){
          this.title = '编辑'
          this.disable = false
        }else{
          this.title = '查看'
          this.disable = true
        }
        this.form = val
        this.form.theoryExamStartTime = formatDate(val.theoryExamStartTime)
        this.form.theoryExamEndTime = formatDate(val.theoryExamStartTime)
        this.form.theoryExamMakeupStartTime = formatDate(val.theoryExamStartTime)
        this.form.theoryExamMakeupEndTime = formatDate(val.theoryExamStartTime)
        this.form.practicalExamStartTime = formatDate(val.practicalExamStartTime)
        this.form.practicalExamEndTime = formatDate(val.practicalExamStartTime)
        this.form.practicalExamMakeupStartTime = formatDate(val.practicalExamStartTime)
        this.form.practicalExamMakeupEndTime = formatDate(val.practicalExamStartTime)
        // for(let i in val){
        //   if(this.isValidKey(i,this.form)){
        //     this.form[i] = val[i]
        //   }
        // }
      }
      this.open = true
    },
    isValidKey(key,obj){
      return key in obj
    },
    async getExpertsType(){
      const res = await getExpertTypes()
      if(res.code == 200){
        this.expertsType = res.data
      }else{
        this.$message({
          type: 'warning',
          message: res.msg
        });
      }
    },
    async submit(){
      this.$refs["ruleForm"].validate(async(valid) =>{
        if(valid) {
          let data = this.form
          data.supportDirectionSafety = data.supportDirectionSafety.join(',')
          data.supportDirectionPrevention = data.supportDirectionPrevention.join(',')
          data.supportDirectionEmergency = data.supportDirectionEmergency.join(',')
          data.bigClassify = data.profession[0]
          data.smallClassify = data.profession[1]
          delete data.profession
          const res= await addExpertInfo(data)
          if(res.code == 200){
            this.$message({
              type:'success',
              message: res.msg
            })
            this.$emit('closeDialog')
            this.$refs.ruleForm.resetFields()
            this.fileList = []
          }else{
            this.$message({
              type:'warning',
              message: res.msg
            })
          }
        }else{
          this.$message({
            type:'warning',
            message:'请完善必填信息'
          })
        }
      })
    },
    changeSource(num){
      this.form.source = num
    }
  }
};
</script>
<style scoped lang="scss">
.home {
  blockquote {
    padding: 10px 20px;
    margin: 0 0 20px;
    font-size: 17.5px;
    border-left: 5px solid #eee;
  }
  hr {
    margin-top: 20px;
    margin-bottom: 20px;
    border: 0;
    border-top: 1px solid #eee;
  }
  .col-item {
    margin-bottom: 20px;
  }
  ul {
    padding: 0;
    margin: 0;
  }
  font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  color: #676a6c;
  overflow-x: hidden;
  ul {
    list-style-type: none;
  }
  h4 {
    margin-top: 0px;
  }
  h2 {
    margin-top: 10px;
    font-size: 26px;
    font-weight: 100;
  }
  p {
    margin-top: 10px;
    b {
      font-weight: 700;
    }
  }
  .update-log {
    ol {
      display: block;
      list-style-type: decimal;
      margin-block-start: 1em;
      margin-block-end: 1em;
      margin-inline-start: 0;
      margin-inline-end: 0;
      padding-inline-start: 40px;
    }
  }
}
.avatar-uploader .el-upload {
  border: 1px dashed #d9d9d9;
  border-radius: 6px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.avatar-uploader .el-upload:hover {
  border-color: #409EFF;
}
.avatar-uploader-icon {
  font-size: 28px;
  color: #8c939d;
  width: 178px;
  height: 178px;
  line-height: 178px;
  text-align: center;
}
.avatar {
  width: 178px;
  height: 178px;
  display: block;
}
</style>
src/views/notCoalMine/nBatchManage/index.vue
@@ -1,9 +1,9 @@
<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="examPlanName">
        <el-input
          v-model="queryParams.userName"
          v-model="queryParams.examPlanName"
          placeholder="请输入批次名称"
          clearable
          @keyup.enter.native="handleQuery"
@@ -27,96 +27,96 @@
          placeholder="结束日期">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="资格类型">
        <el-select v-model="value" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="作业类型">
        <el-select v-model="value" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="取证类型">
        <el-select v-model="value" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="批次状态">
        <el-select v-model="value" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="发证机关">
        <el-select v-model="value" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="考试机构">
        <el-select v-model="value" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="理论考点">
        <el-select v-model="value" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="实操考点">
        <el-select v-model="value" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="培训机构">
        <el-select v-model="value" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
<!--      <el-form-item label="资格类型">-->
<!--        <el-select v-model="value" placeholder="请选择">-->
<!--          <el-option-->
<!--            v-for="item in options"-->
<!--            :key="item.value"-->
<!--            :label="item.label"-->
<!--            :value="item.value">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </el-form-item>-->
<!--      <el-form-item label="作业类型">-->
<!--        <el-select v-model="value" placeholder="请选择">-->
<!--          <el-option-->
<!--            v-for="item in options"-->
<!--            :key="item.value"-->
<!--            :label="item.label"-->
<!--            :value="item.value">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </el-form-item>-->
<!--      <el-form-item label="取证类型">-->
<!--        <el-select v-model="value" placeholder="请选择">-->
<!--          <el-option-->
<!--            v-for="item in options"-->
<!--            :key="item.value"-->
<!--            :label="item.label"-->
<!--            :value="item.value">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </el-form-item>-->
<!--      <el-form-item label="批次状态">-->
<!--        <el-select v-model="value" placeholder="请选择">-->
<!--          <el-option-->
<!--            v-for="item in options"-->
<!--            :key="item.value"-->
<!--            :label="item.label"-->
<!--            :value="item.value">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </el-form-item>-->
<!--      <el-form-item label="发证机关">-->
<!--        <el-select v-model="value" placeholder="请选择">-->
<!--          <el-option-->
<!--            v-for="item in options"-->
<!--            :key="item.value"-->
<!--            :label="item.label"-->
<!--            :value="item.value">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </el-form-item>-->
<!--      <el-form-item label="考试机构">-->
<!--        <el-select v-model="value" placeholder="请选择">-->
<!--          <el-option-->
<!--            v-for="item in options"-->
<!--            :key="item.value"-->
<!--            :label="item.label"-->
<!--            :value="item.value">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </el-form-item>-->
<!--      <el-form-item label="理论考点">-->
<!--        <el-select v-model="value" placeholder="请选择">-->
<!--          <el-option-->
<!--            v-for="item in options"-->
<!--            :key="item.value"-->
<!--            :label="item.label"-->
<!--            :value="item.value">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </el-form-item>-->
<!--      <el-form-item label="实操考点">-->
<!--        <el-select v-model="value" placeholder="请选择">-->
<!--          <el-option-->
<!--            v-for="item in options"-->
<!--            :key="item.value"-->
<!--            :label="item.label"-->
<!--            :value="item.value">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </el-form-item>-->
<!--      <el-form-item label="培训机构">-->
<!--        <el-select v-model="value" placeholder="请选择">-->
<!--          <el-option-->
<!--            v-for="item in options"-->
<!--            :key="item.value"-->
<!--            :label="item.label"-->
<!--            :value="item.value">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </el-form-item>-->
      <el-form-item>
        <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>
@@ -130,106 +130,158 @@
          plain
          icon="el-icon-refresh"
          size="mini"
          @click="handleAdd"
          @click="getAsyncData"
          v-hasPermi="['system:experts:add']"
        >同步数据</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 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="phone"/>
      <el-table-column label="考试机构" align="center" prop="degree" />
      <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" prop="examPlanName" width="180"/>
      <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="plannedExamNumber"/>
      <el-table-column label="备案机关" align="center" prop="filingOrg"/>
      <el-table-column label="理论考试点" align="center" prop="theoryExamPlaceName" />
      <el-table-column label="理论考试方式" align="center" prop="theoryExamUseMethod">
        <template #default="scope">
          {{scope.row.theoryExamUseMethod == '1'?'流水考试':scope.row.theoryExamUseMethod == '2'?'固定场次':'其他' }}
        </template>
      </el-table-column>
      <el-table-column label="理论考试时间" align="center">
        <template #default="scope">
          {{scope.row.theoryExamStartTime | formatDate }}~{{ scope.row.theoryExamEndTime  | formatDate }}
        </template>
      </el-table-column>
      <el-table-column label="理论补考时间" align="center">
        <template #default="scope">
          {{scope.row.theoryExamMakeupStartTime | formatDate }}~{{ scope.row.theoryExamMakeupEndTime  | formatDate }}
        </template>
      </el-table-column>
      <el-table-column label="实操考点" align="center" prop="practicalExamPlaceName" />
      <el-table-column label="实操考试方式" align="center" prop="practicalExamMethod">
        <template #default="scope">
          {{scope.row.practicalExamMethod == '1'?'人工考评':scope.row.practicalExamMethod == '2'?'实操设备考评':'其他' }}
        </template>
      </el-table-column>
      <el-table-column label="实操考试时间" align="center">
        <template #default="scope">
          {{scope.row.practicalExamStartTime | formatDate }}~{{ scope.row.practicalExamEndTime  | formatDate }}
        </template>
      </el-table-column>
      <el-table-column label="实操补考时间" align="center">
        <template #default="scope">
          {{scope.row.practicalExamMakeupStartTime | formatDate }}~{{ scope.row.practicalExamMakeupEndTime  | formatDate }}
        </template>
      </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-view"
            @click="handleView(scope.row)"
            @click="openBatch(scope.row,'view')"
          >查看</el-button>
          <!--          <el-button-->
          <!--            size="mini"-->
          <!--            type="text"-->
          <!--            icon="el-icon-delete"-->
          <!--            @click="handleDelete(scope.row)"-->
          <!--            v-hasPermi="['system:experts:remove']"-->
          <!--          >删除</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"
    />
    <batch-dialog ref="batchDialog"></batch-dialog>
  </div>
</template>
<script>
import {getBatchPage, getBatchSync} from "@/api/notCoalMine/batch";
import batchDialog from "@/views/notCoalMine/nBatchManage/components/batchDialog";
export default {
  name: "nPeopleManage",
  name: "nBatchManage",
  dicts: [],
  components: {},
  components: {batchDialog},
  data() {
    return {
      loading: false,
      single: true,
      multiple: true,
      showSearch: true,
      addForm: false,
      total: 0,
      expertTypes: [],
      expertList: [],
      queryParams: {},
      classiFy: [],
      form: {},
      rules: {
        classifyName: [
          { required: true, message: "分类名称不能为空", trigger: "blur" }
        ]
      dataList: [],
      queryParams: {
        examPlanName: '',
        startTime: '',
        endTime: '',
        pageNum: 1,
        pageSize: 10
      }
    };
  },
  created() {
    this.getPage()
  },
  methods: {
    getList(){
    async getAsyncData(){
      const t = this
      const loading = this.$loading({
        text: '正在同步',
        spinner: 'el-icon-loading',
        fullscreen: false
      });
      const res = await getBatchSync()
      if(res.code == 200){
        await t.getPage()
      }else{
        t.$message({
          message: res.msg,
          type: 'warning'
        })
      }
      loading.close();
    },
    async getPage(){
      const t = this
      t.loading = true
      if(t.queryParams.idcardNum !== ''){
        t.queryParams.idcardTypeCode = '01'
      }else{
        t.queryParams.idcardTypeCode = ''
      }
      const res = await getBatchPage(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={
        examPlanName: '',
        startTime: '',
        endTime: '',
        pageNum: 1,
        pageSize: 10
      }
      this.getPage()
    },
    handleAdd(){
    openBatch(data,type){
      this.$refs.batchDialog.openDialog(data,type)
    }
  }
};
src/views/notCoalMine/nCertificateList/components/certificateDialog.vue
@@ -279,13 +279,6 @@
      console.log(file, fileList);
    },
    async submit(){
      if(this.form.supportDirectionSafety.length == 0 && this.form.supportDirectionPrevention.length == 0 && this.form.supportDirectionEmergency.length == 0){
        this.$message({
          type:'warning',
          message: '请至少选择一种支撑方向'
        })
        return
      }
      this.$refs["ruleForm"].validate(async(valid) =>{
        if(valid) {
          await this.submitUpload()
src/views/notCoalMine/nCertificateList/index.vue
@@ -30,7 +30,7 @@
          plain
          icon="el-icon-refresh"
          size="mini"
          @click="resetQuery"
          @click="getAsyncData"
          v-hasPermi="['system:experts:add']"
        >同步数据</el-button>
      </el-col>
@@ -85,7 +85,7 @@
</template>
<script>
import { getCertificatePage } from "@/api/notCoalMine/certifiate";
import {getCertificatePage, getCertificateSync} from "@/api/notCoalMine/certifiate";
import certificateDialog from "@/views/notCoalMine/nCertificateList/components/certificateDialog";
export default {
  name: "nCertificateManage",
@@ -110,6 +110,30 @@
    this.getPage()
  },
  methods: {
    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