Helius
2022-05-27 4351e71d782741143a98f86f6648acd16689165f
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html
@@ -108,7 +108,8 @@
                        </el-col>
                        <el-col :span="14" style="text-align: right;">
                            <label>¥ {{order.total}}</label>
                            <label>¥ {{(order.zkTotal - order.total).toFixed(2)}}</label>
                            <!-- 退款订单不能显示为负数 -->
                            <label>¥ {{(order.zkTotal - order.total>0?order.zkTotal - order.total:0).toFixed(2)}}</label>
                            <label>¥ {{order.zkTotal}}</label>
                            <label>¥ {{order.arrears}}</label>
                            <label>¥ {{order.repay}}</label>
@@ -179,6 +180,8 @@
                                    label="折扣单价">
                            </el-table-column>
                            <el-table-column  label="小计" :formatter="calOrderTotalFormatter">
                            </el-table-column>
                            <el-table-column  label="支付方式"  prop="payMethod">
                            </el-table-column>
                        </el-table>
                    </el-row>
@@ -254,11 +257,15 @@
                                        label="收款">
                                </el-table-column>
                                <el-table-column
                                        prop="t3"
                                        prop="payMethod"
                                        label="支付方式">
                                </el-table-column>
                                <el-table-column
                                        prop="achieveType"
                                        label="业绩类型">
                                </el-table-column>
                                <el-table-column
                                        prop="t1"
                                        prop="goodsCash"
                                        label="原业绩">
                                </el-table-column>
                                <el-table-column
@@ -307,16 +314,33 @@
                                prop="zkTotal"
                                label="收款">
                        </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
                                prop="t3"
                                label="业绩类型">
                            <template slot-scope="scope">
                                <el-select v-model="scope.row.t3" placeholder="请选择业绩类型">
                                <el-select v-model="scope.row.achieveType" 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>
@@ -325,7 +349,7 @@
                                prop="achieve"
                                label="业绩">
                            <template slot-scope="scope">
                                <el-input v-model="scope.row.t1"></el-input>
                                <el-input  @input="checkAchieveMoney" v-model="scope.row.goodsCash"></el-input>
                            </template>
                        </el-table-column>
                        <el-table-column
@@ -354,9 +378,9 @@
                                           size="mini"
                                           @click="delAchieve(scope.$index, scope.row)">删除
                                </el-button>
                                <el-tooltip content="分享业绩" placement="top">
                                    <el-button @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share"
                                               size="mini" type="primary"></el-button>
                                <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>
                            </template>
                        </el-table-column>
@@ -395,6 +419,10 @@
                        <el-table-column
                                prop="payMethod"
                                label="支付方式">
                        </el-table-column>
                        <el-table-column
                                prop="cardName"
                                label="储值卡名称">
                        </el-table-column>
                        <el-table-column
                                prop="flowNo"
@@ -453,9 +481,9 @@
            </el-col>
        </el-row>
<!--        <el-row style="text-align: center; margin: 20px 0 10px 0">-->
<!--            <el-checkbox v-model="printPaper">打印小票</el-checkbox>-->
<!--        </el-row>-->
        <!--        <el-row style="text-align: center; margin: 20px 0 10px 0">-->
        <!--            <el-checkbox v-model="printPaper">打印小票</el-checkbox>-->
        <!--        </el-row>-->
        <el-row style="text-align: center; margin: 10px 0 0 0">
            <el-button type="primary" @click="confirmSubmit">确认收款</el-button>
@@ -482,15 +510,7 @@
            activeName : "first",
            circleUrl : "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
            userList : [],
            achieveTypeList : [
                {
                    "key" : "现金业绩",
                    "value" : "现金业绩"
                },{
                    "key" : "划扣业绩",
                    "value" : "划扣业绩"
                },
            ],
            achieveTypeList : [],
            orderItems : [],
            achieveItems : [],
            flowItems : [],
@@ -498,6 +518,13 @@
            isRefund : false,
            isReturnAchieve : false,
            totalRefund : "",
            itemSimplePayMethods:[{
                value: '现金',
                label:'现金',
            },{
                value: '划扣',
                label:'划扣',
            }],
            payMethods: [{
                value: '现金支付',
                img: '/images/pay/cash.png',
@@ -546,8 +573,24 @@
        created : function() {
            let _this = this;
            this.orderParam = /*[[${orderParam}]]*/
            this.queryOrderDetailData(this.orderParam);
            var orderId = /*[[${orderId}]]*/
            var orderNo = /*[[${orderNo}]]*/
            var param = {};
            if(orderId) {
                param.id = orderId;
            } else {
                param.orderNo = orderNo;
            }
            this.queryOrderDetailData(param);
            // 业绩类型
            AjaxProxy.requst({
                app: _this,
                url: basePath + '/admin/customerDictionary/getListByParentCode/YJLX',
                callback: function (data) {
                    _this.achieveTypeList = data.rows;
                }
            });
        },
        methods : {
            calRefund() {
@@ -565,7 +608,7 @@
                let _this = this;
                AjaxProxy.requst({
                    app: _this,
                    data: {id: param, orderNo:param},
                    data: param,
                    contentType: 'application/x-www-form-urlencoded',
                    url: basePath + '/admin/order/findOrderDetailByIdOrNo',
                    callback: function (data) {
@@ -659,6 +702,10 @@
                }
                _this.data.items = dataItems;
                _this.data.zkTotal =  _this.refundMoney;
                _this.data.total =  _this.total;
                AjaxProxy.requst({
                    app: _this,
                    data: _this.data,
@@ -667,7 +714,9 @@
                    callback: function (data) {
                        _this.isRefund = false;
                        _this.dialogSettleVisible = false;
                        _this.queryOrderDetailData(_this.data.oldOrderId);
                        var param = {};
                        param.id = _this.data.oldOrderId;
                        _this.queryOrderDetailData(param);
                    }
                });
@@ -712,6 +761,7 @@
                let _this = this;
                let items = this.orderItems;
                _this.refundMoney = 0;
                _this.total = 0;
                for(var i = 0; i < items.length; i++) {
                    let item = items[i]
@@ -727,6 +777,8 @@
                        }
                        _this.refundMoney += parseFloat(item.refundPrice * item.refundCount);
                        //记录一下未优惠之前的价格
                        _this.total += parseFloat(item.price * item.refundCount);
                    }
                }
@@ -737,7 +789,7 @@
                _this.dialogSettleVisible = true;
            },
            calOrderTotalFormatter(row, column) {
                return row.count * row.price;
                return (row.count * row.zkPrice).toFixed(2);
            },
            getVipMoneyCards() {
                let _this = this;
@@ -855,34 +907,77 @@
            },
            saveAchieve() {
                let _this = this;
                AjaxProxy.requst({
                    app: _this,
                    data: _this.achieveItems,
                    contentType: 'application/json',
                    url: basePath + '/admin/achieve/add',
                    callback: function (data) {
                        _this.$message.success(data.info);
                    }
                });
            },
            shareAchieve(index, row) {
                var row2 = JSON.parse(JSON.stringify(row));
                row2.id = null;
                row2.isShare = true;
                this.achieveItems.push(row2);
            },
            delAchieve(index, row) {
                let _this = this;
                if (row.id) {
                if(_this.checkAchieveMoney()){
                    AjaxProxy.requst({
                        app: _this,
                        url: basePath + '/admin/achieve/del?id=' + row.id,
                        data: _this.achieveItems,
                        contentType: 'application/json',
                        url: basePath + '/admin/achieve/add',
                        callback: function (data) {
                            _this.$message.success(data.info);
                        }
                    });
                }
            },
            shareAchieve(index, row) {
                var row2 = JSON.parse(JSON.stringify(row));
                row2.id = null;
                row2.isShare = true;
                this.achieveItems.splice(index+1,0,row2);
                this.calculationAchieve();
            },
            //业绩均分订单金额
            calculationAchieve(){
                console.log("计算业绩");
                let jsqMap={};
                this.achieveItems.forEach(achieve=>{
                    key=achieve.achieveType+achieve.orderItemId;
                    if(!jsqMap[key]){
                        jsqMap[key]=1;
                    }else{
                        jsqMap[key]++;
                    }
                });
                this.achieveItems.forEach(achieve=>{
                    key=achieve.achieveType+achieve.orderItemId;
                    achieve.goodsCash=(achieve.zkTotal/jsqMap[key]).toFixed(2);
                });
            },
            //校验业绩是否大于订单收款金额
            checkAchieveMoney(){
                console.log("校验业绩是否大于订单收款金额");
                let jsqMap={};
                let isOk=true;
                for(let i=0 ; i< this.achieveItems.length; i++){
                    let achieve=this.achieveItems[i];
                    if(!isNaN(achieve.goodsCash)  ){
                        key=achieve.achieveType+achieve.orderItemId;
                        if(!jsqMap[key]){
                            jsqMap[key]=parseFloat(achieve.goodsCash);
                        }else{
                            jsqMap[key]=jsqMap[key]+parseFloat(achieve.goodsCash);
                        }
                        if(jsqMap[key]>achieve.zkTotal) {
                            this.$message.error("【"+achieve.goodsName + "】业绩分配金额大于支付金额");
                            isOk = false;
                            break;
                        }
                    }else{
                        this.$message.error("【"+achieve.goodsName + "】业绩分配金额请填写数字");
                        isOk=false;
                        break;
                    }
                }
                console.log("isOk",isOk);
                return isOk;
            },
            //删除业绩
            delAchieve(index, row) {
                let _this = this;
                _this.achieveItems.splice(index, 1);
                this.calculationAchieve();
            },
            checkAchieveIsDel(items) {
                var achieveIds = [];
@@ -905,7 +1000,7 @@
                    title: "打印订单",
                    area: ['250px', '550px'],
                    maxmin: true,
                    content: [basePath + '/admin/redirect/hive/beautySalon/print-order?id=' + id]
                    content: [basePath + '/admin/order/printOrder?id=' + id]
                });
            },
            handleClick() {