<template>
|
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
|
<div class="main_form">
|
<el-form :model="form" :rules="rules" ref="ruleForm" label-width="200px">
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="计划名称" prop="examPlanName">
|
<el-input v-model="form.examPlanName" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="人员类型" prop="personTypeName">
|
<el-input v-model="form.personTypeName" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="作业类别" prop="jobTypeName">
|
<el-input v-model="form.jobTypeName" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="操作项目" prop="operitemName">
|
<el-input v-model="form.operitemName" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="计划考试人数" prop="plannedExamNumber">
|
<el-input v-model="form.plannedExamNumber" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="备案机关" prop="filingOrg">
|
<el-input v-model="form.filingOrg" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="理论考试点" prop="theoryExamPlaceName">
|
<el-input v-model="form.theoryExamPlaceName" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="理论考试方式" prop="theoryExamUseMethod">
|
<el-radio-group v-model="form.theoryExamUseMethod" :disabled="disable">
|
<el-radio label="1">流水考试</el-radio>
|
<el-radio label="2">固定场次</el-radio>
|
<el-radio label="3">其他</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="理论考试开始时间" prop="theoryExamStartTime">
|
<el-input v-model="form.theoryExamStartTime" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="理论考试结束时间" prop="theoryExamEndTime">
|
<el-input v-model="form.theoryExamEndTime" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="理论补考开始时间" prop="theoryExamMakeupStartTime">
|
<el-input v-model="form.theoryExamMakeupStartTime" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="理论补考结束时间" prop="theoryExamMakeupEndTime">
|
<el-input v-model="form.theoryExamMakeupEndTime" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="实操考试点" prop="practicalExamPlaceName">
|
<el-input v-model="form.practicalExamPlaceName" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="实操考试方式" prop="practicalExamMethod">
|
<el-radio-group v-model="form.practicalExamMethod" :disabled="disable">
|
<el-radio label="1">人工考评</el-radio>
|
<el-radio label="2">实操设备考评</el-radio>
|
<el-radio label="3">其他</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="实操考试开始时间" prop="practicalExamStartTime">
|
<el-input v-model="form.practicalExamStartTime" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="实操考试结束时间" prop="practicalExamEndTime">
|
<el-input v-model="form.practicalExamEndTime" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="实操补考开始时间" prop="practicalExamMakeupStartTime">
|
<el-input v-model="form.practicalExamMakeupStartTime" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="实操补考结束时间" prop="practicalExamMakeupEndTime">
|
<el-input v-model="form.practicalExamMakeupEndTime" :readonly="disable"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<div style="width: 100%;padding-bottom: 30px;display: flex;justify-content: center">
|
<el-button v-if="title == '查看'" type="primary" @click="open = false">确认</el-button>
|
<el-button v-else type="primary" @click="submit()">提交</el-button>
|
</div>
|
</div>
|
</el-dialog>
|
</template>
|
|
<script>
|
// import {getExpertTypes,addExpertInfo,uploadFile} from '@/api/system/form'
|
// import { verifySimplePhone, verifyIdCard } from "@/utils/validate";
|
import {formatDate} from "@/utils";
|
|
export default {
|
name: "nBatchDialog",
|
dicts: ['sys_nation_code'],
|
data() {
|
let validatePhone = (rule, value, callback)=>{
|
if(value === ''){
|
callback(new Error('请输入手机号'))
|
}else{
|
if(!verifySimplePhone(value)){
|
callback(new Error('手机号格式有误'))
|
}else{
|
callback()
|
}
|
}
|
}
|
let verifyId = (rule, value, callback)=>{
|
if(value === ''){
|
callback(new Error('请输入身份证号'))
|
}else{
|
if(!verifyIdCard(value)){
|
callback(new Error('身份证号格式有误'))
|
}else{
|
callback()
|
}
|
}
|
}
|
return {
|
title: '新增',
|
disable: false,
|
open: false,
|
form:{
|
},
|
rules:{
|
name:[{ required: true, message: '请填写姓名', trigger: 'blur' }],
|
sex:[{ required: true, message: '请选择性别', trigger: 'blur' }],
|
idCard: [{ required: true, validator: verifyId, trigger: 'blur' }],
|
race: [{ required: true, message: '请选择民族', trigger: 'blur' }],
|
phone:[{ required: true, validator: validatePhone, trigger: 'blur' }],
|
degree: [{ required: true, message: '请填写最高学历', trigger: 'blur' }]
|
},
|
};
|
},
|
|
created() {
|
const t = this
|
},
|
methods: {
|
openDialog(val,type){
|
if(type == 'add'){
|
this.title = '新增'
|
this.disable = false
|
}else{
|
if(type == 'edit'){
|
this.title = '编辑'
|
this.disable = false
|
}else{
|
this.title = '查看'
|
this.disable = true
|
}
|
this.form = val
|
this.form.theoryExamStartTime = formatDate(val.theoryExamStartTime)
|
this.form.theoryExamEndTime = formatDate(val.theoryExamStartTime)
|
this.form.theoryExamMakeupStartTime = formatDate(val.theoryExamStartTime)
|
this.form.theoryExamMakeupEndTime = formatDate(val.theoryExamStartTime)
|
this.form.practicalExamStartTime = formatDate(val.practicalExamStartTime)
|
this.form.practicalExamEndTime = formatDate(val.practicalExamStartTime)
|
this.form.practicalExamMakeupStartTime = formatDate(val.practicalExamStartTime)
|
this.form.practicalExamMakeupEndTime = formatDate(val.practicalExamStartTime)
|
// for(let i in val){
|
// if(this.isValidKey(i,this.form)){
|
// this.form[i] = val[i]
|
// }
|
// }
|
}
|
this.open = true
|
},
|
isValidKey(key,obj){
|
return key in obj
|
},
|
|
async getExpertsType(){
|
const res = await getExpertTypes()
|
if(res.code == 200){
|
this.expertsType = res.data
|
}else{
|
this.$message({
|
type: 'warning',
|
message: res.msg
|
});
|
}
|
},
|
async submit(){
|
this.$refs["ruleForm"].validate(async(valid) =>{
|
if(valid) {
|
let data = this.form
|
data.supportDirectionSafety = data.supportDirectionSafety.join(',')
|
data.supportDirectionPrevention = data.supportDirectionPrevention.join(',')
|
data.supportDirectionEmergency = data.supportDirectionEmergency.join(',')
|
data.bigClassify = data.profession[0]
|
data.smallClassify = data.profession[1]
|
delete data.profession
|
const res= await addExpertInfo(data)
|
if(res.code == 200){
|
this.$message({
|
type:'success',
|
message: res.msg
|
})
|
this.$emit('closeDialog')
|
this.$refs.ruleForm.resetFields()
|
this.fileList = []
|
}else{
|
this.$message({
|
type:'warning',
|
message: res.msg
|
})
|
}
|
}else{
|
this.$message({
|
type:'warning',
|
message:'请完善必填信息'
|
})
|
}
|
})
|
},
|
changeSource(num){
|
this.form.source = num
|
}
|
}
|
};
|
</script>
|
|
<style scoped lang="scss">
|
.home {
|
blockquote {
|
padding: 10px 20px;
|
margin: 0 0 20px;
|
font-size: 17.5px;
|
border-left: 5px solid #eee;
|
}
|
hr {
|
margin-top: 20px;
|
margin-bottom: 20px;
|
border: 0;
|
border-top: 1px solid #eee;
|
}
|
.col-item {
|
margin-bottom: 20px;
|
}
|
|
ul {
|
padding: 0;
|
margin: 0;
|
}
|
|
font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
font-size: 13px;
|
color: #676a6c;
|
overflow-x: hidden;
|
|
ul {
|
list-style-type: none;
|
}
|
|
h4 {
|
margin-top: 0px;
|
}
|
|
h2 {
|
margin-top: 10px;
|
font-size: 26px;
|
font-weight: 100;
|
}
|
|
p {
|
margin-top: 10px;
|
|
b {
|
font-weight: 700;
|
}
|
}
|
|
.update-log {
|
ol {
|
display: block;
|
list-style-type: decimal;
|
margin-block-start: 1em;
|
margin-block-end: 1em;
|
margin-inline-start: 0;
|
margin-inline-end: 0;
|
padding-inline-start: 40px;
|
}
|
}
|
}
|
.avatar-uploader .el-upload {
|
border: 1px dashed #d9d9d9;
|
border-radius: 6px;
|
cursor: pointer;
|
position: relative;
|
overflow: hidden;
|
}
|
.avatar-uploader .el-upload:hover {
|
border-color: #409EFF;
|
}
|
.avatar-uploader-icon {
|
font-size: 28px;
|
color: #8c939d;
|
width: 178px;
|
height: 178px;
|
line-height: 178px;
|
text-align: center;
|
}
|
.avatar {
|
width: 178px;
|
height: 178px;
|
display: block;
|
}
|
</style>
|