From a72aa4bb793ec765892406c842039a71b33215b1 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 11 Mar 2021 18:12:22 +0800 Subject: [PATCH] modify --- zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html | 367 ++++++++++++++++++++++++++++++++++----------------- 1 files changed, 244 insertions(+), 123 deletions(-) diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html index afb0476..f6d935e 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html @@ -288,6 +288,22 @@ </template> </el-table-column> <el-table-column + label="支付方式" + width="130"> + <template slot-scope="scope"> + <el-select v-model="scope.row.payMethod" + placeholder="请选择支付方式"> + <el-option + v-for="item in itemSimplePayMethods" + :key="item.value" + :label="item.label" + :value="item.value" + :disabled="item.disabled"> + </el-option> + </el-select> + </template> + </el-table-column> + <el-table-column label="小计"> <template slot-scope="scope"> {{scope.row.zkPrice * scope.row.count }} @@ -377,12 +393,12 @@ </el-col> </el-row> - + <!-- 业绩设置 --> <el-drawer title="业绩设置" :visible.sync="drawer" :direction="direction" - size="50%" + size="90%" > <el-row> <el-col :span="24"> @@ -414,27 +430,26 @@ prop="orderItem.payMoney" label="收款"> </el-table-column> - <el-table-column label="业绩类型" width="150"> <template slot-scope="scope"> - <el-select v-model="scope.row.t3" placeholder="请选择业绩类型"> + <el-select v-model="scope.row.achieveType" @change="calculationAchieve" placeholder="请选择业绩类型"> <el-option v-for="item in achieveTypeList" - :key="item.key" + :key="item.value" :label="item.value" - :value="item.key"> + :value="item.value"> </el-option> </el-select> </template> </el-table-column> <el-table-column - label="业绩" width="100"> + label="业绩" > <template slot-scope="scope"> - <el-input v-model="scope.row.achieveMoney"></el-input> + <el-input @input="checkAchieveMoney" v-model="scope.row.goodsCash"></el-input> </template> </el-table-column> - <el-table-column + <el-table-column width="100" label="提成"> <template slot-scope="scope"> <el-input v-model="scope.row.commission"></el-input> @@ -461,7 +476,7 @@ size="mini" @click="delAchieve(scope.$index, scope.row)">删除 </el-button> - <el-tooltip content="分享业绩" placement="top"> + <el-tooltip content="分享业绩" placement="top" v-if="!scope.row.isShare"> <el-button @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share" size="mini" type="primary"></el-button> </el-tooltip> @@ -474,6 +489,7 @@ </el-row> </el-drawer> + <!-- 收款 --> <el-dialog title="收款" :visible.sync="dialogSettleVisible"> <el-row type="flex" align="middle" style="padding: 0 0 10px 0;"> <el-col :span="5" style="text-align: center;">应收</el-col> @@ -516,7 +532,7 @@ <el-row style="line-height: 50px;" v-for="(item, index) in payMoneys"> <el-col :span="6" style="text-align: right; padding-right: 10px; font-size: 12px;">{{item.value}}</el-col> <el-col :span="8"><el-input v-model="item.money"></el-input></el-col> - <el-col :span="6" style="margin-left: 10px;" v-if="item.type == '储值卡'">{{item.isGift == 1 ? '赠送余额' : '余额' }}:<span class="arrears">¥ {{item.balance}}</span></el-col> + <el-col :span="8" style="margin-left: 10px;" v-if="item.type == '储值卡'">{{item.isGift == 1 ? '赠送余额' : '余额' }}:<span class="arrears">¥ {{item.balance}}</span></el-col> </el-row> </el-col> </el-row> @@ -558,6 +574,7 @@ direction: 'rtl', //当前登录用户 loginUser: {}, + staffUser:{}, //业绩用户列表 userList: [], order: { @@ -573,6 +590,13 @@ vipList: [], currentVipInfo: {}, vipLoading: false, + itemSimplePayMethods:[{ + value: '现金', + label:'现金', + },{ + value: '划扣', + label:'划扣', + }], payMethods: [{ value: '现金支付', img: '/images/pay/cash.png', @@ -610,14 +634,11 @@ type: '欠款' },], achieveList: [], + //业绩岗位 + achievePostList : [ + ], + //业绩类型 achieveTypeList : [ - { - "key" : "现金业绩", - "value" : "现金业绩" - },{ - "key" : "划扣业绩", - "value" : "划扣业绩" - }, ], //会员可用的充值卡 moneyCards: [], @@ -655,68 +676,11 @@ created: function () { let _this = this; - //获取登录用户信息 - AjaxProxy.requst({ - app: _this, - url: basePath + '/admin/getLoginUser', - callback: function (data) { - _this.loginUser = data.mapInfo.user; - - if (id) { - //加载订单信息 - AjaxProxy.requst({ - app: _this, - url: basePath + '/admin/order/findOrderById/' + id, - callback: function (data) { - _this.order = data.rows[0]; - //修改支付金额 - _this.changeVip(_this.order.vipId); - let items = _this.order.items; - let orderPayMoney = 0; - //设置欠款订单设置欠款金额等于支付金额,非欠款订单设置折扣金额等于支付金额 - items.forEach(item => { - if (item.arrears > 0) { - item.payMoney = item.arrears; - } else { - item.payMoney = item.zkPrice; - } - orderPayMoney += item.payMoney; - - //业绩设置 - _this.achieveList.push({ - orderItem: item, - staff: _this.loginUser, - saleId: _this.loginUser.suId, - achieveMoney: item.payMoney, - commission : 0, - t3 : '现金业绩', - isShare: false, - }); - }); - _this.order.payMoney = orderPayMoney; - } - }); - - } else { - //获取门店信息 - AjaxProxy.requst({ - app: _this, - url: basePath + '/admin/shopInfo/findUserShop', - callback: function (data) { - _this.order.shopName = data.rows[0].shopName; - - } - }); - } - - - } - }); - + _this.initMethod() if (vipId) { _this.changeVip(vipId); } - //获取用户列表 + //获取业绩用户列表 AjaxProxy.requst({ app: _this, url: basePath + '/admin/shopAll', @@ -725,9 +689,89 @@ } }); + + // 业绩类型 + AjaxProxy.requst({ + app: _this, + url: basePath + '/admin/customerDictionary/getListByParentCode/YJLX', + callback: function (data) { + _this.achieveTypeList = data.rows; + } + }); + }, methods: { + initMethod() { + let _this = this; + + //获取登录用户信息 + AjaxProxy.requst({ + app: _this, + url: basePath + '/admin/getLoginUser', + callback: function (data) { + _this.loginUser = data.mapInfo.user; + + if (id) { + //加载订单信息 + AjaxProxy.requst({ + app: _this, + url: basePath + '/admin/order/findOrderById/' + id, + callback: function (data) { + _this.order = data.rows[0]; + //修改支付金额 + _this.changeVip(_this.order.vipId); + + AjaxProxy.requst({ + app: _this, + url: basePath + '/admin/getUserById?id='+_this.order.staffId, + callback: function (data) { + _this.staffUser = data.mapInfo.user; + + let items = _this.order.items; + let orderPayMoney = 0; + //设置欠款订单设置欠款金额等于支付金额,非欠款订单设置折扣金额等于支付金额 + items.forEach(item => { + if (item.arrears > 0) { + item.payMoney = item.arrears; + } else { + item.payMoney = item.zkPrice; + } + orderPayMoney += item.payMoney; + item.uuid = MTools.uuid(); + //业绩设置 + _this.achieveList.push({ + orderItem: item, + staff: _this.staffUser, + saleId: _this.staffUser.suId, + goodsCash: item.payMoney, + commission : 0, + achieveType : _this.achieveTypeList[0].value, + isShare: false, + }); + }); + _this.order.payMoney = orderPayMoney; + } + }); + } + }); + + } else { + //获取门店信息 + AjaxProxy.requst({ + app: _this, + url: basePath + '/admin/shopInfo/findUserShop', + callback: function (data) { + _this.order.shopName = data.rows[0].shopName; + + } + }); + } + + + } + }); + }, //取消订单 closeFram() { @@ -787,7 +831,7 @@ * @param{type} 1 = 购买 2=赠送 * */ pushToSelectGoods(goods, type) { - + let _this=this; //判断是否被选中 let selected = false; this.order.items.forEach(item => { @@ -821,17 +865,29 @@ } item.count = 1; - - //加入业绩 - this.achieveList.push({ - orderItem: item, - staff: this.loginUser, - saleId: this.loginUser.suId, - achieveMoney: item.payMoney, - t3 : '现金业绩', - commission : 0, - isShare: false, - }); + if (this.staffUser.suId) { + //加入业绩 + this.achieveList.push({ + orderItem: item, + staff: this.staffUser, + saleId: this.staffUser.suId, + goodsCash: item.payMoney, + achieveType : _this.achieveTypeList[0].value, + commission: 0, + isShare: false, + }); + } else { + //加入业绩 + this.achieveList.push({ + orderItem: item, + staff: this.loginUser, + saleId: this.loginUser.suId, + goodsCash: item.payMoney, + achieveType : _this.achieveTypeList[0].value, + commission: 0, + isShare: false, + }); + } this.order.items.push(item); } @@ -873,7 +929,18 @@ item.payMoney = zkPrice * count; } _this.order.payMoney += parseFloat(item.payMoney); + + //重新计算业绩金额 + _this.achieveList.forEach(achieve=>{ + if(achieve.orderItem.uuid==item.uuid){ + achieve.orderItem.payMoney=item.payMoney; + } + }) + _this.calculationAchieve(); + + }); + _this.order.payMoney = _this.order.payMoney.toFixed(2); //计算欠款 // _this.order.arrears = _this.order.zkTotal - _this.order.payMoney; // if (_this.order.arrears < 0) { @@ -913,14 +980,18 @@ let _this = this; if(submitType == 1) { + //校验支付方式 if (_this.payMoneys.length > 0) { let flows = [] var total = 0; - _this.payMoneys.forEach(item => { + let isPayMethodOk=true; + for(let i=0; i<_this.payMoneys.length;i++){ + let item = _this.payMoneys[i]; let flow = {}; flow.payMethod = item.type; if (!item.money) { - this.$message.warning("请输入" + item.type + "的付款金额"); + _this.$message.warning("请输入" + item.type + "的付款金额"); + isPayMethodOk=false; return false; } flow.amount = parseFloat(item.money); @@ -930,7 +1001,7 @@ } total += parseFloat(item.money); flows.push(flow) - }) + } if (total != _this.order.payMoney) { this.$message.warning("输入付款总金额与应付金额不符"); return false; @@ -946,24 +1017,26 @@ _this.achieveList.forEach(achieve => { for (let i = 0; i < _this.order.items.length; i++) { let item = _this.order.items[i]; - if (!item.achaeveList){ - item.achaeveList = []; + if (!item.achieveList){ + item.achieveList = []; } if (item.uuid == achieve.orderItem.uuid) { let achieveNew = { + uuid:item.uuid, beaultId: achieve.saleId, - t1: achieve.achieveMoney, - t3: achieve.t3, projPercentage: achieve.commission, + achieveType: achieve.achieveType, + goodsCash: achieve.goodsCash, }; - item.achaeveList.push(achieveNew); + item.achieveList.push(achieveNew); break; } } }) + console.log(_this.order); //校验业绩金额 - if (_this.checkAchieve()) { + if (_this.checkAchieveMoney()) { let url = basePath + "/admin/order/payOrder"; if (submitType == 2) { url = basePath + "/admin/order/saveOrder"; @@ -981,8 +1054,16 @@ if (submitType == 1) { if (_this.printPaper) { _this.print(); + } else { + _this.$message.success({ + message : data.info, + duration : 1000, + onClose() { + _this.closeFram(); + } + }); } - _this.closeFram(); + // _this.$confirm('结算成功,是否立刻打印小票?', '提示', { // confirmButtonText: '打印', // cancelButtonText: '取消', @@ -996,6 +1077,7 @@ } else { _this.$message.success(data.info); } + if(parent.myGrid) { parent.myGrid.serchData(); } @@ -1010,29 +1092,7 @@ } }, - /** - * 校验订单业绩设置是否合理 - */ - checkAchieve() { - /* - //TODO 前端展示不检测,因为考虑到储值卡支付问题 - let _this = this; - for (let i = 0; i < _this.order.items.length; i++) { - if (_this.achieveList.length > 0) { - let item = _this.order.items[i]; - let sum = 0; - item.achieveList.forEach(achieve => { - console.log(sum, achieve); - sum += parseFloat(achieve.t1); - }); - if (sum > item.payMoney) { - this.$message.warning("业绩金额不能大于支付金额【" + item.shoppingGoods.name + "】"); - return false; - } - } - }*/ - return true; - }, + /** * 检查订单是否能够提交 @@ -1176,11 +1236,61 @@ shareAchieve(index, row) { row2 = JSON.parse(JSON.stringify(row)); row2.isShare = true; - this.achieveList.push(row2); + this.achieveList.splice(index+1,0,row2); + //this.achieveList=; + this.calculationAchieve(); }, + + //业绩均分订单金额 + calculationAchieve(){ + console.log("计算业绩"); + let jsqMap={}; + this.achieveList.forEach(achieve=>{ + key=achieve.achieveType+achieve.orderItem.uuid; + if(!jsqMap[key]){ + jsqMap[key]=1; + }else{ + jsqMap[key]++; + } + }); + this.achieveList.forEach(achieve=>{ + key=achieve.achieveType+achieve.orderItem.uuid; + achieve.goodsCash=(achieve.orderItem.payMoney/jsqMap[key]).toFixed(2); + }); + }, + //校验业绩是否大于订单收款金额 + checkAchieveMoney(){ + console.log("校验业绩是否大于订单收款金额"); + let jsqMap={}; + let isOk=true; + for(let i=0 ; i< this.achieveList.length; i++){ + let achieve=this.achieveList[i]; + if(!isNaN(achieve.goodsCash) ){ + key=achieve.achieveType+achieve.orderItem.uuid; + if(!jsqMap[key]){ + jsqMap[key]=parseFloat(achieve.goodsCash); + }else{ + jsqMap[key]=jsqMap[key]+parseFloat(achieve.goodsCash); + } + if(jsqMap[key]>achieve.orderItem.payMoney) { + this.$message.error("【"+achieve.orderItem.shoppingGoods.name + "】业绩分配金额大于支付金额"); + isOk = false; + return; + } + }else{ + this.$message.error("【"+achieve.orderItem.shoppingGoods.name + "】业绩分配金额请填写数字"); + isOk=false; + return; + } + }; + console.log("isOk",isOk); + return isOk; + }, + //删除业绩 delAchieve(index, row) { this.achieveList.splice(index, 1); + this.calculationAchieve(); }, print() { let _this = this; @@ -1222,6 +1332,13 @@ } } else { Vue.set(item,'isActive',true); + var hasAmount = 0; + for(var i = 0; i < payMoneys.length; i++) { + hasAmount += parseFloat(payMoneys[i].money); + } + if (_this.order.payMoney - hasAmount > 0) { + Vue.set(item, 'money', _this.order.payMoney - hasAmount); + } _this.payMoneys.push(item); } }); @@ -1280,6 +1397,10 @@ return false; } + if(!this.checkAchieveMoney()){ + return ; + } + _this.dialogSettleVisible = true; } } -- Gitblit v1.9.1