<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.name"
|
placeholder="请输入用户姓名"
|
clearable
|
@keyup.enter.native="handleQuery"
|
/>
|
</el-form-item>
|
<el-form-item label="身份证号" prop="idCard">
|
<el-input
|
v-model="queryParams.code"
|
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">
|
<el-button
|
type="primary"
|
plain
|
icon="el-icon-plus"
|
size="mini"
|
@click="openPeople({},'add')"
|
v-hasPermi="['system:experts:add']"
|
>新增</el-button>
|
</el-col>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getPage"></right-toolbar>
|
</el-row>
|
<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="sex">
|
<template #default="scope">
|
{{ 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.pageNum"
|
:limit.sync="queryParams.pageSize"
|
@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: ['sys_nation_code'],
|
components: { peopleDialog, experienceDialog, certDialog, trainDialog, examDialog },
|
data() {
|
return {
|
loading: false,
|
showSearch: true,
|
total: 0,
|
dataList: [],
|
queryParams: {
|
code: '',
|
name: '',
|
pageNum: 1,
|
pageSize: 10
|
},
|
};
|
},
|
created() {
|
const t = this
|
t.getPage()
|
},
|
methods: {
|
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
|
},
|
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>
|