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