| | |
| | | <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" /> |
| | |
| | | <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" /> |
| | |
| | | <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> |
| | | |
| | |
| | | <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"> |
| | |
| | | </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="200px" :show-overflow-tooltip="true"> |
| | | </el-table-column> |
| | | <el-table-column prop="proName" label="明细项目" width="200px" :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="操作" 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"> |
| | |
| | | </el-form-item> |
| | | |
| | | <!-- 折扣设定 --> |
| | | <el-form-item label="折扣" style="display: flex"> |
| | | <!-- <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: 140px" v-model="discount" :precision="1" :step="0.1" |
| | | :max="10" :min="0" @change="debounceNumberChange"></el-input-number> |
| | | </el-form-item> |
| | | |
| | | <!-- 应付金额 --> |
| | | <el-form-item label="应付" style="display: flex"> |
| | | <!-- <el-form-item label="应付" style="display: flex"> |
| | | <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: 90px" @input="changeXianjia" |
| | | @blur="numberChangeXianPrice(discount, discount)" /> |
| | | </el-form-item> |
| | | |
| | | <!-- 付款类型 --> |
| | |
| | | |
| | | <!-- 结算方式 --> |
| | | <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> |
| | |
| | | import { getwater } from "@/api/hosp/customer"; |
| | | import { getInfo } from "@/api/login"; |
| | | import ViewPdf from "@/components/ViewPdf"; |
| | | import Big from "big.js"; |
| | | import { |
| | | shijianzhou, |
| | | getaddtTransition, |
| | |
| | | TotalPrice1: 0, |
| | | TotalPrice6: 0, |
| | | TotalPrice7: 0, |
| | | TotalPrice: 0, |
| | | numberList: [], |
| | | dialogVisible: false, |
| | | CheckBox: {}, |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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) { |
| | |
| | | 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; |
| | | }); |
| | | }); |
| | | } |
| | |
| | | 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) { |
| | |
| | | } |
| | | } |
| | | }, |
| | | handleManualChange(row) { |
| | | this.updateProPrice(row); |
| | | }, |
| | | |
| | | updateProPrice(row) { |
| | | if (row.proPrice == 0) { |
| | | row.discount = 10 |
| | | return |
| | | } else { |
| | | const ordPrice = new Big(row.proPrice); |
| | | const discount = new Big(row.discount); |
| | | const result = ordPrice.times(discount.div(10)); // ordPrice * (discount / 10) |
| | | row.nowPrice = result.toNumber(); |
| | | let TotalPrice= this.DataList3.reduce((sum, item) => { |
| | | return sum.plus(new Big(item.nowPrice || "0")); |
| | | }, new Big(0)) |
| | | this.TotalPrice = TotalPrice.toFixed(2); |
| | | this.discount = |
| | | (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) / 100) * 10; |
| | | } |
| | | }, |
| | | |
| | | debounceNumberChange(currentValue, oldValue) { |
| | | clearTimeout(this.debounceTimer); |
| | | this.debounceTimer = setTimeout(() => { |
| | | this.numberChange(currentValue, oldValue); |
| | | }, 300); |
| | | }, |
| | | // 折扣 |
| | | numberChange(currentValue, oldValue) { |
| | | this.$confirm("确定修改所有子项的折扣吗?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | this.discount = currentValue; |
| | | this.DataList3.forEach((item) => { |
| | | item.discount = this.discount; |
| | | const ordPrice = new Big(item.proPrice.toString()); |
| | | const discount = new Big(item.discount.toString()); |
| | | const result = ordPrice.times(discount.div(10)); |
| | | item.nowPrice = result.toNumber(); |
| | | // this.TotalPrice = this.DataList3.reduce((sum, item) => { |
| | | // return sum.plus(new Big(item.nowPrice || "0")); |
| | | // }, new Big(0)); |
| | | let TotalPrice = new Big(this.TotalPrice1 * (this.discount / 10)) |
| | | this.TotalPrice = TotalPrice.toFixed(2); |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | this.discount = oldValue; |
| | | }); |
| | | }, |
| | | |
| | | changeXianjia() { |
| | | // 原始折扣率计算 |
| | | if (this.TotalPrice1 !== 0) { |
| | | this.discount = |
| | | (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) / 100) * 10; |
| | | } |
| | | }, |
| | | numberChangeXianPrice(currentValue, oldValue) { |
| | | // 如果现价没有变化,直接返回 |
| | | if (this.TotalPrice === this.lastXianPrice || !this.TotalPrice) { |
| | | return; |
| | | } |
| | | this.$confirm("确定修改所有子项的折扣吗?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | this.discount = currentValue; |
| | | // if (this.discount < this.getInfodis) { |
| | | // this.discount = this.getInfodis; |
| | | // } |
| | | let totalYsprice = new Big(0); |
| | | this.DataList3.forEach((item) => { |
| | | item.discount = this.discount; |
| | | const ordPrice = new Big(item.proPrice); |
| | | const discount = new Big(item.discount); |
| | | const result = ordPrice.times(discount.div(10)); |
| | | item.nowPrice = result.toNumber(); |
| | | totalYsprice = totalYsprice.plus(new Big(item.nowPrice)); |
| | | }); |
| | | if (!totalYsprice.eq(this.TotalPrice)) { |
| | | const diff = new Big(this.TotalPrice).minus(totalYsprice); |
| | | if (this.tableData1.length > 0) { |
| | | const lastItem = this.tableData3[this.tableData3.length - 1]; |
| | | const newYsPrice = new Big(lastItem.nowPrice) |
| | | .plus(diff) |
| | | .toNumber(); |
| | | // console.log( |
| | | // "hhh", |
| | | // this.tableData1[this.tableData1.length - 1].nowPrice, |
| | | // newYsPrice |
| | | // ); |
| | | this.$set( |
| | | this.tableData3[this.tableData3.length - 1], |
| | | "nowPrice", |
| | | newYsPrice |
| | | ); |
| | | } |
| | | } |
| | | this.lastXianPrice = this.TotalPrice; |
| | | }) |
| | | .catch(() => { |
| | | this.discount = oldValue; |
| | | }); |
| | | }, |
| | | |
| | | handleDel(row) { |
| | | this.Datalists.forEach((item, index) => { |
| | | if (item.proId == row.proId) { |
| | |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | this.DataList3.forEach((item, index) => { |
| | | if (item.proId == row.proId) { |
| | | let proParentId = item.proParentId |
| | | // 获取当前选中的节点key |
| | | const currentCheckedKeys = this.$refs.tree.getCheckedKeys(); |
| | | |
| | | // 创建一个新数组,移除想要取消选中的节点key(这里假设是1) |
| | | const newCheckedKeys = currentCheckedKeys.filter(key => key !== proParentId); |
| | | |
| | | // 使用setCheckedKeys方法更新选中状态 |
| | | this.$refs.tree.setCheckedKeys(newCheckedKeys); |
| | | this.DataList3.splice(index, 1); |
| | | this.marryalls = 0; |
| | | this.DataList3.forEach((item1) => { |
| | |
| | | }); |
| | | } |
| | | }); |
| | | if (this.DataList3.length == 0) { |
| | | this.discount = 10 |
| | | this.checkedkey = [] |
| | | this.$refs.tree.setCheckedKeys([]) |
| | | this.TotalPrice1 = this.marryalls; |
| | | this.TotalPrice = new Big(this.TotalPrice1 * (this.discount / 10)) |
| | | } else if (this.DataList3.length == 1) { |
| | | this.discount = this.DataList3[0].discount |
| | | this.TotalPrice = new Big(this.TotalPrice1 * (this.discount / 10)).toFixed(2) |
| | | } |
| | | this.DataList.forEach((item, index) => { |
| | | if (item.proId == row.proId) { |
| | | this.DataList.splice(index, 1); |
| | | this.TotalPrice1 = 0; |
| | | this.TotalPrice = 0; |
| | | this.DataList.forEach((item1) => { |
| | | this.TotalPrice1 = item1.proPrice + this.TotalPrice1; |
| | | this.TotalPrice = new Big(this.TotalPrice1 * (this.discount / 10)) |
| | | }); |
| | | if (this.marryalls != 0) { |
| | | this.TotalPrice1 += this.marryalls; |
| | | this.TotalPrice = new Big(this.TotalPrice1 * (this.discount / 10)) |
| | | } |
| | | } |
| | | }); |
| | | this.TotalPrice1 = 0; |
| | | this.TotalPrice = 0; |
| | | this.DataList3.forEach((item) => { |
| | | this.TotalPrice1 += item.proPrice; |
| | | this.TotalPrice = new Big(this.TotalPrice1 * (this.discount / 10)) |
| | | }); |
| | | }, |
| | | /** 删除按钮操作 */ |
| | |
| | | } |
| | | |
| | | .box1 { |
| | | width: 50%; |
| | | width: 35%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |