xiangpei
2025-02-25 baae8a4767fa4de07fb4fa183a4374e90a41d552
项目相关联系人调整、样式调整
1个文件已修改
111 ■■■■■ 已修改文件
src/views/projectEngineering/projectLibrary/component/BasicInfo.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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) {
        // 根据选中的userId查找对应的联系人
        const selectedPerson = this.personList.find(person => person.userId === userId);
        if (selectedPerson) {
        if (selectedPerson && selectedPerson.phonenumber) {
          // 将联系人的phone字段回填到联系电话输入框
          this.projectForm.departmentPersonPhone = selectedPerson.phonenumber;
        } else {
          // 如果未找到联系人,清空联系电话
          this.projectForm.departmentPersonPhone = '';
        }
      }
    },
    handleDeptContactChange(userId) {
      if (userId) {
        // 根据选中的userId查找对应的联系人
        const selectedPerson = this.deptPersonList.find(person => person.userId === userId);
        if (selectedPerson && selectedPerson.phonenumber) {
          // 将联系人的phone字段回填到联系电话输入框
          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)