| | |
| | | </el-tabs> |
| | | </div> |
| | | |
| | | |
| | | <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 prop="propinName" label="检查项目" width="160px" :show-overflow-tooltip="true"> |
| | | </el-table-column> |
| | | <el-table-column prop="proName" label="明细项目" width="200px" :show-overflow-tooltip="true"> |
| | | <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"> |
| | |
| | | </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> |
| | | |
| | | <!-- 付款类型 --> |
| | |
| | | TotalPrice1: 0, |
| | | TotalPrice6: 0, |
| | | TotalPrice7: 0, |
| | | TotalPrice: 0, |
| | | numberList: [], |
| | | dialogVisible: false, |
| | | CheckBox: {}, |
| | |
| | | } |
| | | } |
| | | }, |
| | | 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(); |
| | | this.TotalPrice = this.DataList3.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; |
| | | } |
| | | }, |
| | | |
| | | 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)).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) { |
| | | console.log(2222333) |
| | | 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.DataList3, 11111) |
| | | 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)) |
| | | }); |
| | | }, |
| | | /** 删除按钮操作 */ |