From c4d5a6dc8561f95b1736e4a052e512a2c5322fca Mon Sep 17 00:00:00 2001 From: wwl <xchao828@163.com> Date: 星期三, 22 一月 2025 17:08:23 +0800 Subject: [PATCH] 1 --- src/views/system/tijian/index.vue | 130 ++++++++++++++++++++++++++++++++++--------- 1 files changed, 102 insertions(+), 28 deletions(-) diff --git a/src/views/system/tijian/index.vue b/src/views/system/tijian/index.vue index 54d29ea..34913f1 100644 --- a/src/views/system/tijian/index.vue +++ b/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() { + // 杩斿洖涔嬪墠淇濆瓨鐨勯�変腑鍖匢D鏁扮粍 + // 渚嬪锛屼粠 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) { -- Gitblit v1.8.0