|  |  |  | 
|---|
|  |  |  | title="业绩设置" | 
|---|
|  |  |  | :visible.sync="drawer" | 
|---|
|  |  |  | :direction="direction" | 
|---|
|  |  |  | size="50%" | 
|---|
|  |  |  | size="90%" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-col :span="24"> | 
|---|
|  |  |  | 
|---|
|  |  |  | prop="orderItem.payMoney" | 
|---|
|  |  |  | label="收款"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="业绩"> | 
|---|
|  |  |  | label="业绩类型" width="150"> | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-select v-model="scope.row.t3" placeholder="请选择业绩类型"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="item in achieveTypeList" | 
|---|
|  |  |  | :key="item.key" | 
|---|
|  |  |  | :label="item.value" | 
|---|
|  |  |  | :value="item.key"> | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="业绩" width="100"> | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-input v-model="scope.row.achieveMoney"></el-input> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="员工"> | 
|---|
|  |  |  | label="提成"> | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-input v-model="scope.row.commission"></el-input> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="员工" width="130"> | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-select v-model="scope.row.saleId" placeholder="请选择员工"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | width="200" | 
|---|
|  |  |  | width="150" | 
|---|
|  |  |  | label="操作"> | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-button type="primary" v-if="scope.row.isShare" | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-row type="flex" align="middle" style="padding: 10px 0;"> | 
|---|
|  |  |  | <el-col :span="5" style="text-align: center;">收款方式</el-col> | 
|---|
|  |  |  | <el-col class="paymethod" :span="15"> | 
|---|
|  |  |  | <el-col class="paymethod" :span="18"> | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <ul> | 
|---|
|  |  |  | <span v-for="(item, index) in payMethods"> | 
|---|
|  |  |  | 
|---|
|  |  |  | @check="(click, checked,$item)=>{handleCheckChange(click, checked,$item)}" | 
|---|
|  |  |  | :props="defaultProps"> | 
|---|
|  |  |  | </el-tree> | 
|---|
|  |  |  | <li :class="{active : item.isActive}" slot="reference" @click="payMethodSelect(item, index)">{{item.value}}</li> | 
|---|
|  |  |  | <li :class="{active : item.isActive}" slot="reference" @click="payMethodSelect(item, index)"><div style=" height:30px; line-height: 30px; display: flex; align-items: center"><img style="width: 25px; height: 25px; align-items: center;" :src="item.img"><span style="margin-left: 5px;">{{item.value}}</span></div></li> | 
|---|
|  |  |  | </el-popover> | 
|---|
|  |  |  | </span> | 
|---|
|  |  |  | </ul> | 
|---|
|  |  |  | 
|---|
|  |  |  | <el-col :span="15"> | 
|---|
|  |  |  | <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.number="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"><el-input v-model="item.money"></el-input></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> | 
|---|
|  |  |  | 
|---|
|  |  |  | direction: 'rtl', | 
|---|
|  |  |  | //当前登录用户 | 
|---|
|  |  |  | loginUser: {}, | 
|---|
|  |  |  | staffUser:{}, | 
|---|
|  |  |  | //业绩用户列表 | 
|---|
|  |  |  | userList: [], | 
|---|
|  |  |  | order: { | 
|---|
|  |  |  | 
|---|
|  |  |  | vipLoading: false, | 
|---|
|  |  |  | payMethods: [{ | 
|---|
|  |  |  | value: '现金支付', | 
|---|
|  |  |  | img: '/images/pay/cash.png', | 
|---|
|  |  |  | isActive: false, | 
|---|
|  |  |  | type: '现金支付' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | value: '微信', | 
|---|
|  |  |  | img: '/images/pay/wechat.png', | 
|---|
|  |  |  | isActive: false, | 
|---|
|  |  |  | type: '微信' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | value: '支付宝', | 
|---|
|  |  |  | img: '/images/pay/zhifubao.png', | 
|---|
|  |  |  | isActive: false, | 
|---|
|  |  |  | type: '支付宝' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | value: '银行卡', | 
|---|
|  |  |  | img: '/images/pay/yinlian.png', | 
|---|
|  |  |  | isActive: false, | 
|---|
|  |  |  | type: '银行卡' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | value: '团购', | 
|---|
|  |  |  | img: '/images/pay/tuan.png', | 
|---|
|  |  |  | isActive: false, | 
|---|
|  |  |  | type: '团购' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | value: '储值卡', | 
|---|
|  |  |  | img: '/images/pay/card.png', | 
|---|
|  |  |  | isActive: false, | 
|---|
|  |  |  | type: '储值卡' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | value: '欠款', | 
|---|
|  |  |  | img: '/images/pay/qian.png', | 
|---|
|  |  |  | isActive: false, | 
|---|
|  |  |  | type: '欠款' | 
|---|
|  |  |  | },], | 
|---|
|  |  |  | achieveList: [], | 
|---|
|  |  |  | achieveTypeList : [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | "key" : "现金业绩", | 
|---|
|  |  |  | "value" : "现金业绩" | 
|---|
|  |  |  | },{ | 
|---|
|  |  |  | "key" : "划扣业绩", | 
|---|
|  |  |  | "value" : "划扣业绩" | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | //会员可用的充值卡 | 
|---|
|  |  |  | moneyCards: [], | 
|---|
|  |  |  | //门店信息 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //取消订单 | 
|---|
|  |  |  | closeFram() { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | item.count = 1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //加入业绩 | 
|---|
|  |  |  | this.achieveList.push({ | 
|---|
|  |  |  | orderItem: item, | 
|---|
|  |  |  | staff: this.loginUser, | 
|---|
|  |  |  | saleId: this.loginUser.suId, | 
|---|
|  |  |  | achieveMoney: item.payMoney, | 
|---|
|  |  |  | isShare: false, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | if (this.staffUser.suId) { | 
|---|
|  |  |  | //加入业绩 | 
|---|
|  |  |  | this.achieveList.push({ | 
|---|
|  |  |  | orderItem: item, | 
|---|
|  |  |  | staff: this.staffUser, | 
|---|
|  |  |  | saleId: this.staffUser.suId, | 
|---|
|  |  |  | achieveMoney: item.payMoney, | 
|---|
|  |  |  | t3: '现金业绩', | 
|---|
|  |  |  | commission: 0, | 
|---|
|  |  |  | isShare: false, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | //加入业绩 | 
|---|
|  |  |  | this.achieveList.push({ | 
|---|
|  |  |  | orderItem: item, | 
|---|
|  |  |  | staff: this.loginUser, | 
|---|
|  |  |  | saleId: this.loginUser.suId, | 
|---|
|  |  |  | achieveMoney: item.payMoney, | 
|---|
|  |  |  | t3: '现金业绩', | 
|---|
|  |  |  | commission: 0, | 
|---|
|  |  |  | isShare: false, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.order.items.push(item); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | item.payMoney = zkPrice * count; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | _this.order.payMoney += parseFloat(item.payMoney); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | _this.achieveList.forEach(achieve=>{ | 
|---|
|  |  |  | if(achieve.orderItem==item){ | 
|---|
|  |  |  | achieve.achieveMoney=item.payMoney; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | _this.order.payMoney = _this.order.payMoney.toFixed(2); | 
|---|
|  |  |  | //计算欠款 | 
|---|
|  |  |  | _this.order.arrears = _this.order.zkTotal - _this.order.payMoney; | 
|---|
|  |  |  | if (_this.order.arrears < 0) { | 
|---|
|  |  |  | _this.$message.error("支付金额不能大于应收金额"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // _this.order.arrears = _this.order.zkTotal - _this.order.payMoney; | 
|---|
|  |  |  | // if (_this.order.arrears < 0) { | 
|---|
|  |  |  | //     _this.$message.error("支付金额不能大于应收金额"); | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | this.$message.warning("请输入" + item.type + "的付款金额"); | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | flow.amount = item.money; | 
|---|
|  |  |  | flow.amount = parseFloat(item.money); | 
|---|
|  |  |  | if (item.type == '储值卡'){ | 
|---|
|  |  |  | flow.isGift = item.isGift; | 
|---|
|  |  |  | flow.cardId = item.id; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | total += item.money; | 
|---|
|  |  |  | total += parseFloat(item.money); | 
|---|
|  |  |  | flows.push(flow) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | if (total != _this.order.payMoney) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (item.uuid == achieve.orderItem.uuid) { | 
|---|
|  |  |  | let achieveNew = { | 
|---|
|  |  |  | uuid:item.uuid, | 
|---|
|  |  |  | beaultId: achieve.saleId, | 
|---|
|  |  |  | t1: achieve.achieveMoney | 
|---|
|  |  |  | t1: achieve.achieveMoney, | 
|---|
|  |  |  | t3: achieve.t3, | 
|---|
|  |  |  | projPercentage: achieve.commission, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | item.achaeveList.push(achieveNew); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var flag = true; | 
|---|
|  |  |  | for(var j = 0; j < item.achaeveList.length; j++) { | 
|---|
|  |  |  | if(item.achaeveList[j].uuid == achieveNew.uuid && item.achaeveList[j].beaultId == achieveNew.beaultId) { | 
|---|
|  |  |  | flag = false; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (flag) { | 
|---|
|  |  |  | item.achaeveList.push(achieveNew); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | console.log(_this.order); | 
|---|
|  |  |  | //校验业绩金额 | 
|---|
|  |  |  | if (_this.checkAchieve()) { | 
|---|
|  |  |  | let url = basePath + "/admin/order/payOrder"; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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: '取消', | 
|---|
|  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | _this.$message.success(data.info); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(parent.myGrid) { | 
|---|
|  |  |  | parent.myGrid.serchData(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|