From 8d6b6b8f322e83c82c24e1128d34f6106e6021c7 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期二, 26 九月 2023 16:17:06 +0800
Subject: [PATCH] 新增接口

---
 src/views/coalMine/cPeopleManage/index.vue |  221 ++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 154 insertions(+), 67 deletions(-)

diff --git a/src/views/coalMine/cPeopleManage/index.vue b/src/views/coalMine/cPeopleManage/index.vue
index b80b393..9071ba1 100644
--- a/src/views/coalMine/cPeopleManage/index.vue
+++ b/src/views/coalMine/cPeopleManage/index.vue
@@ -3,7 +3,7 @@
     <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"
+          v-model="queryParams.name"
           placeholder="请输入用户姓名"
           clearable
           @keyup.enter.native="handleQuery"
@@ -11,18 +11,11 @@
       </el-form-item>
       <el-form-item label="身份证号" prop="idCard">
         <el-input
-          v-model="queryParams.idCard"
+          v-model="queryParams.code"
           placeholder="请输入身份证号"
           clearable
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
-      <el-form-item label="作业类型">
-        <el-cascader
-          v-model="classiFy"
-          :options="expertTypes"
-          :props="{ expandTrigger: 'hover', value: 'id',label: 'label'}"
-          @change="handleChange"></el-cascader>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -37,104 +30,198 @@
           plain
           icon="el-icon-plus"
           size="mini"
-          @click="handleAdd"
+          @click="openPeople({},'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="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" 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="mobilePhone"/>
+      <el-table-column label="民族" align="center" prop="nationCode">
+        <template #default="scope">
+          {{getNationName(scope.row.nationCode)}}
+        </template>
+      </el-table-column>
+      <el-table-column label="最高学历" align="center" prop="eduLevel"/>
+      <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">
+        <template #default="scope">
+          <el-button type="text" @click="openExperience(scope.row)">管理<span v-if="scope.row.cmStaffResumes && scope.row.cmStaffResumes.length>0">({{scope.row.cmStaffResumes.length}})</span></el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="资格证书" align="center">
+        <template #default="scope">
+          <el-button type="text" @click="openCert(scope.row)">管理<span v-if="scope.row.cmStaffQas && scope.row.cmStaffQas.length>0">({{scope.row.cmStaffQas.length}})</span></el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="培训经历" align="center">
+        <template #default="scope">
+          <el-button type="text" @click="openTrain(scope.row)">管理<span v-if="scope.row.cmStaffTrains && scope.row.cmStaffTrains.length>0">({{scope.row.cmStaffTrains.length}})</span></el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="考试经历" align="center">
+        <template #default="scope">
+          <el-button type="text" @click="openExam(scope.row)">管理<span v-if="scope.row.cmStaffExams && scope.row.cmStaffExams.length>0">({{scope.row.cmStaffExams.length}})</span></el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
+        <template #default="scope">
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="openPeople(scope.row,'edit')">编辑</el-button>
+          <el-button size="mini" type="text" icon="el-icon-view" @click="openPeople(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-button size="mini" type="text" icon="el-icon-edit" @click="openExperience(scope.row)">个人履历</el-button>-->
+<!--          <el-button size="mini" type="text" icon="el-icon-edit" @click="openCert(scope.row)">资格证书</el-button>-->
+<!--          <el-button size="mini" type="text" icon="el-icon-edit" @click="openTrain(scope.row)">培训经历</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"
     />
+    <peopleDialog ref="peopleDialog" @closeDialog="resetQuery"></peopleDialog>
+    <experienceDialog ref="experienceDialog" @closeDialog="resetQuery"></experienceDialog>
+    <certDialog ref="certDialog" @closeDialog="resetQuery"></certDialog>
+    <trainDialog ref="trainDialog" @closeDialog="resetQuery"></trainDialog>
+    <examDialog ref="examDialog" @closeDialog="resetQuery"></examDialog>
   </div>
 </template>
 
 <script>
+import peopleDialog from "@/views/coalMine/cPeopleManage/components/peopleDialog";
+import experienceDialog from "@/views/coalMine/cPeopleManage/components/experienceDialog";
+import certDialog from "@/views/coalMine/cPeopleManage/components/certDialog"
+import trainDialog from "@/views/coalMine/cPeopleManage/components/trainDialog"
+import examDialog from "@/views/coalMine/cPeopleManage/components/examDialog"
+import { getPeoplePage,delPeople } from "@/api/coalMine/people";
+import axios from "axios";
+import { getToken } from "@/utils/auth";
 export default {
   name: "cPeopleManage",
-  dicts: [],
-  components: {},
+  dicts: ['sys_nation_code'],
+  components: { peopleDialog, experienceDialog, certDialog, trainDialog, examDialog },
   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: {
+        code: '',
+        name: '',
+        pageNum: 1,
+        pageSize: 10
+      },
     };
   },
   created() {
-
+    const t = this
+    t.getPage()
   },
   methods: {
-    getList(){
-
+    async getPage(){
+      const t = this
+      t.loading = true
+      const res = await getPeoplePage(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(){
+    getNationName(code){
+      let obj = JSON.parse(JSON.stringify(this.dict.type.sys_nation_code)).find(i=>i.value == code)
+      if(obj){
+        return obj.label
+      }else{
+        return '无'
+      }
+    },
+    openPeople(data,type){
+      this.$refs.peopleDialog.openDialog(data,type)
+    },
 
+    openExperience(data){
+      this.$refs.experienceDialog.openDialog(data)
+    },
+    openCert(data){
+      this.$refs.certDialog.openDialog(data)
+    },
+    openTrain(data){
+      this.$refs.trainDialog.openDialog(data)
+    },
+    openExam(data){
+      this.$refs.examDialog.openDialog(data)
+    },
+
+    handleDelete(row){
+      this.$confirm('此操作将永久删除该条数据, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(async () => {
+        const res = await delPeople(row.id)
+        if(res.code == 200){
+          this.$message({
+            type: 'success',
+            message: '删除成功!'
+          });
+          await this.getPage()
+        }else{
+          this.$message({
+            type: 'warning',
+            message: res.msg
+          });
+        }
+      }).catch(() => {
+
+      });
     },
     handleQuery(){
-
+      this.queryParams.pageNum = 1
+      this.getPage()
     },
     resetQuery(){
-
+      this.$refs['queryForm'].resetFields()
+      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('获取文件失败')
+        }
+      })
+    },
   }
 };
 </script>

--
Gitblit v1.9.2