From 6d47ae98e2cc860299bfb976bec226d99a0bcd1b Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 12 Mar 2021 11:42:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/score_shop' into score_shop

---
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html |  199 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 129 insertions(+), 70 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 5d91b37..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,7 +393,7 @@
         </el-col>
     </el-row>
 
-
+    <!-- 业绩设置 -->
     <el-drawer
             title="业绩设置"
             :visible.sync="drawer"
@@ -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>
@@ -574,6 +590,13 @@
             vipList: [],
             currentVipInfo: {},
             vipLoading: false,
+            itemSimplePayMethods:[{
+                value: '现金',
+                label:'现金',
+            },{
+                value: '划扣',
+                label:'划扣',
+            }],
             payMethods: [{
                 value: '现金支付',
                 img: '/images/pay/cash.png',
@@ -611,14 +634,11 @@
                 type: '欠款'
             },],
             achieveList: [],
+            //业绩岗位
+            achievePostList : [
+            ],
+            //业绩类型
             achieveTypeList : [
-                {
-                    "key" : "现金业绩",
-                    "value" : "现金业绩"
-                },{
-                    "key" : "划扣业绩",
-                    "value" : "划扣业绩"
-                },
             ],
             //会员可用的充值卡
             moneyCards: [],
@@ -660,12 +680,22 @@
             if (vipId) {
                 _this.changeVip(vipId);
             }
-            //获取用户列表
+            //获取业绩用户列表
             AjaxProxy.requst({
                 app: _this,
                 url: basePath + '/admin/shopAll',
                 callback: function (data) {
                     _this.userList = data.rows;
+                }
+            });
+
+
+            // 业绩类型
+            AjaxProxy.requst({
+                app: _this,
+                url: basePath + '/admin/customerDictionary/getListByParentCode/YJLX',
+                callback: function (data) {
+                    _this.achieveTypeList = data.rows;
                 }
             });
 
@@ -714,9 +744,9 @@
                                                     orderItem: item,
                                                     staff: _this.staffUser,
                                                     saleId: _this.staffUser.suId,
-                                                    achieveMoney: item.payMoney,
+                                                    goodsCash: item.payMoney,
                                                     commission : 0,
-                                                    t3 : '现金业绩',
+                                                    achieveType : _this.achieveTypeList[0].value,
                                                     isShare: false,
                                                 });
                                             });
@@ -801,7 +831,7 @@
              * @param{type} 1 = 购买 2=赠送
              * */
             pushToSelectGoods(goods, type) {
-
+                let _this=this;
                 //判断是否被选中
                 let selected = false;
                 this.order.items.forEach(item => {
@@ -841,8 +871,8 @@
                             orderItem: item,
                             staff: this.staffUser,
                             saleId: this.staffUser.suId,
-                            achieveMoney: item.payMoney,
-                            t3: '现金业绩',
+                            goodsCash: item.payMoney,
+                            achieveType : _this.achieveTypeList[0].value,
                             commission: 0,
                             isShare: false,
                         });
@@ -852,8 +882,8 @@
                             orderItem: item,
                             staff: this.loginUser,
                             saleId: this.loginUser.suId,
-                            achieveMoney: item.payMoney,
-                            t3: '现金业绩',
+                            goodsCash: item.payMoney,
+                            achieveType : _this.achieveTypeList[0].value,
                             commission: 0,
                             isShare: false,
                         });
@@ -900,11 +930,15 @@
                                 }
                                 _this.order.payMoney += parseFloat(item.payMoney);
 
+                                //重新计算业绩金额
                                 _this.achieveList.forEach(achieve=>{
-                                    if(achieve.orderItem==item){
-                                        achieve.achieveMoney=item.payMoney;
+                                    if(achieve.orderItem.uuid==item.uuid){
+                                        achieve.orderItem.payMoney=item.payMoney;
                                     }
                                 })
+                                _this.calculationAchieve();
+
+
                             });
                             _this.order.payMoney = _this.order.payMoney.toFixed(2);
                             //计算欠款
@@ -946,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);
@@ -963,7 +1001,7 @@
                                 }
                                 total += parseFloat(item.money);
                                 flows.push(flow)
-                            })
+                            }
                             if (total != _this.order.payMoney) {
                                 this.$message.warning("输入付款总金额与应付金额不符");
                                 return false;
@@ -979,29 +1017,18 @@
                     _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;
                             }
                         }
@@ -1009,7 +1036,7 @@
 
                     console.log(_this.order);
                     //校验业绩金额
-                    if (_this.checkAchieve()) {
+                    if (_this.checkAchieveMoney()) {
                         let url = basePath + "/admin/order/payOrder";
                         if (submitType == 2) {
                             url = basePath + "/admin/order/saveOrder";
@@ -1065,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;
-            },
+
 
             /**
              * 检查订单是否能够提交
@@ -1231,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;
@@ -1342,6 +1397,10 @@
                     return false;
                 }
 
+                if(!this.checkAchieveMoney()){
+                    return ;
+                }
+
                 _this.dialogSettleVisible = true;
             }
         }

--
Gitblit v1.9.1