xiangpei
2025-02-20 9ca1d8a5c10cf277d02445845bd62510bebf6989
src/views/projectEngineering/projectLibrary/component/BasicInfo.vue
@@ -75,12 +75,21 @@
          <el-row :gutter="20">
            <el-col :span="6">
              <el-form-item label="项目类型" label-width="100px" prop="projectType" style="width: 100%">
                <el-select v-model="projectForm.projectType" clearable placeholder="请选择" style="width: 100%">
                <el-select v-model="projectForm.projectType" @change="getChildSelect" clearable placeholder="请选择" style="width: 100%">
                  <el-option v-for="item in dict.type.sys_project_type" :key="item.value" :label="item.label"
                             :value="item.value"/>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="项目子类型" label-width="100px" prop="projectSubType" style="width: 100%">
                <el-select v-model="projectForm.projectSubType" :disabled="projectForm.projectType === ''" clearable placeholder="请选择" style="width: 100%">
                  <el-option v-for="item in projectSubTypeList" :key="item.dictCode + 'zd'" :label="item.dictLabel"
                             :value="item.dictValue"/>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <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%">
@@ -421,6 +430,8 @@
import {addProject, getProject, updateProject, getProjectCode, editProject} from '@/api/projectEngineering/projectInfo';
import {approvalList} from "@/api/system/dept";
import {getByDept} from "@/api/system/user";
import {getChildList, getDicts} from "@/api/system/dict/data";
import log from "@/views/monitor/job/log";
export default {
  name: 'BasicInfo',
@@ -444,11 +455,13 @@
  },
  data() {
    return {
      projectSubTypeList: [], // 项目子类型
      projectForm: {
        id: '',
        projectName: '',
        projectCode: '',
        projectType: '',
        projectSubType: '',
        projectStatus: 'pendding',
        fundType: '',
        investType: '',
@@ -541,6 +554,17 @@
          this.personList = res.data;
        })
      }
      if (this.projectForm.projectType) {
        // 根据项目类型查子类型
        getDicts("sys_project_type").then(res => {
          const projectType = res.data.find(item => item.dictValue === this.projectForm.projectType);
          if (projectType) {
            getChildList(projectType.dictCode).then(res => {
              this.projectSubTypeList = res.data
            })
          }
        })
      }
      this.$emit('updateIsShow', true);
    } else {
      this.projectForm.id = this.$route.query.projectId;
@@ -558,6 +582,14 @@
    localStorage.setItem("projectForm", JSON.stringify(this.projectForm));
  },
  methods: {
    getChildSelect(select) {
      this.projectForm.projectSubType = ''
      if (select) {
        getChildList(this.dict.type.sys_project_type.filter(item => item.raw.dictValue === select)[0].raw.dictCode).then(res => {
          this.projectSubTypeList = res.data
        })
      }
    },
    // 监听联系人选择事件
    handleContactChange(userId) {
      if (userId) {
@@ -629,6 +661,17 @@
            this.personList = res.data;
          })
        }
        if (this.projectForm.projectType) {
          // 根据项目类型查子类型
          getDicts("sys_project_type").then(res => {
            const projectType = res.data.find(item => item.dictValue === this.projectForm.projectType);
            if (projectType) {
              getChildList(projectType.dictCode).then(res => {
                this.projectSubTypeList = res.data
              })
            }
          })
        }
        this.$emit('updateIsShow', true);
      });
    },