| | |
| | | </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-table-column> |
| | | <el-table-column prop="proPrice" label="原价" width="56px"> |
| | | </el-table-column> |
| | | <el-table-column label="折扣"> |
| | | <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-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: 150px" 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: 206px" @input="changeXianjia" |
| | | @blur="numberChangeXianPrice(discount, discount)" /> |
| | | </el-form-item> |
| | | |
| | | <!-- 付款类型 --> |
| | |
| | | getForceChexiao, |
| | | } from "@/api/hosp/order"; |
| | | import moment from "moment"; |
| | | import Big from "big.js"; |
| | | import { getZhList, getlistByZhId } from "@/api/system/package"; |
| | | import { getwater } from "@/api/hosp/customer"; |
| | | import { getInfo } from "@/api/login"; |
| | |
| | | }, |
| | | TreedataList: [], |
| | | discount: 10, |
| | | lastXianPrice:0, |
| | | DataList: [], |
| | | shijianlist: [], |
| | | // 套餐提交按钮 |
| | |
| | | activeName: "1", |
| | | proIds: [], |
| | | TotalPrice1: 0, |
| | | TotalPrice: 0, |
| | | TotalPrice6: 0, |
| | | TotalPrice7: 0, |
| | | numberList: [], |
| | |
| | | }, |
| | | |
| | | |
| | | updateProPrice(row) { |
| | | updateProPrice(row) { |
| | | console.log(row) |
| | | const ordPrice = new Big(row.ordPrice); |
| | | const discount = new Big(row.discount); |
| | | const result = ordPrice.times(discount.div(10)); // ordPrice * (discount / 10) |
| | |
| | | }, |
| | | |
| | | |
| | | handleManualChange(row) { |
| | | 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)); |
| | | this.TotalPrice = new Big(this.TotalPrice1 * (this.discount / 10)) |
| | | }); |
| | | }) |
| | | .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); |
| | | console.log(this.tableData3, 11111) |
| | | this.tableData3.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; |
| | | }); |
| | | }, |
| | | handleManualChange(row) { |
| | | this.updateProPrice(row); |
| | | }, |
| | | |
| | | updateProPrice(row) { |
| | | const ordPrice = new Big(row.ordPrice); |
| | | // validateDiscount(row) { |
| | | // if ( |
| | | // this.TotalPrice !== undefined && |
| | | // !isNaN(this.TotalPrice) && |
| | | // this.TotalPrice !== this.lastXianPrice |
| | | // ) { |
| | | // this.updateProPrice1(row); |
| | | // this.lastXianPrice = this.TotalPrice; |
| | | // } |
| | | // }, |
| | | // updateProPrice1(row) { |
| | | // console.log( row,2222) |
| | | // const ordPrice = new Big(row.proPrice); |
| | | // const discount = new Big(row.discount); |
| | | // const result = ordPrice.times(discount.div(10)); |
| | | // row.nowPrice = result.toNumber(); |
| | | // const totalYsPrice = this.tableData1.reduce((sum, item) => { |
| | | // return sum.plus(new Big(item.nowPrice || "0")); |
| | | // }, new Big(0)); |
| | | // const totalYsPriceNum = totalYsPrice.toNumber(); |
| | | // if (this.TotalPrice !== undefined && !isNaN(this.TotalPrice)) { |
| | | // const xianPrice = new Big(this.TotalPrice); |
| | | // const diff = xianPrice.minus(totalYsPriceNum); |
| | | // if (!diff.eq(0) && this.tableData1.length > 0) { |
| | | // const lastItem = this.tableData1[this.tableData1.length - 1]; |
| | | // const newYsPrice = new Big(lastItem.nowPrice).plus(diff).toNumber(); |
| | | // this.$set( |
| | | // this.tableData1[this.tableData1.length - 1], |
| | | // "nowPrice", |
| | | // newYsPrice |
| | | // ); |
| | | // } |
| | | // } |
| | | |
| | | // Update youhui calculation |
| | | // if (this.TotalPrice1 !== 0 && this.TotalPrice !== 0) { |
| | | // this.discount = |
| | | // (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) / 100) * 10; |
| | | // } else { |
| | | // this.discount = 0; |
| | | // } |
| | | // }, |
| | | |
| | | updateProPrice(row) { |
| | | console.log(row, 55555) |
| | | 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(); |
| | |
| | | this.TotalPrice1 = 0; |
| | | this.DataList3.forEach((item) => { |
| | | this.TotalPrice1 += item.proPrice * item.sl; |
| | | this.TotalPrice = new Big(this.TotalPrice1 * (this.discount / 10)) |
| | | this.lastXianPrice = this.TotalPrice; |
| | | }); |
| | | }); |
| | | } else if (checked === false) { |
| | |
| | | this.TotalPrice1 = 0; |
| | | this.DataList3.forEach((item) => { |
| | | this.TotalPrice1 += item.proPrice * item.sl; |
| | | this.TotalPrice = new Big(this.TotalPrice1 * (this.discount / 10)) |
| | | this.lastXianPrice = this.TotalPrice; |
| | | }); |
| | | }); |
| | | } |