From 17527437977dc2e2c39c739796e8afd881df35a1 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 10 十二月 2024 14:59:25 +0800 Subject: [PATCH] 修改 --- src/views/safetyReview/expertManage/fillForm/index.vue | 48 ++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 38 insertions(+), 10 deletions(-) diff --git a/src/views/safetyReview/expertManage/fillForm/index.vue b/src/views/safetyReview/expertManage/fillForm/index.vue index d133eb8..17f0edb 100644 --- a/src/views/safetyReview/expertManage/fillForm/index.vue +++ b/src/views/safetyReview/expertManage/fillForm/index.vue @@ -5,13 +5,14 @@ <el-form :model="state.form" :rules="state.rules" ref="ruleFormRef" label-width="200px"> <el-row> <el-col :span="20"> - <el-form-item label="专业类别" prop="domain"> + <el-form-item label="专业类别" prop="profession"> <el-cascader style="width: 100%" clearable - v-model="state.form.domain" + :disabled="state.disable" + v-model="state.form.profession" :options="state.expertsType" - :props="{ expandTrigger: 'hover',value: 'classifyName',label: 'classifyName',emitPath: false }" + :props="{ expandTrigger: 'hover', value: 'id',label: 'classifyName'}" @change="professionChange"></el-cascader> </el-form-item> </el-col> @@ -395,6 +396,9 @@ form:{ name:'', sex:'', + profession: [], + bigClassify: null, + smallClassify: null, domain: '', deptId: null, birthday: '', @@ -467,7 +471,7 @@ rules:{ name:[{ required: true, message: '请填写姓名', trigger: 'blur' }], sex:[{ required: true, message: '请选择性别', trigger: 'blur' }], - domain: [{ required: true, message: '请选择专业类别', trigger: 'blur' }], + profession: [{ required: true, message: '请选择专业类别', trigger: 'blur' }], deptId: [{ required: true, message: '请选择业务处室', trigger: 'blur' }], birthday: [{ required: true, message: '请选择出生日期', trigger: 'blur' }], phone:[{ required: true, validator: validatePhone, trigger: 'blur' }], @@ -500,17 +504,34 @@ } } +const professionChange = (value) => { + if (!value) { + state.form.profession = [] + state.form.bigClassify = null + state.form.smallClassify = null + } +} + +const findNodeById = (data,value)=> { + for (const node of data) { + if (node.id === value) { + return node.classifyName; + } + if (node.children) { + const foundNode = findNodeById(node.children, value); + if (foundNode) { + return foundNode; + } + } + } + return null; +} + function getDepList() { listOutDept({}).then(response => { state.deptList = proxy.handleTree(response.data, "deptId",'parentId','children'); }); } - - const professionChange=(value)=> { - console.log(value,'val') - } - - // 图片上传 const showTip =()=>{ @@ -588,6 +609,9 @@ await formEl.validate(async (valid, fields) => { if (valid) { let data = JSON.parse(JSON.stringify(state.form)) + data.bigClassify = data.profession[0] + data.smallClassify = data.profession[1] + data.domain = findNodeById(state.expertsType,data.smallClassify) data.supportDirectionSafety = Array.isArray(data.supportDirectionSafety)?data.supportDirectionSafety.join(','):'' data.supportDirectionPrevention = Array.isArray(data.supportDirectionPrevention)?data.supportDirectionPrevention.join(','):'' data.supportDirectionEmergency = Array.isArray(data.supportDirectionEmergency)?data.supportDirectionEmergency.join(','):'' @@ -598,6 +622,7 @@ data.achievementKey = state.achievementList.map(i=>i.name).join(',') data.personalOpinionKey = state.proAdviceList.map(i=>i.name).join(',') data.recommendUnitOpinionKey = state.adviceList.map(i=>i.name).join(',') + delete data.profession delete data.id const res= await addExpertInfo(data) if(res.code == 200){ @@ -605,6 +630,9 @@ state.form = { name:'', sex:'', + profession: [], + bigClassify: null, + smallClassify: null, domain: '', birthday: '', phone:'', -- Gitblit v1.9.2