qx
qx
2025-04-14 02db0a235f5ba38a966280d4f5376a4e468ea48f
qx
1个文件已修改
117 ■■■■■ 已修改文件
src/views/system/comp/index.vue 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/comp/index.vue
@@ -390,6 +390,9 @@
          <el-col :span="7" :xs="24">
            <el-form :model="queryParams1" ref="queryForm" size="small" :inline="true" v-show="showSearch"
              label-width="68px" @submit.native.prevent>
              <el-form-item>
                <el-button type="primary" @click="Package" size="mini" style="margin-right: 20px">选择套餐</el-button>
              </el-form-item>
              <el-form-item label="项目名称" prop="proName">
                <el-input ref="inputName" v-model="queryParams1.proName" placeholder="请输入项目名称" clearable
                  @keyup.enter.native="handleSearchFor" style="width: 140px" />
@@ -479,6 +482,9 @@
          <el-col :span="8" :xs="24">
            <el-form :model="queryParams1" ref="queryForm" size="small" :inline="true" v-show="showSearch"
              label-width="68px" @submit.native.prevent>
              <el-form-item>
                <el-button type="primary" @click="Package" size="mini" style="margin-right: 20px">选择套餐</el-button>
              </el-form-item>
              <el-form-item label="项目名称" prop="proName">
                <el-input ref="inputName" v-model="queryParams1.proName" placeholder="请输入项目名称" clearable
                  @keyup.enter.native="handleSearchFor" style="width: 140px" />
@@ -501,6 +507,30 @@
        </div>
      </el-dialog>
    </div>
    <el-dialog title="选择套餐" :visible.sync="taocan" width="70%" height="700px" :close-on-click-modal="false">
      <!-- <el-form :model="queryParam" ref="queryForm" size="small" :inline="true" label-width="auto">
        <el-form-item label="套餐名称" prop="pacName">
          <el-input v-model="queryParam.pacName" placeholder="请输入套餐名称" clearable @keyup.enter.native="handle"
            style="width: 200px" />
        </el-form-item>
        <el-form-item>
          <el-button type="primary" icon="el-icon-search" size="mini" @click="handle">搜索</el-button>
        </el-form-item>
      </el-form> -->
      <el-table v-loading="loading" element-loading-text="正在加载中..." element-loading-spinner="el-icon-loading" border
        :data="newpacName1" @selection-change="handleSelectionChange1" height="450px" ref="tb">
        <el-table-column type="selection" width="40px" align="center" label="选择" />
        <el-table-column label="套餐名称" align="center" prop="pacName" width="120px" />
        <el-table-column label="套餐价格" align="center" prop="price" width="120px" />
        <el-table-column label="套餐明细" align="center" prop="allProName" :show-overflow-tooltip="true" />
      </el-table>
      <span slot="footer" class="dialog-footer">
        <el-button @click="cancel1">取 消</el-button>
        <el-button type="primary" @click="submit">确 定</el-button>
      </span>
    </el-dialog>
    <!-- 添加或修改体检单位信息维护对话框 -->
    <div class="dia">
@@ -618,6 +648,8 @@
      id: "",
      // 选中数组
      ids: [],
      newpacName1 : [],
      taocan:false,
      // 控制性别选择框是否禁用
      isSexDisabled: false,
      dwIds: [],
@@ -1537,6 +1569,32 @@
      row.index = rowIndex;
    },
    Package() {
      this.taocan = true;
      deptTreeSelect(this.forms.sex).then((res) => {
        if (res.rows) {
          this.newpacName1 = res.rows
        }
      });
    },
    handle() {
      this.loading = true;
      deptTreeSelect(this.forms.sex, this.queryParam).then((res) => {
        if (res.rows) {
          this.newpacName1 = res.rows; // 更新套餐列表
        } else {
          this.newpacName1 = [];
        }
        this.loading = false;
      }).catch(() => {
        this.loading = false;
        this.$modal.msgError("搜索失败,请稍后重试");
      });
    },
    /** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate((valid) => {
@@ -1583,6 +1641,65 @@
        })
        .catch(() => { });
    },
    submit() {
      if (!this.selectedPackage) {
        this.$modal.msgError("请先选择一个套餐");
        return;
      }
      // 清空左侧表格
      this.OnenewpacName = [];
      // 获取选中的套餐项目列表
      const newProjects = this.selectedPackage.tjProjectList || [];
      // 将选中的套餐项目添加到左侧表格
      this.loading = true;
      newProjects.forEach(project => {
        // 为每个项目设置默认折扣和现价
        this.$set(project, 'limits', 10); // 默认折扣 10(即原价)
        this.$set(project, 'ysPrice', project.proPrice); // 现价初始化为原价
        this.OnenewpacName.push(project);
      });
      // 更新总价和现价
      this.queryParams.price = this.OnenewpacName.reduce((sum, item) => {
        return sum + (item.proPrice || 0);
      }, 0);
      this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => {
        return sum + (item.ysPrice || 0);
      }, 0);
      // 更新优惠值
      this.youhui = this.queryParams.price > 0
        ? (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10
        : 0;
      // 关闭对话框
      this.taocan = false;
      this.loading = false;
      this.$modal.msgSuccess("添加成功");
    },
    cancel1() {
      this.taocan = false;
    },
    handleSelectionChange1(selection) {
      // 实现单选逻辑
      if (selection.length > 1) {
        const lastSelected = selection[selection.length - 1];
        this.$refs.tb.clearSelection();
        this.$refs.tb.toggleRowSelection(lastSelected, true);
        this.selectedPackage = lastSelected;
      } else if (selection.length === 1) {
        this.selectedPackage = selection[0];
      } else {
        this.selectedPackage = null;
      }
    },
    /** 导出按钮操作 */
    handleExport() {
      this.download(