From baae8a4767fa4de07fb4fa183a4374e90a41d552 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 25 二月 2025 15:00:16 +0800 Subject: [PATCH] 项目相关联系人调整、样式调整 --- src/views/projectEngineering/projectLibrary/component/BasicInfo.vue | 111 +++++++++++++++++++++++++++++++++---------------------- 1 files changed, 66 insertions(+), 45 deletions(-) diff --git a/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue b/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue index 4bd25d8..24e5152 100644 --- a/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue +++ b/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue @@ -36,9 +36,9 @@ </el-col> </el-row> <el-row :gutter="20"> - <el-col :span="12"> + <el-col :span="24"> <el-form-item class="item" label="寤鸿鍐呭" label-width="100px" prop="content"> - <el-input v-model.trim="projectForm.content" style="width: 100%;" clearable maxlength="255" + <el-input v-model.trim="projectForm.content" style="width: 100%;" :rows="4" maxlength="1000" placeholder="璇疯緭鍏�" type="textarea"/> </el-form-item> </el-col> @@ -55,7 +55,7 @@ :multiple="true" placeholder="璇烽�夋嫨" style="width: 100%" - collapse-tags> + > <el-option v-for="item in dict.type.sys_funding_type" :key="item.value" :label="item.label" :value="item.value"/> </el-select> @@ -149,7 +149,7 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="鑱旂郴鏂瑰紡" label-width="100px" prop="contact" style="width: 100%"> + <el-form-item label="椤圭洰鑱旂郴鏂瑰紡" label-width="100px" prop="contact" style="width: 100%"> <el-input v-model.trim="projectForm.contact" class="item" clearable maxlength="255" placeholder="璇疯緭鍏�"/> </el-form-item> </el-col> @@ -169,24 +169,41 @@ </el-row> <el-row :gutter="20"> <el-col :span="6"> - <el-form-item label="涓荤閮ㄩ棬" label-width="100px" prop="competentDepartmentList" style="width: 100%"> + <el-form-item label="涓荤閮ㄩ棬" label-width="100px" prop="competentDepartment" style="width: 100%"> + <treeselect v-model="projectForm.competentDepartment" @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-select - v-model="projectForm.competentDepartmentList" + v-model="projectForm.competentDepartmentPerson" clearable - :multiple="true" + filterable + allow-create placeholder="璇烽�夋嫨" - style="width: 100%" - collapse-tags + @change="handleDeptContactChange" + style="width: 100%;" > <el-option - v-for="item in approvalList" - :key="item.id" - :value="item.id" - :label="item.value" + v-for="person in deptPersonList" + :key="person.userId" + :value="person.userId" + :label="person.nickName" /> </el-select> </el-form-item> </el-col> + <el-col :span="6"> + <el-form-item label="涓荤閮ㄩ棬鑱旂郴鏂瑰紡" label-width="140px" style="width: 100%"> + <el-input + v-model="projectForm.competentDepartmentPhone" + clearable + placeholder="璇疯緭鍏ヨ仈绯绘柟寮�" + /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> <el-col :span="6"> <el-form-item label="琛屾斂鍖哄垝" label-width="100px" prop="area" style="width: 100%"> <el-select @@ -208,7 +225,6 @@ :multiple="true" placeholder="璇烽�夋嫨" style="width: 100%" - collapse-tags > <el-option v-for="item in dict.type.sys_centralized_management" :key="item.value" :label="item.label" :value="item.value"/> @@ -240,11 +256,9 @@ <el-form-item label="閲嶇偣鍒嗙被" label-width="100px" style="width: 100%"> <el-select v-model="projectForm.importanceTypeList" - clearable :multiple="true" placeholder="璇烽�夋嫨" style="width: 100%" - collapse-tags > <el-option v-for="item in dict.type.sys_key_categories" :key="item.value" :label="item.label" :value="item.value"/> @@ -288,20 +302,7 @@ <el-row :gutter="20"> <el-col :span="6"> <el-form-item label="琛屼笟涓荤閮ㄩ棬" label-width="100px" prop="industryCompetentDepartment" style="width: 100%"> - <el-select - v-model="projectForm.industryCompetentDepartment" - clearable - @change="handleDepartmentChange" - placeholder="璇烽�夋嫨" - style="width: 100%;" - > - <el-option - v-for="item in approvalList" - :key="item.id" - :value="item.id" - :label="item.value" - /> - </el-select> + <treeselect v-model="projectForm.industryCompetentDepartment" noChildrenText="鏃犲尮閰嶆暟鎹�" @input="getIndustryCompetentDepartmentInfo" :options="approvalList" :normalizer="normalizer" placeholder="閫夋嫨鍗曚綅" /> </el-form-item> </el-col> <el-col :span="6"> @@ -309,12 +310,14 @@ <el-select v-model="projectForm.industryCompetentDepartmentPerson" clearable + filterable + allow-create placeholder="璇烽�夋嫨" @change="handleContactChange" style="width: 100%;" > <el-option - v-for="person in personList" + v-for="person in deptPersonList" :key="person.userId" :value="person.userId" :label="person.nickName" @@ -514,6 +517,8 @@ projectPhase: '鍌ㄥ瑙勫垝闃舵', tag: '', competentDepartment: '', + competentDepartmentPerson: '', + competentDepartmentPhone: '', projectLocation: '', longitude: '', latitude: '', @@ -549,7 +554,6 @@ projectContactPerson: '', fileList: [], engineeringInfos: [], - competentDepartmentList: [], managementCentralizationList: [], remark: '', industryCompetentDepartment: null, @@ -557,6 +561,7 @@ departmentPersonPhone: null, }, personList: [], + deptPersonList: [], subclass: '', largeCategory: '', approvalList: [], @@ -668,16 +673,38 @@ if (userId) { // 鏍规嵁閫変腑鐨剈serId鏌ユ壘瀵瑰簲鐨勮仈绯讳汉 const selectedPerson = this.personList.find(person => person.userId === userId); - if (selectedPerson) { + if (selectedPerson && selectedPerson.phonenumber) { // 灏嗚仈绯讳汉鐨刾hone瀛楁鍥炲~鍒拌仈绯荤數璇濊緭鍏ユ this.projectForm.departmentPersonPhone = selectedPerson.phonenumber; - } else { - // 濡傛灉鏈壘鍒拌仈绯讳汉锛屾竻绌鸿仈绯荤數璇� - this.projectForm.departmentPersonPhone = ''; } + } + }, + handleDeptContactChange(userId) { + if (userId) { + // 鏍规嵁閫変腑鐨剈serId鏌ユ壘瀵瑰簲鐨勮仈绯讳汉 + const selectedPerson = this.deptPersonList.find(person => person.userId === userId); + if (selectedPerson && selectedPerson.phonenumber) { + // 灏嗚仈绯讳汉鐨刾hone瀛楁鍥炲~鍒拌仈绯荤數璇濊緭鍏ユ + this.projectForm.competentDepartmentPhone = selectedPerson.phonenumber; + } + } + }, + getIndustryCompetentDepartmentInfo(deptId) { + if (deptId) { + getByDept(deptId).then((res) => { + this.personList = res.data; + }) } else { - // 濡傛灉userId涓虹┖锛屾竻绌鸿仈绯荤數璇� - this.projectForm.departmentPersonPhone = ''; + this.personList = []; + } + }, + getCompetentDepartmentInfo(deptId) { + if (deptId) { + getByDept(deptId).then((res) => { + this.deptPersonList = res.data; + }) + } else { + this.deptPersonList = []; } }, handleDepartmentChange(departmentId) { @@ -756,7 +783,7 @@ }, getApprovalList() { approvalList().then(res => { - this.approvalList = res.data; + this.approvalList = this.handleTree(res.data, "deptId");; }); }, getDeptList(){ @@ -864,12 +891,6 @@ .filter(item => newVal.managementCentralizationList.includes(item.value)) .map(item => item.label); this.subclass = labels.join(','); - } - if (newVal.competentDepartmentList) { - const labels = this.approvalList - .filter(item => newVal.competentDepartmentList.includes(item.id)) - .map(item => item.value); - this.largeCategory = labels.join(','); } }, 1000); this.$emit('basicInfoForm', newVal) -- Gitblit v1.8.0