jyy
2021-03-12 baa79615425b71521e67ec8a9344b88ce53fc5de
zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html
@@ -133,14 +133,14 @@
                </el-col>
            </el-row>
            <el-row type="flex" justify="center" style="margin: 20px;">
                <el-button size="medium" type="primary">打印</el-button>
                <el-button size="medium" type="primary" @click="printf">打印</el-button>
            </el-row>
        </el-aside>
        <el-main style="background-color: white; margin-right: 15px; margin-left: 15px; padding: 20px 30px;">
            <el-tabs v-model="activeName" @tab-click="handleClick">
                <el-tab-pane label="订单明细" name="first">
                    <el-row>
                        <el-button size="mini" type="primary" @click="openPayMoneyDialog" v-if="isRefund">提交退款</el-button>
                        <el-button size="mini" type="primary" @click="openPayMoneyDialog" v-if="isRefund">提交退款<span v-if="totalRefund"> ¥ {{totalRefund}}</span></el-button>
                        <el-button size="mini" type="danger" @click="isRefund = false" v-if="isRefund">取消</el-button>
                        <el-button size="mini" type="primary" @click="isRefund = true" v-if="order.statu == '已付款' && !isRefund">退款</el-button>
                    </el-row>
@@ -180,6 +180,8 @@
                            </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>
                    <el-row v-show="isRefund">
@@ -214,12 +216,12 @@
                            </el-table-column>
                            <el-table-column label="退款单价">
                                <template slot-scope="scope">
                                    <el-input v-model="scope.row.refundPrice" v-if="scope.row.count > 0"></el-input>
                                    <el-input @change="calRefund" v-model="scope.row.refundPrice" v-if="scope.row.count > 0"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column label="退款数量">
                                <template slot-scope="scope">
                                    <el-input v-model.number="scope.row.refundCount" v-if="scope.row.count > 0"></el-input>
                                    <el-input @change="calRefund" v-model.number="scope.row.refundCount" v-if="scope.row.count > 0"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column label="是否退库存" align="center">
@@ -308,15 +310,19 @@
                                label="收款">
                        </el-table-column>
                        <el-table-column
                                prop="payMethod"
                                label="支付方式">
                        </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 +331,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 +360,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>
@@ -379,6 +385,10 @@
                                prop="flowContent"
                                label="交易内容"
                                width="300">
                        </el-table-column>
                        <el-table-column
                                prop="createTime"
                                label="交易时间">
                        </el-table-column>
                        <el-table-column
                                prop="flowType"
@@ -449,9 +459,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>
@@ -478,21 +488,14 @@
            activeName : "first",
            circleUrl : "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
            userList : [],
            achieveTypeList : [
                {
                    "key" : "现金业绩",
                    "value" : "现金业绩"
                },{
                    "key" : "划扣业绩",
                    "value" : "划扣业绩"
                },
            ],
            achieveTypeList : [],
            orderItems : [],
            achieveItems : [],
            flowItems : [],
            payMethodItems : [],
            isRefund : false,
            isReturnAchieve : false,
            totalRefund : "",
            payMethods: [{
                value: '现金支付',
                img: '/images/pay/cash.png',
@@ -541,10 +544,28 @@
        created : function() {
            let _this = this;
            this.orderParam = /*[[${orderParam}]]*/
            this.queryOrderDetailData(this.orderParam);
                this.queryOrderDetailData(this.orderParam);
            // 业绩类型
            AjaxProxy.requst({
                app: _this,
                url: basePath + '/admin/customerDictionary/getListByParentCode/YJLX',
                callback: function (data) {
                    _this.achieveTypeList = data.rows;
                }
            });
        },
        methods : {
            calRefund() {
                let _this = this;
                var total = 0;
                _this.orderItems.forEach(item => {
                    if (item.refundPrice && item.refundCount) {
                        total += parseFloat(item.refundPrice * item.refundCount);
                    }
                })
                _this.totalRefund = total;
            },
            queryOrderDetailData(param) {
                let _this = this;
                AjaxProxy.requst({
@@ -682,7 +703,7 @@
                    }
                    if(_this.order.zkTotal - _this.order.refund - _this.order.arrears < total) {
                        this.$message.warning("退款金额不能超过收取金额");
                        this.$message.warning("退款金额不能超过收款金额");
                        return false;
                    }
                    _this.data.flows = flows;
@@ -839,34 +860,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;
                            return;
                        }
                    }else{
                        this.$message.error("【"+achieve.goodsName + "】业绩分配金额请填写数字");
                        isOk=false;
                        return;
                    }
                };
                console.log("isOk",isOk);
                return isOk;
            },
            //删除业绩
            delAchieve(index, row) {
                let _this = this;
                _this.achieveItems.splice(index, 1);
                this.calculationAchieve();
            },
            checkAchieveIsDel(items) {
                var achieveIds = [];
@@ -886,7 +950,7 @@
                var id = this.order.id;
                layer.open({
                    type: 2,
                    title: "打印服务单",
                    title: "打印订单",
                    area: ['250px', '550px'],
                    maxmin: true,
                    content: [basePath + '/admin/redirect/hive/beautySalon/print-order?id=' + id]