| | |
| | | <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"> |
| | |
| | | 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(){ |
| | | |
| | |
| | | |
| | | }, |
| | | resetQuery(){ |
| | | |
| | | }, |
| | | handleAdd(){ |
| | | |
| | | this.queryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | isCm: 1 |
| | | } |
| | | this.getPage() |
| | | }, |
| | | 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> |