:qx
qx
2 天以前 74b6e2cd66725fcf9911d59fdff41a99b56756cc
src/views/hosp/order/index.vue
@@ -2,7 +2,7 @@
  <div v-loading="isLoading" element-loading-text="正在提交,请稍候..." element-loading-spinner="el-icon-loading"
    element-loading-background="rgba(255, 255, 255, 0.8)" style="height: 100%; padding: 20px; position: relative;">
    <div class="app-container">
       <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
        <el-form-item label="姓名" prop="name">
          <el-input ref="inputName" v-model="queryParams.name" placeholder="请输入姓名" style="width: 150px" clearable
            @keyup.enter.native="handleQuery" />
@@ -15,7 +15,7 @@
          <el-input ref="inputName" v-model="queryParams.xmmc" placeholder="请输入体检项目" style="width: 150px" clearable
            @keyup.enter.native="handleQuery" />
        </el-form-item>
        <el-form-item label="单位名称" prop="tjCompName" >
        <el-form-item label="单位名称" prop="tjCompName">
          <el-select :remote-method="getRemoteData" v-model="queryParams.tjCompName" value-key="drugManufacturerId"
            style="width: 200px" remote filterable placeholder="请选择单位名称" clearable @change="searchSelect">
            <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" :value="dict" />
@@ -89,8 +89,8 @@
          <el-button type="primary" size="mini" @click="handleProject1" :disabled="single"
            v-hasPermi="['hosp:order:export']">补录项目</el-button>
        </el-col>
 <el-col :span="1.5">
          <el-button type="primary"  size="mini" @click="revokeProject" :disabled="single"
        <el-col :span="1.5">
          <el-button type="primary" size="mini" @click="revokeProject" :disabled="single"
            v-hasPermi="['hosp:order:export']">撤销补录</el-button>
        </el-col>
@@ -106,8 +106,8 @@
          <el-button type="primary" size="mini" @click="budadzd" :disabled="single"
            v-hasPermi="['hosp:order:export']">打印补录单</el-button>
        </el-col>
         <el-col :span="1.5">
          <el-button style="background-color:#E6A23C;color:#fff" size="mini" @click="handleRevoke"
        <el-col :span="1.5">
          <el-button style="background-color:#E6A23C;color:#fff" size="mini" @click="handleRevoke"
            :disabled="singles">撤销签到</el-button>
        </el-col>
        <el-col :span="1.5">
@@ -544,90 +544,94 @@
      </el-dialog>
      <!-- 添加补录项目 -->
      <el-dialog :title="title" :visible.sync="Projectopen1" width="1100px" style="height: 860px" append-to-body
      <el-dialog :title="title" :visible.sync="Projectopen1" width="1100px" style="height: 880px" append-to-body
        :close-on-click-modal="false">
        <div class="box">
          <div class="box1">
            <div style="text-align: center; margin-bottom: 10px; margin-top: 10px">
              项目选择
            </div>
            <el-tabs type="border-card" style="height: 560px; margin: 0 10px; width: 100%" @tab-click="handleClick"
              v-model="activeNames">
              <el-tab-pane label="组合" name="first">
                <div class="tab8">
                  <el-row :gutter="20" style="width: 100%">
                    <el-col :span="22">
                      <el-input placeholder="输入关键字进行过滤" v-model="filterage">
                      </el-input>
                      <div class="tab3">
                        <el-tree class="filter-tree" v-loading="loading" :data="packageList" :props="defaultProp"
                          show-checkbox node-key="id" @check-change="handlepackage" :default-checked-keys="checkedkeys"
                          :filter-node-method="filterpackage" ref="treas" :render-content="renderContents">
                        </el-tree>
                      </div>
                    </el-col>
                  </el-row>
          <el-row :gutter="20">
            <el-col :span="8">
              <div class="grid-content bg-purple">
                <div style="text-align: center; margin-bottom: 10px; margin-top: 10px">
                  项目选择
                </div>
              </el-tab-pane>
              <el-tab-pane label="单项" name="third">
                <div class="tab8">
                  <el-row type="flex" class="row-bg" justify="space-around">
                    <el-col :span="22">
                      <el-input placeholder="输入关键字进行过滤" v-model="filterText">
                      </el-input>
                      <div class="tab3">
                        <el-tree class="filter-tree" v-loading="loading" :data="Treedata" :props="defaultProps"
                          show-checkbox node-key="proId" @check-change="handleCurrentChecked"
                          :default-checked-keys="checkedkey" :filter-node-method="filterNode" ref="tree"
                          :render-content="renderContent">
                        </el-tree>
                      </div>
                    </el-col>
                  </el-row>
                <el-tabs type="border-card" style="height: 560px; margin: 0 10px; width: 100%" @tab-click="handleClick"
                  v-model="activeNames">
                  <el-tab-pane label="组合" name="first">
                    <div class="tab8">
                      <el-row :gutter="20" style="width: 100%">
                        <el-col :span="22">
                          <el-input placeholder="输入关键字进行过滤" v-model="filterage">
                          </el-input>
                          <div class="tab3">
                            <el-tree class="filter-tree" v-loading="loading" :data="packageList" :props="defaultProp"
                              show-checkbox node-key="id" @check-change="handlepackage"
                              :default-checked-keys="checkedkeys" :filter-node-method="filterpackage" ref="treas"
                              :render-content="renderContents">
                            </el-tree>
                          </div>
                        </el-col>
                      </el-row>
                    </div>
                  </el-tab-pane>
                  <el-tab-pane label="单项" name="third">
                    <div class="tab8">
                      <el-row type="flex" class="row-bg" justify="space-around">
                        <el-col :span="22">
                          <el-input placeholder="输入关键字进行过滤" v-model="filterText">
                          </el-input>
                          <div class="tab3">
                            <el-tree class="filter-tree" v-loading="loading" :data="Treedata" :props="defaultProps"
                              show-checkbox node-key="proId" @check-change="handleCurrentChecked"
                              :default-checked-keys="checkedkey" :filter-node-method="filterNode" ref="tree"
                              :render-content="renderContent">
                            </el-tree>
                          </div>
                        </el-col>
                      </el-row>
                    </div>
                  </el-tab-pane>
                </el-tabs>
              </div>
            </el-col>
            <el-col :span="16">
              <div class="grid-content bg-purple">
                <div style="text-align: center; margin-bottom: 10px; margin-top: 9px">
                  已选项目列表
                </div>
              </el-tab-pane>
            </el-tabs>
          </div>
                <el-table :data="DataList3" border style="width: 100%; table-layout: fixed" height="560"
                  :span-method="objectspanmethod">
                  <el-table-column prop="propinName" label="检查项目" width="160px" :show-overflow-tooltip="true">
                  </el-table-column>
                  <el-table-column prop="proName" label="明细项目" width="160px" :show-overflow-tooltip="true">
                  </el-table-column>
                  <el-table-column prop="sl" label="数量" width="56px">
                  </el-table-column>
                  <el-table-column prop="proPrice" label="原价" width="56px">
                  </el-table-column>
                  <el-table-column label="折扣" width="150px">
                    <template slot-scope="scope">
                      <!-- @input="validateDiscount(scope.row)" -->
                      <el-input-number v-model.number="scope.row.discount" @change="handleManualChange(scope.row)"
                        placeholder="输入折扣" size="small" type="number" :precision="1" :step="0.1" :max="10" :min="0">
                      </el-input-number>
                    </template>
                  </el-table-column>
                  <el-table-column prop="nowPrice" label="现价">
                    <template slot-scope="scope">
                      {{ scope.row.nowPrice ? scope.row.nowPrice.toFixed(2) : scope.row.nowPrice }}
                    </template>
                  </el-table-column>
          <div class="grid-content bg-purple">
            <div style="text-align: center; margin-bottom: 10px; margin-top: 9px">
              已选项目列表
            </div>
            <el-table :data="DataList3" border style="width: 100%; table-layout: fixed" height="560"
              :span-method="objectspanmethod">
              <el-table-column prop="propinName" label="检查项目" width="160px" :show-overflow-tooltip="true">
              </el-table-column>
              <el-table-column prop="proName" label="明细项目" width="160px" :show-overflow-tooltip="true">
              </el-table-column>
              <el-table-column prop="sl" label="数量" width="56px">
              </el-table-column>
              <el-table-column prop="proPrice" label="原价" width="56px">
              </el-table-column>
              <el-table-column label="折扣" width="150px">
                <template slot-scope="scope">
                  <!-- @input="validateDiscount(scope.row)" -->
                  <el-input-number v-model.number="scope.row.discount" @change="handleManualChange(scope.row)"
                    placeholder="输入折扣" size="small" type="number" :precision="1" :step="0.1" :max="10" :min="0">
                  </el-input-number>
                </template>
              </el-table-column>
              <el-table-column prop="nowPrice" label="现价">
                <template slot-scope="scope">
                  {{ scope.row.nowPrice ? scope.row.nowPrice.toFixed(2) : scope.row.nowPrice }}
                </template>
              </el-table-column>
              <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="50px">
                <template slot-scope="scope">
                  <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDel(scope.row)"
                    title="删除"></el-button>
                </template>
              </el-table-column>
            </el-table>
            <!-- <h3 style="font-weight: 600">合计:{{ marryalls }}元</h3> -->
          </div>
                  <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="50px">
                    <template slot-scope="scope">
                      <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDel(scope.row)"
                        title="删除"></el-button>
                    </template>
                  </el-table-column>
                </el-table>
                <!-- <h3 style="font-weight: 600">合计:{{ marryalls }}元</h3> -->
              </div>
            </el-col>
          </el-row>
        </div>
        <el-form :model="form" inline style="display: flex; justify-content: space-between; margin-top: 20px">
@@ -643,14 +647,14 @@
            <el-input placeholder="原价" :value="TotalPrice1" disabled style="width: 90px"></el-input>
          </el-form-item>
         <!-- 折扣设定 -->
          <!-- 折扣设定 -->
          <!-- <el-form-item label="折扣" style="display: flex">
            <el-input style="width: 90px" type="number" v-model="discount" :value="discount"></el-input>
          </el-form-item> -->
          <el-form-item label="折扣">
            <!-- {{ discount }} -->
            <el-input-number ref="inputNumber" style="width: 150px" v-model="discount" :precision="1" :step="0.1"
            <el-input-number ref="inputNumber" style="width: 140px" v-model="discount" :precision="1" :step="0.1"
              :max="10" :min="0" @change="debounceNumberChange"></el-input-number>
          </el-form-item>
@@ -659,7 +663,7 @@
            <el-input placeholder="应付金额" :value="TotalPrice1 * (discount / 10)" style="width: 90px"></el-input>
          </el-form-item> -->
          <el-form-item label="应付">
            <el-input placeholder="应付金额" v-model="TotalPrice" style="width: 206px" @input="changeXianjia"
            <el-input placeholder="应付金额" v-model="TotalPrice" style="width: 90px" @input="changeXianjia"
              @blur="numberChangeXianPrice(discount, discount)" />
          </el-form-item>
@@ -673,7 +677,7 @@
          <!-- 结算方式 -->
          <el-form-item label="结算方式" prop="jsType" style="display: flex">
            <el-select v-model="jsType" placeholder="请选择结算方式" style="width: 130px" clearable>
            <el-select v-model="jsType" placeholder="请选择结算方式" style="width: 120px" clearable>
              <el-option v-for="dict in dict.type.reservation_pay_type" :key="dict.value" :label="dict.label"
                :value="dict.value" />
            </el-select>
@@ -934,6 +938,7 @@
import { getwater } from "@/api/hosp/customer";
import { getInfo } from "@/api/login";
import ViewPdf from "@/components/ViewPdf";
import Big from "big.js";
import {
  shijianzhou,
  getaddtTransition,
@@ -1983,8 +1988,8 @@
      this.DataList3 = [];
      this.Datalists = [];
      this.filterText = "",
      this.filterage = "",
      this.TotalPrice1 = 0;
        this.filterage = "",
        this.TotalPrice1 = 0;
      this.orderId = row.orderId;
      this.cusId = row.tjCusIdCard;
      this.userId = row.userId;
@@ -2061,7 +2066,9 @@
      this.DataList3 = [];
      this.Datalists = [];
      this.filterText = "",
      this.filterage = "",
        this.filterage = "",
        this.TotalPrice = 0;
      this.discount = 10;
      this.TotalPrice1 = 0;
      this.orderId = this.ids;
      this.cusId = this.cusIds;
@@ -2173,6 +2180,9 @@
          this.TotalPrice1 = 0;
          this.DataList3.forEach((item) => {
            this.TotalPrice1 += item.proPrice * item.sl;
            let TotalPrice = this.TotalPrice1 * (this.discount / 10)
              this.TotalPrice  = TotalPrice.toFixed(2);
            this.lastXianPrice = this.TotalPrice;
          });
        });
      } else if (checked === false) {
@@ -2201,6 +2211,9 @@
          this.TotalPrice1 = 0;
          this.DataList3.forEach((item) => {
            this.TotalPrice1 += item.proPrice * item.sl;
           let TotalPrice = this.TotalPrice1 * (this.discount / 10)
              this.TotalPrice  = TotalPrice.toFixed(2);
            this.lastXianPrice = this.TotalPrice;
          });
        });
      }
@@ -2244,9 +2257,6 @@
        this.spliceData();
        this.TotalPrice1 = 0;
        this.DataList.forEach((item1) => {
          console.log(item1.proPrice, 3322);
          console.log(this.TotalPrice1, 1122);
          this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
        });
        if (this.marryalls != 0) {
@@ -2254,10 +2264,10 @@
        }
      }
    },
     handleManualChange(row) {
    handleManualChange(row) {
      this.updateProPrice(row);
    },
    updateProPrice(row) {
      if (row.proPrice == 0) {
        row.discount = 10
@@ -2267,21 +2277,22 @@
        const discount = new Big(row.discount);
        const result = ordPrice.times(discount.div(10)); // ordPrice * (discount / 10)
        row.nowPrice = result.toNumber();
        this.TotalPrice = this.DataList3.reduce((sum, item) => {
       let TotalPrice= this.DataList3.reduce((sum, item) => {
          return sum.plus(new Big(item.nowPrice || "0"));
        }, new Big(0));
        }, new Big(0))
         this.TotalPrice  = TotalPrice.toFixed(2);
        this.discount =
          (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) / 100) * 10;
      }
    },
       debounceNumberChange(currentValue, oldValue) {
    debounceNumberChange(currentValue, oldValue) {
      clearTimeout(this.debounceTimer);
      this.debounceTimer = setTimeout(() => {
        this.numberChange(currentValue, oldValue);
      }, 300);
    },
     // 折扣
    // 折扣
    numberChange(currentValue, oldValue) {
      this.$confirm("确定修改所有子项的折扣吗?", "提示", {
        confirmButtonText: "确定",
@@ -2299,7 +2310,8 @@
            // this.TotalPrice = this.DataList3.reduce((sum, item) => {
            //   return sum.plus(new Big(item.nowPrice || "0"));
            // }, new Big(0));
            this.TotalPrice = new Big(this.TotalPrice1 * (this.discount / 10)).toFixed(2)
            let TotalPrice = new Big(this.TotalPrice1 * (this.discount / 10))
              this.TotalPrice  = TotalPrice.toFixed(2);
          });
        })
        .catch(() => {
@@ -2317,7 +2329,6 @@
    numberChangeXianPrice(currentValue, oldValue) {
      // 如果现价没有变化,直接返回
      if (this.TotalPrice === this.lastXianPrice || !this.TotalPrice) {
        console.log(2222333)
        return;
      }
      this.$confirm("确定修改所有子项的折扣吗?", "提示", {
@@ -2331,7 +2342,6 @@
          //   this.discount = this.getInfodis;
          // }
          let totalYsprice = new Big(0);
          console.log(this.DataList3, 11111)
          this.DataList3.forEach((item) => {
            item.discount = this.discount;
            const ordPrice = new Big(item.proPrice);
@@ -2366,7 +2376,7 @@
        });
    },
     handleDel(row) {
    handleDel(row) {
      this.Datalists.forEach((item, index) => {
        if (item.proId == row.proId) {
          this.Datalists.splice(index, 1);
@@ -2839,7 +2849,7 @@
}
.box1 {
  width: 50%;
  width: 35%;
  display: flex;
  flex-direction: column;
}