From 720381cfb95f06c87c0b11fe92531d06c2b02e12 Mon Sep 17 00:00:00 2001 From: lkk <364857242@qq.com> Date: 星期三, 15 一月 2025 17:58:05 +0800 Subject: [PATCH] 11 --- src/views/system/comp/index.vue | 147 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 111 insertions(+), 36 deletions(-) diff --git a/src/views/system/comp/index.vue b/src/views/system/comp/index.vue index bb54498..ee61488 100644 --- a/src/views/system/comp/index.vue +++ b/src/views/system/comp/index.vue @@ -170,10 +170,6 @@ <el-form-item label="鍘熶环" prop="price"> <el-input v-model="forms.price" placeholder="璇疯緭鍏ュ師浠�" style="width: 130px" /> </el-form-item> - <!-- <el-form-item label="鎶樻墸" prop="limits"> - <el-input v-model="forms.limits" placeholder="璇疯緭鍏ユ姌鎵�" style="width: 130px" @change="numberChange" /> - </el-form-item> --> - <el-form-item label="浼樻儬浠�" prop="ysPrice"> <el-input v-model="forms.ysPrice" placeholder="璇疯緭鍏ュ簲鏀�" style="width: 120px" /> </el-form-item> @@ -239,7 +235,7 @@ <!-- 濂楅 --> <div> - <el-dialog :title="title" :visible.sync="openss" width="1400px" custom-class="custom-dialog" append-to-body + <el-dialog :title="title" :visible.sync="openss" width="1400px" :style="{ height: 1400 + 'px' }" append-to-body :close-on-click-modal="false"> <el-row :gutter="24"> <el-col :span="8" :xs="24"> @@ -251,13 +247,13 @@ </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearch">鎼滅储</el-button> - <!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> --> + </el-form-item> </el-form> <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne" height="478"> <el-table-column type="selection" width="40px" align="center" /> - <el-table-column label="搴忓彿" align="center" prop="newID" width="50px" /> + <el-table-column label="搴忓彿" align="center" prop="pacId" width="50px" /> <el-table-column label="濂楅鍚嶇О/浠锋牸/鍏�" align="center" prop="pacName"> <template slot-scope="scope"> {{ scope.row.pacName + "/" + scope.row.price }} @@ -267,7 +263,7 @@ </el-col> <el-col :span="6" :xs="24"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" - style="height: 35px" @submit.native.prevent> + @submit.native.prevent> <el-form-item label="鍚堣" prop="price"> <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" /> </el-form-item> @@ -336,35 +332,35 @@ <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" - :max="10" :min="1" @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 - style="width: 140px" /> + style="width: 140px" @input="changeXianjia" @blur="numberChangeXianPrice(youhui, youhui)" /> </el-form-item> <el-form-item> <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">閲嶇疆</el-button> </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="528"> + <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="74"></el-table-column> - <el-table-column label="鎶樻墸" width="81"> + <el-table-column label="鍘熶环" align="center" prop="proPrice" width="85"></el-table-column> + <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" @input="validateDiscount(scope.row)" + 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="74"></el-table-column> - <el-table-column label="鎿嶄綔" align="center" width="70"> + <el-table-column label="鐜颁环" align="center" prop="ysPrice" width="85"></el-table-column> + <el-table-column label="鎿嶄綔" align="center" width="85"> <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-delete" @click="handledbelete(scope.row)">鍒犻櫎</el-button> @@ -409,21 +405,30 @@ </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearch">鎼滅储</el-button> - <!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> --> </el-form-item> </el-form> - <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne" height="478"> - <el-table-column label="搴忓彿" align="center" prop="newId" width="50px" /> + <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne" + height="483"> + <!-- <el-table-column type="selection" width="40px" align="center" /> --> + + <el-table-column label="搴忓彿" align="center" prop="newID" width="50px"> + <template slot-scope="scope"> + {{ scope.row.newID }} + </template> + </el-table-column> + <el-table-column label="濂楅鍚嶇О/浠锋牸/鍏�" align="center" prop="pacName"> <template slot-scope="scope"> {{ scope.row.pacName + "/" + scope.row.price }} </template> </el-table-column> </el-table> + <div style="font-size: 16px;margin-top: 10px;">椤圭洰鎬绘潯鏁帮細<span style="font-weight: 700;margin-right: 5px;">{{ + newpacName.length }}</span>鏉�</div> </el-col> <el-col :span="8" :xs="24"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" - style="height: 35px" @submit.native.prevent> + style="height: 51px" @submit.native.prevent> <el-form-item label="鍚堣" prop="price"> <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" /> </el-form-item> @@ -450,8 +455,8 @@ <el-col :span="2" :xs="24"> <div style="margin: 240% 16%"> <el-button type="primary" size="medium " icon="el-icon-back" - style="writing-mode: vertical-rl; text-align: center;letter-spacing: 10px;" - @click="resetright">纭</el-button> + style="writing-mode: vertical-rl; text-align: center;letter-spacing: 10px;" @click="resetright">纭� + 璁�</el-button> </div> </el-col> <el-col :span="8" :xs="24"> @@ -465,7 +470,8 @@ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearchFor">鎼滅储</el-button> </el-form-item> </el-form> - <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" height="478"> + <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" + height="478"> <el-table-column type="selection" width="40px" align="center" /> <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="288" /> <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" width="100" /> @@ -803,7 +809,7 @@ this.updateProPrice(row); // 鏇存柊浠锋牸鎴栧叾浠栭�昏緫 }, updateProPrice(row) { - + console.log('1234') const proPrice = new Big(row.proPrice); const limits = new Big(row.limits); @@ -814,6 +820,22 @@ }, new Big(0)).toNumber(); this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10 }, + debounceNumberChange(currentValue, oldValue) { + clearTimeout(this.debounceTimer); + this.debounceTimer = setTimeout(() => { + this.numberChange(currentValue, oldValue); + }, 300); + }, + changeXianjia() { + // 鍘熷鎶樻墸鐜囪绠� + + + if (this.queryParams.price !== 0) { + this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10; + } + + }, + getList() { this.$nextTick(() => { this.$refs.inputName.focus(); @@ -899,9 +921,10 @@ this.handleQuery(); }, resetQuerys() { - (this.OnenewpacName = []), - (this.queryParams.price = 0), - this.$refs.tbone.toggleRowSelection(this.pacList[0], false); + this.OnenewpacName = [], + this.queryParams.price = 0, + this.queryParams.xianprice = 0, + this.youhui = 0 }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { @@ -1003,6 +1026,50 @@ }); }, + numberChangeXianPrice(currentValue, oldValue) { + this.$confirm("纭畾淇敼鎵�鏈夊瓙椤圭殑鎶樻墸鍚楋紵", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + 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); + const limits = new Big(item.limits); + const result = proPrice.times(limits.div(10)); // ordPrice * (discount / 10) + item.ysPrice = result.toNumber(); + totalYsprice = totalYsprice.plus(new Big(item.ysPrice)); + }); + // 濡傛灉鎬荤殑 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]; + 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) { @@ -1018,6 +1085,8 @@ this.loading = true; if (this.forms.sex) { deptTreeSelect(this.forms.sex).then((response) => { + console.log('111', response.rows); + this.newpacName = response.rows; this.loading = false; response.rows.forEach((item, index) => { @@ -1030,6 +1099,7 @@ }); } else { deptTreeSelect().then((response) => { + console.log('222', response.rows); this.newpacName = response.rows; this.loading = false; response.rows.forEach((item, index) => { @@ -1053,6 +1123,7 @@ handleSearch() { if (this.queryParams.pacName) { getPackageList(this.queryParams.pacName).then((response) => { + console.log('333', response.data); this.newpacName = response.data; response.data.forEach((item, index) => { item.newID = @@ -1063,6 +1134,7 @@ }); } else { deptTreeSelect().then((response) => { + console.log('44', response.rows); this.newpacName = response.rows; response.rows.forEach((item, index) => { item.newID = @@ -1118,7 +1190,7 @@ const existingItem = this.OnenewpacName.find(existing => existing.proId === item.proId); if (!existingItem) { newItemsToAdd.push(item); // 濡傛灉涓嶅瓨鍦ㄧ浉鍚岄」鐩紝鍒欐坊鍔犲埌鏂版暟缁� - this.updateProPrice(item); // 鏇存柊鍗曚釜椤圭洰鐨勪环鏍� + this.updateProPrice(item); } }); @@ -1331,10 +1403,12 @@ if (this.forms.sex) { + console.log('杩涙潵浜唅f'); + deptTreeSelect(this.forms.sex).then((response) => { // 濂楅鍚嶇О this.newpacName = response.rows; - + console.log('5', response.rows); this.loading = false; response.rows.forEach((item, index) => { item.newID = @@ -1344,8 +1418,11 @@ }); }); } else { + console.log('杩涙潵浜唀lse'); + deptTreeSelect().then((response) => { this.newpacName = response.rows; + console.log('6', response.rows); this.loading = false; response.rows.forEach((item, index) => { item.newID = @@ -1580,10 +1657,8 @@ padding: 5px 30px; } -.custom-dialog ::v-deep .el-dialog__wrapper { - height: 1400px; - /* 璁剧疆寮瑰嚭妗嗙殑楂樺害 */ +::v-deep .el-dialog { + height: 750px; overflow-y: auto; - /* 瓒呰繃鏈�澶ч珮搴︽椂鍑虹幇婊氬姩鏉� */ } </style> -- Gitblit v1.8.0