<template>
|
<el-dialog title="考试经历" :visible.sync="open" width="50%" append-to-body>
|
<div class="app-container home">
|
<el-row :gutter="10" class="mb8">
|
<el-col :span="1.5">
|
<el-button
|
type="primary"
|
plain
|
icon="el-icon-plus"
|
size="mini"
|
@click="openEdit({},'add')"
|
v-hasPermi="['system:experts:add']"
|
>新增</el-button>
|
</el-col>
|
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></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="examTime"/>
|
<el-table-column label="考试中心" align="center" prop="examCenter"/>
|
<el-table-column label="科目" align="center" prop="subject"/>
|
<el-table-column label="考试结果" align="center" prop="result">
|
<template #default="scope">
|
{{scope.row.result == 0 ? '通过' : '未通过'}}
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<template #default="scope">
|
<el-button
|
size="mini"
|
type="text"
|
icon="el-icon-edit"
|
@click="openEdit(scope.row,'edit')"
|
>编辑</el-button>
|
<el-button
|
size="mini"
|
type="text"
|
icon="el-icon-delete"
|
@click="handleDelete(scope.row,scope.index)"
|
v-hasPermi="['system:experts:remove']"
|
>删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<el-dialog :title="title" :visible.sync="dialogVisible" width="50%" append-to-body>
|
<el-form :model="form" :rules="rules" ref="ruleForm" label-width="200px">
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="考试时间" prop="examTime">
|
<el-date-picker
|
v-model="form.examTime"
|
value-format="yyyy-MM-dd"
|
style="width: 100%">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="考试中心" prop="examCenter">
|
<el-input v-model="form.examCenter"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="科目" prop="subject">
|
<el-input v-model="form.subject"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="考试结果" prop="result">
|
<el-radio-group v-model="form.result" :disabled="disable">
|
<el-radio label="0">通过</el-radio>
|
<el-radio label="1">未通过</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<div style="width: 100%;padding-bottom: 30px;display: flex;justify-content: center">
|
<el-button type="primary" @click="submit()">提交</el-button>
|
</div>
|
</el-dialog>
|
</div>
|
</el-dialog>
|
</template>
|
|
<script>
|
|
import {addExam, editExam, delExam} from "@/api/coalMine/people";
|
|
export default {
|
name: "examDialog",
|
dicts: [],
|
components: { },
|
data() {
|
return {
|
open: false,
|
id: null,
|
dialogVisible: false,
|
title: '新增经历',
|
loading: false,
|
dataList: [],
|
form: {
|
id: null,
|
staffId: null,
|
examTime: '',
|
examCenter: '',
|
subject: '',
|
result: ''
|
},
|
rules: {
|
examCenter: [{ required: true, message: "请填写考试中心", trigger: "blur" }],
|
examTime: [{ required: true, message: "请选择考试时间", trigger: "blur" }],
|
subject: [{ required: true, message: "请填写考试科目", trigger: "blur" }],
|
result: [{ required: true, message: "请选择考试结果", trigger: "blur" }]
|
}
|
};
|
},
|
created() {
|
|
},
|
methods: {
|
openDialog(data){
|
this.dataList = data.cmStaffExams
|
this.id = data.id
|
this.open = true
|
},
|
|
openEdit(data,type){
|
this.dialogVisible = true
|
if(type == 'add'){
|
this.title='新增经历'
|
this.form = {
|
id: null,
|
staffId: this.id,
|
examTime: '',
|
examCenter: '',
|
subject: '',
|
result: ''
|
}
|
}else {
|
this.title='编辑经历'
|
for(let i in data){
|
if(this.isKey(i,this.form)){
|
this.form[i] = data[i]
|
}
|
}
|
}
|
},
|
isKey(key,obj){
|
return key in obj
|
},
|
handleDelete(row,index){
|
this.$confirm('此操作将永久删除该条数据, 是否继续?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(async () => {
|
const res = await delExam(row.id)
|
if(res.code == 200){
|
this.$message({
|
type: 'success',
|
message: '删除成功!'
|
});
|
this.dialogVisible = false
|
this.open = false
|
this.$emit('closeDialog')
|
}else{
|
this.$message({
|
type: 'warning',
|
message: res.msg
|
});
|
}
|
}).catch(() => {
|
|
});
|
},
|
async submit(){
|
this.$refs["ruleForm"].validate(async(valid) =>{
|
if(valid) {
|
const obj = JSON.parse(JSON.stringify(this.form))
|
if(this.title == '新增经历'){
|
const {id,...data} = obj
|
const res = await addExam(data)
|
if(res.code == 200){
|
this.$message({
|
type:'success',
|
message: res.msg
|
})
|
this.dialogVisible = false
|
this.open = false
|
this.$emit('closeDialog')
|
}else{
|
this.$message({
|
type:'warning',
|
message: res.msg
|
})
|
}
|
}else{
|
const res= await editExam(obj)
|
if(res.code == 200){
|
this.$message({
|
type:'success',
|
message: res.msg
|
})
|
this.dialogVisible = false
|
this.open = false
|
this.$emit('closeDialog')
|
}else{
|
this.$message({
|
type:'warning',
|
message: res.msg
|
})
|
}
|
}
|
}else{
|
this.$message({
|
type:'warning',
|
message:'请完善必填信息'
|
})
|
}
|
})
|
},
|
|
findNameById(data,id){
|
for(const node of data){
|
if(node.id == id){
|
return node.name
|
}
|
if(node.children){
|
const foundName = this.findNameById(node.children,id)
|
if(foundName){
|
return foundName
|
}
|
}
|
}
|
return null
|
},
|
|
handleChange(){
|
|
},
|
handleQuery(){
|
|
},
|
resetQuery(){
|
|
},
|
}
|
};
|
</script>
|
|
<style scoped lang="scss">
|
.home {}
|
</style>
|