From 65b2b5c0dd571c3cd1d1cd6d4da5162f90590dd5 Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期五, 10 一月 2025 16:11:24 +0800
Subject: [PATCH] 套餐维护

---
 src/views/system/package/index.vue |  250 ++++++++++++++++++++++----------------------------
 1 files changed, 110 insertions(+), 140 deletions(-)

diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue
index b6a2b1a..7958cf7 100644
--- a/src/views/system/package/index.vue
+++ b/src/views/system/package/index.vue
@@ -315,7 +315,7 @@
     <el-dialog
       :title="title"
       :visible.sync="open"
-      width="1500px"
+      width="1400px"
       append-to-body
       :close-on-click-modal="false"
     >
@@ -550,8 +550,8 @@
         </el-table-column>
       </el-table> -->
 
-      <el-row :gutter="11">
-        <el-col :span="11">
+      <el-row style="display: flex; width: 1300px;">
+        <el-col>
           <div
             style="text-align: center; margin-bottom: 10px; margin-top: 10px"
           >
@@ -559,7 +559,7 @@
           </div>
           <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText">
           </el-input>
-          <div class="tab3">
+          <div class="tab3" style="height: 365px;">
             <el-tree
               class="filter-tree"
               v-loading="loading"
@@ -574,6 +574,14 @@
               :render-content="renderContent"
             >
             </el-tree>
+            <pagination
+              small
+              v-show="total > 0"
+              :total="total"
+              :page.sync="queryParams.page"
+              :limit.sync="queryParams.pageSize"
+              @pagination="getDataList"
+            />
           </div>
         </el-col>
         <!--  <el-col :span="6">
@@ -599,14 +607,14 @@
             </el-tree>
           </div>
         </el-col> -->
-        <el-col :span="11">
+        <el-col>
           <div class="grid-content bg-purple">
             <div
               style="
                 text-align: center;
                 margin-bottom: 10px;
                 margin-top: 10px;
-                margin-left: 16%;
+                margin-left: 8%;
               "
             >
               宸查�夐」鐩垪琛�
@@ -614,16 +622,21 @@
             <el-table
               :data="DataList"
               border
-              style="width: 80%; margin-left: 18%"
+              style="width: 90%; margin-left: 20px"
               height="400"
               :span-method="objectSpanMethod"
             >
               <el-table-column prop="proName" label="妫�鏌ラ」鐩�">
               </el-table-column>
 
-              <el-table-column prop="proPrice" label="鍘熶环" align="center">
+              <el-table-column
+                prop="priceOrd"
+                label="鍘熶环"
+                align="center"
+                width="80px"
+              >
               </el-table-column>
-              <el-table-column label="鎶樻墸">
+              <el-table-column label="鎶樻墸" width="100px">
                 <template slot-scope="scope">
                   <!-- 鍙緭鍏ョ函鏁板瓧鎶樻墸 -->
                   <el-input
@@ -639,7 +652,24 @@
                   </el-input>
                 </template>
               </el-table-column>
-              <el-table-column prop="priceNow" label="浼樻儬浠�" align="center">
+              <el-table-column
+                prop="priceNow"
+                label="浼樻儬浠�"
+                width="80px"
+                align="center"
+              >
+              </el-table-column>
+              <el-table-column label="鎿嶄綔" align="center" width="80px">
+                <template slot-scope="scope">
+                  <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-delete"
+                    @click="handleDelete1(scope.row)"
+                    title="鍒犻櫎"
+                  >
+                  </el-button>
+                </template>
               </el-table-column>
               <!-- <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="260px">
               </el-table-column> -->
@@ -697,7 +727,8 @@
 import Packages from "@/components/Packages";
 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/tijian";
+import { getProParentIdDxList, getProSonDxList } from "@/api/system/package";
 import {
   getPacList,
   getPacInFo,
@@ -768,8 +799,6 @@
       multiple: true,
       // 鏄剧ず鎼滅储鏉′欢
       showSearch: true,
-      // 鎬绘潯鏁�
-      total: 0,
       // 浣撴濂楅琛ㄦ牸鏁版嵁
       packageList: [],
       // 濂楅閫変腑鐨勭埗椤�
@@ -787,8 +816,11 @@
       open: false,
       Seachopen: false,
       pacId: "",
+      // 鎬绘潯鏁�
+      total: 0,
       // 鏌ヨ鍙傛暟
       queryParams: {
+        page: 1,
         pageNum: 1,
         pageSize: 10,
         pacName: null,
@@ -1023,13 +1055,23 @@
         this.form = response.data;
         this.form.keywords = this.form.keywords.slice(0, -1);
         this.form.keywords = this.form.keywords.split(",");
-        this.DataList = [];
+        // this.DataList = [];
+
         // this.pics = 0;
+        this.DataList = [];
         this.checkedkey = [];
         this.checkedListkey = [];
+        this.DataList = response.data.packageProjects;
+        this.DataList.forEach((item) => {
+          this.checkedkey.push(item.proId);
+          this.checkedListkey.push(item.proId);
+        });
+
+        // 鑾峰彇鏂扮殑鏁版嵁鍒楄〃锛堝鏋滈渶瑕侊級
         this.getDataList();
       });
     },
+
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
       this.title = "浣撴濂楅淇℃伅缁存姢";
@@ -1041,6 +1083,13 @@
         this.DataList = [];
         this.checkedkey = [];
         this.checkedListkey = [];
+        this.DataList = response.data.packageProjects;
+        this.DataList.forEach((item) => {
+          this.checkedkey.push(item.proId);
+          this.checkedListkey.push(item.proId);
+        });
+
+        // 鑾峰彇鏂扮殑鏁版嵁鍒楄〃锛堝鏋滈渶瑕侊級
         this.getDataList();
       });
     },
@@ -1084,6 +1133,16 @@
         });
       } else {
         this.form.tjProjectList.splice(index, 1);
+      }
+    },
+
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    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); // 鍙栨秷閫変腑鐘舵��
       }
     },
 
@@ -1132,13 +1191,9 @@
       })
         .then(() => {
           this.youhui = currentValue;
-          /*    if (this.youhui < 10) {
-            this.youhui = 10;
-            // this.$modal.msgError(`璇ヤ汉鍛樻渶楂樹紭鎯犳潈闄愪负${this.getInfodis}鎶榒);
-          } */
           this.DataList.forEach((item) => {
             item.limits = this.youhui;
-            const proPrice = new Big(item.proPrice);
+            const proPrice = new Big(item.priceOrd);
             const limits = new Big(item.limits);
             const result = proPrice.times(limits.div(10));
             item.priceNow = result.toNumber();
@@ -1153,7 +1208,7 @@
     },
 
     updateProPrice(row) {
-      const proPrice = new Big(row.proPrice);
+      const proPrice = new Big(row.priceOrd);
       const limits = new Big(row.limits);
       const result = proPrice.times(limits.div(10)); // ordPrice * (discount / 10)
       row.priceNow = result.toNumber();
@@ -1162,6 +1217,7 @@
       }, new Big(0)).toNumber();
       this.youhui =
         (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10;
+      console.log(this.youhui, 1212);
     },
     calculateDiscount(row) {
       if (row.limits > 10) {
@@ -1201,15 +1257,16 @@
     },
     getDataList() {
       this.loading = true;
-      getProParentIdDxList().then((response) => {
+      getProParentIdDxList(this.queryParams).then((response) => {
         this.Treedata = response.data.list;
-        if (this.form.tjProjectList) {
+        /*  if (this.form.tjProjectList) {
           this.form.tjProjectList.forEach((item) => {
-            this.Treedata.forEach((item1) => {
+            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) {
@@ -1219,44 +1276,23 @@
                   }
                   this.updateProPrice(item1); // 鏇存柊浠锋牸鎴栧叾浠栭�昏緫
                 });
-
-                /* let proId = item1.proId;
-                getProSonDxList(proId).then((res) => {
-                  this.TreedataList = res.data.list;
-                  this.TreedataList.forEach((item2) => {
-                    item2.disabled = true;
-                    this.checkedListkey.push(item2.proId);
-                    this.DataList.push(item2);
-                    if (this.DataList.length != 0) {
-                      this.DataList.forEach((item) => {
-                        if (item.proParentId == item1.proId) {
-                          item.propinName = item1.proName;
-                          item.propinPrice = item1.proPrice;
-                        }
-                      });
-                      this.pics = 0;
-                      this.DataList.forEach((item) => {
-                        this.pics += item.proPrice;
-                      });
-                    }
-                  });
-                }); */
+ 
               }
             });
           });
-        } else {
+        }  */ /* 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) => {
+        // 灏嗙涓�涓」鐩坊鍔犲埌 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;
@@ -1272,9 +1308,9 @@
               });
             });
           }); */
-        }
+        // }
         this.pics = this.DataList.reduce(
-          (total, item) => total + item.proPrice,
+          (total, item) => total + item.priceOrd,
           0
         );
         this.loading = false;
@@ -1285,97 +1321,32 @@
       this.dataObj = data;
       this.checkedObj = checked;
 
-      if (checked == true) {
-        // 灏嗛�変腑鐨勯」鐩坊鍔犲埌 DataList
-        this.checkedListkey.push(data.proId);
+      if (checked) {
+        // 妫�鏌ユ槸鍚﹀凡瀛樺湪浜� DataL
         this.DataList.push({
           proId: data.proId,
           proName: data.proName,
-          proPrice: data.proPrice, // 鍘熶环
-          limits: 10, // 榛樿鎶樻墸锛�100%锛�
-          priceNow: data.proPrice, // 榛樿浼樻儬浠蜂笌鍘熶环鐩稿悓
+          priceOrd: data.proPrice, // 鍘熶环锛岀‘淇濊祴鍊兼纭�
+          limits: 10,
+          priceNow: data.proPrice,
         });
-
-        // 閲嶆柊璁$畻鎬讳环
-        this.pics = 0;
-        this.TotalPrice1 = 0;
-        this.DataList.forEach((item) => {
-          this.pics += item.proPrice;
-          this.form.counterPrice += item.proPrice;
-          this.TotalPrice1 += item.proPrice; // 鍙互鏍规嵁闇�瑕佹敼鎴愪紭鎯犱环 `priceNow`
-        });
-      } else if (checked == false) {
-        // 浠� DataList 涓Щ闄ゅ彇娑堥�変腑鐨勯」鐩�
+        
+      } else {
         let index = this.DataList.findIndex(
           (item) => item.proId === data.proId
         );
         if (index !== -1) {
           this.DataList.splice(index, 1);
         }
-
-        // 閲嶆柊璁$畻鎬讳环
-        this.pics = 0;
-        this.TotalPrice1 = 0;
-        this.DataList.forEach((item) => {
-          this.pics += item.proPrice;
-          this.form.counterPrice += item.proPrice;
-          this.TotalPrice1 += item.proPrice; // 鍙互鏍规嵁闇�瑕佹敼鎴愪紭鎯犱环 `priceNow`
-        });
       }
+      this.pics = 0;
+      this.TotalPrice1 = 0;
+      this.DataList.forEach((item) => {
+        this.pics += item.priceOrd;
+        this.form.counterPrice += item.priceOrd;
+        this.TotalPrice1 += item.priceOrd; // 鍙互鏍规嵁闇�瑕佹敼鎴愪紭鎯犱环 `priceNow`
+      });
     },
-
-    /* handleCurrentChecked(data, checked, checkedNodes) {
-      this.dataObj = data;
-      this.checkedObj = checked;
-      if (checked == true) {
-        // this.$refs.tree.setCheckedKeys([data.proId]);
-        let proId = data.proId;
-        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.spliceData();
-            this.pics = 0;
-            this.DataList.forEach((item1) => {
-              this.pics += item1.proPrice;
-              if (item1.proParentId == data.proId) {
-                item1.propinName = data.proName;
-                item1.propinPrice = this.dataObj.proPrice;
-              }
-            });
-          });
-          this.TotalPrice1 = 0;
-          this.pics = 0;
-          if (this.DataList.length != 0) {
-            this.list1 = false;
-            this.DataList.forEach((item) => {
-              this.TotalPrice1 = item.proPrice + this.TotalPrice1;
-              this.pics += item.proPrice;
-            });
-          }
-        });
-      } else if (checked == false) {
-        let proId = data.proId;
-        getProSonDxList(proId).then((res) => {
-          this.TreedataList = res.data.list;
-          this.TreedataList.forEach((item) => {
-            item.disabled = true;
-          });
-          this.checkedListkey = [];
-          this.DataList.forEach((item, index) => {
-            if (item.proParentId == this.dataObj.proId) {
-              this.DataList.splice(index, this.TreedataList.length);
-            }
-          });
-          this.pics = 0;
-          this.DataList.forEach((item, index) => {
-            this.pics += item.proPrice;
-          });
-        });
-      }
-    }, */
 
     spliceData() {
       for (var i = 0; i < this.DataList.length; i++) {
@@ -1399,7 +1370,7 @@
             this.TotalPrice1 = 0;
             this.pics = 0;
             this.DataList.forEach((item1) => {
-              this.pics += item1.proPrice;
+              this.pics += item1.priceOrd;
               // this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
             });
           }
@@ -1408,7 +1379,7 @@
         this.DataList.push(data);
         this.pics = 0;
         this.DataList.forEach((item1) => {
-          this.pics += item1.proPrice;
+          this.pics += item1.priceOrd;
           if (item1.proParentId == this.dataObj.proId) {
             item1.propinName = this.dataObj.proName;
             item1.propinPrice = this.dataObj.proPrice;
@@ -1419,7 +1390,7 @@
         this.pics = 0;
         this.DataList.forEach((item1) => {
           // this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
-          this.pics += item1.proPrice;
+          this.pics += item1.priceOrd;
         });
       }
     },
@@ -1441,7 +1412,6 @@
 
     /** 鎻愪氦鎸夐挳 */
     submitForm() {
-      console.log(this.form, 999);
       this.form.limits = this.youhui;
       this.form.price = this.pics;
       this.form.priceNow = this.queryParams.xianprice;
@@ -1460,7 +1430,7 @@
           proId: item.proId,
           priceNow: item.priceNow,
           limits: item.limits,
-          priceOrd: item.proPrice,
+          priceOrd: item.priceOrd,
         });
       });
       let data = {

--
Gitblit v1.8.0