From 21e03c21386fb124774df48c8bb1fe3b185dbb48 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期六, 07 十月 2023 14:56:23 +0800
Subject: [PATCH] 新增接口页面

---
 src/views/coalMine/cTeacherManage/cReviewer/index.vue |  252 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 176 insertions(+), 76 deletions(-)

diff --git a/src/views/coalMine/cTeacherManage/cReviewer/index.vue b/src/views/coalMine/cTeacherManage/cReviewer/index.vue
index ec5a418..4c57d21 100644
--- a/src/views/coalMine/cTeacherManage/cReviewer/index.vue
+++ b/src/views/coalMine/cTeacherManage/cReviewer/index.vue
@@ -1,27 +1,27 @@
 <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-input
-          v-model="queryParams.userName"
-          placeholder="请输入用户姓名"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="身份证号" prop="idCard">
-        <el-input
-          v-model="queryParams.idCard"
-          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 icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
+<!--    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">-->
+<!--      <el-form-item label="用户姓名" prop="userName">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.userName"-->
+<!--          placeholder="请输入用户姓名"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="身份证号" prop="idCard">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.idCard"-->
+<!--          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 icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>-->
+<!--      </el-form-item>-->
+<!--    </el-form>-->
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
@@ -30,90 +30,129 @@
           plain
           icon="el-icon-plus"
           size="mini"
-          @click="handleAdd"
+          @click="openDialog({},'add')"
           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="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" class-name="small-padding fixed-width">
+      <el-table-column label="性别" align="center" prop="sex">
         <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)"
-          >停用</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:experts:remove']"
-          >删除</el-button>
+          {{ scope.row.sex == 0?'男':'女' }}
+        </template>
+      </el-table-column>
+      <el-table-column label="身份证号" align="center" prop="code" />
+      <el-table-column label="最高学历" align="center" prop="eduLevel">
+        <template #default="scope">
+          {{getDegreeName(scope.row.eduLevel)}}
+        </template>
+      </el-table-column>
+      <el-table-column label="职称" align="center" prop="jobTitle" />
+      <el-table-column label="资质" align="center" prop="photoPath">
+        <template #default="scope">
+          <el-button type="text" @click="viewFile(scope.row.qaAttachment)">预览</el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="资质有效期" align="center" prop="expiredTime"/>
+      <el-table-column label="描述" align="center" prop="description" />
+      <el-table-column label="证件照片" align="center" prop="photoPath">
+        <template #default="scope">
+          <el-button type="text" @click="viewFile(scope.row.photoAttachment)">预览</el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="状态" align="center" prop="status">
+        <template #default="scope">
+          <el-tag :type="scope.row.status === '0'? 'success' : 'danger' ">{{ scope.row.status == '0'?'正常':'停用' }}</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="工种详情" align="center">
+        <template #default="scope">
+          <el-button size="mini" type="text" @click="openWorkType(scope.row)" v-if="scope.row.operateTypes && scope.row.operateTypes.length>0">查看</el-button>
+          <span v-else>无</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="300">
+        <template #default="scope">
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="openDialog(scope.row,'edit')">编辑</el-button>
+          <el-button size="mini" type="text" icon="el-icon-view" @click="openDialog(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>
+          <el-switch size="mini" v-model="scope.row.status" style="margin-left: 12px" active-value="0" inactive-value="1" @change="handleAbort($event,scope.row)"></el-switch>
         </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"
     />
+    <reviewerDialog ref="reviewerDialog" @closeDialog="resetQuery"></reviewerDialog>
+    <el-dialog title="工种详情" :visible.sync="typeVisible" width="50%" append-to-body>
+      <el-table :data="workType" border>
+        <el-table-column label="资格类型" align="center" prop="qualificationType"/>
+        <el-table-column label="作业类别" align="center" prop="jobCategory"/>
+        <el-table-column label="操作项目" align="center" prop="operationItems"/>
+      </el-table>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import reviewerDialog from "@/views/coalMine/cTeacherManage/cReviewer/components/reviewerDialog";
+import {delExaminer, abortExaminer, getExaminerPage} from "@/api/coalMine/teacher";
+import axios from "axios";
+import {getToken} from "@/utils/auth";
+import {delPeople} from "@/api/coalMine/people";
+
 export default {
   name: "cTeacherManage",
-  dicts: [],
-  components: {},
+  dicts: ['sys_highest_education_code'],
+  components: { reviewerDialog },
   data() {
     return {
       loading: false,
-      single: true,
-      multiple: true,
       showSearch: true,
-      addForm: false,
+      typeVisible: false,
+      workType: [],
+      dataList: [],
       total: 0,
-      expertTypes: [],
-      expertList: [],
-      queryParams: {},
-      classiFy: [],
-      form: {},
-      rules: {
-        classifyName: [
-          { required: true, message: "分类名称不能为空", trigger: "blur" }
-        ]
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        isCm: '1'
       }
     };
   },
   created() {
-
+    const t = this
+    t.getPage()
   },
   methods: {
-    getList(){
+    async getPage(){
+      this.loading = true
+      const res = await getExaminerPage(this.queryParams)
+      if(res.code == 200){
+        this.dataList = res.rows
+        this.total = res.total
+      }else{
+        this.$message({
+          message: res.msg,
+          type: 'warning'
+        })
+      }
+      this.loading = false
+    },
 
+    openDialog(data,type){
+      this.$refs.reviewerDialog.openDialog(data,type)
+    },
+    openWorkType(row){
+      this.workType = row.operateTypes
+      this.typeVisible = true
     },
     handleChange(){
 
@@ -122,11 +161,72 @@
 
     },
     resetQuery(){
-
+      this.queryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        isCm: 1
+      }
+      this.getPage()
     },
-    handleAdd(){
+    viewFile(file){
+      axios.get(process.env.VUE_APP_BASE_API + file.fileUrl,{headers:{'Content-Type': 'application/json','Authorization': "Bearer " + getToken()},responseType: 'blob'}).then(res=>{
+        if (res) {
+          const link = document.createElement('a')
+          let blob = new Blob([res.data],{type: res.data.type})
+          link.style.display = "none";
+          link.href = URL.createObjectURL(blob); // 创建URL
+          window.open(link.href)
+        } else {
+          this.$message.error('获取文件失败')
+        }
+      })
+    },
+    getDegreeName(code){
+      let obj = JSON.parse(JSON.stringify(this.dict.type.sys_highest_education_code)).find(i=>i.value == code)
+      if(obj){
+        return obj.label
+      }else{
+        return '未知'
+      }
+    },
+    async handleAbort(value,row){
+        const res = await abortExaminer({id: row.id,status: value})
+        if(res.code == 200){
+          this.$message({
+            type: 'success',
+            message: '状态变更成功!'
+          });
+          this.getPage()
+        }else {
+          this.$message({
+            type: 'warning',
+            message: res.msg
+          });
+        }
+    },
+    handleDelete(row){
+      this.$confirm('此操作将永久删除该条数据, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(async () => {
+        const res = await delExaminer(row.id)
+        if(res.code == 200){
+          this.$message({
+            type: 'success',
+            message: '删除成功!'
+          });
+          await this.getPage()
+        }else{
+          this.$message({
+            type: 'warning',
+            message: res.msg
+          });
+        }
+      }).catch(() => {
 
-    }
+      });
+    },
   }
 };
 </script>

--
Gitblit v1.9.2