zxl
2025-02-20 7cf4649aa88b0dd950bbeeb70f9c875ce1d550ce
src/views/projectEngineering/projectLibrary/component/BasicInfo.vue
@@ -125,13 +125,15 @@
            </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="engineering" 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%">
                  <el-option v-for="item in selectOptions" :key="item.id" :label="item.engineeringName" :value="item.id"/>
<!--                <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"  :options="selectOptions"  :normalizer="normalizer" placeholder="选择上级部门" />
                  <!--              <RemoteSelect v-if="selectOptions.length" :hasMore="hasMore" :loading="loading" :page="page" @loadMore="handleLoadMore" />-->
                </el-select>
<!--                </el-select>-->
              </el-form-item>
            </el-col>
          </el-row>
@@ -419,6 +421,8 @@
<script>
// import Upload from '@element-plus/icons-vue/dist/Upload.vue';
import Treeselect from '@riophae/vue-treeselect'
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import Map from '@/views/components/Map/index.vue';
import TagList from "./TagList.vue";
// import MapMouseEvent  from '@/views/components/Map/types';
@@ -428,16 +432,18 @@
// import RemoteSelect from '@/components/RemoteSelect/index.vue';
import Cookies from "js-cookie";
import {addProject, getProject, updateProject, getProjectCode, editProject} from '@/api/projectEngineering/projectInfo';
import {approvalList} from "@/api/system/dept";
import {approvalList,listDept} 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";
import { deptList2 } from '../../../../api/system/dept'
export default {
  name: 'BasicInfo',
  dicts: ['sys_funding_type', 'sys_investment_type', 'sys_project_type', 'sys_project_status', 'sys_competent_department'
    , 'sys_administrative_divisions', 'sys_centralized_management', 'sys_approval_type', 'sys_key_categories', 'sys_annual_plan', 'construction_nature'],
  components: {
    Treeselect,
    Map,
    TagList,
    // UploadStandard,
@@ -494,7 +500,7 @@
          projectImageProgress: '',
        }],
        projectAddress: '',
        engineeringIdList: [],
        engineeringIdList: null,
        content: '',
        constructionNature: '',
        contact: '',
@@ -523,6 +529,7 @@
      page: 1,
      loading: false,
      hasMore: true,
      deptOptions: [],
      selectOptions: [],
      accept: ['pdf', 'docx', 'xlsx', 'jpg', 'jpeg'],
      mapCreateInfo: {},
@@ -541,6 +548,8 @@
    },
  },
  mounted() {
    this.getDeptList();
    this.projectForm.id = this.$route.query.projectId;
    const projectForm = localStorage.getItem("projectForm");
    //初始化主管部门下拉框
@@ -589,6 +598,17 @@
          this.projectSubTypeList = res.data
        })
      }
    },
    /** 转换部门数据结构 */
    normalizer(node) {
      if (node.children && !node.children.length) {
        delete node.children;
      }
      return {
        id: node.deptId,
        label: node.deptName,
        children: node.children
      };
    },
    // 监听联系人选择事件
    handleContactChange(userId) {
@@ -680,6 +700,14 @@
        this.approvalList = res.data;
      });
    },
    getDeptList(){
      listDept().then(response => {
        console.log(response.data)
        this.selectOptions = this.handleTree(response.data, "deptId");
      });
    },
    submit(usedStatus) {
      this.$refs["projectForm"].validate(valid => {
        if (valid) {
@@ -724,6 +752,7 @@
    //   this.subclass = labels.join(',');
    // },
    async loadDataList(newPage) {
      try {
        this.loading = true;
        const res = await getList({pageNum: newPage, pageSize: 10000});