From cb9989c7167856993a02238fde5a0ddd37c2c0cd Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期二, 29 四月 2025 18:09:02 +0800
Subject: [PATCH] 1

---
 src/views/hosp/advicerules/index.vue |    4 +-
 src/views/system/package/index.vue   |   77 ++++++++++++++++++++++++--------------
 2 files changed, 50 insertions(+), 31 deletions(-)

diff --git a/src/views/hosp/advicerules/index.vue b/src/views/hosp/advicerules/index.vue
index 855db34..73feb2a 100644
--- a/src/views/hosp/advicerules/index.vue
+++ b/src/views/hosp/advicerules/index.vue
@@ -612,7 +612,7 @@
       },
       // 琛ㄥ崟鍙傛暟
       form: {
-        xb: "2",
+        // xb: "2",
       },
       // 琛ㄥ崟鏍¢獙
       rules: {
@@ -748,7 +748,7 @@
         createBy: null,
         updateBy: null,
         deleted: null,
-        xb: "2",
+        // xb: "2",
       };
       if (this.$refs.form) {
         this.$refs.form.resetFields();
diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue
index 4eca4f1..af9f3af 100644
--- a/src/views/system/package/index.vue
+++ b/src/views/system/package/index.vue
@@ -206,7 +206,7 @@
 
         <el-form-item label="鐜颁环" prop="xianprice">
           <el-input v-model="form.xianprice" placeholder="鐜颁环" clearable style="width: 140px" @input="changeXianjia"
-            @blur="numberChangeXianPrice(youhui, youhui)" type="number" :debounce="3000" min="0"/>
+            type="number" :debounce="3000" min="0"/>
         </el-form-item>
         <el-form-item label="鍏抽敭瀛�" prop="keywords">
           <el-select multiple v-model="form.keywords" placeholder="璇烽�夋嫨鍏抽敭瀛�" style="width: 160px" @change="sel" filterable
@@ -506,30 +506,7 @@
         this.numberChange(currentValue, oldValue);
       }, 300);
     },
-    numberChange(currentValue, oldValue) {
-      this.$confirm("纭畾淇敼鎵�鏈夊瓙椤圭殑鎶樻墸鍚楋紵", "鎻愮ず", {
-        confirmButtonText: "纭畾",
-        cancelButtonText: "鍙栨秷",
-        type: "warning",
-      })
-        .then(() => {
-          this.youhui = currentValue;
-          this.DataList.forEach((item) => {
-            item.limits = this.youhui;
-            const proPrice = new Big(item.priceOrd);
-            const limits = new Big(item.limits);
-            const result = proPrice.times(limits.div(10));
-            item.priceNow = result.toNumber();
-          });
-          this.form.xianprice = this.DataList.reduce((sum, item) => {
-            return sum.plus(new Big(item.priceNow || "0"));
-          }, new Big(0)).toNumber();
-          this.lastXianPrice = this.form.xianprice;
-        })
-        .catch(() => {
-          this.youhui = oldValue;
-        });
-    },
+   
     updateProPrice(row) {
       const proPrice = new Big(row.priceOrd);
       const limits = new Big(row.limits);
@@ -884,7 +861,7 @@
         this.youhui = (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10;
       }
     },
-    numberChangeXianPrice(currentValue, oldValue) {
+   /*  numberChangeXianPrice(currentValue, oldValue) {
       if (this.form.xianprice === this.lastXianPrice || !this.form.xianprice) return;
       clearTimeout(this.debounceTimer);
       this.debounceTimer = setTimeout(() => {
@@ -918,7 +895,7 @@
             this.youhui = oldValue;
           });
       }, 500);
-    },
+    }, */
     spliceData() {
       for (var i = 0; i < this.DataList.length; i++) {
         for (var j = i + 1; j < this.DataList.length; j++) {
@@ -947,6 +924,47 @@
       this.TotalPrice1 = this.DataList.reduce((sum, item) => sum + item.priceOrd, 0);
     },
     submitForm() {
+      // 妫�鏌ョ幇浠锋槸鍚﹀彂鐢熷彉鍖�
+      if (this.form.xianprice !== this.lastXianPrice) {
+        this.$confirm("纭畾淇敼鎵�鏈夊瓙椤圭殑鎶樻墸鍚楋紵", "鎻愮ず", {
+          confirmButtonText: "纭畾",
+          cancelButtonText: "鍙栨秷",
+          type: "warning",
+        }).then(() => {
+          // 鏇存柊鎵�鏈夊瓙椤圭殑鎶樻墸
+          this.youhui = (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10;
+          let totalYsprice = new Big(0);
+          this.DataList.forEach((item) => {
+            item.limits = this.youhui;
+            const ordPrice = new Big(item.priceOrd);
+            const discount = new Big(item.limits);
+            const result = ordPrice.times(discount.div(10));
+            item.priceNow = result.toNumber();
+            totalYsprice = totalYsprice.plus(new Big(item.priceNow));
+          });
+          
+          if (!totalYsprice.eq(this.form.xianprice)) {
+            const diff = new Big(this.form.xianprice).minus(totalYsprice);
+            if (this.DataList.length > 0) {
+              const lastItem = this.DataList[this.DataList.length - 1];
+              const newYsPrice = new Big(lastItem.priceNow).plus(diff).toNumber();
+              this.$set(this.DataList[this.DataList.length - 1], "priceNow", newYsPrice);
+            }
+          }
+          
+          // 淇濆瓨鏁版嵁
+          return this.saveData();
+        }).catch(() => {
+          // 鐢ㄦ埛鍙栨秷鎿嶄綔锛屾仮澶嶅師鏉ョ殑鐜颁环
+          this.form.xianprice = this.lastXianPrice;
+        });
+      } else {
+        // 鐜颁环娌℃湁鍙樺寲锛岀洿鎺ヤ繚瀛�
+        this.saveData();
+      }
+    },
+    // 鏂板涓�涓柟娉曞鐞嗕繚瀛橀�昏緫
+    saveData() {
       this.form.limits = this.youhui;
       this.form.price = this.pics;
       this.form.priceNow = this.form.xianprice;
@@ -967,7 +985,7 @@
         pacName: this.form.pacName,
         limits: this.form.limits,
         pacStatus: this.form.pacStatus,
-        packageProjects: packageProjects,
+        packageProjects: packageProjects, 
         newPrice: this.form.xianprice,
         price: this.pics,
         pacId: this.form.pacId || null,
@@ -978,7 +996,8 @@
         pacRemark: this.form.pacRemark,
         detail: this.form.detail,
       };
-      saveOreditTjPacNew(data).then((res) => {
+      
+      return saveOreditTjPacNew(data).then((res) => {
         this.open = false;
         this.getList();
       });

--
Gitblit v1.8.0