| | |
| | | } |
| | | </style> |
| | | </head> |
| | | <body> |
| | | <div class="ibox-content" id="app" v-cloak> |
| | | <body style="overflow: hidden"> |
| | | <div id="app" v-cloak> |
| | | |
| | | |
| | | <el-row> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row class="vertical "> |
| | | <el-select v-model="goodsType" placeholder="商品类型" style="width: 120px" > |
| | | <el-option |
| | | v-for="item in goodsTypeList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <el-input class="searchInput" @input="searchGoods()" v-model="queryKey" |
| | | placeholder="搜索添加产品"></el-input> |
| | | <el-button @click="searchGoods()" type="primary">搜索</el-button> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <el-row style="text-align: center; margin-top: 10px;"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="page.currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-size="page.pageSize" |
| | | layout="total, prev, pager, next, jumper" |
| | | :total="page.total"> |
| | | </el-pagination> |
| | | </el-row> |
| | | <el-row class="btn-box"> |
| | | <el-button size="mini" type="danger" @click="closeXm()">关闭</el-button> |
| | | <el-button size="mini" type="primary" @click="chouseGoods()">确认</el-button> |
| | |
| | | <el-input @change="calculationTotal" v-model="scope.row.zkPrice"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="小计"> |
| | | <template slot-scope="scope"> |
| | | {{scope.row.zkPrice * scope.row.count }} |
| | | {{(scope.row.zkPrice * scope.row.count).toFixed(2) }} |
| | | </template> |
| | | </el-table-column> |
| | | |
| | |
| | | </el-table> |
| | | |
| | | </el-row> |
| | | <el-row class="mt-20 vertical"> |
| | | <el-row class=" vertical"> |
| | | <el-col :span="10" class="money-box"> |
| | | <div> |
| | | <ul> |
| | |
| | | |
| | | <li>订单总金额:{{order.total}}</li> |
| | | |
| | | <li>整单折扣:<span class="arrears" v-if="order.zkTotal != null">{{order.total - order.zkTotal}}</span></li> |
| | | <li>整单折扣:<span class="arrears" v-if="order.zkTotal != null">{{(order.total - order.zkTotal).toFixed(2)}}</span></li> |
| | | <!-- <li v-if="order.arrears>0">订单欠款:<span class="arrears">{{order.arrears}}</span></li>--> |
| | | <!-- <li v-if="order.arrears<0">找零:<span class="arrears">{{order.arrears}}</span></li>--> |
| | | </ul> |
| | |
| | | </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"> |
| | | label="支付方式" |
| | | width="130"> |
| | | <template slot-scope="scope"> |
| | | <el-select v-model="scope.row.t3" placeholder="请选择业绩类型"> |
| | | <el-select v-model="scope.row.payMethod" |
| | | placeholder="请选择支付方式"> |
| | | <el-option |
| | | v-for="item in achieveTypeList" |
| | | :key="item.key" |
| | | :label="item.value" |
| | | :value="item.key"> |
| | | 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="业绩" width="100"> |
| | | label="业绩类型" width="150"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.achieveMoney"></el-input> |
| | | <el-select v-model="scope.row.achieveType" @change="calculationAchieve" placeholder="请选择业绩类型"> |
| | | <el-option |
| | | v-for="item in achieveTypeList" |
| | | :key="item.value" |
| | | :label="item.value" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="业绩" > |
| | | <template slot-scope="scope"> |
| | | <el-input @input="checkAchieveMoney" v-model="scope.row.goodsCash"></el-input> |
| | | </template> |
| | | </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> |
| | |
| | | var app = new Vue({ |
| | | el: '#app', |
| | | data: { |
| | | |
| | | goodsType:"", |
| | | goodsTypeList:[{value:"",label:"全部"},{value:"套餐",label:"套餐"},{value:"项目",label:"项目"},{value:"充值卡",label:"充值卡"}], |
| | | //业绩设置框 |
| | | drawer: false, |
| | | 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: [], |
| | |
| | | shopInfo: {}, |
| | | |
| | | |
| | | tableHeight: 500, |
| | | tableHeight: 'calc(100vh - 300px)', |
| | | |
| | | /*****搜索表格数据*********/ |
| | | //搜索关键词 |
| | |
| | | searchTableData: [], |
| | | //表格加载效果 |
| | | loading: false, |
| | | page : { |
| | | currentPage : 1, |
| | | pageSize : 10, |
| | | total : 0 |
| | | }, |
| | | /******搜索表格数据END********/ |
| | | |
| | | dialogSettleVisible : false, |
| | |
| | | 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, |
| | | payMethod:"现金", |
| | | }); |
| | | }); |
| | | _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.price = goods.sealPice; |
| | | item.goodsId = goods.id; |
| | | item.isFree = '否'; |
| | | item.payMethod = '现金'; |
| | | if (type == BUY_TYPE_NOT_FREE) { |
| | | //购买 |
| | | item.zkPrice = goods.sealPice; |
| | |
| | | } |
| | | 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, |
| | | payMethod:'现金', |
| | | }); |
| | | } else { |
| | | //加入业绩 |
| | | this.achieveList.push({ |
| | | orderItem: item, |
| | | staff: this.loginUser, |
| | | saleId: _this.loginUser.suUserType === 'admin' ? '' : this.loginUser.suId, |
| | | goodsCash: item.payMoney, |
| | | achieveType : _this.achieveTypeList[0].value, |
| | | commission: 0, |
| | | isShare: false, |
| | | payMethod:'现金', |
| | | }); |
| | | } |
| | | this.order.items.push(item); |
| | | } |
| | | |
| | |
| | | callback: function (data) { |
| | | let order = data.rows[0]; |
| | | console.log("order", order); |
| | | _this.order.zkTotal = order.zkTotal; |
| | | _this.order.total = order.total; |
| | | _this.order.zkTotal = order.zkTotal.toFixed(2); |
| | | _this.order.total = order.total.toFixed(2); |
| | | |
| | | //支付金额计算 |
| | | _this.order.items.forEach(item => { |
| | | let count = parseFloat(item.count); |
| | | let zkPrice = parseFloat(item.zkPrice); |
| | | |
| | | if (optionType != 1) { |
| | | // if (optionType != 1) { |
| | | //直接修改支付金额不重置支付金额 |
| | | item.payMoney = zkPrice * count; |
| | | } |
| | | item.payMoney = (zkPrice * count).toFixed(2); |
| | | // } |
| | | _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) { |
| | |
| | | |
| | | if (this.checkSubmitOrder()) { |
| | | let _this = this; |
| | | //是否全部为储值卡支付 |
| | | let isCardPay=true; |
| | | |
| | | 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); |
| | | if (item.type == '储值卡'){ |
| | | flow.isGift = item.isGift; |
| | | flow.cardId = item.id; |
| | | }else{ |
| | | isCardPay=false; |
| | | } |
| | | total += parseFloat(item.money); |
| | | flows.push(flow) |
| | | }) |
| | | } |
| | | if (total != _this.order.payMoney) { |
| | | this.$message.warning("输入付款总金额与应付金额不符"); |
| | | return false; |
| | | } |
| | | _this.order.flows = flows; |
| | | |
| | | |
| | | |
| | | |
| | | } else { |
| | | this.$message.warning("请选择支付方式"); |
| | | return false; |
| | | } |
| | | } |
| | | console.log("isCardPay",isCardPay); |
| | | |
| | | //匹配业绩 |
| | | _this.order.items.forEach(item=>{ |
| | | item.achieveList = []; |
| | | }) |
| | | _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.uuid == achieve.orderItem.uuid) { |
| | | |
| | | let payMethod=achieve.payMethod; |
| | | if(isCardPay){ |
| | | //如果是储值卡支付,则业绩自动切换到划扣金额 |
| | | payMethod="划扣"; |
| | | } |
| | | let achieveNew = { |
| | | uuid:item.uuid, |
| | | beaultId: achieve.saleId, |
| | | t1: achieve.achieveMoney, |
| | | t3: achieve.t3, |
| | | projPercentage: achieve.commission, |
| | | achieveType: achieve.achieveType, |
| | | goodsCash: achieve.goodsCash, |
| | | payMethod: payMethod, |
| | | }; |
| | | 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.$message.success(data.info); |
| | | _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; |
| | | }, |
| | | |
| | | |
| | | /** |
| | | * 检查订单是否能够提交 |
| | |
| | | */ |
| | | chouseGoods() { |
| | | let _this = this; |
| | | // this.multipleSelection.forEach(item => { |
| | | // _this.pushToSelectGoods(item, BUY_TYPE_NOT_FREE); |
| | | // }); |
| | | _this.multipleSelection.forEach(item => { |
| | | _this.pushToSelectGoods(item, BUY_TYPE_NOT_FREE); |
| | | }); |
| | | this.closeXm(); |
| | | this.calculationTotal(); |
| | | }, |
| | |
| | | */ |
| | | searchGoods() { |
| | | let _this = this; |
| | | var currentPage = this.page.currentPage; |
| | | var pageSize = this.page.pageSize; |
| | | var offset = (currentPage - 1) * pageSize; |
| | | if (this.queryKey && this.queryKey.trim().length > 0) { |
| | | this.showSearchTable = true; |
| | | this.loading = true; |
| | |
| | | app: _this, |
| | | contentType: 'application/x-www-form-urlencoded', |
| | | //TODO 优化下拉加载 |
| | | data: {name: _this.queryKey, limit: 10000}, |
| | | data: {name: _this.queryKey,goodType:_this.goodsType , limit: pageSize, offset : offset}, |
| | | url: basePath + "/admin/shoppinggoods/showList", |
| | | callback: function (data) { |
| | | _this.searchTableData = data.rows; |
| | | _this.page.total = data.total; |
| | | _this.loading = false; |
| | | } |
| | | }); |
| | |
| | | this.showSearchTable = false; |
| | | } |
| | | }, |
| | | |
| | | |
| | | handleSizeChange(val) { |
| | | this.page.pageSize = val; |
| | | this.searchGoods(); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.page.currentPage = val; |
| | | this.searchGoods(); |
| | | }, |
| | | remoteMethod(query) { |
| | | if (query !== '') { |
| | | this.vipLoading = 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; |
| | |
| | | title: "打印订单", |
| | | area: ['250px', '550px'], |
| | | maxmin: true, |
| | | content: [basePath + '/admin/redirect/hive/beautySalon/print-order?id=' + this.order.id], |
| | | content: [basePath + '/admin/order/printOrder?id=' + this.order.id], |
| | | cancel: function (index, layero) { |
| | | _this.closeFram(); |
| | | } |
| | |
| | | } |
| | | } 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); |
| | | } |
| | | }); |
| | |
| | | return false; |
| | | } |
| | | |
| | | if(!this.checkAchieveMoney()){ |
| | | return ; |
| | | } |
| | | |
| | | _this.dialogSettleVisible = true; |
| | | } |
| | | } |