<template>
|
<el-dialog
|
:title="title"
|
:visible.sync="open"
|
append-to-body
|
width="50%"
|
:before-close="handleClose"
|
>
|
<el-form ref="ruleForm" :model="form" :rules="rules" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中...">
|
<el-form-item label="考试批次全称:" prop="examName">
|
<el-input v-model.trim="form.examName" type="textarea" :readonly="disable"/>
|
</el-form-item>
|
<el-form-item label="类别:" prop="isCm">
|
<el-radio-group v-model="form.isCm" style="width: 100%;" :disabled="disable || !isAdmin" @change="clearOptions">
|
<el-radio :label="0">非煤</el-radio>
|
<el-radio :label="1">煤矿</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="机构:" prop="institutionId">
|
<el-select v-model="form.institutionId" placeholder="请选择所属机构" style="width: 100%" :disabled="disable" @focus="getSections">
|
<el-option
|
v-for="item in sectionOptions"
|
:key="item.institutionId"
|
:label="item.institutionName"
|
:value="item.institutionId"
|
:disabled="disable"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="考试点:" prop="siteId">
|
<el-select v-model="form.siteId" placeholder="请选择考试点" style="width: 100%" :disabled="disable" @focus="getSites">
|
<el-option
|
v-for="item in siteOptions"
|
:key="item.siteId"
|
:label="item.siteName"
|
:value="item.siteId"
|
:disabled="disable"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="考试人数:" prop="examNum">
|
<el-input v-model.trim="form.examNum" type="number" :readonly="disable"/>
|
</el-form-item>
|
<el-form-item label="正考日期" prop="zkTimeRange">
|
<el-date-picker
|
v-model="form.zkTimeRange"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
type="datetimerange"
|
range-separator="-"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
:disabled="disable"
|
></el-date-picker>
|
</el-form-item>
|
<el-form-item label="补考日期" prop="bkTimeRange">
|
<el-date-picker
|
v-model="form.bkTimeRange"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
type="datetimerange"
|
range-separator="-"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
:disabled="disable"
|
></el-date-picker>
|
</el-form-item>
|
<el-form-item label="实操日期" prop="scTimeRange">
|
<el-date-picker
|
v-model="form.scTimeRange"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
type="datetimerange"
|
range-separator="-"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
:disabled="disable"
|
></el-date-picker>
|
</el-form-item>
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<el-form-item label="机构联系人:" prop="institutionContacts">
|
<el-input v-model.trim="form.institutionContacts" :readonly="disable"/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="联系电话:" prop="institutionContactsPhone">
|
<el-input v-model.trim="form.institutionContactsPhone" :readonly="disable"/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<el-form-item label="考试点联系人:" prop="siteContacts">
|
<el-input v-model.trim="form.siteContacts" :readonly="disable"/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="联系电话:" prop="siteContactsPhone">
|
<el-input v-model.trim="form.siteContactsPhone" :readonly="disable"/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="handleClose">取消</el-button>
|
<el-button v-if="disable == false" type="primary" @click="submit">提交</el-button>
|
<el-button v-else type="primary" @click="handleClose">确定</el-button>
|
</span>
|
</el-dialog>
|
</template>
|
|
<script >
|
import {addExamApply, editExamApply, getExamSite} from "@/api/commonMod/examApply";
|
import {getTrainPage} from "@/api/coalMine/placeManage/train";
|
import store from "@/store";
|
|
export default {
|
name: 'examApplyDialog',
|
components: {
|
},
|
props: ['typeList'],
|
data() {
|
return {
|
disable: false,
|
title: '新增申报',
|
open: false,
|
form:{},
|
sectionOptions: [],
|
siteOptions: [],
|
rules:{
|
examName:[{ required: true, message: '请填写考试批次全称', trigger: 'blur' }],
|
isCm: [{ required: true, message: '请选择类别', trigger: 'blur' }],
|
institutionId: [{ required: true, message: '请选择机构', trigger: 'blur' }],
|
siteId: [{ required: true, message: '请选择考试点', trigger: 'blur' }],
|
examNum: [{ required: true, message: '请填写考试人数', trigger: 'blur' }],
|
zkTimeRange: [{ required: true, message: '请选择正考时间', trigger: 'blur' }],
|
bkTimeRange: [{ required: true, message: '请选择补考时间', trigger: 'blur' }],
|
scTimeRange: [{ required: true, message: '请选择实操时间', trigger: 'blur' }],
|
siteContacts: [{ required: true, message: '请填写考试点联系人', trigger: 'blur' }],
|
siteContactsPhone: [{ required: true, message: '请填写考试点联系人电话', trigger: 'blur' }],
|
institutionContacts: [{ required: true, message: '请填写机构联系人', trigger: 'blur' }],
|
institutionContactsPhone: [{ required: true, message: '请填写机构联系人电话', trigger: 'blur' }]
|
},
|
isAdmin: false
|
}
|
},
|
created() {
|
|
},
|
methods: {
|
openDialog (val,type) {
|
const t = this
|
const roles = store.getters && store.getters.roles
|
if(roles.includes('admin')){
|
t.isAdmin = true
|
}else{
|
t.isAdmin = false
|
}
|
if(roles.includes('company')){
|
t.form.isCm = 0
|
}
|
if(roles.includes('mk')){
|
t.form.isCm = 1
|
}
|
const userInfo = store.getters && store.getters.userInfo
|
if(userInfo.institutions && userInfo.institutions.length>0){
|
t.sectionOptions = userInfo.institutions
|
t.form.institutionId = userInfo.institutions[0].institutionId
|
}
|
t.open = true
|
t.reset()
|
if(type == 'add'){
|
t.title = '新增申报'
|
t.disable = false
|
}else{
|
if(type == 'edit'){
|
t.title = '编辑'
|
t.disable = false
|
}else{
|
t.title = '查看'
|
t.disable = true
|
}
|
if(val){
|
for(let i in val){
|
if(t.isValidKey(i,this.form)){
|
t.form[i] = val[i]
|
}
|
}
|
}
|
|
t.form.zkTimeRange=[val.examStartTime,val.examEndTime]
|
t.form.bkTimeRange=[val.resitStartTime,val.resitEndTime]
|
t.form.scTimeRange=[val.operationStartTime,val.operationEndTime]
|
t.getSectionList()
|
t.getSiteList()
|
t.form.institutionId = val.institutionId.toString()
|
t.form.siteId = val.siteId
|
console.log(t.form,t.sectionOptions,t.siteOptions,666)
|
}
|
},
|
isValidKey(key,obj){
|
return key in obj
|
},
|
|
handleClose() {
|
this.open = false;
|
this.resetForm();
|
},
|
|
getSections(){
|
if(this.form.isCm == 0 || this.form.isCm == 1){
|
this.getSectionList()
|
}else{
|
this.$message({
|
message: '请先选择类别',
|
type: 'warning'
|
})
|
}
|
},
|
|
async getSectionList() {
|
this.loading = true;
|
const param = {
|
isCm: this.form.isCm,
|
pageNum: 1,
|
pageSize: 999
|
}
|
const res = await getTrainPage(param);
|
if(res.code == 200) {
|
this.sectionOptions = res.rows;
|
}else {
|
this.$message({
|
message: res.msg,
|
type: 'warning'
|
})
|
}
|
this.loading = false;
|
},
|
|
|
getSites(){
|
if(this.form.institutionId){
|
this.getSiteList()
|
}else{
|
this.$message({
|
message: '请先选择所属机构',
|
type: 'warning'
|
})
|
}
|
},
|
|
async getSiteList() {
|
this.loading = true;
|
const res = await getExamSite(this.form.institutionId);
|
if(res.code == 200) {
|
this.siteOptions = res.data;
|
}else {
|
this.$message({
|
message: res.msg,
|
type: 'warning'
|
})
|
}
|
this.loading = false;
|
},
|
|
clearOptions() {
|
this.form.institutionId = null
|
this.form.siteId = null
|
this.getSectionList()
|
},
|
|
// 表单重置
|
reset() {
|
this.form = {
|
applyId: null,
|
examName: '',
|
isCm: null,
|
institutionId: null,
|
siteId: null,
|
examNum: null,
|
zkTimeRange: [],
|
examStartTime: '',
|
examEndTime: '',
|
bkTimeRange: [],
|
resitStartTime: '',
|
resitEndTime: '',
|
scTimeRange: [],
|
operationStartTime: '',
|
operationEndTime: '',
|
siteContacts: '',
|
siteContactsPhone: '',
|
institutionContacts: '',
|
institutionContactsPhone: ''
|
}
|
this.sectionOptions = []
|
this.siteOptions = []
|
},
|
|
async submit(){
|
this.$refs["ruleForm"].validate(async(valid) =>{
|
if(valid) {
|
this.form.examStartTime = this.form.zkTimeRange[0]
|
this.form.examEndTime = this.form.zkTimeRange[1]
|
this.form.resitStartTime = this.form.bkTimeRange[0]
|
this.form.resitEndTime = this.form.bkTimeRange[1]
|
this.form.operationStartTime = this.form.scTimeRange[0]
|
this.form.operationEndTime = this.form.scTimeRange[1]
|
if(this.title == '新增申报'){
|
const {applyId,zkTimeRange,bkTimeRange,scTimeRange,...data} = this.form
|
const res= await addExamApply(data)
|
if(res.code == 200){
|
this.$message({
|
type:'success',
|
message: res.msg
|
})
|
this.open = false
|
this.$emit('getList')
|
}else{
|
this.$message({
|
type:'warning',
|
message: res.msg
|
})
|
}
|
}else{
|
const {zkTimeRange,bkTimeRange,scTimeRange,...data} = this.form
|
const res= await editExamApply(data)
|
if(res.code == 200){
|
this.$message({
|
type:'success',
|
message: res.msg
|
})
|
this.open = false
|
this.$emit('getList')
|
}else{
|
this.$message({
|
type:'warning',
|
message: res.msg
|
})
|
}
|
}
|
}else{
|
this.$message({
|
type:'warning',
|
message:'请完善必填信息'
|
})
|
}
|
})
|
},
|
}
|
}
|
|
</script>
|
<style scoped>
|
|
</style>
|