From aff4ce9ab81be8709efe4ebf1bc0383872aea205 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期六, 07 十月 2023 17:04:56 +0800
Subject: [PATCH] 对接接口

---
 src/api/notCoalMine/certifiate.js                                       |    9 
 src/api/notCoalMine/batch.js                                            |   18 +
 src/utils/filter.js                                                     |   17 +
 src/views/notCoalMine/nBatchManage/components/batchDialog.vue           |  370 ++++++++++++++++++++++++++
 src/views/notCoalMine/nBatchManage/index.vue                            |  344 ++++++++++++++----------
 src/views/notCoalMine/nCertificateList/index.vue                        |   28 +
 src/views/notCoalMine/nCertificateList/components/certificateDialog.vue |    7 
 7 files changed, 638 insertions(+), 155 deletions(-)

diff --git a/src/api/notCoalMine/batch.js b/src/api/notCoalMine/batch.js
new file mode 100644
index 0000000..2b1959d
--- /dev/null
+++ b/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
+  })
+}
diff --git a/src/api/notCoalMine/certifiate.js b/src/api/notCoalMine/certifiate.js
index 1e1e545..f0d89d5 100644
--- a/src/api/notCoalMine/certifiate.js
+++ b/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',
diff --git a/src/utils/filter.js b/src/utils/filter.js
index 1231488..f4e2138 100644
--- a/src/utils/filter.js
+++ b/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;
+})
diff --git a/src/views/notCoalMine/nBatchManage/components/batchDialog.vue b/src/views/notCoalMine/nBatchManage/components/batchDialog.vue
new file mode 100644
index 0000000..d001de2
--- /dev/null
+++ b/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>
+
diff --git a/src/views/notCoalMine/nBatchManage/index.vue b/src/views/notCoalMine/nBatchManage/index.vue
index a17913d..a73ed0c 100644
--- a/src/views/notCoalMine/nBatchManage/index.vue
+++ b/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)
     }
   }
 };
diff --git a/src/views/notCoalMine/nCertificateList/components/certificateDialog.vue b/src/views/notCoalMine/nCertificateList/components/certificateDialog.vue
index 5b4f2ca..abb4e1c 100644
--- a/src/views/notCoalMine/nCertificateList/components/certificateDialog.vue
+++ b/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()
diff --git a/src/views/notCoalMine/nCertificateList/index.vue b/src/views/notCoalMine/nCertificateList/index.vue
index 471239b..41e30fd 100644
--- a/src/views/notCoalMine/nCertificateList/index.vue
+++ b/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

--
Gitblit v1.9.2