1
wwl
2025-01-16 410d5bf8bc5ef56be822105e71dac02f43aa9463
src/views/system/tijian/index.vue
@@ -929,7 +929,7 @@
                  style="width: 150px"
                ></el-input>
              </el-form-item>
              <el-form-item label="优惠">
              <el-form-item label="折扣">
                <!-- {{ discount }} -->
                <el-input-number
                  ref="inputNumber"
@@ -1441,6 +1441,7 @@
  },
  data() {
    return {
      isSubmitting: false,
      open1: false,
      filterage: "",
      checkedkeys: [],
@@ -1502,7 +1503,6 @@
      taocan: false,
      top: true,
      value: "2",
      getInfodis: "",
      srcUrl: "",
      hides: false,
      hide: true,
@@ -1642,7 +1642,7 @@
        cusIsvip: null,
      },
      // 添加
      lastXianPrice: 0,
      // 表单参数
      // 表单参数
      obj: {},
@@ -1777,13 +1777,17 @@
        })
        .catch(() => {});
    },
    handleManualChange(row) {
      console.log("这是主动出发的");
      this.updateProPrice(row);
    },
    validateDiscount(row) {
      if (row.discount > 10) {
        row.discount = 10; // 强制将值设置为最大值
      } else if (row.discount < 0) {
        row.discount = 0; // 强制将值设置为最小值
      console.log("转了")
      if (this.TotalPrice !== undefined && !isNaN(this.TotalPrice) && this.TotalPrice !== this.lastXianPrice) {
        console.log("进入了")
        this.updateProPrice1(row);
        this.lastXianPrice = this.TotalPrice;
      }
      this.updateProPrice(row); // 更新价格或其他逻辑
    },
    isAll(value) {
      return value === "" || value === null;
@@ -1801,7 +1805,33 @@
      this.discount =
        (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) / 100) * 10;
    },
    updateProPrice1(row) {
      console.log("进入了1")
      const ordPrice = new Big(row.ordPrice);
      const discount = new Big(row.discount);
      const result = ordPrice.times(discount.div(10));
      row.nowPrice = result.toNumber();
      const totalYsPrice = this.tableData1.reduce((sum, item) => {
        return sum.plus(new Big(item.nowPrice || '0'));
      }, new Big(0));
      const totalYsPriceNum = totalYsPrice.toNumber();
      if (this.TotalPrice !== undefined && !isNaN(this.TotalPrice)) {
        const xianPrice = new Big(this.TotalPrice);
        const diff = xianPrice.minus(totalYsPriceNum);
        if (!diff.eq(0) && this.tableData1.length > 0) {
          const lastItem = this.tableData1[this.tableData1.length - 1];
          const newYsPrice = new Big(lastItem.nowPrice).plus(diff).toNumber();
          this.$set(this.tableData1[this.tableData1.length - 1], 'nowPrice', newYsPrice);
        }
      }
      // Update youhui calculation
      if (this.TotalPrice1 !== 0 && this.TotalPrice !== 0) {
        this.discount = (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) / 100) * 10;
      } else {
        this.discount = 0;
      }
    },
    openname() {
      this.$refs.bbb.open = true;
      this.$refs.bbb.title = "搜索姓名";
@@ -1925,11 +1955,9 @@
    },
    getList1() {
      getInfo().then((response) => {
        this.getInfodis = response.user.discount;
        this.hospName = response.hospName;
        if (this.getInfodis === null) {
          this.isfalse = true;
        }
      });
      getIsRequired().then((response) => {
        this.showHidden = response.data;
@@ -2154,10 +2182,8 @@
    /** 查询信息列表 */
    getList() {
      getInfo().then((response) => {
        this.getInfodis = response.user.discount;
        if (this.getInfodis === null) {
          this.isfalse = true;
        }
      });
      let cusSex = this.form.cusSex;
      //全部套餐
@@ -2241,10 +2267,7 @@
      })
        .then(() => {
          this.discount = currentValue;
          if (this.discount < this.getInfodis) {
            this.discount = this.getInfodis;
            // this.$modal.msgError(`该人员最高优惠权限为${this.getInfodis}折`);
          }
          this.tableData1.forEach((item) => {
            item.discount = this.discount;
            const ordPrice = new Big(item.ordPrice);
@@ -3355,118 +3378,99 @@
        var cusId = this.form.cusIdcard;
      } else {
        this.$message.warning("请先填写信息,再选体检内容");
        return; // 如果没有身份证号码,停止执行
      }
      let _this = this;
      // 初始化变量
      this.isSubmitting = true; // 开始提交时设置标志
      this.TotalPrice1 = 0; // 初始化应收金额
      this.TotalPrice = 0; // 初始化实收金额
      this.discount = 10; // 初始化折扣为10(100%)
      // 判断是否有选中的套餐
      if (this.tableData.length != 0) {
        this.tableData.forEach((item) => {
          _this.pacId = item.pacId;
        });
        _this.pacId = this.tableData[0].pacId;
      } else {
        _this.pacId = "";
      }
      this.proIds = [];
      if (this.DataList.length != 0) {
        this.DataList.forEach((item) => {
      // 处理选中的项目
      const newItemsToAdd = [];
      const allItems = [...this.DataList, ...this.DataLists]; // 合并所有项目
      allItems.forEach((item) => {
        if (!this.proIds.includes(item.proId)) {
          newItemsToAdd.push(item);
          this.proIds.push(item.proId);
        });
      }
      if (this.DataLists.length != 0) {
        this.DataLists.forEach((item) => {
          this.proIds.push(item.proId);
        });
      }
        }
      });
      // 准备数据
      let data = {
        cusId,
        pacId: _this.pacId,
        proIds: this.proIds,
      };
      // 根据体检类型选择不同的处理方法
      if (this.form.tjType == 1) {
        tuantiqueren(data).then((response) => {
          if (response.code == 200) {
            let cusId = this.form.cusIdcard;
            this.proIds = [];
            getTransitionList1(cusId).then((response) => {
              this.tableData1 = response.data;
              this.TotalPrice1 = 0;
              if (this.tableData1) {
                this.tableData1.forEach((item) => {
                  if (item.tjCategory != null) {
                    this.tjCategory = item.tjCategory;
                  }
                  if (item.pacName == "单项") {
                    item.list.forEach((item9) => {
                      this.treeList.push(item9.proId);
                    });
                  }
                  this.TotalPrice = 0;
                  this.TotalPrice1 += item.ordPrice;
                  this.TotalPrice += item.nowPrice;
                  this.pacName = item.pacName;
                });
                this.TotalPrice = this.tableData1.reduce((sum, item) => {
                  return sum.plus(new Big(item.nowPrice || "0"));
                }, new Big(0));
                this.discount =
                  (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) /
                    100) *
                  10;
                this.list1 = false;
                this.list3 = true;
                this.list2 = false;
              } else {
                this.list1 = true;
                this.TotalPrice = 0;
              }
            });
          } else {
            this.processOrderItems(cusId);
          }
          this.isSubmitting = false; // 提交完成后重置标志
        }).catch(() => {
          this.isSubmitting = false; // 确保在错误情况下也重置标志
        });
      } else {
        getaddtTransition(data).then((response) => {
          if (response.code == 200) {
            let cusId = this.form.cusIdcard;
            this.proIds = [];
            getTransitionList1(cusId).then((response) => {
              this.tableData1 = response.data;
              this.TotalPrice1 = 0;
              if (this.tableData1) {
                this.tableData1.forEach((item) => {
                  if (item.tjCategory != null) {
                    this.tjCategory = item.tjCategory;
                  }
                  if (item.pacName == "单项") {
                    item.list.forEach((item9) => {
                      this.treeList.push(item9.proId);
                    });
                  }
                  this.TotalPrice = 0;
                  this.TotalPrice1 += item.ordPrice;
                  this.TotalPrice += item.nowPrice;
                  this.pacName = item.pacName;
                });
                this.discount =
                  (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) /
                    100) *
                  10;
                this.list1 = false;
                this.list3 = true;
                this.list2 = false;
              } else {
                this.list1 = true;
                this.TotalPrice = 0;
              }
            });
          } else {
            this.processOrderItems(cusId);
          }
          this.isSubmitting = false; // 提交完成后重置标志
        }).catch(() => {
          this.isSubmitting = false; // 确保在错误情况下也重置标志
        });
      }
      this.taocan = false;
      this.defaultKeys = [];
      this.DataLists = [];
    },
    // 处理订单项目
    processOrderItems(cusId) {
      getTransitionList1(cusId).then((response) => {
        this.tableData1 = response.data;
        if (this.tableData1) {
          this.tableData1.forEach((item) => {
            if (item.tjCategory != null) {
              this.tjCategory = item.tjCategory;
            }
            if (item.pacName == "单项") {
              item.list.forEach((item9) => {
                this.treeList.push(item9.proId);
              });
            }
            this.TotalPrice1 += item.ordPrice || 0; // 累加应收金额
            this.TotalPrice += item.nowPrice || 0; // 累加实收金额
          });
          // 计算折扣
          this.discount = this.TotalPrice1 > 0 ?
            (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) / 100) * 10 : 0;
          this.list1 = false;
          this.list3 = true;
          this.list2 = false;
        } else {
          this.list1 = true;
          this.TotalPrice = 0;
        }
      });
    },
    submitCheckinfee() {
      let _this = this;
@@ -3632,9 +3636,7 @@
            }
            this.discount =
              (this.formInline.paidIn / this.formInline.price) * 10;
            if (this.discount <= this.getInfodis) {
              this.discount = this.getInfodis;
            }
          } else {
            this.discount = 10;
            this.formInline.paidIn = "0.00";