| <!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;"> | 
|                 <el-input v-model="rechargeMoney" placeholder="0.1元起充"></el-input> | 
|             </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"> | 
|                             <li :class="{active : item.isActive}" @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> | 
|                         </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-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="16"> | 
|                 <el-table class="mt-20" | 
|                           :border="true" | 
|                           :data="achieveList" | 
|                           style="width: 100%"> | 
|                     <el-table-column | 
|                             type="index" | 
|                             width="50"> | 
|                     </el-table-column> | 
|                     <el-table-column | 
|                             label="业绩" width="100"> | 
|                         <template slot-scope="scope"> | 
|                             <el-input v-model="scope.row.achieveMoney"></el-input> | 
|                         </template> | 
|                     </el-table-column> | 
|                     <el-table-column | 
|                             label="提成"> | 
|                         <template slot-scope="scope"> | 
|                             <el-input v-model="scope.row.commission"></el-input> | 
|                         </template> | 
|                     </el-table-column> | 
|                     <el-table-column | 
|                             label="员工" width="130"> | 
|                         <template slot-scope="scope"> | 
|                             <el-select v-model="scope.row.saleId" placeholder="请选择员工"> | 
|                                 <el-option | 
|                                         v-for="item in userList" | 
|                                         :key="item.suId" | 
|                                         :label="item.suName" | 
|                                         :value="item.suId"> | 
|                                 </el-option> | 
|                             </el-select> | 
|                         </template> | 
|                     </el-table-column> | 
|                     <el-table-column | 
|                             width="150" | 
|                             label="操作"> | 
|                         <template slot-scope="scope"> | 
|                             <el-button type="primary" v-if="scope.row.isShare" | 
|                                        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> | 
|                         </template> | 
|                     </el-table-column> | 
|                 </el-table> | 
|             </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="submitRecharge">确认收款</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"> | 
|     var vipId = $.query.get("vipId"); | 
|   | 
|     //<![CDATA[ | 
|     var vue = new Vue({ | 
|         el: '#app', | 
|         data : { | 
|             cardInfo : "", | 
|             loginUser : "", | 
|             rechargeMoney : "", | 
|             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: '团购' | 
|             }, ], | 
|             dialogSettleVisible : true, | 
|             defaultProps: { | 
|                 children: 'children', | 
|                 label: 'showLable' | 
|             }, | 
|             achieveList : [], | 
|             userList: [], | 
|             treeSelect : [], | 
|             payMoneys : [], | 
|             printPaper : false, | 
|         }, | 
|         created : function() { | 
|             let _this = this; | 
|             this.cardInfo = /*[[${obj}]]*/ | 
|   | 
|             //获取用户列表 | 
|             AjaxProxy.requst({ | 
|                 app: _this, | 
|                 url: basePath + '/admin/shopAll', | 
|                 callback: function (data) { | 
|                     _this.userList = data.rows; | 
|                 } | 
|             }); | 
|   | 
|             //获取登录用户信息 | 
|             AjaxProxy.requst({ | 
|                 app: _this, | 
|                 url: basePath + '/admin/getLoginUser', | 
|                 callback: function (data) { | 
|                     _this.loginUser = data.mapInfo.user; | 
|   | 
|                     _this.achieveList.push({ | 
|                         saleId: _this.loginUser.suId, | 
|                         achieveMoney: 0, | 
|                         commission : 0, | 
|                         isShare: false, | 
|                     }); | 
|                 } | 
|             }); | 
|         }, | 
|         methods : { | 
|             submitRecharge() { | 
|                 let _this = this; | 
|   | 
|                 if (!_this.rechargeMoney) { | 
|                     this.$message.warning("请输入充值金额"); | 
|                     return; | 
|                 } | 
|   | 
|                 if (_this.rechargeMoney < 0.1) { | 
|                     this.$message.warning("0.1元起充"); | 
|                     return; | 
|                 } | 
|   | 
|                 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; | 
|                         total += item.money; | 
|                         flows.push(flow); | 
|                     }) | 
|                     if (total != _this.rechargeMoney) { | 
|                         this.$message.warning("付款金额应等于充值金额"); | 
|                         return false; | 
|                     } | 
|                     _this.cardInfo.flows = flows; | 
|                 } else { | 
|                     this.$message.warning("请选择支付方式"); | 
|                     return false; | 
|                 } | 
|   | 
|                 let achaeveList = []; | 
|                 _this.achieveList.forEach(achieve => { | 
|                     let achieveNew = { | 
|                         beaultId: achieve.saleId, | 
|                         t1: achieve.achieveMoney, | 
|                         t3: '现金业绩', | 
|                         projPercentage: achieve.commission, | 
|                     }; | 
|                     achaeveList.push(achieveNew); | 
|                 }) | 
|                 _this.cardInfo.bjmoney = _this.rechargeMoney; | 
|                 _this.cardInfo.achaeveList = achaeveList; | 
|                 let url = basePath + "/admin/moneyCardUse/cz"; | 
|   | 
|                 console.log(_this.cardInfo); | 
|                 AjaxProxy.requst({ | 
|                     app: _this, | 
|                     data: _this.cardInfo, | 
|                     url: url, | 
|                     callback: function (data) { | 
|                         if (_this.printPaper) { | 
|                             _this.print(); | 
|                         } | 
|   | 
|                         if(parent.myGrid) { | 
|                             parent.myGrid.serchData(); | 
|                         } | 
|   | 
|                         if (parent.app) { | 
|                             parent.app.vipInfoFn(); | 
|                         } | 
|   | 
|                         _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/redirect/hive/beautySalon/print-order?id=' + this.order.id], | 
|                         cancel: function (index, layero) { | 
|                             _this.closeFram(); | 
|                         } | 
|                     }); | 
|                 } else { | 
|                     this.$message.warning("请先挂单在打印"); | 
|                 } | 
|   | 
|   | 
|             }, | 
|             payMethodSelect(item, index) { | 
|                 let _this = this; | 
|                 let payMoneys = _this.payMoneys; | 
|                 let rechargeMoney = _this.rechargeMoney; | 
|                 if (!rechargeMoney) { | 
|                     this.$message.warning("请输入充值金额"); | 
|                     return; | 
|                 } | 
|   | 
|                 if (rechargeMoney < 0.1) { | 
|                     this.$message.warning("0.1元起充"); | 
|                     return; | 
|                 } | 
|                 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.rechargeMoney - hasAmount > 0) { | 
|                                 Vue.set(item, 'money', _this.rechargeMoney - hasAmount); | 
|                             } | 
|                             _this.payMoneys.push(item); | 
|                         } | 
|                     }); | 
|                 } | 
|             }, | 
|             closeFrame() { | 
|                 parent.layer.close(parent.layer.getFrameIndex(window.name)); | 
|             }, | 
|             shareAchieve(index, row) { | 
|                 row2 = JSON.parse(JSON.stringify(row)); | 
|                 row2.isShare = true; | 
|                 this.achieveList.push(row2); | 
|             }, | 
|             //删除业绩 | 
|             delAchieve(index, row) { | 
|                 this.achieveList.splice(index, 1); | 
|             }, | 
|         } | 
|     }); | 
|     //]]> | 
| </script> | 
| </body> | 
| </html> |