Helius
2021-01-08 b6e7b81fd914cb08eb49d6cea916139e594020ac
modify
1 files added
7 files modified
1218 ■■■■■ changed files
zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java 15 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java 13 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/CodeService.java 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/CodeServiceImpl.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java 158 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form-bak.html 348 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html 562 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html 116 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java
@@ -181,23 +181,10 @@
     * @author jyy
     */
    @RequestMapping(value = "/toBj")
    public String toBj(Long id, HttpServletRequest request) {
    public String toBj(Long id) {
        // 根据id查到对应的订单信息
        SysOrder order = orderService.findById(id);
        WebUtil.getRequest().setAttribute("order", order);
        SysOrderItem item = new SysOrderItem();
        item.setOrderId(order.getId());
        item.setStatus(Dictionary.ORDER_STATU_QK);
        order.setItems(orderItemService.findByModel(item));
        MoneyCardUse moneyCardUse = new MoneyCardUse();
        moneyCardUse.setVipId(order.getVipId());
        moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX);
        List<MoneyCardUse> cards = cardUseService.findByModel(moneyCardUse);
        WebUtil.getRequest().setAttribute("cards", cards);
        return "admin/hive/beautySalon/bj-form";
    }
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java
@@ -11,7 +11,18 @@
public class SysOrderFlow implements Serializable {
    private static final long serialVersionUID = 7519131902836023680L;
    public static final String PAY_METHOD_CARD = "会员卡";
    public static final String PAY_METHOD_CARD = "储值卡";
    public static final String PAY_METHOD_ARREARS = "欠款";
    public static final String FLOW_TYPE_BUY = "购买";
    public static final String FLOW_TYPE_REPAY = "还款";
    public static final String FLOW_TYPE_REFUND = "退款";
    public static final String IS_GIFT_Y = "Y";
    public static final String IS_GIFT_N = "N";
    private String createBy;
zq-erp/src/main/java/com/matrix/system/hive/service/CodeService.java
@@ -24,6 +24,8 @@
    * @throws
     */
    public String getOrderCode();
    public String getFlowCode();
    
    /**
    *  根据一定的规则返回一个随机编号。
zq-erp/src/main/java/com/matrix/system/hive/service/imp/CodeServiceImpl.java
@@ -95,4 +95,8 @@
        return fmt.format(date);
    }
    
    @Override
    public String getFlowCode() {
        return "F" + getNowTimeString();
    }
}
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -154,21 +154,10 @@
    @Override
    public SysOrder checkAndSaveOrder(SysOrder sysOrder) {
        // 收款改变订单状态
        /**
         * 判断订单条目的一个付款情况
         */
        // 计算现金支付金额
        double xjMoney = 0.0;
        // 计算卡支付总额
        double cardMoney = 0.0;
        // 计算订单折扣金额,收款情况下 计算订单总额
        double zkTotal = 0.0;
        /**
         * 记录本次消费的卡,防止扣除多次消费记录
         */
        ArrayList<Long> userCard = new ArrayList<Long>();
        // 页面的pageOrder 参数只包含支付金额信息,不带有购买商品
        for (SysOrderItem item : sysOrder.getItems()) {
@@ -179,43 +168,14 @@
                item.setIsFree(Dictionary.FLAG_YES);
            }
            // 如果支付方式是非现金则记录现金支付金额
            if (!item.getPayMethod().equals(PayMethodEnum.VIP_CARD.getCode())) {
                xjMoney = MoneyUtil.add(xjMoney, item.getPayMoney());
//                item.setCashPay(item.getPayMoney());
            } else {
                cardMoney = MoneyUtil.add(cardMoney, item.getPayMoney());
//                item.setCardPay(item.getPayMoney());
            }
            // 订单欠款减去支付金额 设置实际欠款
            Double itemZkTotal = MoneyUtil.mul(item.getZkPrice(), Double.valueOf(item.getCount()));
            zkTotal=MoneyUtil.add(zkTotal, itemZkTotal);
//            item.setArrears(MoneyUtil.sub(itemZkTotal, item.getPayMoney()));
            // 如果存在欠款,将条目状态设置为欠款
//            if (item.getArrears() > 0) {
//                item.setStatus(Dictionary.ORDER_STATU_QK);
//            } else if (item.getArrears() < 0) {
//                item.setPayMoney(item.getZkPrice());
//                item.setStatus(Dictionary.ORDER_STATU_DFK);
//            } else {
//                item.setStatus(Dictionary.ORDER_STATU_DFK);
//            }
            item.setStatus(Dictionary.ORDER_STATU_DFK);
        }
        double arrears;
        SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        // 如果是收款,收款可以改变订单价格,所以需要求和出 订单折后价来计算本次欠款
        arrears = MoneyUtil.sub(zkTotal, MoneyUtil.add(cardMoney, xjMoney));
        sysOrder.setZkTotal(zkTotal);
//        sysOrder.setArrears(arrears);
//        sysOrder.setCardPay(cardMoney);
//        sysOrder.setCashPay(xjMoney);
        sysOrder.setStatu(Dictionary.ORDER_STATU_DFK);
        sysOrder.setStaffId(user.getSuId());
        sysOrder.setCompanyId(user.getCompanyId());
@@ -502,47 +462,36 @@
     * @author:姜友瑶
     */
    private void changeOrderStatu(SysOrder sourceOrder) {
        int i = 1;
        String orderStatus = Dictionary.ORDER_STATU_YFK;
        for (SysOrderFlow flow : sourceOrder.getFlows()) {
            flow.setFlowNo(codeService.getFlowCode() + "-" + i);
            Long goodsId = sourceOrder.getItems().get(0).getGoodsId();
            ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId);
            flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品");
            flow.setOrderId(sourceOrder.getId());
            flow.setVipId(sourceOrder.getVipId());
            flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY);
            // 若使用储值卡付款
            if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
                if (flow.getCardId() != null) {
                    MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId());
                    cardPaySk(moneyCardUse, sourceOrder, flow);
            }
        }
//      boolean haQk=false;
//
//        for(SysOrderItem sysOrderItem:sourceOrder.getItems()){
//
//            if(!sysOrderItem.getStatus().equals(Dictionary.ORDER_STATU_QK)){
//                SysOrderItem updateItem=new SysOrderItem();
//                updateItem.setId(sysOrderItem.getId());
//                updateItem.setStatus(Dictionary.ORDER_STATU_YFK);
//
//                if (sysOrderItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY_CARD )  ) {
//
//                    if(sysOrderItem.getPayMethodDetail()!=null){
//                        // 查询要支付的充值卡
//                        MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(sysOrderItem.getPayMethodDetail()));
//                        // 扣除付款卡金额并添加流水
//                        cardPaySk(moneyCardUse, sourceOrder,  sysOrderItem);
//                    }else{
//                        throw  new GlobleException("请选择支付的会员卡");
//                    }
//
//
//                }
//                orderItemDao.update(updateItem);
//            }else {
//                haQk=true;
//            }
//        }
            if (SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())) {
                orderStatus = Dictionary.ORDER_STATU_QK;
                sourceOrder.setArrears(flow.getAmount().doubleValue());
            }
            sysOrderFlowDao.insert(flow);
            i++;
        }
        // 更新收款状态
        sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK);
        sourceOrder.setStatu(orderStatus);
        sysOrderDao.update(sourceOrder);
    }
@@ -581,43 +530,38 @@
     * 使用充值卡付款操作
     *
     * @param sourceOrder
     * @param userCard
     * @param orderItem
     * @param temp        设置是否扣除使用次数 true 扣除
     * @param moneyCardUse
     * @param flow
     */
    private void cardPaySk(MoneyCardUse moneyCardUse, SysOrder sourceOrder,
                           SysOrderItem orderItem) {
    private void cardPaySk(MoneyCardUse moneyCardUse, SysOrder sourceOrder, SysOrderFlow flow) {
        // 判断商品是否在充值卡的限制购买,判断分类
        if (!isInBangding(moneyCardUse, orderItem.getGoodsId())) {
            throw new GlobleException(shoppingGoodsDao.selectById(orderItem.getGoodsId()).getName() + "不在"
                    + moneyCardUse.getCardName() + "优惠中");
        sourceOrder.getItems().forEach(item -> {
            if (!isInBangding(moneyCardUse, item.getGoodsId())) {
                throw new GlobleException(shoppingGoodsDao.selectById(item.getGoodsId()).getName() + "不在" + moneyCardUse.getCardName() + "优惠中");
        }
        });
        SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        Double balance = moneyCardUse.getRealMoney();
        if (moneyCardUse.getGiftMoney() != null) {
            balance = MoneyUtil.add(balance, moneyCardUse.getGiftMoney());
        }
        // 判断金额是否足够支付
        if (balance >= orderItem.getPayMoney()) {
            MoneyCardUseFlow moneyCardUseFlow=new MoneyCardUseFlow();
        if (SysOrderFlow.IS_GIFT_Y.equals(flow.getIsGift())) {
            if(moneyCardUse.getGiftMoney() >= flow.getAmount().doubleValue()) {
                double surplus = MoneyUtil.sub(moneyCardUse.getGiftMoney(), flow.getAmount().doubleValue());
                moneyCardUse.setGiftMoney(surplus);
            // 余额充足先从本金中扣除
            if (moneyCardUse.getRealMoney() >= orderItem.getPayMoney()) {
                double surplus = MoneyUtil.sub(moneyCardUse.getRealMoney(), orderItem.getPayMoney());
                moneyCardUse.setRealMoney(surplus);
                moneyCardUseFlow.setTotal(0-orderItem.getPayMoney());
                moneyCardUseFlow.setGiftMoney(0D - flow.getAmount().doubleValue());
            } else {
                // 本金不够
                double surplus = MoneyUtil.sub(orderItem.getPayMoney(), moneyCardUse.getRealMoney());
                moneyCardUseFlow.setTotal(0- moneyCardUse.getRealMoney());
                // 扣除所有本金
                moneyCardUse.setRealMoney(0D);
                moneyCardUse.setGiftMoney(MoneyUtil.sub(moneyCardUse.getGiftMoney(), surplus));
                // 只要是用了赠送金额购买的就视为赠送套餐 18-12-01 jyy
                orderItem.setIsFree(Dictionary.FLAG_YES);
                moneyCardUseFlow.setGiftMoney(0-surplus);
                throw new GlobleException(moneyCardUse.getCardName() + "余额不足");
            }
        } else {
            if(moneyCardUse.getRealMoney() >= flow.getAmount().doubleValue()) {
                double surplus = MoneyUtil.sub(moneyCardUse.getRealMoney(), flow.getAmount().doubleValue());
                moneyCardUse.setRealMoney(surplus);
                moneyCardUseFlow.setTotal(0 - flow.getAmount().doubleValue());
            } else {
                throw new GlobleException(moneyCardUse.getCardName() + "余额不足");
            }
            }
            //设置卡项使用流水
@@ -630,10 +574,6 @@
            moneyCardUseFlow.setOperationId(user.getSuId());
            moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney()+moneyCardUse.getRealMoney());
            moneyCardUseFlowDao.insert(moneyCardUseFlow);
        } else {
            throw new GlobleException(moneyCardUse.getCardName() + "余额不足");
        }
        // 达到使用次数后自动清空余额
        if (!moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_YES_Y)
@@ -810,8 +750,8 @@
           if (!pageItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY)) {
                // 查询要支付的充值卡
                MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(pageItem.getPayMethod()));
                // 扣除付款卡金额并添加流水
                cardPaySk(moneyCardUse, sourceOrder,  pageItem);
                // 扣除付款卡金额并添加流水 TODO 补交卡支付
//                cardPaySk(moneyCardUse, sourceOrder,  pageItem);
               sourceItem.setCardPay((sourceItem.getCardPay()==null?0:sourceItem.getCardPay())+pageItem.getPayMoney());
               cardPayTotal+=pageItem.getPayMoney();
            }else{
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form-bak.html
New file
@@ -0,0 +1,348 @@

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport"
    content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<LINK rel="Bookmark" href="../images/favicon.ico">
<!-- 本框架基本脚本和样式 -->
<script type="text/javascript"
    th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
<script type="text/javascript"
    th:src="@{/js/systools/MBase.js}"></script>
<title></title>
</head>
<div class="panel-body">
    <div class="form-group">
        <label class="col-sm-2 control-label">订单号</label>
        <div class="col-sm-4">
            <span class="form-control-static" th:text="${order.orderNo}"></span>
        </div>
        <label class="col-sm-2 control-label">订单总价</label>
        <div class="col-sm-4">
            <span class="form-control-static" id="total" th:text="${order.total}"></span>
        </div>
    </div>
    <br>
    <div class="form-group">
        <label class="col-sm-2 control-label">客户编号</label>
        <div class="col-sm-4">
            <span class="form-control-static" th:text="${order.vipNo}"></span>
        </div>
        <label class="col-sm-2 control-label">客户姓名</label>
        <div class="col-sm-4">
            <span class="form-control-static" th:text="${order.vipName}"></span>
        </div>
    </div>
    <br>
    <div class="form-group">
        <label class="col-sm-2 control-label">折后价</label>
        <div class="col-sm-4">
            <span class="form-control-static" id="zkTotal" th:text="${order.zkTotal}"></span>
        </div>
        <label class="col-sm-2 control-label">欠款</label>
        <div class="col-sm-4">
            <span class="form-control-static" id="zkTotal" th:text="${order.arrears}"></span>
        </div>
    </div>
    <br>
    <div class="form-group">
        <label class="col-sm-2 control-label">卡付金额</label>
        <div class="col-sm-4">
            <span class="form-control-static" id="zkTotal" th:text="${order.cardPay}"></span>
        </div>
        <label class="col-sm-2 control-label">现金付款</label>
        <div class="col-sm-4">
            <span class="form-control-static" id="zkTotal" th:text="${order.cashPay}"></span>
        </div>
    </div>
    <br>
    <div class="form-group">
        <label class="col-sm-2 control-label">顾问姓名</label>
        <div class="col-sm-4">
            <span class="form-control-static" th:text="${order.staffName}"></span>
        </div>
    </div>
</div>
<div class="row ">
    <div class="col-sm-10 pd-20 col-sm-offset-1">
        <form class="form-horizontal" id="dataform"
            onsubmit="javascripr:return false;">
            <div class="tabs-container ">
                <ul class="nav nav-tabs">
                    <li class="active"><a data-toggle="tab" href="#tab-1"
                        aria-expanded="true">收款</a></li>
                    <li class=""><a data-toggle="tab" href="#tab-2"
                        aria-expanded="false">业绩</a></li>
                </ul>
                <div class="tab-content">
                    <div id="tab-1" class="tab-pane active">
                        <div class="panel-body">
                            <div class="col-sm-12 form-group">
                                <!-- 改变折扣后的总价 -->
                                <input autocomplete="off"   type="hidden" name="zkTotal" th:value="${order.zkTotal}"
                                    id="zkTotalInput">
                                <div class="panel-body">
                                    <table class="table table-striped table-condensed  table-hover">
                                        <thead>
                                            <tr>
                                                <th>序号</th>
                                                <th>商品名称</th>
                                                <th>单价</th>
                                                <th>购买数量</th>
                                                <th>折扣单价</th>
                                                <th>支付方式</th>
                                                <th>支付金额</th>
                                            </tr>
                                        </thead>
                                        <tbody id="tbody">
                                        <tr th:each="item,count:${order.items }">
                                            <td th:text="${count.index}+1"></td>
                                            <td>
                                                <span th:text=" ${item.shoppingGoods.name }"></span>
                                                <span th:if="${item.isFree eq '是' }" th:text="赠"></span>
                                            </td>
                                                    <td th:text="${item.price }"></td>
                                                    <td th:text="${item.count}"></td>
                                                    <td th:text="${item.zkPrice}"></td>
                                                    <td><input autocomplete="off"   type="hidden"
                                                        th:name="'items['+${count.index}+'].id'"
                                                               th:value="${item.id }">
                                                        <input autocomplete="off"   type="hidden" th:name="'items['+${count.index}+'].goodsId'"
                                                               th:value="${item.goodsId }">
                                                        <input autocomplete="off"   type="hidden"  th:name="'items['+${count.index}+'].count'"  th:value="${item.count}">
                                                        <select class="form-control"
                                                        th:name="'items['+${count.index}+'].payMethod'">
                                                                    <option th:if="${item.type eq '充值卡'}" value="现金">现金</option>
                                                                    <option value="现金">现金</option>
                                                            <th:block th:if="${item.type ne '充值卡'}">
                                                                    <th:block th:each="cardItem:${cards }" >
                                                                        <option th:value="${cardItem.id }" th:text="${cardItem.cardName }+'-余:'+${cardItem.realMoney+cardItem.giftMoney}"></option>
                                                                    </th:block>
                                                            </th:block>
                                                    </select></td>
                                                    <td><input autocomplete="off"   type="text" class="form-control"
                                                               th:onchange="'changePayMoney(\'p'+${item.id}+'\',this)'"
                                                        onchange="reckonTotal()" dataType="price" nullmsg="请填写金额"
                                                        errormsg="金额可为两位小数的正数" th:value="${item.arrears}"
                                                               th:name="'items['+${count.index}+'].payMoney'" >
                                                        <div class="Validform_checktip"></div></td>
                                                </tr>
                                            </th>
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                            <div class="col-sm-12 form-group">
                                <div class="form-group">
                                    <div class="form-group">
                                        <label class="col-sm-2 control-label">实收金额</label>
                                        <div class="col-sm-4">
                                            <input autocomplete="off"   type="text" class="form-control" name="actualPay"
                                                id="money" readonly="readonly" th:value="${order.arrears}"
                                                datatype="/^(([0-9]\d{0,9})|0)(\.\d{1,2})?$/"
                                                ignore="ignore">
                                            <div class="Validform_checktip"></div>
                                        </div>
                                        <label class="col-sm-2 control-label">备注</label>
                                        <div class="col-sm-4">
                                            <input autocomplete="off"   type="text" class="form-control" name="remark"
                                                th:value="${order.remark}" datatype="*0-200" ignore="ignore">
                                            <div class="Validform_checktip"></div>
                                        </div>
                                    </div>
                                </div>
                                <input autocomplete="off"   type="hidden" id="id" name="id" th:value="${order.id}" />
                            </div>
                        </div>
                    </div>
                    <div id="tab-2" class="tab-pane">
                            <div class="panel-body">
                                <table class="table   table-condensed   ">
                                    <thead>
                                        <tr>
                                            <th>序号</th>
                                            <th>商品名称</th>
                                            <th>分配金额</th>
                                            <th>美疗师业绩</th>
                                            <th>操作</th>
                                        </tr>
                                    </thead>
                                    <tbody id="tbody2">
                                        <th:block th:each="item,count:${order.items }"  >
                                            <tr th:id="'p'+${item.id}">
                                                <td th:text="${count.index}+1"></td>
                                                <td th:text="${item.shoppingGoods.name }">
                                                    <span th:if="${item.isFree eq '是' }" th:text="赠"></span>
                                                </td>
                                                <td th:text="${item.arrears }"></td>
                                                <td>
                                                    <table class="table   table-condensed   ">
                                                            <tr th:each="achaeve,count2:${item.achaeveList }">
                                                                <td><select class="autoFull select2 input-sm"
                                                                    data-value="suId"
                                                                            data-filed="suName"
                                                                    th:data-def="${achaeve.staffId }"
                                                                    th:name="'items['+${count.index}+'].achaeveList['+${count2.index}'].beaultId'"
                                                                    th:data-url="@{/admin/getShopStaffByRoleName?roleName=美疗师}"
                                                                >
                                                                </select></td>
                                                                <td><input autocomplete="off"   type="text"
                                                                    class="form-control input-sm" style="width: 80px"
                                                                           th:name="'items['+${count.index}+'].achaeveList['+${count2.index}'].t1"></td>
                                                                <td><button class="btn btn-danger btn-sm"
                                                                        onclick="deleteBeaute(this)">删除</button></td>
                                                            </tr>
                                                    </table>
                                                </td>
                                                <td><a class="btn btn-default btn-sm"
                                                    th:onclick="'addBeaute(\'p'+${item.id}+'\','+${count.index}+')'">添加</a></td>
                                            </tr>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                    <div class="form-group mt-20 ">
                        <div class="col-sm-12 text-center">
                            &nbsp;&nbsp;&nbsp;&nbsp; <a href="javascript:;"
                                onclick="myForm.submit()" class="btn btn-success radius">确认</a>
                            &nbsp;&nbsp;&nbsp;&nbsp;
                            <button onclick="MTools.closeForm()"
                                class="btn btn-danger radius" type="button">取消</button>
                        </div>
                    </div>
            </div>
        </form>
    </div>
</div>
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script><script type="text/javascript">
    var myForm = MForm.initForm({
        invokeUrl : basePath+"/admin/moneyCardUse/bj",
        beforeSubmit : function() {
            //校验业绩
            var ifAchieveOk=true;
            $("#tbody2").children("tr").each(function(){
                var tr=$(this);
                var pay=parseFloat(tr.find("td").eq(2).html());
                var achieveSum=0;
                tr.find("td").eq(3).find("table").find("tr").each(function(){
                    var achieve= parseFloat($(this).find("td").eq(1).find("input").val());
                    achieveSum+=achieve;
                });
                if(achieveSum>pay){
                    ifAchieveOk=false;
                }
            });
            if(!ifAchieveOk){
                layer.msg("业绩金额不能大于支付金额",{icon:2})
                return false;
            }
            var money = parseFloat($("#money").val());
            var total = parseFloat($("#zkTotal").html());
        },
        afterSubmit : function() {
            if(parent.myGrid) {
                parent.myGrid.serchData();
            }
            if (parent.app) {
                parent.app.orderQuery();
            }
        },
    });
    //添加一个美疗师
    function addBeaute(trId,itemIndex){
        if(!itemIndex){
            itemIndex=0;
        }
         var id=MTools.randomStr();
         var table=$("#"+trId).find("td").eq(3).find("table")
         var achieveIndex=$("#"+trId).find("td").eq(3).find("table").find("tr").length;
        var html= '<tr> <td><select class="autoFull select2 input-sm" id="'+id+'"  name="items['+itemIndex+'].achaeveList['+achieveIndex+'].beaultId" '
                +'data-url="'+basePath+'/admin/getShopStaffByRoleName?roleName=美疗师" data-value="suId" data-filed="suName" data-def=""'
            +'name="beatuyId"> </select></td> <td><input autocomplete="off"   type="text" class="form-control input-sm"  style="width: 80px"  name="items['+itemIndex+'].achaeveList['+achieveIndex+'].t1" '
            +'name="items['+itemIndex+'].zkPrice" ></td> <td><button class="btn btn-danger btn-sm"  onclick="deleteBeaute(this)" >删除</button></td> </tr>';
        $("#"+trId).find("td").eq(3).find("table").append(html);
        $('#'+id).select2({'width':'80px'});
        MTools.autoFullSelect({selecteder:'#'+id});
    };
    //删除一个美疗师
    function deleteBeaute(node){
        $(node).closest("tr").remove();
    }
    //修改收款金额
    function changePayMoney(trId,node){
        console.log(trId,node);
        $("#"+trId).find("td").eq(2).html($(node).val());
    };
    //改变折扣单价
    function changeZkprice() {
        var sum = 0;
        $("#tbody").find("tr").each(function() {
            var $tds = $(this).find("td");
            var count = $tds.eq(3).html();
            var zkprice = $tds.eq(4).find("input").eq(0).val();
            totalMoney = parseFloat(count) * parseFloat(zkprice);
            $tds.eq(6).find("input").eq(0).val(totalMoney);
            sum += totalMoney;
        });
        $("#money").val(sum);
        $("#zkTotal").html(sum);
        $("#zkTotalInput").val(sum);
    }
    //计算实收
    function reckonTotal() {
        var sum = 0;
        $("#tbody").find("tr").each(function() {
            var $tds = $(this).find("td");
            var count = $tds.eq(6).find("input").eq(0).val();
            sum += parseFloat(count)
        });
        $("#money").val(sum);
    }
</script>
</body>
</html>
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html
@@ -1,8 +1,4 @@

<!DOCTYPE HTML>
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
@@ -14,335 +10,277 @@
<meta http-equiv="Cache-Control" content="no-siteapp" />
<LINK rel="Bookmark" href="../images/favicon.ico">
<!-- 本框架基本脚本和样式 -->
<script type="text/javascript"
    th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
<script type="text/javascript"
    th:src="@{/js/systools/MBase.js}"></script>
    <script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script>
    <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
    <link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/>
<title></title>
    <style>
        .paymethod ul {
            padding: 0;
            margin: 0;
            height: 50px;
        }
        .paymethod ul li {
            padding: 10px;
            margin: 5px;
            list-style:none;
            float: left;
            display: block;
            cursor: pointer;
            position: relative;
            border: white 1px solid;
        }
        .paymethod ul li:hover {
            border: #409EFF 1px solid;
        }
        .paymethod .active {
            border: #409EFF 1px solid;
        }
        .paymethod .active::after {
            content: '';
            display: block;
            height: 0px;
            width: 0px;
            position: absolute;
            bottom: 0;
            right: 0;
            color:#fff;
            /**对号大小*/
            font-size: 10px;
            line-height: 8px;
            border: 3px solid;
            border-color: transparent #4884ff #4884ff transparent;
        }
        .el-dialog__body {
            padding-top: 10px !important;
        }
    </style>
</head>
<div class="panel-body" id="app">
    <el-dialog title="还款" :visible.sync="dialogSettleVisible" show-close>
        <el-row type="flex" align="middle" style="padding: 0 0 10px 0;">
            <el-col :span="5" style="text-align: center;">还款金额</el-col>
            <el-col :span="10" style="text-align: center; line-height: 50px;"><span style="color: red; font-size: 20px;">¥ {{order.arrears}}</span></el-col>
        </el-row>
<div class="panel-body">
    <div class="form-group">
        <label class="col-sm-2 control-label">订单号</label>
        <div class="col-sm-4">
            <span class="form-control-static" th:text="${order.orderNo}"></span>
        </div>
        <label class="col-sm-2 control-label">订单总价</label>
        <div class="col-sm-4">
            <span class="form-control-static" id="total" th:text="${order.total}"></span>
        </div>
    </div>
    <br>
    <div class="form-group">
        <label class="col-sm-2 control-label">客户编号</label>
        <div class="col-sm-4">
            <span class="form-control-static" th:text="${order.vipNo}"></span>
        </div>
        <label class="col-sm-2 control-label">客户姓名</label>
        <div class="col-sm-4">
            <span class="form-control-static" th:text="${order.vipName}"></span>
        </div>
    </div>
    <br>
    <div class="form-group">
        <label class="col-sm-2 control-label">折后价</label>
        <div class="col-sm-4">
            <span class="form-control-static" id="zkTotal" th:text="${order.zkTotal}"></span>
        </div>
        <label class="col-sm-2 control-label">欠款</label>
        <div class="col-sm-4">
            <span class="form-control-static" id="zkTotal" th:text="${order.arrears}"></span>
        </div>
    </div>
    <br>
    <div class="form-group">
        <label class="col-sm-2 control-label">卡付金额</label>
        <div class="col-sm-4">
            <span class="form-control-static" id="zkTotal" th:text="${order.cardPay}"></span>
        </div>
        <label class="col-sm-2 control-label">现金付款</label>
        <div class="col-sm-4">
            <span class="form-control-static" id="zkTotal" th:text="${order.cashPay}"></span>
        </div>
    </div>
    <br>
    <div class="form-group">
        <label class="col-sm-2 control-label">顾问姓名</label>
        <div class="col-sm-4">
            <span class="form-control-static" th:text="${order.staffName}"></span>
        </div>
    </div>
</div>
<div class="row ">
    <div class="col-sm-10 pd-20 col-sm-offset-1">
        <form class="form-horizontal" id="dataform"
            onsubmit="javascripr:return false;">
            <div class="tabs-container ">
                <ul class="nav nav-tabs">
                    <li class="active"><a data-toggle="tab" href="#tab-1"
                        aria-expanded="true">收款</a></li>
                    <li class=""><a data-toggle="tab" href="#tab-2"
                        aria-expanded="false">业绩</a></li>
        <el-row type="flex" align="middle" style="padding: 10px 0;">
            <el-col :span="5" style="text-align: center;">收款方式</el-col>
            <el-col class="paymethod" :span="15">
                <el-row>
                    <ul>
                        <span v-for="(item, index) in payMethods">
                            <el-popover
                                    :disabled="item.type != '储值卡'"
                                    placement="bottom"
                                    trigger="hover"
                                    @hide="popoverHide(item)">
                                <el-row style="text-align: center;"><span style="padding: 0 0 10px 0; display: block; font-size: 12px;">选择储值卡支付方式</span></el-row>
                                <el-tree :data="moneyCards"
                                         show-checkbox
                                         default-expand-all
                                         node-key="id"
                                         ref="tree"
                                         check-strictly
                                         highlight-current
                                         @check="(click, checked,$item)=>{handleCheckChange(click, checked,$item)}"
                                         :props="defaultProps">
                                </el-tree>
                                <li :class="{active : item.isActive}" v-if="item.value != '欠款'" slot="reference" @click="payMethodSelect(item, index)">{{item.value}}</li>
                            </el-popover>
                        </span>
                </ul>
                <div class="tab-content">
                    <div id="tab-1" class="tab-pane active">
                        <div class="panel-body">
                            <div class="col-sm-12 form-group">
                                <!-- 改变折扣后的总价 -->
                                <input autocomplete="off"   type="hidden" name="zkTotal" th:value="${order.zkTotal}"
                                    id="zkTotalInput">
                                <div class="panel-body">
                                    <table class="table table-striped table-condensed  table-hover">
                                        <thead>
                                            <tr>
                                                <th>序号</th>
                                                <th>商品名称</th>
                                                <th>单价</th>
                                                <th>购买数量</th>
                                                <th>折扣单价</th>
                                                <th>支付方式</th>
                                                <th>支付金额</th>
                                            </tr>
                                        </thead>
                                        <tbody id="tbody">
                                        <tr th:each="item,count:${order.items }">
                                            <td th:text="${count.index}+1"></td>
                                            <td>
                                                <span th:text=" ${item.shoppingGoods.name }"></span>
                </el-row>
            </el-col>
        </el-row>
                                                <span th:if="${item.isFree eq '是' }" th:text="赠"></span>
                                            </td>
                                                    <td th:text="${item.price }"></td>
                                                    <td th:text="${item.count}"></td>
                                                    <td th:text="${item.zkPrice}"></td>
        <el-row type="flex" align="middle" style="padding: 10px 0 50px 0;">
            <el-col :span="5" style="text-align: center;">支付金额</el-col>
            <el-col :span="15">
                <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.number="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-row>
            </el-col>
        </el-row>
                                                    <td><input autocomplete="off"   type="hidden"
                                                        th:name="'items['+${count.index}+'].id'"
                                                               th:value="${item.id }">
        <el-row style="text-align: center; margin: 20px 0 10px 0">
            <el-checkbox v-model="printPaper">打印小票</el-checkbox>
        </el-row>
                                                        <input autocomplete="off"   type="hidden" th:name="'items['+${count.index}+'].goodsId'"
                                                               th:value="${item.goodsId }">
                                                        <input autocomplete="off"   type="hidden"  th:name="'items['+${count.index}+'].count'"  th:value="${item.count}">
                                                        <select class="form-control"
                                                        th:name="'items['+${count.index}+'].payMethod'">
                                                                    <option th:if="${item.type eq '充值卡'}" value="现金">现金</option>
                                                                    <option value="现金">现金</option>
                                                            <th:block th:if="${item.type ne '充值卡'}">
                                                                    <th:block th:each="cardItem:${cards }" >
                                                                        <option th:value="${cardItem.id }" th:text="${cardItem.cardName }+'-余:'+${cardItem.realMoney+cardItem.giftMoney}"></option>
                                                                    </th:block>
                                                            </th:block>
                                                    </select></td>
                                                    <td><input autocomplete="off"   type="text" class="form-control"
                                                               th:onchange="'changePayMoney(\'p'+${item.id}+'\',this)'"
                                                        onchange="reckonTotal()" dataType="price" nullmsg="请填写金额"
                                                        errormsg="金额可为两位小数的正数" th:value="${item.arrears}"
                                                               th:name="'items['+${count.index}+'].payMoney'" >
                                                        <div class="Validform_checktip"></div></td>
                                                </tr>
                                            </th>
                                        </tbody>
                                    </table>
                                </div>
        <el-row style="text-align: center; margin: 10px 0 0 0">
            <el-button type="primary" @click="">确认收款</el-button>
        </el-row>
    </el-dialog>
                            </div>
                            <div class="col-sm-12 form-group">
                                <div class="form-group">
                                    <div class="form-group">
                                        <label class="col-sm-2 control-label">实收金额</label>
                                        <div class="col-sm-4">
                                            <input autocomplete="off"   type="text" class="form-control" name="actualPay"
                                                id="money" readonly="readonly" th:value="${order.arrears}"
                                                datatype="/^(([0-9]\d{0,9})|0)(\.\d{1,2})?$/"
                                                ignore="ignore">
                                            <div class="Validform_checktip"></div>
                                        </div>
                                        <label class="col-sm-2 control-label">备注</label>
                                        <div class="col-sm-4">
                                            <input autocomplete="off"   type="text" class="form-control" name="remark"
                                                th:value="${order.remark}" datatype="*0-200" ignore="ignore">
                                            <div class="Validform_checktip"></div>
                                        </div>
                                    </div>
                                </div>
                                <input autocomplete="off"   type="hidden" id="id" name="id" th:value="${order.id}" />
                            </div>
                        </div>
                    </div>
                    <div id="tab-2" class="tab-pane">
                            <div class="panel-body">
                                <table class="table   table-condensed   ">
                                    <thead>
                                        <tr>
                                            <th>序号</th>
                                            <th>商品名称</th>
                                            <th>分配金额</th>
                                            <th>美疗师业绩</th>
                                            <th>操作</th>
                                        </tr>
                                    </thead>
                                    <tbody id="tbody2">
                                        <th:block th:each="item,count:${order.items }"  >
                                            <tr th:id="'p'+${item.id}">
                                                <td th:text="${count.index}+1"></td>
                                                <td th:text="${item.shoppingGoods.name }">
                                                    <span th:if="${item.isFree eq '是' }" th:text="赠"></span>
                                                </td>
                                                <td th:text="${item.arrears }"></td>
                                                <td>
                                                    <table class="table   table-condensed   ">
                                                            <tr th:each="achaeve,count2:${item.achaeveList }">
                                                                <td><select class="autoFull select2 input-sm"
                                                                    data-value="suId"
                                                                            data-filed="suName"
                                                                    th:data-def="${achaeve.staffId }"
                                                                    th:name="'items['+${count.index}+'].achaeveList['+${count2.index}'].beaultId'"
                                                                    th:data-url="@{/admin/getShopStaffByRoleName?roleName=美疗师}"
                                                                >
                                                                </select></td>
                                                                <td><input autocomplete="off"   type="text"
                                                                    class="form-control input-sm" style="width: 80px"
                                                                           th:name="'items['+${count.index}+'].achaeveList['+${count2.index}'].t1"></td>
                                                                <td><button class="btn btn-danger btn-sm"
                                                                        onclick="deleteBeaute(this)">删除</button></td>
                                                            </tr>
                                                    </table>
                                                </td>
                                                <td><a class="btn btn-default btn-sm"
                                                    th:onclick="'addBeaute(\'p'+${item.id}+'\','+${count.index}+')'">添加</a></td>
                                            </tr>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                    <div class="form-group mt-20 ">
                        <div class="col-sm-12 text-center">
                            &nbsp;&nbsp;&nbsp;&nbsp; <a href="javascript:;"
                                onclick="myForm.submit()" class="btn btn-success radius">确认</a>
                            &nbsp;&nbsp;&nbsp;&nbsp;
                            <button onclick="MTools.closeForm()"
                                class="btn btn-danger radius" type="button">取消</button>
                        </div>
                    </div>
            </div>
        </form>
    </div>
</div>
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script><script type="text/javascript">
    var myForm = MForm.initForm({
        invokeUrl : basePath+"/admin/moneyCardUse/bj",
        beforeSubmit : function() {
            //校验业绩
            var ifAchieveOk=true;
            $("#tbody2").children("tr").each(function(){
                var tr=$(this);
                var pay=parseFloat(tr.find("td").eq(2).html());
                var achieveSum=0;
                tr.find("td").eq(3).find("table").find("tr").each(function(){
                    var achieve= parseFloat($(this).find("td").eq(1).find("input").val());
                    achieveSum+=achieve;
                });
                if(achieveSum>pay){
                    ifAchieveOk=false;
                }
            });
            if(!ifAchieveOk){
                layer.msg("业绩金额不能大于支付金额",{icon:2})
                return false;
            }
            var money = parseFloat($("#money").val());
            var total = parseFloat($("#zkTotal").html());
<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script>
<script type="text/javascript" th:src="@{/plugin/layer/layer.js}"></script>
<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script>
<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script>
<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
<script type="text/javascript"  th:inline="javascript">
    //<![CDATA[
    var vue = new Vue({
        el: '#app',
        data : {
            order : "",
            payMethods: [{
                value: '现金支付',
                isActive: false,
                type: '现金支付'
            }, {
                value: '微信',
                isActive: false,
                type: '微信'
            }, {
                value: '支付宝',
                isActive: false,
                type: '支付宝'
            }, {
                value: '银行卡',
                isActive: false,
                type: '银行卡'
            }, {
                value: '团购',
                isActive: false,
                type: '团购'
            }, {
                value: '储值卡',
                isActive: false,
                type: '储值卡'
            }, {
                value: '欠款',
                isActive: false,
                type: '欠款'
            },],
            moneyCards : [],
            dialogSettleVisible : true,
            defaultProps: {
                children: 'children',
                label: 'showLable'
        },
        afterSubmit : function() {
            if(parent.myGrid) {
                parent.myGrid.serchData();
            treeSelect : [],
            payMoneys : [],
            printPaper : true,
        },
        created : function() {
            this.order = /*[[${order}]]*/
            this.getVipMoneyCards();
            console.log(this.order)
        },
        methods : {
            getVipMoneyCards() {
                let _this = this;
                if (_this.order.vipId) {
                    AjaxProxy.requst({
                        app: _this,
                        data: {vipId: _this.order.vipId},
                        contentType: 'application/x-www-form-urlencoded',
                        url: basePath + '/admin/moneyCardUse/getUseMoneyCard',
                        callback: function (data) {
                            if (data.rows.length > 0) {
                                data.rows.forEach(function (item, index, input) {
                                    item.showLable = item.cardName + "-余额:" + (item.realMoney)
                                    item.uuid = MTools.uuid();
                                    if (item.giftMoney != 0) {
                                        var children = [];
                                        var gift = {};
                                        gift.id = item.id;
                                        gift.giftMoney = item.giftMoney;
                                        gift.showLable = item.cardName + '-赠送金额' + item.giftMoney;
                                        gift.cardName = item.cardName;
                                        gift.isGift = 1;
                                        gift.uuid = MTools.uuid();
                                        children.push(gift);
                                        item.children = children;
                                    }
                                });
                                _this.moneyCards = data.rows;
            }
            if (parent.app) {
                parent.app.orderQuery();
                        }
                    });
            }
        },
            payMethodSelect(item, index) {
                let _this = this;
                let payMoneys = _this.payMoneys;
                if (item.type != '储值卡') {
                    this.$nextTick(function () {
                        if (item.isActive) {
                            Vue.set(item,'isActive',false);
                            var index = -1;
                            for (var i = 0; i < payMoneys.length; i++) {
                                let payMoney = payMoneys[i];
                                if (payMoney.value == item.value) {
                                    index = i;
                                    break;
                                }
                            }
                            if (index > -1) {
                                _this.payMoneys.splice(index, 1)
                            }
                        } else {
                            Vue.set(item,'isActive',true);
                            _this.payMoneys.push(item);
                        }
    });
    //添加一个美疗师
    function addBeaute(trId,itemIndex){
        if(!itemIndex){
            itemIndex=0;
        }
         var id=MTools.randomStr();
            },
            popoverHide(item) {
                if(this.treeSelect.length <= 0) {
                    Vue.set(item, 'isActive', false)
                } else {
                    Vue.set(item, 'isActive', true)
                }
            },
            handleCheckChange(clickNode, checked) {
                let _this = this;
         var table=$("#"+trId).find("td").eq(3).find("table")
         var achieveIndex=$("#"+trId).find("td").eq(3).find("table").find("tr").length;
        var html= '<tr> <td><select class="autoFull select2 input-sm" id="'+id+'"  name="items['+itemIndex+'].achaeveList['+achieveIndex+'].beaultId" '
                +'data-url="'+basePath+'/admin/getShopStaffByRoleName?roleName=美疗师" data-value="suId" data-filed="suName" data-def=""'
            +'name="beatuyId"> </select></td> <td><input autocomplete="off"   type="text" class="form-control input-sm"  style="width: 80px"  name="items['+itemIndex+'].achaeveList['+achieveIndex+'].t1" '
            +'name="items['+itemIndex+'].zkPrice" ></td> <td><button class="btn btn-danger btn-sm"  onclick="deleteBeaute(this)" >删除</button></td> </tr>';
        $("#"+trId).find("td").eq(3).find("table").append(html);
        $('#'+id).select2({'width':'80px'});
        MTools.autoFullSelect({selecteder:'#'+id});
    };
    //删除一个美疗师
    function deleteBeaute(node){
        $(node).closest("tr").remove();
                let nodes = checked.checkedNodes;
                _this.treeSelect = nodes;
                var index = -1;
                // 判断点击节点是否在已展示支付方式中
                for(var i = 0; i < _this.payMoneys.length; i++) {
                    let node = _this.payMoneys[i];
                    if (node.uuid === clickNode.uuid) {
                        index = i;
                        break;
                    }
    }
    
    //修改收款金额
    function changePayMoney(trId,node){
        console.log(trId,node);
        $("#"+trId).find("td").eq(2).html($(node).val());
    };
                // 若点击节点在选中节点中,且已展示支付方式不存在,则添加
                if (nodes.indexOf(clickNode) > -1 && index === -1) {
                    var node = clickNode;
                    var item = {};
                    if (node.isGift) {
                        item.value = node.cardName;
                        item.balance = node.giftMoney;
                        item.isGift = 'Y';
                    } else {
                        item.value = node.cardName;
                        item.balance = node.realMoney;
                        item.isGift = 'N';
                    }
                    item.type = '储值卡';
                    item.id = node.id;
                    item.uuid = clickNode.uuid;
                    _this.payMoneys.push(item);
                }
    //改变折扣单价
    function changeZkprice() {
        var sum = 0;
        $("#tbody").find("tr").each(function() {
            var $tds = $(this).find("td");
            var count = $tds.eq(3).html();
            var zkprice = $tds.eq(4).find("input").eq(0).val();
            totalMoney = parseFloat(count) * parseFloat(zkprice);
            $tds.eq(6).find("input").eq(0).val(totalMoney);
            sum += totalMoney;
                // 若点击节点不存在选中节点中,且已展示支付方式中存在,则移除
                if (nodes.indexOf(clickNode) === -1 && index > -1) {
                    _this.payMoneys.splice(index, 1);
                }
            },
        }
        });
        $("#money").val(sum);
        $("#zkTotal").html(sum);
        $("#zkTotalInput").val(sum);
    }
    //计算实收
    function reckonTotal() {
        var sum = 0;
        $("#tbody").find("tr").each(function() {
            var $tds = $(this).find("td");
            var count = $tds.eq(6).find("input").eq(0).val();
            sum += parseFloat(count)
        });
        $("#money").val(sum);
    }
    //]]>
</script>
</body>
</html>
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html
@@ -320,9 +320,9 @@
<!--                    <el-table-column-->
<!--                            label="会员卡">-->
<!--                            label="储值卡">-->
<!--                        <template slot-scope="scope">-->
<!--                            <el-select :disabled="scope.row.payMethod!='会员卡'" v-model="scope.row.payMethodDetail"-->
<!--                            <el-select :disabled="scope.row.payMethod!='储值卡'" v-model="scope.row.payMethodDetail"-->
<!--                                       placeholder="请选择支付卡">-->
<!--                                <el-option-->
<!--                                        v-for="item in moneyCards"-->
@@ -354,7 +354,7 @@
                            <li>订单总金额:{{order.total}}</li>
                            <li>整单折扣:<span class="arrears">{{order.total - order.zkTotal}}</span></li>
                            <li>整单折扣:<span class="arrears" v-if="order.zkTotal != null">{{order.total - order.zkTotal}}</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>
@@ -370,7 +370,7 @@
                    <el-button type="primary" @click="print()">打印</el-button>
                    <el-button type="primary" @click="drawer = true">业绩设置</el-button>
                    <!--                    <el-button type="success" @click="confirmSubmit()" class="bigbtn"> 结算</el-button>-->
                    <el-button type="success" @click="dialogSettleVisible = true" class="bigbtn">收款</el-button>
                    <el-button type="success" @click="openPayMoney" class="bigbtn">收款 ¥{{order.payMoney}}</el-button>
                </el-col>
            </el-row>
@@ -467,11 +467,11 @@
                    <ul>
                        <span v-for="(item, index) in payMethods">
                            <el-popover
                                    :disabled="item.type != '会员卡'"
                                    :disabled="item.type != '储值卡'"
                                    placement="bottom"
                                    trigger="hover"
                                    @hide="popoverHide(item)">
                                <el-row style="text-align: center;"><span style="padding: 0 0 10px 0; display: block; font-size: 12px;">选择会员卡支付方式</span></el-row>
                                <el-row style="text-align: center;"><span style="padding: 0 0 10px 0; display: block; font-size: 12px;">选择储值卡支付方式</span></el-row>
                                <el-tree :data="moneyCards"
                                        show-checkbox
                                        default-expand-all
@@ -496,17 +496,17 @@
                <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.number="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="6" 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>
        <el-row style="text-align: center; margin: 20px 0 10px 0">
            <el-checkbox>打印小票</el-checkbox>
            <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="submitPay">确认收款</el-button>
            <el-button type="primary" @click="confirmSubmit">确认收款</el-button>
        </el-row>
    </el-dialog>
@@ -574,9 +574,9 @@
                isActive: false,
                type: '团购'
            }, {
                value: '会员卡',
                value: '储值卡',
                isActive: false,
                type: '会员卡'
                type: '储值卡'
            }, {
                value: '欠款',
                isActive: false,
@@ -602,13 +602,14 @@
            loading: false,
            /******搜索表格数据END********/
            dialogSettleVisible : true,
            dialogSettleVisible : false,
            defaultProps: {
                children: 'children',
                label: 'showLable'
            },
            treeSelect : [],
            payMoneys : []
            payMoneys : [],
            printPaper : true,
        },
@@ -697,7 +698,7 @@
            changePayMethod(item) {
                console.log("changePayMethod", item);
                if (item.payMethod != '会员卡') {
                if (item.payMethod != '储值卡') {
                    item.payMethodDetail = '';
                }
            },
@@ -868,39 +869,38 @@
             */
            submitOrder(submitType) {
                if (this.checkSubmitOrder()) {
                    let _this = this;
                    //检查支付方式
                    // let hasPayMethod=true;
                    // _this.order.items.forEach(item=>{
                    //     if(!item.payMethod){
                    //         hasPayMethod=false;
                    //         return;
                    //     }
                    // });
                    // if(!hasPayMethod){
                    //     this.$message.warning("请选择支付方式");
                    //     return false;
                    // }
                    if(submitType == 1) {
                        if (_this.payMoneys.length > 0) {
                    let flows = []
                            var total = 0;
                    _this.payMoneys.forEach(item=>{
                        let flow = {};
                        flow.payMethod = item.type;
                                if (!item.money) {
                                    this.$message.warning("请输入" + item.type + "的付款金额");
                                    return false;
                                }
                        flow.amount = item.money;
                        if (item.type == 6) {
                                if (item.type == '储值卡'){
                            flow.isGift = item.isGift;
                            flow.cardId = item.id;
                        }
                                total += 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;
                        }
                    }
                    //匹配业绩
                    _this.achieveList.forEach(achieve => {
@@ -937,16 +937,20 @@
                                _this.order.orderNo = order.orderNo;
                                //结算打印提示
                                if (submitType == 1) {
                                    _this.$confirm('结算成功,是否立刻打印小票?', '提示', {
                                        confirmButtonText: '打印',
                                        cancelButtonText: '取消',
                                        type: 'warning'
                                    }).then(() => {
                                    if (_this.printPaper) {
                                        _this.print();
                                    }).catch(() => {
                                    }
                                        _this.closeFram();
                                    });
                                    // _this.$confirm('结算成功,是否立刻打印小票?', '提示', {
                                    //     confirmButtonText: '打印',
                                    //     cancelButtonText: '取消',
                                    //     type: 'warning'
                                    // }).then(() => {
                                    //     _this.print();
                                    //
                                    // }).catch(() => {
                                    //     _this.closeFram();
                                    // });
                                } else {
                                    _this.$message.success(data.info);
                                }
@@ -969,7 +973,7 @@
             */
            checkAchieve() {
               /*
               //TODO 前端展示不检测,因为考虑到会员卡支付问题
               //TODO 前端展示不检测,因为考虑到储值卡支付问题
               let _this = this;
                for (let i = 0; i < _this.order.items.length; i++) {
                    if (_this.achieveList.length > 0) {
@@ -1008,10 +1012,10 @@
                            this.$message.warning("折扣单价填写不正确");
                            return false;
                        }
                        if (!(MTools.isRealNum(item.payMoney) && item.payMoney >= 0)) {
                            this.$message.warning("实付金额填写不正确");
                            return false;
                        }
                        // if (!(MTools.isRealNum(item.payMoney) && item.payMoney >= 0)) {
                        //     this.$message.warning("实付金额填写不正确");
                        //     return false;
                        // }
                    })
                } else {
                    this.$message.warning("请选择要购买的产品");
@@ -1051,6 +1055,9 @@
                    }
                });
                this.achieveList = achieveListNew;
                this.order.zkTotal = 0;
                this.order.total = 0;
                this.order.payMoney = 0;
                this.calculationTotal();
            },
@@ -1155,7 +1162,7 @@
            payMethodSelect(item, index) {
                let _this = this;
                let payMoneys = _this.payMoneys;
                if (item.type != 6) {
                if (item.type != '储值卡') {
                    this.$nextTick(function () {
                        if (item.isActive) {
                            Vue.set(item,'isActive',false);
@@ -1207,13 +1214,13 @@
                    if (node.isGift) {
                        item.value = node.cardName;
                        item.balance = node.giftMoney;
                        item.isGift = 1;
                        item.isGift = 'Y';
                    } else {
                        item.value = node.cardName;
                        item.balance = node.realMoney;
                        item.isGift = 0;
                        item.isGift = 'N';
                    }
                    item.type = '会员卡';
                    item.type = '储值卡';
                    item.id = node.id;
                    item.uuid = clickNode.uuid;
                    _this.payMoneys.push(item);
@@ -1224,7 +1231,14 @@
                    _this.payMoneys.splice(index, 1);
                }
            },
            submitPay() {
            openPayMoney() {
                let _this = this;
                if (!_this.order.items.length > 0) {
                    this.$message.warning("请选择要购买的产品");
                    return false;
                }
                _this.dialogSettleVisible = true;
            }
        }