12
wwl
2025-01-02 01217cd5e6695c0651554a2355695f0ce60bb67d
12
7个文件已修改
445 ■■■■■ 已修改文件
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/tijian.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doctor/check/index.vue 105 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/order/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/comp/index.vue 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/tijian/index.vue 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json
@@ -39,6 +39,7 @@
    "@riophae/vue-treeselect": "0.4.0",
    "axios": "0.24.0",
    "babel-polyfill": "^6.26.0",
    "big.js": "^6.2.2",
    "clipboard": "2.0.8",
    "core-js": "3.25.3",
    "echarts": "4.9.0",
src/api/system/tijian.js
@@ -29,7 +29,13 @@
    method: "get",
  });
}
export function gaibianzhekou(data) {
  return request({
    url: "/hosp/order/updateTransitionnewPrice",
    method: "post",
    data: data,
  });
}
// 选择体检项目(所有服项目)选单项时调用的接口
export function projectGetList() {
  return request({
src/views/doctor/check/index.vue
@@ -339,7 +339,7 @@
                  </el-table-column>
                </el-table>
                <div style="font-size: 14px; overflow-y: auto; height: 286px">
                <div style="font-size: 14px; overflow-y: auto; height: 286px" class="a">
                  <table style="
                      width: 96%;
                      margin: 4px 10px;
@@ -424,34 +424,15 @@
                    </tr>
                  </table>
                  <div slot="footer" class="dialog-footers">
                    <!--  v-show="tjStatus == '0'" -->
                    <!-- <el-button type="primary"
          size="mini"
          @click="radioChange"
          v-hasPermi="['system:notice:add']"
          v-show="tjStatus == '1'"
        >会诊申请</el-button> -->
                  <div slot="footer" class="dialog-footers1">
                    <el-button type="primary" @click="determine">提 交</el-button>
                  </div>
                </div>
              </el-tab-pane>
            </el-tabs>
          </template>
          <!-- <template>
            <div style="margin-left: 10px">
              <el-radio-group
                v-model="radio"
                v-for="(item, index) in Parent"
                :key="index"
                @input="radioChange1(item.proId, item)"
              >
                <el-radio-button :label="item.proId">{{
                  item.proName
                }}</el-radio-button>
              </el-radio-group>
            </div>
          </template> -->
        </el-col>
        <el-col :span="18" v-show="baogaohou">
          <template>
@@ -601,75 +582,21 @@
                  </table>
                  <div slot="footer" class="dialog-footers">
                    <!-- <el-button type="primary"
          size="mini"
          @click="radioChange"
          v-hasPermi="['system:notice:add']"
          v-show="tjStatus == '1'"
        >会诊申请</el-button> -->
                    <!--  v-show="tjStatus == '0'" -->
                    <el-button type="primary" @click="determine">提 交</el-button>
                  </div>
                </div>
              </el-tab-pane>
            </el-tabs>
          </template>
          <!-- <template>
            <div style="margin-left: 10px">
              <el-radio-group v-model="radio" v-for="(item, index) in Parent" :key="index"
                @input="radioChange1(item.proId, item)">
                <el-radio-button :label="item.proId">{{
      item.proName
    }}</el-radio-button>
              </el-radio-group>
            </div>
          </template> -->
        </el-col>
        <el-col :span="6" style="margin-top: 15px">
          <Historicalreport v-show="lishi" :reportHistorydata="reportHistorydata"></Historicalreport>
        </el-col>
      </el-row>
      <!-- <div style="background-color: #f3f3f3;font-size:14px;overflow-y:auto;height: calc(100% - 11%);">
        <table style="width:96%;margin: 4px 10px;border:1px solid white" cellspacing="4" border="2"
          v-for="(item, index) in proParentList.sons" :key="index">
          <tr align="center">
            <th>检测项目</th>
            <th>检测结果</th>
            <th>单位</th>
            <th>参考范围</th>
          </tr>
          <tr>
            <td>{{ item.project.proName }}</td>
            <td><el-input v-model="item.proResult" placeholder="请输入内容"></el-input></td>
            <td>{{ item.standard.company }}</td>
            <td>{{ item.standard.tjStandardGtValue + "-" + item.standard.tjStandardLtValue }}</td>
          </tr>
          <tr>
            <td>小结:</td>
            <td>
              <el-select v-model="item.value" multiple filterable placeholder="请选择" style="width:100%">
                <el-option v-for="item in proParentList.parentAdvice" :key="item.id" :label="item.title"
                  :value="item.id">
                </el-option>
              </el-select>
            </td>
            <td>主检医师:</td>
            <td>{{ item.doctorName }}</td>
          </tr>
          <tr>
            <td>备注:</td>
            <td colspan="2">
              <el-input type="textarea" autosize placeholder="请输入内容" v-model="item.remark">
              </el-input>
            </td>
          </tr>
        </table>
        <div slot="footer" class="dialog-footer">
          <el-button type="primary" @click="determine">确 定</el-button>
        </div>
      </div> -->
    </el-drawer>
    <Public ref="aaa" :row="row" @add="handleChanges" />
    <jianceResult ref="bbb" @add="handleChangesZt" />
@@ -2261,6 +2188,9 @@
};
</script>
<style lang="scss" scoped>
.a{
  position: relative;
}
.el-table .cell {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
@@ -2363,4 +2293,21 @@
  background-color: #66cc66;
  border-color: #66cc66;
}
.dialog-footers1 {
  position: fixed;
  bottom: 0;
  left: 63%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000; /* 确保按钮层级在其他内容上方 */
  width: 300px;
  background-color: white; /* 可根据需要调整背景颜色 */
}
/* 确保按钮之间有合适的间距 */
.dialog-footers1 .el-button {
  margin: 0 5px;
}
</style>
src/views/hosp/order/index.vue
@@ -2210,7 +2210,7 @@
        var discount = "";
        response.data.water.forEach((item) => {
          copeWith += item.copeWith;
          paidIn += item.copeWith;
          paidIn += item.paidIn;
          discount = item.discount;
        });
        this.bill.push({
@@ -2251,7 +2251,7 @@
        var discount = "";
        response.data.water.forEach((item) => {
          copeWith += item.copeWith;
          paidIn += item.copeWith;
          paidIn += item.paidIn;
          discount = item.discount;
        });
        this.bill.push({
src/views/login.vue
@@ -185,7 +185,7 @@
      }
    },
    handleLogin() {
      if (this.loginForm.username.length < 6) {
      if (this.loginForm.username.length < 12) {
        this.loginForm.mobile = true;
        this.$router.push({ path: this.redirect || "/" }).catch(() => { });
      } else {
src/views/system/comp/index.vue
@@ -193,30 +193,17 @@
                </el-col>
              </el-form-item>
              <el-form-item label="原价" prop="price">
                <el-input
                  v-model="forms.price"
                  placeholder="请输入原价"
                  style="width: 130px"
                />
                <el-input v-model="forms.price" placeholder="请输入原价" style="width: 130px" />
              </el-form-item>
              <el-form-item label="折扣" prop="limits">
                <el-input
                  v-model="forms.limits"
                  placeholder="请输入折扣"
                  style="width: 130px"
                  @change="numberChange"
                />
                <el-input v-model="forms.limits" placeholder="请输入折扣" style="width: 130px" @change="numberChange" />
                <!-- :disabled="isfalse" -->
              </el-form-item>
              <el-form-item label="优惠价" prop="ysPrice">
                <el-input
                  v-model="forms.ysPrice"
                  placeholder="请输入应收"
                  style="width: 120px"
                />
                <el-input v-model="forms.ysPrice" placeholder="请输入应收" style="width: 120px" />
              </el-form-item>
            </el-form>
            <el-row :gutter="10" class="mb8">
@@ -224,8 +211,7 @@
                <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleGroup">保存</el-button>
              </el-col>
              <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singlegg"
                  @click="xiangmuWh">项目维护</el-button>
                <el-button type="primary" icon="el-icon-edit" size="mini" @click="xiangmuWh">项目维护</el-button>
              </el-col>
              <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singlegg"
@@ -360,7 +346,7 @@
              </el-form-item>
            </el-form>
            <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne"
              height="478"  v-if="isTableVisible" >
              height="478" v-if="isTableVisible">
              <el-table-column type="selection" width="40px" align="center" />
              <el-table-column label="序号" align="center" prop="newID" width="50px" />
              <el-table-column label="套餐名称/价格/元" align="center" prop="pacName">
@@ -384,28 +370,14 @@
              注释:鼠标左键双击选中行可删除
            </div> -->
            <!--       @row-dblclick="dbclick" -->
            <el-table
              border
              v-loading="loading"
              :data="OnenewpacName"
              :row-class-name="tableRowClassName"
              height="478"
            >
              <el-table-column
                label="项目名称/价格/元"
                align="center"
                prop="proName"
              >
            <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478">
              <el-table-column label="项目名称/价格/元" align="center" prop="proName">
                <template slot-scope="scope">
                  {{ scope.row.proName + "/" + scope.row.proPrice }}
                </template>
              </el-table-column>
              <el-table-column
                label="原价"
                align="center"
                prop="proPrice"
              ></el-table-column>
              <el-table-column label="原价" align="center" prop="proPrice"></el-table-column>
              <el-table-column label="操作" align="center" width="68">
                <template slot-scope="scope">
                  <el-button size="mini" type="text" icon="el-icon-delete"
@@ -432,23 +404,11 @@
                <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearchFor">搜索</el-button>
              </el-form-item>
            </el-form>
            <el-table
              border
              v-loading="loading"
              ref="tre"
              :data="Treedata"
              @selection-change="handleChangesingle"
              height="478"
              style="width: 70%"
            >
            <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle"
              height="478" style="width: 70%">
              <el-table-column type="selection" width="40px" align="center" />
              <el-table-column label="项目名称" align="center" prop="proName" width="130" />
              <el-table-column
                label="项目价格/元"
                align="center"
                prop="proPrice"
                width="100"
              />
              <el-table-column label="项目价格/元" align="center" prop="proPrice" width="100" />
            </el-table>
          </el-col>
        </el-row>
@@ -771,7 +731,7 @@
    this.getList();
  },
  methods: {
    getList() {
      this.$nextTick(() => {
        this.$refs.inputName.focus();
@@ -779,7 +739,7 @@
        (this.loading = true);
      listComp(this.queryParams).then((response) => {
        this.compList = response.rows;
        response.rows.forEach((item, index) => {
          item.newID =
            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
@@ -1043,7 +1003,7 @@
      }
      getProjectList().then((response) => {
        this.Treedata = response.data;
      });
    },
@@ -1303,22 +1263,23 @@
      this.OnenewpacName = [];
      this.queryParams.price = 0;
      this.loading = true;
      let id = this.groupList[0].id;
      if (this.groupList[0]) {
        let id = this.groupList[0].id || '';
        getDetails(id).then((res) => {
          this.OnenewpacName = res.data.groupingProList;
          this.OnenewpacName.forEach((item, index) => {
            this.queryParams.price += item.proPrice;
          });
        });
      }
      // console.log(this.groupList[0].id, 9966);
      getconfigKey("sfzstc").then((res) => {
        this.sfzs = res.msg;
      });
      getDetails(id).then((res) => {
        this.OnenewpacName = res.data.groupingProList;
        this.OnenewpacName.forEach((item, index) => {
          this.queryParams.price += item.proPrice;
        });
        // return this.OnenewpacName.forEach((item) => {
        //   this.queryParams.price += item.proPrice;
        // });
      });
      if (this.forms.sex) {
        deptTreeSelect(this.forms.sex).then((response) => {
          // 套餐名称
src/views/system/tijian/index.vue
@@ -74,18 +74,18 @@
            </el-form-item>
            <el-form-item label="姓名" prop="cusName" :rules="[
      {
        required: true,
        validator: (rule, value, callback) => {
          if (!form.cusName) {
            callback('');
          } else if (form.cusName) {
            callback();
          }
        },
        trigger: 'blur',
      },
    ]">
              {
                required: true,
                validator: (rule, value, callback) => {
                  if (!form.cusName) {
                    callback('');
                  } else if (form.cusName) {
                    callback();
                  }
                },
                trigger: 'blur',
              },
            ]">
              <span slot="label" style="display: inline-block; border-bottom: 2px solid blue" @click="openname">
                姓名
@@ -107,20 +107,20 @@
            </el-form-item>
            <el-form-item label="性别" prop="cusSex" :rules="[
      {
        required: true,
        validator: (rule, value, callback) => {
          if (!form.cusSex && showHidden.has_sex === 'Y') {
            callback('');
          } else if (showHidden.has_sex === 'N') {
            callback();
          } else if (form.cusSex && showHidden.has_sex === 'Y') {
            callback();
          }
        },
        trigger: 'blur',
      },
    ]">
              {
                required: true,
                validator: (rule, value, callback) => {
                  if (!form.cusSex && showHidden.has_sex === 'Y') {
                    callback('');
                  } else if (showHidden.has_sex === 'N') {
                    callback();
                  } else if (form.cusSex && showHidden.has_sex === 'Y') {
                    callback();
                  }
                },
                trigger: 'blur',
              },
            ]">
              <el-select :disabled="isDisabled" v-model="form.cusSex" placeholder="性别">
                <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
                  :value="parseInt(dict.value)"></el-option>
@@ -128,23 +128,23 @@
            </el-form-item>
            <el-form-item label="证件号码" prop="cusIdcard" :rules="[
      {
        required: true,
        validator: (rule, value, callback) => {
          if (!form.cusIdcard && showHidden.has_idcard === 'Y') {
            callback('');
          } else if (showHidden.has_idcard === 'N') {
            callback();
          } else if (
            form.cusIdcard &&
            showHidden.has_idcard === 'Y'
          ) {
            callback();
          }
        },
        trigger: 'blur',
      },
    ]">
              {
                required: true,
                validator: (rule, value, callback) => {
                  if (!form.cusIdcard && showHidden.has_idcard === 'Y') {
                    callback('');
                  } else if (showHidden.has_idcard === 'N') {
                    callback();
                  } else if (
                    form.cusIdcard &&
                    showHidden.has_idcard === 'Y'
                  ) {
                    callback();
                  }
                },
                trigger: 'blur',
              },
            ]">
              <span slot="label" style="display: inline-block; border-bottom: 2px solid blue" @click="handleQuery">
                证件号码
              </span>
@@ -166,20 +166,20 @@
            </el-form-item>
            <el-form-item label="电话" prop="cusPhone" :rules="[
      {
        required: true,
        validator: (rule, value, callback) => {
          if (!form.cusPhone && showHidden.is_phone === 'Y') {
            callback('');
          } else if (showHidden.is_phone === 'N') {
            callback();
          } else if (form.cusPhone && showHidden.is_phone === 'Y') {
            callback();
          }
        },
        trigger: 'blur',
      },
    ]">
              {
                required: true,
                validator: (rule, value, callback) => {
                  if (!form.cusPhone && showHidden.is_phone === 'Y') {
                    callback('');
                  } else if (showHidden.is_phone === 'N') {
                    callback();
                  } else if (form.cusPhone && showHidden.is_phone === 'Y') {
                    callback();
                  }
                },
                trigger: 'blur',
              },
            ]">
              <el-input v-model="form.cusPhone" placeholder="请输入联系电话" :disabled="isDisabled" />
            </el-form-item>
@@ -505,9 +505,9 @@
                <el-input placeholder="应收金额" v-model="TotalPrice1" disabled style="width: 150px"></el-input>
              </el-form-item>
              <el-form-item label="优惠">
                <!-- {{ discount }} -->
                <el-input-number ref="inputNumber" style="width: 150px" v-model="discount" :precision="2" :step="0.1"
                  :max="10" :min="1" @change="numberChange" :disabled="isfalse"></el-input-number>
                  :max="10" :min="0" @change="numberChange" :disabled="isfalse"></el-input-number>
              </el-form-item>
              <el-form-item label="实收金额">
                <el-input placeholder="实收金额" v-model="TotalPrice" style="width: 150px"></el-input>
@@ -582,13 +582,13 @@
          <div style="
              padding: 0px 6px;
              border: 1px solid #e6ebf5;
              max-height: 420px;
              max-height: 650%;
              overflow: auto;
              width: 916px;
              margin-left: 35px;
            ">
            <el-table :data="tableData1" border style="width: 100%" height="250">
            <el-table :data="tableData1" border style="width: 100%;">
              <el-table-column prop="proName" label="项目" width="180">
              </el-table-column>
              <el-table-column prop="proType" label="性别" width="50">
@@ -668,7 +668,7 @@
                  :disabled="true"></el-input>
              </el-form-item>
              <el-form-item label="优惠">
                <el-input-number style="width: 140px" v-model="discount" :precision="2" :step="0.1" :max="10" :min="1"
                <el-input-number style="width: 140px" v-model="discount" :precision="2" :step="0.1" :max="10" :min="0"
                  @change="numberChange" :disabled="isfalse"></el-input-number>
              </el-form-item>
              <el-form-item label="实收金额">
@@ -756,6 +756,7 @@
</template>
<script>
import Big from 'big.js';
import selectName from "@/components/selectName";
import { dataURLtoFile, random } from "./file";
import { getInfo } from "@/api/login";
@@ -786,6 +787,7 @@
  getconfigKey,
  getHistryTjOrderProByCusIdCard,
  readCertCardInfos,
  gaibianzhekou
} from "@/api/system/tijian";
import { addComp } from "@/api/system/comp";
import { getCompany, queryCompany } from "@/api/team/tuanti";
@@ -1093,10 +1095,20 @@
    isAll(value) {
      return value === '' || value === null;
    },
    // 更新实收金额
    updateProPrice(row) {
      row.nowPrice = Number(row.ordPrice) * (Number(row.discount) / 10);
      const ordPrice = new Big(row.ordPrice);
      const discount = new Big(row.discount);
      const result = ordPrice.times(discount.div(10));  // ordPrice * (discount / 10)
      row.nowPrice = result.toNumber();
      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
    },
    openname() {
      this.$refs.bbb.open = true;
@@ -1295,7 +1307,7 @@
              this.pacName = item.pacName;
            });
            this.list1 = false;
            this.list3 = true;
@@ -1370,7 +1382,7 @@
                  this.pacName = item.pacName;
                });
                this.list1 = false;
                this.list3 = true;
@@ -1592,7 +1604,7 @@
      if (this.discount <= this.getInfodis) {
        this.discount = this.getInfodis;
      }
      this.TotalPrice = (this.TotalPrice1 * (this.discount / 10)).toFixed(2);
      // this.TotalPrice = (this.TotalPrice1 * (this.discount / 10)).toFixed(2);
    },
    /** 登记提交按钮 */
@@ -1679,7 +1691,7 @@
                    this.top = false;
                  } else {
                    this.list1 = true;
                    this.TotalPrice =0;
                    this.TotalPrice = 0;
                    this.top = false;
                  }
                });
@@ -2210,6 +2222,7 @@
    // },
    resetpackage() {
      this.discount = 10
      if (this.form.cusIdcard) {
        var cusId = this.form.cusIdcard;
      } else {
@@ -2562,7 +2575,7 @@
          if (this.DataList.length != 0) {
            this.list1 = false;
            this.DataList.forEach((item) => {
              this.marryall += item.proPrice;
            });
          }
@@ -2730,7 +2743,7 @@
                  this.pacName = item.pacName;
                });
                this.list1 = false;
                this.list3 = true;
                this.list2 = false;
@@ -2740,7 +2753,7 @@
              }
            });
          } else {
            console.log(失败了);
          }
        });
      } else {
@@ -2766,8 +2779,8 @@
                  this.pacName = item.pacName;
                });
                this.list1 = false;
                this.list3 = true;
                this.list2 = false;
@@ -2777,7 +2790,7 @@
              }
            });
          } else {
            console.log(失败了);
          }
        });
      }
@@ -3091,35 +3104,46 @@
        let paidIn = this.TotalPrice.toString();
        let discount = this.discount;
        this.tjFlowingWater = { copeWith, paidIn, discount };
        const newArray = this.tableData1
          .filter(item => item.discount < 10)  // 过滤出 discount < 10 的项
          .map(item => ({ discount: item.discount, parentProId: item.parentProId, cusIdCard: item.cusId }));  // 创建新的对象,包含 discount 和 id
        gaibianzhekou(newArray).then((res) => {
          if (res.code === 200) {
            let data;
        let data;
        if (pacId || this.tjOrderList.length > 0) {
          data = {
            photo: this.srcUrl,
            pacId,
            tjOrderList: this.tjOrderList,
            tjFlowingWater: this.tjFlowingWater,
            userId,
            tjType,
            tjCategory: this.tjCategory,
          };
          this.listgetOrder(data);
        } else if (pacId || this.tjOrderList.length > 0) {
          data = {
            photo: this.srcUrl,
            tjOrderList: this.tjOrderList,
            tjFlowingWater: this.tjFlowingWater,
            userId,
            tjType,
            tjCategory: this.tjCategory,
          };
          this.listgetOrder(data);
        } else {
          this.$message({
            type: "warning ",
            message: "请选择套餐!",
          });
        }
            if (pacId || this.tjOrderList.length > 0) {
              data = {
                photo: this.srcUrl,
                pacId,
                tjOrderList: this.tjOrderList,
                tjFlowingWater: this.tjFlowingWater,
                userId,
                tjType,
                tjCategory: this.tjCategory,
              };
              this.listgetOrder(data);
            } else if (pacId || this.tjOrderList.length > 0) {
              data = {
                photo: this.srcUrl,
                tjOrderList: this.tjOrderList,
                tjFlowingWater: this.tjFlowingWater,
                userId,
                tjType,
                tjCategory: this.tjCategory,
              };
              this.listgetOrder(data);
            } else {
              this.$message({
                type: "warning ",
                message: "请选择套餐!",
              });
            }
          } else{
            this.$modal.msgError("改变折扣错误");
          }
        })
      } else {
        this.$modal.msgError("请选择体检类别");
      }