1
wwl
2025-01-22 c4d5a6dc8561f95b1736e4a052e512a2c5322fca
1
1个文件已修改
130 ■■■■ 已修改文件
src/views/system/tijian/index.vue 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/tijian/index.vue
@@ -374,12 +374,10 @@
        </el-tab-pane>
        <el-tab-pane label="单项" name="second">
          <div class="tab8">
            <el-row :gutter="20">
              <el-col :span="6">
            <el-row :gutter="24">
              <el-col :span="8">
                <div style="
                    text-align: center;
                    margin-bottom: 10px;
                    margin-top: 10px;
                  ">
                  项目列表
                </div>
@@ -393,7 +391,7 @@
                  </el-tree>
                </div>
              </el-col>
              <el-col :span="6">
              <el-col :span="8">
                <div style="
                    text-align: center;
                    margin-bottom: 10px;
@@ -409,7 +407,7 @@
                  </el-tree>
                </div>
              </el-col>
              <el-col :span="11">
              <el-col :span="8">
                <div class="grid-content bg-purple">
                  <div style="
                      text-align: center;
@@ -1093,8 +1091,11 @@
    // this.getData();
  },
  mounted() { },
  mounted() {
  this.TreedataList = [];
  this.DataList = [];
  this.marryall = 0;
},
  methods: {
    debounceNumberChange(currentValue, oldValue) {
      clearTimeout(this.debounceTimer);
@@ -2232,12 +2233,15 @@
    // 取消按钮
    cancel() {
      this.Seachopen = false;
      this.taocan = false;
      this.malldisble = false;
      this.defaultKeys = [];
      this.DataLists = [];
    },
  this.TreedataList = [];
  this.DataList = [];
  this.marryall = 0; // 重置合计
  this.Seachopen = false;
  this.taocan = false;
  this.malldisble = false;
  this.defaultKeys = [];
  this.DataLists = [];
},
    cancell() {
      if (this.addAddress.address) {
@@ -2491,21 +2495,25 @@
      }
    },
    handleClick(tab, event) {
      if (this.activeNames == "second") {
        this.DataList = [];
        this.checkedkey = [];
        this.getDataList();
      } else if (this.activeNames == "third") {
        this.DataLists = [];
        this.checkedkeys = [];
        getZhList().then((response) => {
          if (response.data) {
            this.packageList = response.data;
          }
          this.loading = false;
        });
  if (this.activeNames == "second") {
    this.DataList = [];
    this.checkedkey = [];
    this.TreedataList = [];
    this.marryall = 0; // 重置合计
    this.getDataList();
  } else if (this.activeNames == "third") {
    this.DataLists = [];
    this.checkedkeys = [];
    this.TreedataList = [];
    this.marryall = 0; // 重置合计
    getZhList().then((response) => {
      if (response.data) {
        this.packageList = response.data;
      }
    },
      this.loading = false;
    });
  }
},
    // gaibian(val){
    //   let pname = val;
    //   getProParentIdDxList(pname).then(response=>{
@@ -2516,6 +2524,17 @@
      this.loading = true;
      getProParentIdDxList().then((response) => {
        this.Treedata = response.data.list;
        // 回显 TreedataList 到 DataList
        if (this.TreedataList && this.TreedataList.length > 0) {
          this.DataList = this.TreedataList;
          this.marryall = this.DataList.reduce((sum, item) => sum + (item.proPrice || 0) * (item.sl || 1), 0);
          this.checkedListkey = this.DataList.map(item => item.proId);
          this.$nextTick(() => {
            this.$refs.tree.setCheckedKeys(this.checkedListkey);
          });
        }
        if (this.tableData[0]) {
          this.tableData[0].tjProjectList.forEach((selectionitem) => {
            this.Treedata.forEach((item) => {
@@ -2525,10 +2544,65 @@
            });
          });
        }
        // 回显 packageList 的选中态
        this.handlePackageSelection();
        this.loading = false;
      });
    },
    handlePackageSelection() {
      // 假设你有之前保存的选中状态或从某个地方获取这些数据
      let selectedPackageIds = this.getPreviouslySelectedPackages(); // 这是一个假设的函数,实际使用时替换为实际的逻辑
      // 设置 packageList 的选中状态
      this.$nextTick(() => {
        if (this.$refs.treas) { // 确保 treas 引用已经存在
          this.$refs.treas.setCheckedKeys(selectedPackageIds, true);
        }
        // 更新 checkedkeys 以反映当前选中的包
        this.checkedkeys = selectedPackageIds;
      });
      // 根据选中状态更新 DataLists 或其他需要更新的内容
      this.updateDataListsBasedOnSelection(selectedPackageIds);
    },
    getPreviouslySelectedPackages() {
      // 返回之前保存的选中包ID数组
      // 例如,从 localStorage 或者 Vuex store 获取
      return []; // 这里是示例,替换为实际获取数据的逻辑
    },
    updateDataListsBasedOnSelection(selectedPackageIds) {
      // 根据选中的包ID更新 DataLists
      this.DataLists = [];
      selectedPackageIds.forEach(id => {
        let packageItem = this.packageList.find(item => item.id === id);
        if (packageItem) {
          // 这里假设每个包项目都有一个 proId 数组或者类似的结构,用来获取包中的项目
          if (packageItem.proIds) { // 假设 packageItem 包含一个 proId 数组
            packageItem.proIds.forEach(proId => {
              let project = this.findProjectById(proId); // 假设有一个函数来找到项目
              if (project) {
                this.DataLists.push(project);
              }
            });
          }
        }
      });
      // 计算合计
      this.marryalls = this.DataLists.reduce((sum, item) => sum + item.proPrice, 0);
    },
    findProjectById(proId) {
      // 此函数假设你有一个全局的项目列表或者可以从某个API获取
      // 这里只是一个示例,实际应用中应该根据你的数据结构来实现
      return this.allpackageList.find(item => item.proId === proId) || null;
    },
    handlepackage(data, checked, checkedNodes) {
      this.dataObj = data;
      if (checked.checkedNodes.length != 0) {