From 16ab2673285119a38a78f635c0b74384b423c55e Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期二, 29 四月 2025 17:12:50 +0800
Subject: [PATCH] 1

---
 src/views/doctor/checkAll/index.vue  |    5 
 src/views/hosp/advicerules/index.vue |  369 +++++++++++++++++++++++++++++++---------
 src/api/hosp/advicerules.js          |   10 +
 src/views/system/package/index.vue   |   87 +++++++++
 src/views/hosp/project/index.vue     |   26 ++
 5 files changed, 407 insertions(+), 90 deletions(-)

diff --git a/src/api/hosp/advicerules.js b/src/api/hosp/advicerules.js
index 0bafcd9..3dda435 100644
--- a/src/api/hosp/advicerules.js
+++ b/src/api/hosp/advicerules.js
@@ -42,3 +42,13 @@
         method: 'delete'
     })
 }
+
+// 鑾峰彇浣撴璇婃柇寤鸿绉戝鍒楄〃鎺ュ彛
+export function getTjProAdvicerulesKsList(query) {
+    return request({
+        url: '/hosp/advicerules/getTjProAdvicerulesKsList' ,
+        method: 'get',
+        params: query
+    })
+}
+
diff --git a/src/views/doctor/checkAll/index.vue b/src/views/doctor/checkAll/index.vue
index 02f1ecd..cdb1d10 100644
--- a/src/views/doctor/checkAll/index.vue
+++ b/src/views/doctor/checkAll/index.vue
@@ -1113,6 +1113,9 @@
         this.newItem.jcxm = value;
       }
     },
+    change(val) {
+      console.log('閫変腑鐨勫�兼槸锛�', val);
+    },
 
     addAdvice() {
       this.newItem.map.push({ bt: '', nr: '' });
@@ -1132,6 +1135,8 @@
       shanchu({
         id: row.orderDetailId,
       }).then((res) => {
+        console.log(res,1111);
+        
         if (res.code === 200) {
           const parentItem = this.yichangList.find(item =>
             item.sone.some(soneItem => soneItem.orderDetailId === row.orderDetailId)
diff --git a/src/views/hosp/advicerules/index.vue b/src/views/hosp/advicerules/index.vue
index 484251f..e3620df 100644
--- a/src/views/hosp/advicerules/index.vue
+++ b/src/views/hosp/advicerules/index.vue
@@ -60,8 +60,7 @@
       </el-col>
       <el-col :span="1.5">
         <el-button
-          type="success"
-          plain
+          type="primary"
           icon="el-icon-edit"
           size="mini"
           :disabled="single"
@@ -72,8 +71,7 @@
       </el-col>
       <el-col :span="1.5">
         <el-button
-          type="danger"
-          plain
+          type="primary"
           icon="el-icon-delete"
           size="mini"
           :disabled="multiple"
@@ -82,7 +80,7 @@
           >鍒犻櫎
         </el-button>
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="warning"
           plain
@@ -102,98 +100,147 @@
           v-hasPermi="['hosp:advicerules:export']"
           >瀵煎嚭
         </el-button>
-      </el-col>
+      </el-col> -->
       <right-toolbar
         :showSearch.sync="showSearch"
         @queryTable="getList"
       ></right-toolbar>
     </el-row>
 
-    <el-table
-      v-loading="loading"
-      :data="advicerulesList"
-      @selection-change="handleSelectionChange"
-    >
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="搴忓彿" width="50" align="center">
-        <template slot-scope="scope">
-          {{ scope.$index + 1 }}
-          <!-- 浣跨敤 $index 鏉ユ樉绀哄簭鍙凤紝浠�1寮�濮� -->
-        </template>
-      </el-table-column>
-      <el-table-column label="缂栫爜" align="center" prop="bm" />
-      <el-table-column label="绉戝" align="center" prop="ks" />
-      <el-table-column label="妫�鏌ラ」鐩�" align="center" prop="jcxm" />
-      <el-table-column
-        label="涓昏璇婃柇"
-        align="center"
-        :show-overflow-tooltip="true"
-        width="120"
-        prop="zyzd"
-      />
-      <el-table-column
-        label="寤鸿鍚嶇О"
-        align="center"
-        :show-overflow-tooltip="true"
-        width="150"
-        prop="jymc"
-      />
-      <el-table-column
-        label="寤鸿鍐呭"
-        align="center"
-        :show-overflow-tooltip="true"
-        width="200"
-        prop="jynr"
-      />
-      <el-table-column label="鑼冨洿" align="center" prop="fwz" />
-      <el-table-column label="鑼冨洿鏈�灏忓��" align="center" prop="fwzxz" />
-      <el-table-column label="鑼冨洿鏈�澶у��" align="center" prop="fwzdz" />
-      <el-table-column label="寮傚父鏍囧織" align="center" prop="ycbz" />
-      <el-table-column label="鏄惁鐤剧梾" align="center" prop="sfjb">
-      </el-table-column>
-      <el-table-column label="鏄惁甯歌鐥�" align="center" prop="sfcjb">
-      </el-table-column>
-      <el-table-column label="鏄惁鎱㈡�х梾" align="center" prop="sfmxb">
-      </el-table-column>
-      <el-table-column
-        label="鏄惁閲嶅ぇ鐤剧梾"
-        align="center"
-        width="120"
-        prop="sfzdjb"
-      ></el-table-column>
-      <el-table-column
-        label="鎿嶄綔"
-        align="center"
-        class-name="small-padding fixed-width"
-      >
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['hosp:advicerules:edit']"
+    <el-row :gutter="20" style="display: flex">
+      <el-col :span="3" :xs="24">
+        <div class="head-container">
+          <el-input
+            v-model="xmmc"
+            placeholder="璇疯緭鍏ラ」鐩悕"
+            clearable
+            size="small"
+            prefix-icon="el-icon-search"
+            style="margin-bottom: 20px"
+          />
+        </div>
+        <div class="scrollable-container">
+          <div class="content">
+            <el-tree
+              :data="deptOptions"
+              :props="defaultProps"
+              :expand-on-click-node="false"
+              :filter-node-method="filterNode"
+              ref="tree"
+              node-key="id"
+              :default-expanded-keys="treeId"
+              highlight-current
+              @node-click="handleNodeClick"
+            />
+          </div>
+        </div>
+      </el-col>
+      <el-col :span="20" :xs="24">
+        <el-table
+          v-loading="loading"
+          :data="advicerulesList"
+          @selection-change="handleSelectionChange"
+          height="520"
+        >
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="搴忓彿" width="50" align="center">
+            <template slot-scope="scope">
+              {{ scope.$index + 1 }}
+              <!-- 浣跨敤 $index 鏉ユ樉绀哄簭鍙凤紝浠�1寮�濮� -->
+            </template>
+          </el-table-column>
+          <el-table-column label="缂栫爜" align="center" prop="bm" />
+          <el-table-column label="绉戝" align="center" prop="ks" />
+          <el-table-column label="妫�鏌ラ」鐩�" align="center" prop="jcxm" />
+          <el-table-column
+            label="涓昏璇婃柇"
+            align="center"
+            :show-overflow-tooltip="true"
+            width="120"
+            prop="zyzd"
+          />
+          <el-table-column
+            label="寤鸿鍚嶇О"
+            align="center"
+            :show-overflow-tooltip="true"
+            width="150"
+            prop="jymc"
+          />
+          <el-table-column
+            label="寤鸿鍐呭"
+            align="center"
+            :show-overflow-tooltip="true"
+            width="200"
+            prop="jynr"
+          />
+          <el-table-column
+            label="鎬у埆"
+            align="center"
+            prop="xb"
+            :formatter="formatSex"
+          />
+          <el-table-column label="鑼冨洿" align="center" prop="fwz" />
+          <el-table-column label="鑼冨洿鏈�灏忓��" align="center" prop="fwzxz" />
+          <el-table-column label="鑼冨洿鏈�澶у��" align="center" prop="fwzdz" />
+          <el-table-column label="寮傚父鏍囧織" align="center" prop="ycbz" />
+          <el-table-column label="鏄惁鐤剧梾" align="center" prop="sfjb">
+          </el-table-column>
+          <el-table-column label="鏄惁甯歌鐥�" align="center" prop="sfcjb">
+          </el-table-column>
+          <el-table-column label="鏄惁鎱㈡�х梾" align="center" prop="sfmxb">
+          </el-table-column>
+          <el-table-column
+            label="鏄惁閲嶅ぇ鐤剧梾"
+            align="center"
+            width="120"
+            prop="sfzdjb"
+          ></el-table-column>
+          <el-table-column
+            label="鎿嶄綔"
+            align="center"
+            class-name="small-padding fixed-width"
           >
-          </el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['hosp:advicerules:remove']"
-          >
-          </el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-edit"
+                @click="handleUpdate(scope.row)"
+                v-hasPermi="['hosp:advicerules:edit']"
+              >
+              </el-button>
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="handleDelete(scope.row)"
+                v-hasPermi="['hosp:advicerules:remove']"
+              >
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <div class="pag">
+          <div class="pag1">
+            <pagination
+              v-show="total > 0"
+              :total="total"
+              :page.sync="queryParams.pageNum"
+              :limit.sync="queryParams.pageSize"
+              @pagination="getListByXmId"
+            />
+          </div>
+        </div>
+      </el-col>
+    </el-row>
+<!-- 
     <pagination
       v-show="total > 0"
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
-    />
+    /> -->
 
     <!-- 娣诲姞鎴栦慨鏀逛綋妫�椤圭洰寤鸿瑙勫垯鏂拌〃瀵硅瘽妗� -->
     <el-dialog
@@ -262,11 +309,24 @@
           />
         </el-form-item>
         <el-form-item label="寮傚父鏍囧織" prop="ycbz">
-          <el-input
+          <!-- <el-input
             v-model="form.ycbz"
             style="width: 200px"
             placeholder="璇疯緭鍏ュ紓甯告爣蹇�"
-          />
+          /> -->
+          <el-select
+            v-model="form.ycbz"
+            placeholder="璇烽�夋嫨寮傚父鏍囧織"
+            style="width: 200px"
+            clearable
+          >
+            <el-option
+              v-for="item in ycdata"
+              :key="item.value"
+              :label="item.label"
+              :value="item.label"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="鐤剧梾" prop="sfjb">
           <el-checkbox v-model="form.sfjb" true-label="鏄�" false-label="鍚�">
@@ -292,6 +352,21 @@
             true-label="鏄�"
             false-label=""
           ></el-checkbox>
+        </el-form-item>
+        <el-form-item label="鎬у埆" prop="xb">
+          <el-select
+            v-model="form.xb"
+            placeholder="璇烽�夋嫨浣撴浜烘�у埆"
+            style="width: 200px"
+            clearable
+          >
+            <el-option
+              v-for="dict in dict.type.sys_user_sex"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="寤鸿鍚嶇О" prop="jymc" style="display: block">
           <el-input
@@ -469,6 +544,7 @@
   delAdvicerules,
   addAdvicerules,
   updateAdvicerules,
+  getTjProAdvicerulesKsList,
 } from "@/api/hosp/advicerules";
 import { listAdvice } from "@/api/advice/advice";
 import { getToken } from "@/utils/auth";
@@ -476,12 +552,29 @@
 
 export default {
   name: "Advicerules",
+  dicts: ["sys_user_sex"],
   data() {
     return {
       // 閬僵灞�
       loading: true,
       // 閫変腑鏁扮粍
       ids: [],
+      ycdata: [
+        { label: "鈫�", value: "up" },
+        { label: "鈫�", value: "down" },
+        { label: "闃虫��", value: "positive" },
+        { label: "寮遍槼鎬�", value: "weak_positive" },
+        { label: "4+", value: "4plus" },
+        { label: "3+", value: "3plus" },
+        { label: "2+", value: "2plus" },
+        { label: "1+", value: "1plus" },
+        { label: "+1", value: "plus1" },
+        { label: "+2", value: "plus2" },
+        { label: "+3", value: "plus3" },
+        { label: "+4", value: "plus4" },
+        { label: "+", value: "plus" },
+        { label: "+-", value: "plus_minus" },
+      ],
       // 闈炲崟涓鐢�
       single: true,
       // 闈炲涓鐢�
@@ -494,15 +587,22 @@
       // 浣撴椤圭洰寤鸿瑙勫垯鏂拌〃琛ㄦ牸鏁版嵁
       advicerulesList: [],
       adviceList: [],
+      deptOptions: [],
+      treeId: [],
       // 寮瑰嚭灞傛爣棰�
       title: "",
       // 鏄惁鏄剧ず寮瑰嚭灞�
       open: false,
       key: "",
+      xmmc: "",
       moduleName: "exampleModule", // 绀轰緥妯″潡鍚�
       businessName: "exampleBusiness", // 绀轰緥涓氬姟鍚�
       objs: {},
       departmentOptions: [],
+      defaultProps: {
+        children: "children",
+        label: "label",
+      },
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -529,9 +629,13 @@
         pageSize: 10,
       },
       // 琛ㄥ崟鍙傛暟
-      form: {},
+      form: {
+        xb: "2",
+      },
       // 琛ㄥ崟鏍¢獙
-      rules: {},
+      rules: {
+        ks: [{ required: true, message: " ", trigger: ["blur", "change"] }],
+      },
       upload: {
         // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
         open: false,
@@ -552,15 +656,80 @@
   created() {
     this.getList();
   },
+  watch: {
+    // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
+    xmmc(val) {
+      this.$refs.tree.filter(val);
+    },
+    treeId(newVal, oldVal) {
+      if (newVal) {
+        this.$nextTick(() => {
+          const node = document.querySelector(
+            ".el-tree-node__children .el-tree-node__content"
+          );
+          if (node) {
+            node.click();
+          } else {
+            console.warn("娌℃湁鎵惧埌 el-tree 鑺傜偣锛屾棤娉曡Е鍙戠偣鍑�");
+          }
+        });
+      }
+    },
+  },
   methods: {
     /** 鏌ヨ浣撴椤圭洰寤鸿瑙勫垯鏂拌〃鍒楄〃 */
     getList() {
+      // this.loading = true;
+      // listAdvicerules(this.queryParams).then((response) => {
+      //   this.advicerulesList = response.rows;
+      //   this.total = response.total;
+      //   this.loading = false;
+      // });
+      getTjProAdvicerulesKsList().then((response) => {
+        this.deptOptions = response.data.map((name, index) => {
+          return {
+            id: index + 1, // 鍙嚜瀹氫箟鍞竴 ID
+            label: name, // el-tree 榛樿鐨勬樉绀哄瓧娈�
+          };
+        });
+
+        // 璁剧疆榛樿灞曞紑椤�
+        this.treeId = [this.deptOptions[0]?.id];
+        this.queryParams.proId = this.deptOptions[0]?.id;
+        this.getListByXmId();
+      });
+    },
+
+    handleNodeClick(data) {
+      this.formIn = data;
+      this.queryParams.ks = data.label;
+      this.getListByXmId();
+    },
+
+    getListByXmId() {
       this.loading = true;
       listAdvicerules(this.queryParams).then((response) => {
+        response.rows.forEach((item, index) => {
+          item.newID =
+            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
+            index +
+            1;
+        });
         this.advicerulesList = response.rows;
         this.total = response.total;
         this.loading = false;
       });
+    },
+
+    // 绛涢�夎妭鐐�
+    filterNode(value, data) {
+      if (!value) return true;
+      // return data.label.indexOf(value) !== -1;
+      return (
+        data.label &&
+        typeof data.label === "string" &&
+        data.label.indexOf(value) !== -1
+      );
     },
 
     idFn(value) {
@@ -575,6 +744,12 @@
     cancel() {
       this.open = false;
       this.reset();
+    },
+    formatSex(row) {
+      const dictItem = this.dict.type.sys_user_sex.find(
+        (item) => item.value === row.xb
+      );
+      return dictItem ? dictItem.label : "";
     },
     // 琛ㄥ崟閲嶇疆
     reset() {
@@ -599,6 +774,7 @@
         createBy: null,
         updateBy: null,
         deleted: null,
+        xb: "2",
       };
       this.resetForm("form");
     },
@@ -697,6 +873,7 @@
     submitForm() {
       this.$refs["form"].validate((valid) => {
         if (valid) {
+          this.form.xb = this.form.xb === "1" ? "1" : null;
           if (this.form.id != null) {
             updateAdvicerules(this.form).then((response) => {
               console.log(response, 1111333);
@@ -788,3 +965,19 @@
 };
 </script>
 
+<style scoped>
+.scrollable-container {
+  width: 200px;
+  height: 520px;
+  overflow: auto;
+  border: 1px solid #ccc;
+  position: relative;
+}
+
+.content {
+  width: 1000px;
+  /* 璁剧疆鍐呭鐨勫搴︼紝浠ヨЕ鍙戞按骞虫粴鍔ㄦ潯 */
+  height: 1000px;
+  /* 璁剧疆鍐呭鐨勯珮搴︼紝浠ヨЕ鍙戝瀭鐩存粴鍔ㄦ潯 */
+}
+</style>
\ No newline at end of file
diff --git a/src/views/hosp/project/index.vue b/src/views/hosp/project/index.vue
index 0ae2020..7e0036e 100644
--- a/src/views/hosp/project/index.vue
+++ b/src/views/hosp/project/index.vue
@@ -77,6 +77,11 @@
               <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.proCheckMethod" />
             </template>
           </el-table-column>
+          <el-table-column label="鏄惁澶栭��" align="center" prop="proDelivery" :show-overflow-tooltip="true" width="75px">
+            <template v-slot="scope">
+              {{ scope.row.proDelivery === 0 ? "鏄�" : scope.row.proDelivery === 1 ? "鍚�" : "" }}
+            </template>
+          </el-table-column>
           <el-table-column label="椤圭洰鏍囧噯鍊�" align="center" prop="proScope" :show-overflow-tooltip="true" width="90px">
           </el-table-column>
           <el-table-column label="Lis椤圭洰鍚嶇О" align="center" prop="lisXmmc" :show-overflow-tooltip="true" width="200px">
@@ -232,6 +237,12 @@
         <el-form-item label="鏄惁鍙備笌寮傚父" prop="sfcyyc">
           <el-select v-model="form.sfcyyc" placeholder="璇烽�夋嫨鏄惁鍙備笌寮傚父" style="width: 260px">
             <el-option v-for="dict in dictTypesy" :key="dict.value" :label="dict.label"
+              :value="dict.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鏄惁澶栭��" prop="proDelivery">
+          <el-select v-model="form.proDelivery" placeholder="璇烽�夋嫨鏄惁澶栭��" style="width: 200px">
+            <el-option v-for="dict in wsTypesy" :key="dict.value" :label="dict.label"
               :value="dict.value"></el-option>
           </el-select>
         </el-form-item>
@@ -457,6 +468,16 @@
           label:"鍚�"
         }
       ],
+      wsTypesy: [
+        {
+          value:"0",
+          label:"鏄�"
+        },
+        {
+          value:"1",
+          label:"鍚�"
+        }
+      ],
       List: false,
       deptName: "",
       deptOption: [],
@@ -532,6 +553,7 @@
         proSex: "2",
         resultType: "",
         sfcyyc: "0",
+        proDelivery:"1"
       },
       rules: {
         createTime: [
@@ -742,6 +764,7 @@
       this.title = "浣撴椤圭洰淇℃伅缁存姢";
       this.form.deptId = this.queryParams.deptId || null;
       this.form.proCheckMethod = "N";
+      this.form.proDelivery = "1";
       if (this.key === "Y") {
         gettreeList().then((response) => {
           this.deptOptionstree = response.data;
@@ -923,6 +946,7 @@
         tjStandardList: [],
         proStatus: "0",
         resultType: "1",
+        proDelivery:'1'
       };
       this.resetForm("form");
     },
@@ -1007,6 +1031,7 @@
       this.form = this.xiugaiList;
       this.form.proStatus = this.form.proStatus.toString();
       this.form.sfcyyc = this.form.sfcyyc.toString();
+      this.form.proDelivery = this.form.proDelivery.toString();
       this.proParent = true;
       this.isPriceDisabled = true;
       getlist().then((response) => {
@@ -1034,6 +1059,7 @@
         this.showRentPrise = !this.showPrise;
         this.form.proStatus = this.form.proStatus.toString();
         this.form.sfcyyc = this.form.sfcyyc.toString();
+        this.form.proDelivery =  this.form.proDelivery.toString() 
         this.form.consumablesList = response.data.consumablesList;
         this.form.tjStandardList = response.data.tjStandardList;
         if (this.form.tjStandardList) {
diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue
index 020d483..7a4c5e5 100644
--- a/src/views/system/package/index.vue
+++ b/src/views/system/package/index.vue
@@ -118,8 +118,12 @@
         <el-form-item label="鎶樻墸">
           <el-input-number style="width: 150px" v-model="youhui" :precision="2" :step="0.1" :max="10" :min="0.1" @change="debounceNumberChange" :debounce="3000"></el-input-number>
         </el-form-item>
-        <el-form-item label="鐜颁环" prop="xianprice">
+        <!-- <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"/>
+        </el-form-item> -->
+        <el-form-item label="鐜颁环" prop="xianprice">
+          <el-input v-model="form.xianprice" placeholder="鐜颁环" clearable style="width: 140px" @input="changeXianjia"
+            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 clearable>
@@ -777,7 +781,7 @@
       this.DataList = this.DataList.filter((item) => item.proParentId !== row.proParentId);
       this.TotalPrice1 = this.DataList.reduce((sum, item) => sum + item.priceOrd, 0);
     },
-    submitForm() {
+    /* submitForm() {
       this.form.limits = this.youhui;
       this.form.price = this.pics;
       this.form.priceNow = this.form.xianprice;
@@ -813,6 +817,85 @@
         this.open = false;
         this.getList();
       });
+    }, */
+    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;
+      if (this.keys) {
+        this.form.keywords = this.keys;
+      }
+      let packageProjects = [];
+      this.DataList.forEach((item) => {
+        packageProjects.push({
+          proName: item.proName,
+          proId: item.proId,
+          priceNow: item.priceNow,
+          limits: item.limits,
+          priceOrd: item.priceOrd,
+        });
+      });
+      let data = {
+        pacName: this.form.pacName,
+        limits: this.form.limits,
+        pacStatus: this.form.pacStatus,
+        packageProjects: packageProjects, 
+        newPrice: this.form.xianprice,
+        price: this.pics,
+        pacId: this.form.pacId || null,
+        isOnSale: this.form.isOnSale,
+        sort: this.form.sort,
+        retailPrice: this.form.retailPrice,
+        tjCategory: this.form.tjCategory,
+        pacRemark: this.form.pacRemark,
+        detail: this.form.detail,
+      };
+      
+      return saveOreditTjPacNew(data).then((res) => {
+        this.open = false;
+        this.getList();
+      });
     },
     handleDelete(row) {
       const pacIds = row.pacId || this.ids;

--
Gitblit v1.8.0