From 1fd7679f4345963c41dea9ad1c4d4c3e572b6148 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 25 二月 2025 22:29:59 +0800 Subject: [PATCH] 表单验证、项目信息显示bug --- src/views/projectEngineering/projectLibrary/component/BasicInfo.vue | 130 +++++++++++++++++++++++++++++-------------- 1 files changed, 88 insertions(+), 42 deletions(-) diff --git a/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue b/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue index d27e24c..d1b3f82 100644 --- a/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue +++ b/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue @@ -48,7 +48,7 @@ <el-row :gutter="20"> <el-col :span="6"> - <el-form-item label="璧勯噾绫诲瀷" label-width="100px" style="width: 100%"> + <el-form-item label="璧勯噾绫诲瀷" label-width="100px" prop="fundTypeList" style="width: 100%"> <el-select v-model="projectForm.fundTypeList" clearable @@ -119,7 +119,7 @@ <!-- </el-col>--> <el-col :span="6"> - <el-form-item label="椤圭洰鐘舵��" label-width="100px" prop="projectstatus" style="width: 100%"> + <el-form-item label="椤圭洰鐘舵��" label-width="100px" prop="projectStatus" style="width: 100%"> <el-select v-model="projectForm.projectStatus" clearable placeholder="璇烽�夋嫨" @change="handleProjectStatusChange" style="width: 100%"> <el-option v-for="item in dict.type.sys_project_status" :key="item.value" :label="item.label" :value="item.value"/> @@ -154,14 +154,13 @@ </el-form-item> </el-col> <el-col :span="6"> - <!-- TODO锛氭殏鏃朵笉鍋� --> - <el-form-item label="椤圭洰涓氫富鍗曚綅" label-width="100px" prop="engineering" style="width: 100%"> + <el-form-item label="椤圭洰涓氫富鍗曚綅" label-width="100px" prop="projectOwnerUnit" style="width: 100%"> <!-- <el-input v-model.trim="getEngineeringName" class="item" clearable disabled maxlength="255" placeholder="璇峰湪宸ョ▼涓�夋嫨椤圭洰" />--> <!-- <el-select v-model="projectForm.engineeringIdList" :multiple="true" collapse-tags placeholder="璇烽�夋嫨"--> <!-- style="width: 100%">--> <!-- <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="閫夋嫨涓婄骇閮ㄩ棬" />--> - <treeselect v-model="projectForm.projectOwnerUnit" :disabled="disabled" :options="selectOptions" noChildrenText="鏃犲尮閰嶆暟鎹�" :normalizer="normalizer" placeholder="閫夋嫨鍗曚綅" /> + <treeselect v-model="projectForm.projectOwnerUnit" :disabled="disabled" :options="selectOptions" @input="getProjectOwnerUnit" noChildrenText="鏃犲尮閰嶆暟鎹�" :normalizer="normalizer" placeholder="閫夋嫨鍗曚綅" /> <!-- <RemoteSelect v-if="selectOptions.length" :hasMore="hasMore" :loading="loading" :page="page" @loadMore="handleLoadMore" />--> <!-- </el-select>--> </el-form-item> @@ -170,11 +169,11 @@ <el-row :gutter="20"> <el-col :span="6"> <el-form-item label="涓荤閮ㄩ棬" label-width="100px" prop="competentDepartment" style="width: 100%"> - <treeselect v-model="projectForm.competentDepartment" :disabled="disabled" @input="getCompetentDepartmentInfo" noChildrenText="鏃犲尮閰嶆暟鎹�" :options="approvalList" :normalizer="normalizer" placeholder="閫夋嫨鍗曚綅" /> + <treeselect v-model="competentDepartment" :disabled="disabled" @input="getCompetentDepartmentInfo" noChildrenText="鏃犲尮閰嶆暟鎹�" :options="approvalList" :normalizer="normalizer" placeholder="閫夋嫨鍗曚綅" /> </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="涓荤閮ㄩ棬鑱旂郴浜�" label-width="140px" style="width: 100%"> + <el-form-item label="涓荤閮ㄩ棬鑱旂郴浜�" prop="competentDepartmentPerson" label-width="140px" style="width: 100%"> <el-select v-model="projectForm.competentDepartmentPerson" clearable @@ -194,7 +193,7 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="涓荤閮ㄩ棬鑱旂郴鏂瑰紡" label-width="140px" style="width: 100%"> + <el-form-item label="涓荤閮ㄩ棬鑱旂郴鏂瑰紡" prop="competentDepartmentPhone" label-width="140px" style="width: 100%"> <el-input v-model="projectForm.competentDepartmentPhone" clearable @@ -218,7 +217,7 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="绠$悊褰掑彛" label-width="100px" style="width: 100%"> + <el-form-item label="绠$悊褰掑彛" prop="managementCentralizationList" label-width="100px" style="width: 100%"> <el-select v-model="projectForm.managementCentralizationList" clearable @@ -234,7 +233,7 @@ </el-row> <el-row :gutter="20"> <el-col :span="6"> - <el-form-item label="椤圭洰瀹℃壒绫诲瀷" label-width="100px" style="width: 100%"> + <el-form-item label="椤圭洰瀹℃壒绫诲瀷" prop="projectApprovalType" label-width="100px" style="width: 100%"> <el-select v-model="projectForm.projectApprovalType" clearable @@ -247,13 +246,13 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="鎶曡祫绫诲埆" label-width="100px" style="width: 100%"> + <el-form-item label="鎶曡祫绫诲埆" prop="largeCategory" label-width="100px" style="width: 100%"> <el-input v-model="largeCategory" clearable disabled placeholder="璇烽�夋嫨澶х被" style="width: 49%"/> <el-input v-model="subclass" clearable disabled placeholder="璇烽�夋嫨灏忕被" style="width: 49%;margin-left: 2%"/> </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="閲嶇偣鍒嗙被" label-width="100px" style="width: 100%"> + <el-form-item label="閲嶇偣鍒嗙被" prop="importanceTypeList" label-width="100px" style="width: 100%"> <el-select v-model="projectForm.importanceTypeList" :multiple="true" @@ -265,9 +264,6 @@ </el-select> </el-form-item> </el-col> - - - </el-row> <el-row :gutter="20"> @@ -281,7 +277,7 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="璁″垝寮�宸ユ椂闂�" label-width="100px" style="width: 100%"> + <el-form-item label="璁″垝寮�宸ユ椂闂�" prop="planStartTime" label-width="100px" style="width: 100%"> <el-date-picker v-model="projectForm.planStartTime " placeholder="閫夋嫨鏃堕棿" style="width: 100%" @@ -290,7 +286,7 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="璁″垝绔e伐鏃堕棿" label-width="100px" style="width: 100%"> + <el-form-item label="璁″垝绔e伐鏃堕棿" prop="planCompleteTime" label-width="100px" style="width: 100%"> <el-date-picker v-model="projectForm.planCompleteTime " placeholder="閫夋嫨鏃堕棿" style="width: 100%" @@ -302,11 +298,11 @@ <el-row :gutter="20"> <el-col :span="6"> <el-form-item label="琛屼笟涓荤閮ㄩ棬" label-width="100px" prop="industryCompetentDepartment" style="width: 100%"> - <treeselect v-model="projectForm.industryCompetentDepartment" :disabled="disabled" noChildrenText="鏃犲尮閰嶆暟鎹�" @input="getIndustryCompetentDepartmentInfo" :options="approvalList" :normalizer="normalizer" placeholder="閫夋嫨鍗曚綅" /> + <treeselect v-model="industryCompetentDepartment" :disabled="disabled" noChildrenText="鏃犲尮閰嶆暟鎹�" @input="getIndustryCompetentDepartmentInfo" :options="approvalList" :normalizer="normalizer" placeholder="閫夋嫨鍗曚綅" /> </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="琛屼笟涓荤閮ㄩ棬鑱旂郴浜�" label-width="160px" style="width: 100%"> + <el-form-item label="琛屼笟涓荤閮ㄩ棬鑱旂郴浜�" prop="industryCompetentDepartmentPerson" label-width="160px" style="width: 100%"> <el-select v-model="projectForm.industryCompetentDepartmentPerson" clearable @@ -326,7 +322,7 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="琛屼笟涓荤閮ㄩ棬鑱旂郴鏂瑰紡" label-width="160px" style="width: 100%"> + <el-form-item label="琛屼笟涓荤閮ㄩ棬鑱旂郴鏂瑰紡" prop="departmentPersonPhone" label-width="160px" style="width: 100%"> <el-input v-model="projectForm.departmentPersonPhone" clearable @@ -503,6 +499,8 @@ return { tagList: [], projectSubTypeList: [], // 椤圭洰瀛愮被鍨� + competentDepartment: '', + industryCompetentDepartment: '', projectForm: { id: '', projectName: '', @@ -579,8 +577,32 @@ mapCreateInfo: {}, demoFormRef: null, rules: { - projectName: [{required: true, message: '璇疯緭鍏ラ」鐩悕绉�', trigger: 'blur'}] - } + projectName: [{required: true, message: '璇疯緭鍏ラ」鐩悕绉�', trigger: 'blur'}], + content: [{required: true, message: '璇疯緭鍏ュ缓璁惧唴瀹�', trigger: 'blur'}], + fundTypeList: [{required: true, message: '璇烽�夋嫨璧勯噾绫诲瀷', trigger: 'change'}], + investType: [{required: true, message: '璇烽�夋嫨椤圭洰鎶曡祫绫诲埆', trigger: 'change'}], + constructionNature: [{required: true, message: '璇烽�夋嫨寤鸿鎬ц川', trigger: 'change'}], + attractInvestment: [{required: true, message: '璇烽�夋嫨鏄惁鎷涘晢寮曡祫椤圭洰', trigger: 'change'}], + projectType: [{required: true, message: '璇烽�夋嫨椤圭洰鎺ㄨ繘绫诲瀷', trigger: 'change'}], + projectStatus: [{required: true, message: '璇烽�夋嫨椤圭洰鐘舵��', trigger: 'change'}], + projectPhase: [{required: true, message: '璇烽�夋嫨椤圭洰闃舵', trigger: 'change'}], + projectContactPerson: [{required: true, message: '璇疯緭鍏ラ」鐩仈绯讳汉', trigger: 'blur'}], + contact: [{required: true, message: '璇疯緭鍏ラ」鐩仈绯绘柟寮�', trigger: 'blur'}], + projectOwnerUnit: [{required: true, message: '璇烽�夋嫨椤圭洰涓氫富鍗曚綅', trigger: 'change'}], + competentDepartment: [{required: true, message: '璇烽�夋嫨涓荤閮ㄩ棬', trigger: 'change'}], + competentDepartmentPerson: [{required: true, message: '璇烽�夋嫨涓荤閮ㄩ棬鑱旂郴浜�', trigger: 'change'}], + competentDepartmentPhone: [{required: true, message: '璇疯緭鍏ヤ富绠¢儴闂ㄨ仈绯绘柟寮�', trigger: 'blur'}], + area: [{required: true, message: '璇烽�夋嫨琛屾斂鍖哄垝', trigger: 'change'}], + managementCentralizationList: [{required: true, message: '璇烽�夋嫨绠$悊褰掑彛', trigger: 'change'}], + projectApprovalType: [{required: true, message: '璇烽�夋嫨椤圭洰瀹℃壒绫诲瀷', trigger: 'change'}], + importanceTypeList: [{required: true, message: '璇烽�夋嫨閲嶇偣鍒嗙被', trigger: 'change'}], + planStartTime: [{required: true, message: '璇烽�夋嫨璁″垝寮�宸ユ椂闂�', trigger: 'change'}], + planCompleteTime: [{required: true, message: '璇烽�夋嫨璁″垝绔e伐鏃堕棿', trigger: 'change'}], + industryCompetentDepartment: [{required: true, message: '璇烽�夋嫨琛屼笟涓荤閮ㄩ棬', trigger: 'change'}], + industryCompetentDepartmentPerson: [{required: true, message: '璇疯緭鍏ヨ涓氫富绠¢儴闂ㄨ仈绯讳汉', trigger: 'blur'}], + departmentPersonPhone: [{required: true, message: '璇疯緭鍏ヨ涓氫富绠¢儴闂ㄨ仈绯绘柟寮�', trigger: 'blur'}], + }, + needClearPeople: true }; }, computed: { @@ -601,12 +623,6 @@ if (projectForm) { this.projectForm = JSON.parse(projectForm); - if (this.projectForm.industryCompetentDepartment) { - // 鏍规嵁閫変腑鐨勯儴闂↖D鏌ヨ浜哄憳 - getByDept(this.projectForm.industryCompetentDepartment).then((res) => { - this.personList = res.data; - }) - } if (this.projectForm.projectType) { // 鏍规嵁椤圭洰绫诲瀷鏌ュ瓙绫诲瀷 getDicts("sys_project_type").then(res => { @@ -619,6 +635,8 @@ }) } this.$emit('updateIsShow', true); + this.competentDepartment = this.projectForm.competentDepartment + this.industryCompetentDepartment = this.projectForm.industryCompetentDepartment } else { this.projectForm.id = this.$route.query.projectId; // 鍦ㄧ粍浠跺垱寤烘椂鑾峰彇椤圭洰淇℃伅锛屽鏋� projectId 瀛樺湪 @@ -630,17 +648,29 @@ } // this.handleLoadMore(1); } - console.log(this.projectForm, "鍘熷鍊�") + this.$nextTick(() => { - console.log("璁剧疆浜�") this.tagList = this.projectForm.tag ? this.projectForm.tag.split(",") : [] - console.log(this.tagList) }) }, beforeDestroy() { localStorage.setItem("projectForm", JSON.stringify(this.projectForm)); }, methods: { + getIndustryCompetentDepartmentPeople(deptId) { + // 鏍规嵁閫変腑鐨勯儴闂↖D鏌ヨ浜哄憳 + getByDept(deptId).then((res) => { + this.personList = res.data; + this.personList.forEach(item => item.userId += '') + }) + }, + getCompetentDepartmentPeople(deptId) { + // 鏍规嵁閫変腑鐨勯儴闂↖D鏌ヨ浜哄憳 + getByDept(deptId).then((res) => { + this.deptPersonList = res.data; + this.deptPersonList.forEach(item => item.userId += '') + }) + }, getTagList(list) { console.log("鎷垮埌浜�") if (!list || list.length < 1) { @@ -691,28 +721,41 @@ }, getIndustryCompetentDepartmentInfo(deptId) { if (deptId) { - getByDept(deptId).then((res) => { - this.personList = res.data; - }) + if (this.projectForm.industryCompetentDepartment != deptId) { + this.projectForm.industryCompetentDepartmentPerson = "" + this.projectForm.departmentPersonPhone = "" + } + this.projectForm.industryCompetentDepartment = deptId + this.getIndustryCompetentDepartmentPeople(deptId) } else { + this.projectForm.industryCompetentDepartment = '' this.personList = []; + } + }, + getProjectOwnerUnit(deptId) { + if (deptId) { + this.projectForm.projectOwnerUnit = deptId + } else { + this.projectForm.projectOwnerUnit = '' } }, getCompetentDepartmentInfo(deptId) { if (deptId) { - getByDept(deptId).then((res) => { - this.deptPersonList = res.data; - }) + if (this.projectForm.competentDepartment != deptId) { + this.projectForm.competentDepartmentPerson = "" + this.projectForm.competentDepartmentPhone = "" + } + this.projectForm.competentDepartment = deptId + this.getCompetentDepartmentPeople(deptId) } else { + this.projectForm.competentDepartment = '' this.deptPersonList = []; } }, handleDepartmentChange(departmentId) { if (departmentId) { // 鏍规嵁閫変腑鐨勯儴闂↖D鏌ヨ浜哄憳 - getByDept(departmentId).then((res) => { - this.personList = res.data; - }) + this.getIndustryCompetentDepartmentPeople(departmentId) } else { // 濡傛灉鏈�夋嫨閮ㄩ棬锛屾竻绌轰汉鍛樺垪琛� this.personList = []; @@ -779,18 +822,21 @@ this.tagList = this.projectForm.tag ? this.projectForm.tag.split(",") : [] console.log(this.tagList) }) + this.competentDepartment = this.projectForm.competentDepartment + this.industryCompetentDepartment = this.projectForm.industryCompetentDepartment }); }, getApprovalList() { approvalList().then(res => { - this.approvalList = this.handleTree(res.data, "deptId");; + this.approvalList = this.handleTree(res.data, "deptId"); + this.approvalList.push({deptId: '', deptName: '鏃�', children: []}) }); }, getDeptList(){ listDept().then(response => { console.log(response.data) - this.selectOptions = this.handleTree(response.data, "deptId"); + this.selectOptions.push({deptId: '', deptName: '鏃�', children: []}) }); }, -- Gitblit v1.8.0