From 875113ca076c613503c3ad4e663f16fde7a68440 Mon Sep 17 00:00:00 2001 From: lkk <364857242@qq.com> Date: 星期五, 10 一月 2025 18:06:32 +0800 Subject: [PATCH] sl --- src/views/system/comp/index.vue | 67 ++++++++++++++++++--------------- 1 files changed, 37 insertions(+), 30 deletions(-) diff --git a/src/views/system/comp/index.vue b/src/views/system/comp/index.vue index 63ae2dd..e835cee 100644 --- a/src/views/system/comp/index.vue +++ b/src/views/system/comp/index.vue @@ -336,8 +336,8 @@ <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" /> </el-form-item> <el-form-item label="浼樻儬"> - <el-input-number ref="inputNumber" style="width: 150px" v-model="youhui" :precision="2" :step="0.1" - :min="0" @change="numberChange"></el-input-number> + <el-input-number ref="inputNumber" style="width: 150px" v-model="youhui" :precision="1" :step="0.1" + :min="0" :max="20" @change="debounceNumberChange" :debounce="3000"></el-input-number> </el-form-item> <el-form-item label="鐜颁环"> <el-input ref="inputName" v-model="queryParams.xianprice" placeholder="鍚堣" clearable @@ -348,19 +348,19 @@ </el-form-item> </el-form> <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> - <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="486"> + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="410"> <template slot-scope="scope"> {{ scope.row.proName }} </template> </el-table-column> <el-table-column label="鍘熶环" align="center" prop="proPrice" width="85"></el-table-column> - <el-table-column label="鎶樻墸" width="85"> + <el-table-column label="鎶樻墸" width="151"> <template slot-scope="scope"> <!-- 鍙緭鍏ョ函鏁板瓧鎶樻墸 --> - <el-input v-model.number="scope.row.limits" @input="validateDiscount(scope.row)" placeholder="杈撳叆鎶樻墸" - size="small" type="number" min="0" step="1" max="10"> - </el-input> + <el-input-number v-model.number="scope.row.limits" + placeholder="杈撳叆鎶樻墸" size="small" type="number" :min="0" :step="0.1" :precision="1" :max="20"> + </el-input-number> </template> </el-table-column> <el-table-column label="鐜颁环" align="center" prop="ysPrice" width="85"></el-table-column> @@ -804,31 +804,30 @@ this.getList(); }, methods: { + debounceNumberChange(currentValue, oldValue) { + clearTimeout(this.debounceTimer); + this.debounceTimer = setTimeout(() => { + this.numberChange(currentValue, oldValue); + }, 300); + }, changeXianjia() { // 鍘熷鎶樻墸鐜囪绠� - this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10 - - }, - validateDiscount(row) { - if (row.limits > 10) { - row.limits = 10; // 寮哄埗灏嗗�艰缃负鏈�澶у�� - } else if (row.limits < 0) { - row.limits = 0; // 寮哄埗灏嗗�艰缃负鏈�灏忓�� + if (this.queryParams.price !== 0) { + this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10; } - this.updateProPrice(row); // 鏇存柊浠锋牸鎴栧叾浠栭�昏緫 + }, updateProPrice(row) { - const proPrice = new Big(row.proPrice); const limits = new Big(row.limits); const result = proPrice.times(limits.div(10)); // ordPrice * (discount / 10) row.ysPrice = result.toNumber(); - this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => { - return sum.plus(new Big(item.ysPrice || '0')); - }, new Big(0)).toNumber(); + // this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => { + // return sum.plus(new Big(item.ysPrice || '0')); + // }, new Big(0)).toNumber(); this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10 }, getList() { @@ -1009,6 +1008,7 @@ const limits = new Big(item.limits); const result = proPrice.times(limits.div(10)); // ordPrice * (discount / 10) item.ysPrice = result.toNumber(); + console.log("numberChange") this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => { return sum.plus(new Big(item.ysPrice || '0')); }, new Big(0)); @@ -1028,13 +1028,14 @@ type: "warning", }) .then(() => { + // 纭繚淇敼鎶樻墸鐨勫�� this.youhui = currentValue; + // 濡傛灉鎶樻墸灏忎簬鏈�灏忔姌鎵e�硷紝淇鎶樻墸 if (this.youhui < this.getInfodis) { this.youhui = this.getInfodis; } - let totalYsprice = new Big(0); // 鍒濆鍖栨�� ysprice - + // 閬嶅巻姣忎釜椤圭洰锛屾洿鏂版瘡涓瓙椤圭殑浠锋牸 this.OnenewpacName.forEach((item) => { item.limits = this.youhui; const proPrice = new Big(item.proPrice); @@ -1043,22 +1044,28 @@ item.ysPrice = result.toNumber(); totalYsprice = totalYsprice.plus(new Big(item.ysPrice)); }); - - // 璁$畻瀹屾墍鏈� ysPrice 鍚庤繘琛岃皟鏁� - if (totalYsprice.toNumber() !== this.queryParams.xianprice) { - const diff = this.queryParams.xianprice - totalYsprice.toNumber(); + // 濡傛灉鎬荤殑 ysPrice 鍜屾煡璇㈠弬鏁颁腑鐨� xianprice 涓嶄竴鑷达紝杩涜璋冩暣 + if (!totalYsprice.eq(this.queryParams.xianprice)) { + const diff = new Big(this.queryParams.xianprice).minus(totalYsprice); + // 濡傛灉 OnenewpacName 鏁扮粍涓嶄负绌猴紝璋冩暣鏈�鍚庝竴椤圭殑 ysPrice if (this.OnenewpacName.length > 0) { const lastItem = this.OnenewpacName[this.OnenewpacName.length - 1]; - lastItem.ysPrice += diff; - // 璋冩暣鍚庢洿鏂� queryParams.xianprice - this.queryParams.xianprice = totalYsprice.plus(diff).toNumber(); + const newYsPrice = new Big(lastItem.ysPrice).plus(diff).toNumber(); + // 浣跨敤 splice 鏇挎崲鏈�鍚庝竴椤癸紝纭繚鏇存柊瑙﹀彂瑙嗗浘鏇存柊 + console.log("hhh"); + + this.$set(this.OnenewpacName[this.OnenewpacName.length - 1], 'ysPrice', newYsPrice); + } } }) .catch(() => { + // 濡傛灉鍙栨秷淇敼锛屾仮澶嶅師鏈夌殑浼樻儬鍊� this.youhui = oldValue; }); }, + + changegroupingName() { if (this.selectionList.length <= 0) { this.$modal.msgError("璇峰厛閫変腑閮ㄩ棬鎴栨坊鍔犳柊鐨勯儴闂�"); @@ -1178,7 +1185,7 @@ const existingItem = this.OnenewpacName.find(existing => existing.proId === item.proId); if (!existingItem) { newItemsToAdd.push(item); // 濡傛灉涓嶅瓨鍦ㄧ浉鍚岄」鐩紝鍒欐坊鍔犲埌鏂版暟缁� - this.updateProPrice(item); // 鏇存柊鍗曚釜椤圭洰鐨勪环鏍� + this.updateProPrice(item); } }); -- Gitblit v1.8.0