| <!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"/> | 
|     <!-- 本框架基本脚本和样式 --> | 
|     <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> | 
|     <link rel="stylesheet" | 
|           th:href="@{/plugin/zTree/zTreeStyle/zTreeStyle.css}" | 
|           type="text/css"> | 
|     <script type="text/javascript" | 
|             th:src="@{/plugin/zTree/jquery.ztree.core-3.5.min.js}"></script> | 
|     <script type="text/javascript" | 
|             th:src="@{/plugin/zTree/jquery.ztree.excheck.min.js}"></script> | 
| </head> | 
| <body class=" container-fluid"> | 
| <div class="pd-10"> | 
|     <!-- 搜索框部分start --> | 
|     <div class="ibox-content"> | 
|         <div class="row"> | 
|             <span class="alert-warning btn-sm"> <b>提示:</b> | 
|                 勾选左边的产品分类,可以绑定整个分类的产品到充值卡中。 勾选表格中的产品可以绑定单个产品到充值卡中。 | 
|             </span> | 
|         </div> | 
|         <br> | 
|         <div class="row"> | 
|             <div class="col-sm-3"> | 
|   | 
|                 <div class="ibox float-e-margins"> | 
|                     <div class="ibox-title"> | 
|                         <h5>按商品类型绑定</h5> | 
|                     </div> | 
|                     <div id="treeDemo" class="ibox-content ztree" | 
|                          style="min-height: 400px"></div> | 
|                 </div> | 
|   | 
|             </div> | 
|             <div class="col-sm-9"> | 
|                 <div class="ibox float-e-margins"> | 
|                     <div class="ibox-title"> | 
|                         <h5>按单个商品绑定</h5> | 
|                     </div> | 
|                     <div class="ibox-content"> | 
|                         <!-- 搜索框部分start --> | 
|                         <form class="form-inline" id="serchform"> | 
|                             <input autocomplete="off"   type="hidden" name="salePlatform" value="线下"> | 
|                             <div class="form-group mr-20"> | 
|                                 <label for="instoreType">商品类型</label> <select | 
|                                     class="form-control" name="goodType" id="goodType"> | 
|                                 <option value=''>--请选择商品类型--</option> | 
|                                 <option value='家居产品'>家居产品</option> | 
|                                 <option value='项目'>项目</option> | 
|                                 <option value='套餐'>套餐</option> | 
|                             </select> | 
|                             </div> | 
|                             <div class="form-group mr-20"> | 
|                                 <label for="name">商品名称</label> <input autocomplete="off"   name="name" type="text" | 
|                                                                       class="form-control" id="name"> | 
|                             </div> | 
|   | 
|                             <div class="form-group mr-20"> | 
|                                 <label for="goodsSortId">商品分类</label> <select | 
|                                     class="form-control " size="1" name="goodsSortId" | 
|                                     id="goodsSortId"> | 
|                                 <option value=''>--选择商品分类--</option> | 
|                             </select> | 
|                             </div> | 
|                             <button onclick="myGrid.serchData()" type="button" | 
|                                     class="btn btn-info btn-sm"> | 
|                                 <i class="fa fa-search "></i> 搜索 | 
|                             </button> | 
|                             <button onclick="myGrid.resetForm()" type="button" class="btn btn-info btn-sm"> | 
|                                 <i class="fa fa-refresh "></i> 重置 | 
|                             </button> | 
|                             <button type="button" onclick="selectAll()" class="btn btn-info btn-sm"> | 
|                                 <i class="fa fa-refresh "></i> 全选 | 
|                             </button> | 
|                         </form> | 
|                         <table id="mgrid" data-url=""> | 
|                             <thead> | 
|                             <tr> | 
|                                 <th data-field="name">产品名称</th> | 
|                                 <th data-field="sealPice">售价</th> | 
|                                 <th data-field="staus">状态</th> | 
|                                 <th data-field="isPresent">是否赠送</th> | 
|                                 <th data-field="goodType">类型</th> | 
|                                 <th data-field="cateName">分类</th> | 
|                             </tr> | 
|                             </thead> | 
|                         </table> | 
|                     </div> | 
|                 </div> | 
|             </div> | 
|         </div> | 
|         <div class="row "> | 
|   | 
|   | 
|   | 
|             <div class="col-sm-9 col-sm-offset-3"> | 
|                 <div class="ibox-title"> | 
|                     <h5>已选择商品</h5> | 
|                 </div> | 
|                 <div class="ibox-content"></div> | 
|                 <table class="table"> | 
|                     <thead> | 
|                     <tr> | 
|                         <th width="50">序号</th> | 
|                         <th>产品名称</th> | 
|                         <th>操作</th> | 
|                     </tr> | 
|                     </thead> | 
|                     <tbody id="tbody"> | 
|                     </tbody> | 
|                 </table> | 
|             </div> | 
|             <div class="row "> | 
|                 <button class="btn btn-success center-block" | 
|                         onclick="selectoption()">确认选择</button> | 
|             </div> | 
|         </div> | 
|     </div> | 
|   | 
| <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script> | 
| <script type="text/javascript" th:inline="javascript"> | 
|   | 
|   | 
|     var myGrid; | 
|     var tree=null; | 
|     //记录客户选则的产品 | 
|     var selectedTr = new Array(); | 
|     var goodsList =[[${goodsList}]] | 
|     if(goodsList){ | 
|         for(var i=0;i<goodsList.length;i++){ | 
|             var goodsItem=goodsList[i]; | 
|             var obj = new Object(); | 
|             //库存sku信息 | 
|             //组合id | 
|             obj.id=goodsItem.id; | 
|             //商品id | 
|             obj.name=goodsItem.name; | 
|             selectedTr[i]=obj; | 
|         } | 
|     } | 
|     selectTrChange(); | 
|   | 
|     $(function() { | 
|         //初始化商品属性搜索列表 | 
|         MTools.autoFullSelect(); | 
|         myGrid = MGrid.initGrid({ | 
|             height : 400, | 
|             url : basePath+"/admin/shoppinggoods/showList", | 
|         }); | 
|   | 
|         initCateTree(); | 
|         $('#mgrid').on('click-row.bs.table', function(e, name, args) { | 
|             selectTrChange(e, name, args); | 
|         }) | 
|     }); | 
|   | 
|   | 
|   | 
|   | 
|     //初始化商品类型 | 
|     function initCateTree() { | 
|         var zNodes = new Array(); | 
|         $.AjaxProxy({ | 
|             p : { | 
|                 salePlatform : '线下' | 
|             } | 
|         }).invoke( | 
|             basePath+"/admin/shoppinggoodscategory/all", | 
|             function(loj) { | 
|                 //初始化下拉选择框 | 
|                 $("#goodsSortId").createSelectTree(loj.attr("result").rows, { | 
|                     append : true, | 
|                     value : "name", | 
|                 }); | 
|   | 
|   | 
|                 for (var i = 0; i < loj.getRowCount(); i++) { | 
|                     zNodes[i] = createNode(loj.getString(i, "id"), loj | 
|                         .getString(i, "parentId"), loj.getString(i, | 
|                         "name")); | 
|                 } | 
|                 initTree(zNodes); | 
|             }); | 
|     } | 
|     //确认选择 | 
|     function selectoption() { | 
|         var arr = myGrid.initParam.$table.bootstrapTable('getSelections'); | 
|         //客户选择的要绑定的分类 | 
|         var cates=tree.getCheckedNodes(); | 
|         var keys=""; | 
|         for(var i=0 ; i<cates.length ; i++){ | 
|             keys+=cates[i]["id"]+","; | 
|         } | 
|         var goodIds=""; | 
|         for(var i=0 ; i<selectedTr.length ; i++){ | 
|             goodIds+=selectedTr[i]["id"]+","; | 
|         } | 
|         parent.callback(goodIds,keys); | 
|         parent.layer.close(parent.layer.getFrameIndex(window.name)); | 
|     } | 
|   | 
|     /** | 
|      * 初始化商品类型列表 | 
|      */ | 
|     function initFunctionSelected(id) { | 
|         $ | 
|             .AjaxProxy({ | 
|                 a : false, | 
|                 c : false, | 
|                 p : { | 
|                     salePlatform : '线下' | 
|                 } | 
|             }) | 
|             .invoke( | 
|                 basePath+"/admin/shoppinggoodscategory/all", | 
|                 function(loj) { | 
|                     $("#parentId") | 
|                         .createSelectTree( | 
|                             loj.attr("result").rows, | 
|                             { | 
|                                 append : false, | 
|                                 defaultValue : id, | 
|                                 value : "name", | 
|                                 defaultHtml : '<option value="0" selected="selected">一级商品类型</option>', | 
|                             }); | 
|                 }); | 
|   | 
|     } | 
|   | 
|     function initTree(zNodes) { | 
|         var setting = { | 
|             check : { | 
|                 enable : true, | 
|                 chkStyle : "checkbox", | 
|                 radioType : "level", | 
|                 chkboxType : { | 
|                     "Y" : "ps", | 
|                     "N" : "ps" | 
|                 } | 
|             }, | 
|             view : { | 
|                 dblClickExpand : false, | 
|                 showLine : true, | 
|   | 
|             }, | 
|             data : { | 
|                 simpleData : { | 
|                     enable : true, | 
|                     idKey : "id", | 
|                     pIdKey : "pId", | 
|                     rootPId : "" | 
|                 } | 
|             }, | 
|   | 
|         }; | 
|         tree=$.fn.zTree.init($("#treeDemo"), setting, zNodes); | 
|     } | 
|   | 
|     function createNode(id, parentId, name) { | 
|         var o = new Object(); | 
|         o.id = id; | 
|         o.pId = parentId; | 
|         o.name = name; | 
|         o.open = true; | 
|         //如果是编辑则设置节点选中 | 
|         var cates=[[${cates}]]; | 
|         if(cates){ | 
|             var cates="${cates}"; | 
|             if(cates.indexOf(id)!=-1){ | 
|                 o.checked=true; | 
|             } | 
|         } | 
|         return o; | 
|     } | 
|     function selectAll(){ | 
|         var allTableData = $("#mgrid").bootstrapTable('getData'); | 
|         for(var t=0;t<allTableData.length;t++){ | 
|             var flag = true; | 
|             for (var i = 0; i < selectedTr.length; i++) { | 
|                 if (allTableData[t].id == selectedTr[i].id) { | 
|                     flag = false; | 
|                 } | 
|             } | 
|             if (flag) { | 
|                 selectedTr.push(allTableData[t]); | 
|             } | 
|         } | 
|   | 
|         var html = ''; | 
|         for (var i = 0; i < selectedTr.length; i++) { | 
|             html += '<tr><td>' | 
|                 + (i + 1) | 
|                 + '</td><td>' | 
|                 + selectedTr[i].name | 
|                 + '</td>' | 
|                 + '<td><a class="fa fa-trash" onClick="delSelectItem(this,' | 
|                 + selectedTr[i].id + ')"  title="删除"></a></td></tr>'; | 
|         } | 
|         $("#tbody").html(html); | 
|     } | 
|   | 
|     //改变tr选择 | 
|     function selectTrChange(e, name, args) { | 
|         var flag = true; | 
|         if(name){ | 
|             for (var i = 0; i < selectedTr.length; i++) { | 
|                 if (name.id == selectedTr[i].id) { | 
|                     flag = false; | 
|                 } | 
|             } | 
|             if (flag) { | 
|                 selectedTr.push(name); | 
|             } | 
|         } | 
|         var trs = $('#mgrid').bootstrapTable('getSelections'); | 
|         var html = ''; | 
|         for (var i = 0; i < selectedTr.length; i++) { | 
|             html += '<tr><td>' | 
|                 + (i + 1) | 
|                 + '</td><td>' | 
|                 + selectedTr[i].name | 
|                 + '</td>' | 
|                 + '<td><a class="fa fa-trash" onClick="delSelectItem(this,' | 
|                 + selectedTr[i].id + ')"  title="删除"></a></td></tr>'; | 
|         } | 
|         $("#tbody").html(html); | 
|     } | 
|   | 
|     //删除选中的元素 | 
|     function delSelectItem(node, id) { | 
|         var arr = new Array(); | 
|         for (var i = 0; i < selectedTr.length; i++) { | 
|             if (id != selectedTr[i].id) { | 
|                 arr.push(selectedTr[i]); | 
|             } | 
|         } | 
|         selectedTr=arr.reverse(); | 
|         $(node).closest('tr').remove(); | 
|     } | 
| </script> | 
|   | 
| </body> | 
| </html> |