lkk
2025-01-10 65b2b5c0dd571c3cd1d1cd6d4da5162f90590dd5
套餐维护
3个文件已修改
261 ■■■■ 已修改文件
src/api/system/package.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/project/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/package/index.vue 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/package.js
@@ -205,4 +205,12 @@
    method: 'post',
    data: data
  })
}
export function getProParentIdDxList(params) {
  return request({
    url: "/hosp/project/getProParentIdDxListByFenYe",
    method: "get",
    params
  });
}
src/views/hosp/project/index.vue
@@ -1660,6 +1660,7 @@
    handleUpdate1() {
      this.open = true;
      this.form = this.xiugaiList;
      this.form.proStatus = this.form.proStatus.toString();
      this.proParent = true;
      // 设置项目价格禁用
@@ -1685,8 +1686,8 @@
      // this.form = row;
      const proId = row.proId || this.ids;
      this.proParent = false;
      this.isPriceDisabled = false;
      getProject(proId).then((response) => {
        console.log(response, 999);
        this.form = response.data;
        if (this.form.proParentId === "0") {
          this.showPrise = true;
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 = {