| <!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/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="false" :close-on-click-modal="false" :close-on-press-escape="false"> | 
|         <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> | 
|   | 
|         <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}" slot="reference" @click="payMethodSelect(item, index)"><div style=" height:30px; line-height: 30px; display: flex; align-items: center"><img style="width: 25px; height: 25px; align-items: center;" :src="item.img"><span style="margin-left: 5px;">{{item.value}}</span></div></li> | 
|                             </el-popover> | 
|                         </span> | 
|                     </ul> | 
|                 </el-row> | 
|             </el-col> | 
|         </el-row> | 
|   | 
|         <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="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> | 
|   | 
|         <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="submitBj">确认收款</el-button> | 
|             <el-button type="danger" @click="cancelSubmit">取消</el-button> | 
|         </el-row> | 
|     </el-dialog> | 
| </div> | 
|   | 
| <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: '现金支付', | 
|                 img: '/images/pay/cash.png', | 
|                 isActive: false, | 
|                 type: '现金支付' | 
|             }, { | 
|                 value: '微信', | 
|                 img: '/images/pay/wechat.png', | 
|                 isActive: false, | 
|                 type: '微信' | 
|             }, { | 
|                 value: '支付宝', | 
|                 img: '/images/pay/zhifubao.png', | 
|                 isActive: false, | 
|                 type: '支付宝' | 
|             }, { | 
|                 value: '银行卡', | 
|                 img: '/images/pay/yinlian.png', | 
|                 isActive: false, | 
|                 type: '银行卡' | 
|             }, { | 
|                 value: '团购', | 
|                 img: '/images/pay/tuan.png', | 
|                 isActive: false, | 
|                 type: '团购' | 
|             }, { | 
|                 value: '储值卡', | 
|                 img: '/images/pay/card.png', | 
|                 isActive: false, | 
|                 type: '储值卡' | 
|             },], | 
|             moneyCards : [], | 
|             dialogSettleVisible : true, | 
|             defaultProps: { | 
|                 children: 'children', | 
|                 label: 'showLable' | 
|             }, | 
|             treeSelect : [], | 
|             payMoneys : [], | 
|             printPaper : false, | 
|         }, | 
|         created : function() { | 
|             this.order = /*[[${order}]]*/ | 
|             this.getVipMoneyCards(); | 
|         }, | 
|         methods : { | 
|             submitBj() { | 
|                 let _this = this; | 
|                 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 == '储值卡'){ | 
|                             flow.isGift = item.isGift; | 
|                             flow.cardId = item.id; | 
|                         } | 
|                         total += item.money; | 
|                         flows.push(flow) | 
|                     }) | 
|                     if (total > _this.order.arrears) { | 
|                         this.$message.warning("输入付款总金额大于应还金额"); | 
|                         return false; | 
|                     } | 
|                     _this.order.flows = flows; | 
|                 } else { | 
|                     this.$message.warning("请选择支付方式"); | 
|                     return false; | 
|                 } | 
|   | 
|                 let url = basePath + "/admin/moneyCardUse/bj"; | 
|   | 
|                 AjaxProxy.requst({ | 
|                     app: _this, | 
|                     data: _this.order, | 
|                     url: url, | 
|                     callback: function (data) { | 
|                         if (_this.printPaper) { | 
|                             _this.print(); | 
|                         } | 
|   | 
|                         if(parent.myGrid) { | 
|                             parent.myGrid.serchData(); | 
|                         } | 
|   | 
|                         if (parent.app) { | 
|                             parent.app.orderQuery(); | 
|                         } | 
|   | 
|                         _this.closeFrame(); | 
|                     } | 
|                 }); | 
|             }, | 
|             cancelSubmit() { | 
|                 this.closeFrame(); | 
|             }, | 
|             print() { | 
|                 let _this = this; | 
|                 if (_this.order.id) { | 
|                     layer.open({ | 
|                         type: 2, | 
|                         title: "打印订单", | 
|                         area: ['250px', '550px'], | 
|                         maxmin: true, | 
|                         content: [basePath + '/admin/order/printOrder?id=' + this.order.id], | 
|                         cancel: function (index, layero) { | 
|                             _this.closeFram(); | 
|                         } | 
|                     }); | 
|                 } else { | 
|                     this.$message.warning("请先挂单在打印"); | 
|                 } | 
|   | 
|   | 
|             }, | 
|             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; | 
|                             } | 
|   | 
|                         } | 
|                     }); | 
|                 } | 
|             }, | 
|             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); | 
|                             var hasAmount = 0; | 
|                             for(var i = 0; i < payMoneys.length; i++) { | 
|                                 hasAmount += parseFloat(payMoneys[i].money); | 
|                             } | 
|                             if (_this.order.arrears - hasAmount > 0) { | 
|                                 Vue.set(item, 'money', _this.order.arrears - hasAmount); | 
|                             } | 
|                             _this.payMoneys.push(item); | 
|                         } | 
|                     }); | 
|                 } | 
|             }, | 
|             popoverHide(item) { | 
|                 if(this.treeSelect.length <= 0) { | 
|                     Vue.set(item, 'isActive', false) | 
|                 } else { | 
|                     Vue.set(item, 'isActive', true) | 
|                 } | 
|             }, | 
|             handleCheckChange(clickNode, checked) { | 
|                 let _this = this; | 
|   | 
|                 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; | 
|                     } | 
|                 } | 
|   | 
|                 // 若点击节点在选中节点中,且已展示支付方式不存在,则添加 | 
|                 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); | 
|                 } | 
|   | 
|                 // 若点击节点不存在选中节点中,且已展示支付方式中存在,则移除 | 
|                 if (nodes.indexOf(clickNode) === -1 && index > -1) { | 
|                     _this.payMoneys.splice(index, 1); | 
|                 } | 
|             }, | 
|             closeFrame() { | 
|                 parent.layer.close(parent.layer.getFrameIndex(window.name)); | 
|             }, | 
|         } | 
|     }); | 
|     //]]> | 
| </script> | 
| </body> | 
| </html> |