| | |
| | | </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 }} |
| | |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | |
| | | <!-- 业绩设置 --> |
| | | <el-drawer |
| | | 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="业绩类型" 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> |
| | |
| | | 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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | direction: 'rtl', |
| | | //当前登录用户 |
| | | loginUser: {}, |
| | | staffUser:{}, |
| | | //业绩用户列表 |
| | | userList: [], |
| | | order: { |
| | |
| | | vipList: [], |
| | | currentVipInfo: {}, |
| | | vipLoading: false, |
| | | itemSimplePayMethods:[{ |
| | | value: '现金', |
| | | label:'现金', |
| | | },{ |
| | | value: '划扣', |
| | | label:'划扣', |
| | | }], |
| | | payMethods: [{ |
| | | value: '现金支付', |
| | | img: '/images/pay/cash.png', |
| | |
| | | type: '欠款' |
| | | },], |
| | | achieveList: [], |
| | | //业绩岗位 |
| | | achievePostList : [ |
| | | ], |
| | | //业绩类型 |
| | | 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; |
| | | item.uuid = MTools.uuid(); |
| | | //业绩设置 |
| | | _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', |
| | |
| | | } |
| | | }); |
| | | |
| | | |
| | | // 业绩类型 |
| | | 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() { |
| | |
| | | * @param{type} 1 = 购买 2=赠送 |
| | | * */ |
| | | pushToSelectGoods(goods, type) { |
| | | |
| | | let _this=this; |
| | | //判断是否被选中 |
| | | let selected = false; |
| | | this.order.items.forEach(item => { |
| | |
| | | } |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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) { |
| | |
| | | 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); |
| | |
| | | } |
| | | total += parseFloat(item.money); |
| | | flows.push(flow) |
| | | }) |
| | | } |
| | | if (total != _this.order.payMoney) { |
| | | this.$message.warning("输入付款总金额与应付金额不符"); |
| | | return false; |
| | |
| | | _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, |
| | | }; |
| | | |
| | | 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); |
| | | } |
| | | 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"; |
| | |
| | | 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(); |
| | | } |
| | |
| | | |
| | | } |
| | | }, |
| | | /** |
| | | * 校验订单业绩设置是否合理 |
| | | */ |
| | | 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; |
| | | }, |
| | | |
| | | |
| | | /** |
| | | * 检查订单是否能够提交 |
| | |
| | | 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; |
| | |
| | | return false; |
| | | } |
| | | |
| | | if(!this.checkAchieveMoney()){ |
| | | return ; |
| | | } |
| | | |
| | | _this.dialogSettleVisible = true; |
| | | } |
| | | } |