From d6df4fd6344569bffcd575f48f04da4a54f51036 Mon Sep 17 00:00:00 2001
From: wwl <xchao828@163.com>
Date: 星期二, 21 一月 2025 18:02:58 +0800
Subject: [PATCH] 1

---
 src/views/system/package/index.vue |  263 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 160 insertions(+), 103 deletions(-)

diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue
index 7958cf7..e8b6b9e 100644
--- a/src/views/system/package/index.vue
+++ b/src/views/system/package/index.vue
@@ -550,16 +550,20 @@
         </el-table-column>
       </el-table> -->
 
-      <el-row style="display: flex; width: 1300px;">
+      <el-row style="display: flex; width: 1300px">
         <el-col>
           <div
             style="text-align: center; margin-bottom: 10px; margin-top: 10px"
           >
             椤圭洰鍒楄〃
           </div>
-          <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText">
-          </el-input>
-          <div class="tab3" style="height: 365px;">
+          <el-input
+            placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
+            @input="handleFilterInput"
+            v-model="queryParams1.nr"
+            clearable
+          />
+          <div class="tab3" style="height: 365px">
             <el-tree
               class="filter-tree"
               v-loading="loading"
@@ -576,10 +580,10 @@
             </el-tree>
             <pagination
               small
-              v-show="total > 0"
-              :total="total"
-              :page.sync="queryParams.page"
-              :limit.sync="queryParams.pageSize"
+              v-show="total1 > 0"
+              :total="total1"
+              :page.sync="queryParams1.page"
+              :limit.sync="queryParams1.pageSize"
               @pagination="getDataList"
             />
           </div>
@@ -728,7 +732,11 @@
 import { listCategory } from "@/api/mall/category";
 import { listKeyword } from "@/api/mall/keyword";
 // import { getProParentIdDxList, getProSonDxList } from "@/api/system/tijian";
-import { getProParentIdDxList, getProSonDxList } from "@/api/system/package";
+import {
+  getProParentIdDxList,
+  search,
+  getProSonDxList,
+} from "@/api/system/package";
 import {
   getPacList,
   getPacInFo,
@@ -815,16 +823,22 @@
       // 鏄惁鏄剧ず寮瑰嚭灞�
       open: false,
       Seachopen: false,
+      checkedNodes: [],
       pacId: "",
       // 鎬绘潯鏁�
       total: 0,
+      total1: 0,
       // 鏌ヨ鍙傛暟
       queryParams: {
-        page: 1,
         pageNum: 1,
         pageSize: 10,
         pacName: null,
         pacRemark: null,
+      },
+      queryParams1: {
+        page: 1,
+        pageSize: 30,
+        nr: "",
       },
       // 琛ㄥ崟鍙傛暟
       form: {
@@ -864,11 +878,11 @@
       },
     };
   },
-  watch: {
-    filterText(val) {
-      this.$refs.tree.filter(val);
-    },
-  },
+  // watch: {
+  //   filterText(val) {
+  //     this.$refs.tree.filter(val);
+  //   },
+  // },
 
   created() {
     this.getList();
@@ -912,6 +926,7 @@
         this.loading = false;
       });
     },
+
     /** 鏌ヨ鍏抽敭瀛楀垪琛� */
     getKeyword() {
       this.loading = true;
@@ -1138,14 +1153,19 @@
 
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete1(row) {
-      this.DataList = this.DataList.filter((item) => item.proId !== row.proId);
-      const tree = this.$refs.tree;
-      const node = tree.getNode(row.proId); // 鏍规嵁鑺傜偣鐨勫敮涓�鏍囪瘑鑾峰彇鑺傜偣瀵硅薄
-      if (node) {
-        node.setChecked(false); // 鍙栨秷閫変腑鐘舵��
+      this.DataList = this.DataList.filter(item => item.proId !== row.proId);
+      // 浠� checkedNodes 涓Щ闄�
+      const index = this.checkedNodes.indexOf(row.proId);
+      if (index > -1) {
+        this.checkedNodes.splice(index, 1);
       }
+      const tree = this.$refs.tree;
+      const node = tree.getNode(row.proId); 
+      if (node) {
+        node.setChecked(false); 
+      }
+      this.updateTotalPrice();
     },
-
     getSelectValue(val) {
       this.form.tjProjectList.forEach((formitem) => {
         if (formitem.proName == val) {
@@ -1217,7 +1237,7 @@
       }, new Big(0)).toNumber();
       this.youhui =
         (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10;
-      console.log(this.youhui, 1212);
+      // console.log(this.youhui, 1212);
     },
     calculateDiscount(row) {
       if (row.limits > 10) {
@@ -1257,97 +1277,134 @@
     },
     getDataList() {
       this.loading = true;
-      getProParentIdDxList(this.queryParams).then((response) => {
-        this.Treedata = response.data.list;
-        /*  if (this.form.tjProjectList) {
-          this.form.tjProjectList.forEach((item) => {
-            this.Treedata.forEach((item1) => {    
-              if (item.proId == item1.proId) {
-                this.checkedkey.push(item1.proId);
- 
-                this.DataList.push(item1);
-                
-                this.DataList.forEach((item1) => {
-                  item1.limits = 10;
-                  if (item1.limits > 10) {
-                    item1.limits = 10; // 寮哄埗灏嗗�艰缃负鏈�澶у��
-                  } else if (item1.limits < 0) {
-                    item1.limits = 0; // 寮哄埗灏嗗�艰缃负鏈�灏忓��
-                  }
-                  this.updateProPrice(item1); // 鏇存柊浠锋牸鎴栧叾浠栭�昏緫
-                });
- 
-              }
-            });
-          });
-        }  */ /* else {
-          this.checkedkey.push(this.Treedata[0].proId);
-          let proId = this.Treedata[0].proId;
-          this.TreedataList = this.Treedata.filter(
-            (item) => item.proId == proId
-          ); */
+      search(this.queryParams1).then((response) => {
+        this.Treedata = response.data.list; // 鏇存柊鏍戝舰鏁版嵁
+        this.total1 = response.data.total; // 鏇存柊鎬绘潯鏁�
+        this.pics = this.DataList.reduce((total, item) => total + item.priceOrd, 0);
 
-        // 灏嗙涓�涓」鐩坊鍔犲埌 DataList
-        // this.TreedataList.forEach((item) => {
-        //   this.checkedListkey.push(item.proId);
-        //   this.DataList.push(item);
-        // });
-        /*  getProSonDxList(proId).then((res) => {
-            this.TreedataList = res.data.list;
-            this.TreedataList.forEach((item) => {
-              item.disabled = true;
-              this.checkedListkey.push(item.proId);
-              this.DataList.push(item);
-              this.DataList.forEach((item) => {
-                item.propinName = this.Treedata[0].proName;
-                item.propinPrice = this.Treedata[0].proPrice;
-              });
-              this.pics = 0;
-              this.DataList.forEach((item) => {
-                this.pics += item.proPrice;
-              });
-            });
-          }); */
-        // }
-        this.pics = this.DataList.reduce(
-          (total, item) => total + item.priceOrd,
-          0
-        );
-        this.loading = false;
+        // 纭繚鍦ㄦ暟鎹姞杞藉悗淇濇寔閫変腑鐘舵��
+        this.$nextTick(() => {
+          this.$refs.tree.setCheckedKeys(this.checkedNodes);
+        });
+      });
+      this.loading = false;
+    },
+    // getDataList() {
+    //   this.loading = true;
+
+    //   getProParentIdDxList(this.queryParams).then((response) => {
+    //     this.Treedata = response.data.list;
+    //     /*  if (this.form.tjProjectList) {
+    //       this.form.tjProjectList.forEach((item) => {
+    //         this.Treedata.forEach((item1) => {
+    //           if (item.proId == item1.proId) {
+    //             this.checkedkey.push(item1.proId);
+
+    //             this.DataList.push(item1);
+
+    //             this.DataList.forEach((item1) => {
+    //               item1.limits = 10;
+    //               if (item1.limits > 10) {
+    //                 item1.limits = 10; // 寮哄埗灏嗗�艰缃负鏈�澶у��
+    //               } else if (item1.limits < 0) {
+    //                 item1.limits = 0; // 寮哄埗灏嗗�艰缃负鏈�灏忓��
+    //               }
+    //               this.updateProPrice(item1); // 鏇存柊浠锋牸鎴栧叾浠栭�昏緫
+    //             });
+
+    //           }
+    //         });
+    //       });
+    //     }  */ /* else {
+    //       this.checkedkey.push(this.Treedata[0].proId);
+    //       let proId = this.Treedata[0].proId;
+    //       this.TreedataList = this.Treedata.filter(
+    //         (item) => item.proId == proId
+    //       ); */
+
+    //     // 灏嗙涓�涓」鐩坊鍔犲埌 DataList
+    //     // this.TreedataList.forEach((item) => {
+    //     //   this.checkedListkey.push(item.proId);
+    //     //   this.DataList.push(item);
+    //     // });
+    //     /*  getProSonDxList(proId).then((res) => {
+    //         this.TreedataList = res.data.list;
+    //         this.TreedataList.forEach((item) => {
+    //           item.disabled = true;
+    //           this.checkedListkey.push(item.proId);
+    //           this.DataList.push(item);
+    //           this.DataList.forEach((item) => {
+    //             item.propinName = this.Treedata[0].proName;
+    //             item.propinPrice = this.Treedata[0].proPrice;
+    //           });
+    //           this.pics = 0;
+    //           this.DataList.forEach((item) => {
+    //             this.pics += item.proPrice;
+    //           });
+    //         });
+    //       }); */
+    //     // }
+    //     this.pics = this.DataList.reduce(
+    //       (total, item) => total + item.priceOrd,
+    //       0
+    //     );
+    //     this.loading = false;
+    //   });
+    // },
+    handleFilterInput() {
+      this.queryParams1.page = 1; // 鎼滅储鏃堕噸缃负绗竴椤�
+      this.getDataList(); // 璋冪敤鎺ュ彛鑾峰彇鏁版嵁
+      // 鍦ㄨ繃婊ゅ悗锛岄噸鏂拌缃�変腑鐘舵��
+      this.$nextTick(() => {
+        this.$refs.tree.setCheckedKeys(this.checkedNodes);
       });
     },
 
-    handleCurrentChecked(data, checked, checkedNodes) {
-      this.dataObj = data;
-      this.checkedObj = checked;
+    // 鍒嗛〉浜嬩欢
+    handlePageChange({ page, pageSize }) {
+      this.queryParams.page = page; // 鏇存柊褰撳墠椤�
+      this.queryParams.pageSize = pageSize; // 鏇存柊姣忛〉鏉℃暟
+      this.getDataList(); // 璋冪敤鎺ュ彛鑾峰彇鏁版嵁
+    },
 
+    handleCurrentChecked(data, checked, indeterminate) {
       if (checked) {
-        // 妫�鏌ユ槸鍚﹀凡瀛樺湪浜� DataL
-        this.DataList.push({
-          proId: data.proId,
-          proName: data.proName,
-          priceOrd: data.proPrice, // 鍘熶环锛岀‘淇濊祴鍊兼纭�
-          limits: 10,
-          priceNow: data.proPrice,
-        });
-        
+        // 濡傛灉宸查�夊垪琛ㄤ腑涓嶅瓨鍦ㄦ椤圭洰锛屽垯娣诲姞
+        if (!this.DataList.some(item => item.proId === data.proId)) {
+          this.DataList.push({
+            proId: data.proId,
+            proName: data.proName,
+            priceOrd: data.proPrice,
+            limits: 10,
+            priceNow: data.proPrice
+          });
+        }
+        // 娣诲姞鍒� checkedNodes 鏁扮粍
+        if (!this.checkedNodes.includes(data.proId)) {
+          this.checkedNodes.push(data.proId);
+        }
       } else {
-        let index = this.DataList.findIndex(
-          (item) => item.proId === data.proId
-        );
-        if (index !== -1) {
-          this.DataList.splice(index, 1);
+        // 鍙栨秷閫変腑鏃讹紝浠嶥ataList涓Щ闄�
+        this.DataList = this.DataList.filter(item => item.proId !== data.proId);
+        // 浠� checkedNodes 涓Щ闄�
+        const index = this.checkedNodes.indexOf(data.proId);
+        if (index > -1) {
+          this.checkedNodes.splice(index, 1);
         }
       }
-      this.pics = 0;
-      this.TotalPrice1 = 0;
-      this.DataList.forEach((item) => {
-        this.pics += item.priceOrd;
-        this.form.counterPrice += item.priceOrd;
-        this.TotalPrice1 += item.priceOrd; // 鍙互鏍规嵁闇�瑕佹敼鎴愪紭鎯犱环 `priceNow`
-      });
-    },
 
+      // 鏇存柊浼樻儬浠峰拰鎬讳环
+      this.updateTotalPrice();
+    }, 
+    updateTotalPrice() {
+      // 璁$畻鎵�鏈夐」鐩殑鎬讳紭鎯犱环
+      this.form.xianprice = this.DataList.reduce((sum, item) => {
+        return sum.plus(new Big(item.priceNow || "0"));
+      }, new Big(0)).toNumber();
+
+      // 璁$畻鍘熶环鎬诲拰
+      this.pics = this.DataList.reduce((total, item) => total + item.priceOrd, 0);
+    },
     spliceData() {
       for (var i = 0; i < this.DataList.length; i++) {
         for (var j = i + 1; j < this.DataList.length; j++) {

--
Gitblit v1.8.0