From b2cc0b207328ab1058f955b2e61789ba821b1704 Mon Sep 17 00:00:00 2001 From: lkk <364857242@qq.com> Date: 星期六, 04 一月 2025 18:09:01 +0800 Subject: [PATCH] Merge branch 'master' of http://101.42.27.146:5001/r/ltkj_peisweb --- src/views/system/comp/index.vue | 438 +++++++++++++++++++----------------------------------- 1 files changed, 158 insertions(+), 280 deletions(-) diff --git a/src/views/system/comp/index.vue b/src/views/system/comp/index.vue index 10a86f4..3163714 100644 --- a/src/views/system/comp/index.vue +++ b/src/views/system/comp/index.vue @@ -169,10 +169,9 @@ <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-form-item label="鎶樻墸" prop="limits"> <el-input v-model="forms.limits" placeholder="璇疯緭鍏ユ姌鎵�" style="width: 130px" @change="numberChange" /> - <!-- :disabled="isfalse" --> - </el-form-item> + </el-form-item> --> <el-form-item label="浼樻儬浠�" prop="ysPrice"> <el-input v-model="forms.ysPrice" placeholder="璇疯緭鍏ュ簲鏀�" style="width: 120px" /> @@ -192,31 +191,10 @@ <el-input v-model="forms.gtAge" style="width: 54px" /> </el-col> </el-form-item> - <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" - /> - <!-- :disabled="isfalse" --> - </el-form-item> - <el-form-item label="浼樻儬浠�" prop="ysPrice"> - <el-input - v-model="forms.ysPrice" - placeholder="璇疯緭鍏ュ簲鏀�" - style="width: 120px" - /> - </el-form-item> - + + + </el-form> <el-row :gutter="10" class="mb8"> @@ -224,8 +202,7 @@ <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleGroup">淇濆瓨</el-button> </el-col> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singlegg" - @click="xiangmuWh">椤圭洰缁存姢</el-button> + <el-button type="primary" icon="el-icon-edit" size="mini" @click="xiangmuWh">椤圭洰缁存姢</el-button> </el-col> <el-col :span="1.5"> <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singlegg" @@ -347,7 +324,79 @@ <div> <el-dialog :title="title" :visible.sync="openOne" width="1400px" append-to-body :close-on-click-modal="false"> - <el-row :gutter="24"> + <el-row :gutter="24" v-if="!isTableVisible"> + + <el-col :span="11" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px" + style="height: 35px"> + <el-form-item label="鍘熶环"> + <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"></el-input-number> + </el-form-item> + <el-form-item label="鐜颁环"> + <el-input ref="inputName" v-model="queryParams.xianprice" placeholder="鍚堣" clearable + style="width: 140px" /> + </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"> + + <template slot-scope="scope"> + {{ scope.row.proName + "/" + scope.row.proPrice }} + </template> + </el-table-column> + <el-table-column label="鍘熶环" align="center" prop="proPrice"></el-table-column> + <el-table-column label="鎶樻墸"> + <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> + </template> + </el-table-column> + <el-table-column label="鐜颁环" align="center" prop="ysPrice"></el-table-column> + <el-table-column label="鎿嶄綔" align="center" width="68"> + <template slot-scope="scope"> + <el-button size="mini" type="text" icon="el-icon-delete" + @click="handledbelete(scope.row)">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + </el-col> + <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> + </div> + </el-col> + <el-col :span="11" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" + label-width="68px"> + <el-form-item label="椤圭洰鍚嶇О" prop="proName"> + <el-input ref="inputName" v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable + @keyup.enter.native="handleSearchFor" style="width: 140px" /> + </el-form-item> + <el-form-item> + <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" style="width: 70%"> + <el-table-column type="selection" width="40px" align="center" /> + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" /> + <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" /> + </el-table> + </el-col> + </el-row> + <!-- -=----------------------------------------------------- --> + <el-row :gutter="24" v-else> <el-col :span="8" :xs="24"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form-item label="濂楅鍚嶇О" prop="pacName"> @@ -360,7 +409,7 @@ </el-form-item> </el-form> <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne" - height="478" v-if="isTableVisible" > + 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="pacName"> @@ -380,32 +429,14 @@ <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">閲嶇疆</el-button> </el-form-item> </el-form> - <!-- <div style="color: red; font-size: 8px"> - 娉ㄩ噴锛氶紶鏍囧乏閿弻鍑婚�変腑琛屽彲鍒犻櫎 - </div> --> - <!-- @row-dblclick="dbclick" --> - <el-table - border - v-loading="loading" - :data="OnenewpacName" - :row-class-name="tableRowClassName" - height="478" - > - <el-table-column - label="椤圭洰鍚嶇О/浠锋牸/鍏�" - align="center" - prop="proName" - > - + <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> + <el-table-column label="椤圭洰鍚嶇О/浠锋牸/鍏�" align="center" prop="proName"> + <template slot-scope="scope"> {{ scope.row.proName + "/" + scope.row.proPrice }} </template> </el-table-column> - <el-table-column - label="鍘熶环" - align="center" - prop="proPrice" - ></el-table-column> + <el-table-column label="鍘熶环" align="center" prop="proPrice"></el-table-column> <el-table-column label="鎿嶄綔" align="center" width="68"> <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-delete" @@ -432,23 +463,11 @@ <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" - style="width: 70%" - > + <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" + height="478" style="width: 70%"> <el-table-column type="selection" width="40px" align="center" /> <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="130" /> - <el-table-column - label="椤圭洰浠锋牸/鍏�" - align="center" - prop="proPrice" - width="100" - /> + <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" width="100" /> </el-table> </el-col> </el-row> @@ -602,13 +621,12 @@ </template> <script> - +import Big from 'big.js'; import { listComp, getComp, delComp, addComp, - getfzgrouping, updateComp, addDept, Deptlist, @@ -690,6 +708,8 @@ enName: null, code: null, price: null, + xianprice: null, + limits: null }, id: "", // 琛ㄥ崟鍙傛暟 @@ -700,10 +720,11 @@ gtAge: 100, groupingName: "", pacName: "", - payType: "", - sex: "", + payType: "1", + sex: "2", }, sfzs: '', + youhui: '', // 琛ㄥ崟鏍¢獙 rules: { cnName: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], @@ -714,7 +735,7 @@ { required: true, validator: checkPhoneNum, trigger: "blur" }, ], gtAge: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], - limits: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], + limits: [{ required: false, validator: checkPhoneNum, trigger: "blur" }], ltAge: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], /* pacName: [ { required: true, validator: checkPhoneNum, trigger: "blur" }, @@ -771,7 +792,26 @@ this.getList(); }, methods: { - + validateDiscount(row) { + if (row.limits > 10) { + row.limits = 10; // 寮哄埗灏嗗�艰缃负鏈�澶у�� + } else if (row.limits < 0) { + row.limits = 0; // 寮哄埗灏嗗�艰缃负鏈�灏忓�� + } + 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.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price)*100)/100)*10 + }, getList() { this.$nextTick(() => { this.$refs.inputName.focus(); @@ -779,7 +819,7 @@ (this.loading = true); listComp(this.queryParams).then((response) => { this.compList = response.rows; - + response.rows.forEach((item, index) => { item.newID = (this.queryParams.pageNum - 1) * this.queryParams.pageSize + @@ -801,7 +841,7 @@ cancell() { this.openss = false; this.openOne = false; - this.reset(); + // this.reset(); }, // 琛ㄥ崟閲嶇疆 reset() { @@ -941,10 +981,7 @@ (this.forms.limits / 10) ).toFixed(2); } */ - this.forms.ysPrice = ( - this.forms.price * - (this.forms.limits / 10) - ).toFixed(2); + }, changegroupingName() { @@ -969,36 +1006,7 @@ index + 1; }); - // if (this.groupList.length >= 1) { - // if (this.groupList[0].id) { - // getfzgrouping(this.groupList[0].id).then((response) => { - // this.OnenewpacName = response.data.groupingProList; - // this.queryParams.price = 0; - // this.OnenewpacName.forEach((item) => { - // this.queryParams.price += item.proPrice; - // }); - // }); - // } - // } - // if (this.newpacName.length != 0) { - // this.$nextTick(() => { - // if (this.forms.pacName) { - // this.newpacName.forEach((item, index) => { - // if (this.forms.pacName == item.pacName) { - // this.$refs.tbone.toggleRowSelection( - // this.newpacName[index], - // true - // ); - // } - // }); - // } else { - // this.$refs.tbone.toggleRowSelection(this.newpacName[0], true); - // } - // }); - // } else { - // this.$refs.tbone.clearSelection(); - // } }); } else { deptTreeSelect().then((response) => { @@ -1010,40 +1018,12 @@ index + 1; }); - // if (this.groupList.length >= 1) { - // if (this.groupList[0].id) { - // getfzgrouping(this.groupList[0].id).then((response) => { - // this.OnenewpacName = response.data.groupingProList; - // this.queryParams.price = 0; - // this.OnenewpacName.forEach((item) => { - // this.queryParams.price += item.proPrice; - // }); - // }); - // } - // } - // if (this.newpacName.length != 0) { - // this.$nextTick(() => { - // if (this.forms.pacName) { - // this.newpacName.forEach((item, index) => { - // if (this.forms.pacName == item.pacName) { - // this.$refs.tbone.toggleRowSelection( - // this.newpacName[index], - // true - // ); - // } - // }); - // } else { - // this.$refs.tbone.toggleRowSelection(this.newpacName[0], true); - // } - // }); - // } else { - // this.$refs.tbone.clearSelection(); - // } + }); } getProjectList().then((response) => { this.Treedata = response.data; - + }); }, @@ -1097,7 +1077,6 @@ // 鍗曢」閫夊畾鎸夐挳 resetright() { this.queryParams.price = 0; - // this.dataLists=JSON.parse(JSON.stringify(this.dataList)); this.dataList.forEach((item) => { this.$refs.tre.toggleRowSelection(item, false); this.OnenewpacName.push(item); @@ -1126,35 +1105,20 @@ this.queryParams.price += item.proPrice; }); }, - /* submitrighr() { - if (this.pacList.length >= 1) { - this.openss = false; - this.forms.pacName = this.pacList[0].pacName; - this.forms.price = this.queryParams.price; - this.forms.ysPrice = ( - this.forms.price * - (this.forms.limits / 10) - ).toFixed(2); - } else { - this.$modal.msgError("璇烽�夋嫨濂楅"); - } - }, */ + submitrighr() { this.openOne = false; - // this.forms.pacName = this.pacList[0].pacName; this.forms.price = this.queryParams.price; - this.forms.ysPrice = ( - this.forms.price * - (this.forms.limits / 10) - ).toFixed(2); - // console.log(this.groupingList, 555); - + this.forms.ysPrice = this.queryParams.xianprice + this.forms.limits = this.youhui let mapList = []; this.OnenewpacName.forEach((item) => { mapList.push({ proName: item.proName, proId: item.proId, proPrice: item.proPrice, + limits: item.limits, + ysPrice: item.ysPrice }); }); @@ -1177,7 +1141,7 @@ mapList: mapList, price: this.forms.price, ysPrice: this.forms.ysPrice, - id: this.groupList[0].id, + id: this.groupList[0] ? this.groupList[0].id : '' }; // 鍙戦�佽姹備繚瀛樻暟鎹� @@ -1185,11 +1149,11 @@ if (res.code == 200) { this.beCurrent(); this.forms.groupingName = ""; - this.forms.sex = ""; + this.forms.sex = "2"; this.forms.pacName = ""; this.forms.price = ""; this.forms.ysPrice = ""; - this.forms.payType = ""; + this.forms.payType = "1"; } }); @@ -1208,9 +1172,6 @@ this.pacList.forEach((item) => { this.OnenewpacName = item.tjProjectList; }); - // this.dataLists.forEach((item2) => { - // this.OnenewpacName.push(item2); - // }); this.OnenewpacName.forEach((item) => { this.queryParams.price += item.proPrice; }); @@ -1253,7 +1214,6 @@ handleChange(selection) { this.groupList = selection; - if (selection.length > 0) { this.groupList.forEach((item) => { this.forms.groupingName = item.groupingName; @@ -1272,53 +1232,42 @@ this.GroupUpdate(); this.isSexDisabled = false; // 鎭㈠鎬у埆閫夋嫨妗嗕负鍙敤 } - - /* this.groupList.forEach((item) => { - this.forms.groupingName = item.groupingName; - this.forms.gtAge = item.gtAge; - this.forms.limits = item.limits; - this.forms.ltAge = item.ltAge; - this.forms.pacName = item.pacName; - this.forms.payType = item.payType; - this.forms.sex = item.sex; - this.forms.price = item.price; - this.forms.ysPrice = item.ysPrice; - }); - if (selection.length > 1) { - let del_row = selection.shift(); - this.$refs.tbs.toggleRowSelection(del_row, false); //璁剧疆杩欎竴琛屽彇娑堥�変腑 - } - if(selection.length > 0) { - this.isSexDisabled = true; - } - else { - this.isSexDisabled = false; - } */ this.groupIds = selection.map((item) => item.id); this.singlegg = !selection.length; }, xiangmuWh() { + if (!this.forms.groupingName || + !this.forms.sex || + !this.forms.payType) { + this.$modal.msgError("璇峰厛濉啓鎵�鏈夊繀濉」!"); + return; // Stop execution if any required field is empty + } this.openOne = true; + this.title = "鍒嗙粍椤圭洰缁存姢"; this.OnenewpacName = []; this.queryParams.price = 0; this.loading = true; - let id = this.groupList[0].id; + if (this.groupList[0]) { + let id = this.groupList[0].id || ''; + getDetails(id).then((res) => { + this.OnenewpacName = res.data.groupingProList; + this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => { + return sum.plus(new Big(item.ysPrice || '0')); + }, new Big(0)); + this.OnenewpacName.forEach((item, index) => { + this.queryParams.price += item.proPrice; + }); + this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price)*100)/100)*10 + }); + } // console.log(this.groupList[0].id, 9966); getconfigKey("sfzstc").then((res) => { this.sfzs = res.msg; - - }); - getDetails(id).then((res) => { - this.OnenewpacName = res.data.groupingProList; - this.OnenewpacName.forEach((item, index) => { - this.queryParams.price += item.proPrice; - }); - // return this.OnenewpacName.forEach((item) => { - // this.queryParams.price += item.proPrice; - // }); - }); + + + if (this.forms.sex) { deptTreeSelect(this.forms.sex).then((response) => { // 濂楅鍚嶇О @@ -1349,70 +1298,7 @@ // console.log(this.Treedata,999888); }); }, - //淇濆瓨鍒嗙粍 - /* handleGroup() { - if (this.selectionList.length <= 0) { - this.$modal.msgError("璇峰厛閫変腑閮ㄩ棬鎴栨坊鍔犳柊鐨勯儴闂�"); - } else { - this.groupList.forEach((item) => { - if (item.id) { - this.id = item.id; - } - }); - let mapList = []; - this.OnenewpacName.forEach((item) => { - mapList.push({ - proName: item.proName, - proId: item.proId, - proPrice: item.proPrice, - }); - }); - if (this.id) { - var data = { - id: this.id, - groupingName: this.forms.groupingName, - gtAge: this.forms.gtAge, - limits: this.forms.limits, - ltAge: this.forms.ltAge, - pacName: this.forms.pacName, - payType: this.forms.payType, - sex: this.forms.sex, - dwDeptId: this.selectionList[0].id, - dwId: this.selectionList[0].dwId, - mapList: mapList, - price: this.forms.price, - ysPrice: this.forms.ysPrice, - }; - } else { - var data = { - groupingName: this.forms.groupingName, - gtAge: this.forms.gtAge, - limits: this.forms.limits, - ltAge: this.forms.ltAge, - pacName: this.forms.pacName, - payType: this.forms.payType, - sex: this.forms.sex, - dwDeptId: this.selectionList[0].id, - dwId: this.selectionList[0].dwId, - mapList: mapList, - price: this.forms.price, - ysPrice: this.forms.ysPrice, - }; - } - dwgrouping(data).then((res) => { - if (res.code == 200) { - this.beCurrent(); - this.groupingList = res.data.updatedGroupingList; - this.forms.groupingName = ""; - this.forms.sex = ""; - this.forms.pacName = ""; - this.forms.price = ""; - this.forms.ysPrice = ""; - this.forms.payType = ""; - } - }); - } - }, */ + handleGroup() { // 濡傛灉娌℃湁閫変腑浠讳綍閮ㄩ棬锛堝嵆娌℃湁 selectionList锛夛紝鍙互鐩存帴浠� OnenewpacName 鑾峰彇鏁版嵁 let mapList = []; @@ -1424,16 +1310,8 @@ }); }); - // 濡傛灉 selectionList 涓虹┖锛屼娇鐢� mapList 缁х画淇濆瓨 - /* if (this.OnenewpacName.length === 0) { - this.$modal.msgError("璇峰厛閫変腑椤圭洰"); - return; // 鎻愮ず鐢ㄦ埛閫変腑椤圭洰 - } */ - this.forms.ysPrice = ( - this.forms.price * - (this.forms.limits / 10) - ).toFixed(2); + let data = { groupingName: this.forms.groupingName, @@ -1456,30 +1334,30 @@ if (res.code == 200) { this.beCurrent(); this.forms.groupingName = ""; - this.forms.sex = ""; + this.forms.sex = "2"; this.forms.pacName = ""; this.forms.price = ""; this.forms.ysPrice = ""; - this.forms.payType = ""; + this.forms.payType = "1"; } }); }, // 淇敼鍒嗙粍 GroupUpdate() { - // this.forms = {}; + console.log(this.$refs.elTable) + this.$refs.tbs.clearSelection(); this.forms = { groupingName: "", gtAge: "", limits: "", ltAge: "", pacName: "", - payType: "", - sex: "", + payType: "1", + sex: "2", price: "", ysPrice: "", }; - // this.$refs.forms.resetFields(); }, beCurrent() { let data = { -- Gitblit v1.8.0