| <!DOCTYPE HTML> | 
| <html xmlns:th="http://www.thymeleaf.org"> | 
| <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/kindeditor/themes/default/default.css}"/> | 
|     <link rel="stylesheet" | 
|           th:href="@{/plugin/kindeditor/plugins/code/prettify.css}"/> | 
|     <script th:src="@{/plugin/kindeditor/kindeditor.js}"></script> | 
|     <script th:src="@{/plugin/kindeditor/lang/zh_CN.js}"></script> | 
|     <script | 
|             th:src="@{/plugin/kindeditor/plugins/code/prettify.js}"></script> | 
|     <style type="text/css"> | 
|         #projBox { | 
|             max-height: 400px; | 
|             overflow: scroll; | 
|             overflow-x: hidden; | 
|         } | 
|   | 
|     </style> | 
| </head> | 
| <body> | 
| <div class="ibox-content"> | 
|     <form class="form-horizontal" id="dataform" | 
|           onsubmit="javascripr:return false;"> | 
|   | 
|         <input    type="hidden" name="id" id="objId" th:value="${obj?.id}"> | 
|         <input    type="hidden" name="salePlatform" value="线下"> <input | 
|             type="hidden" name="goodType" value="综合卡"> <input | 
|             type="hidden" id="cates" name="cates" th:value="${cates}"> <input | 
|             type="hidden" id="goodsIds" name="goodsIds" th:value="${goodsIds }"> | 
|         <div class="form-group"> | 
|          <span class="alert-warning btn-sm"> | 
|                 <b>提示:</b> 会籍卡最大使用次数为0,代表无限制,发卡数量数量为0代表无限制! | 
|         </span> | 
|         </div> | 
|         <div class="form-group"> | 
|             <label class="col-sm-2 control-label">综合卡名称<span class="text-danger">*</span></label> | 
|             <div class="col-sm-3"> | 
|                 <input    th:value="${obj?.name}" class="form-control" name="name" | 
|                        dataType="*1-200" nullmsg="充值卡名称不能为空" errormsg="不能超过200"> | 
|                 <div class="Validform_checktip"></div> | 
|             </div> | 
|             <label class="col-sm-2 control-label">状态<span class="text-danger">*</span></label> | 
|             <div class="col-sm-3"> | 
|                 <select class="form-control selectFlag " name="staus" id="staus" | 
|                         nullmsg="状态不能为空" dataType="*" data-filed="name" data-value="name" | 
|                         th:data-def="${obj?.staus}" | 
|                         th:data-url="@{/admin/dataDictionary/showDataDictionary}" | 
|                         data-param="{type:'产品状态'}"> | 
|                     <option value=''>--请选择产品状态--</option> | 
|                 </select> | 
|                 <div class="Validform_checktip"></div> | 
|             </div> | 
|   | 
|         </div> | 
|   | 
|         <div class="form-group"> | 
|             <label class="col-sm-2 control-label">本金<span class="text-danger">*</span></label> | 
|             <div class="col-sm-3"> | 
|                 <input    th:value="${obj?.sealPice}" class="form-control" name="sealPice" | 
|                        onchange="calculateTotalPrice()" id="sealPice" | 
|                        data-toggle="tooltip" title="本金为客户在购买充值卡时需要支付的现金" dataType="price" | 
|                        nullmsg="请填写本金" errormsg="本金可为两位小数的正数"> | 
|                 <div class="Validform_checktip"></div> | 
|             </div> | 
|   | 
|           <!--  <label class="col-sm-2 control-label">赠送金额</label> | 
|             <div class="col-sm-3"> | 
|                 <input    th:value="${obj?.referencePice==null?0:obj.referencePice}" class="form-control" | 
|                        ignore="ignore" onchange="calculateTotalPrice()" | 
|                        name="referencePice" id="referencePice" data-toggle="tooltip" | 
|                        title="赠送金额 + 本金 = 充值卡可以消费的总金额" dataType="price" nullmsg="请填写赠送金额" | 
|                        errormsg="赠送金额可为两位小数的正数"> | 
|                 <div class="Validform_checktip"></div> | 
|             </div>--> | 
|         </div> | 
|         <div class="form-group"> | 
|            <!-- <label class="col-sm-2 control-label">可消费金额</label> | 
|   | 
|             <div class="col-sm-3" th:if="${obj ne null}"> | 
|                 <input    type="text" class="form-control" | 
|                        th:value="${obj?.referencePice+obj.sealPice}" id="totalMoney" | 
|                        readonly="readonly"> | 
|             </div> | 
|             <div class="col-sm-3" th:if="${obj eq null}"> | 
|                 <input    type="text" class="form-control" id="totalMoney" | 
|                        readonly="readonly"> | 
|             </div> | 
|                   --> | 
|             <label class="col-sm-2 control-label">有效期(单位月)<span class="text-danger">*</span></label> | 
|             <div class="col-sm-3 "> | 
|                 <input    type="text" class="form-control" name="validity" dataType="*" | 
|                        nullmsg="有效期为必填" id="validity" th:value="${obj?.validity}"> | 
|                 <div class="Validform_checktip"></div> | 
|             </div> | 
|   | 
|         </div> | 
|         <div class="form-group"> | 
|             <label class="col-sm-2 control-label">销量</label> | 
|             <div class="col-sm-3" > | 
|                 <input    name="realSealCount" type="text" class="form-control" | 
|                        th:value="${obj?.realSealCount}" | 
|                        dataType="n" ignore="ignore"  nullmsg="请填写销量" errormsg="请填写数字"> | 
|                 <div class="Validform_checktip"></div> | 
|             </div> | 
|   | 
|   | 
|             <label class="col-sm-2 control-label">是否单会员只买一次<span class="text-danger">*</span></label> | 
|             <div class="col-sm-3"> | 
|                 <select class="form-control" name="isOnce" id="isOnce" | 
|                         nullmsg="不能为空,请选择" dataType="*"> | 
|                     <option value=''>--请选择--</option> | 
|                     <option value='是' th:selected="${obj?.isOnce == '是'}">是</option> | 
|                     <option value='否' th:selected="${obj?.isOnce == '否'}">否</option> | 
|                 </select> | 
|                 <div class="Validform_checktip"></div> | 
|             </div> | 
|         </div> | 
|   | 
|         <div class="form-group"> | 
|             <label class="col-sm-2 control-label">介绍</label> | 
|             <div class="col-sm-3"> | 
|                 <input    type="text" class="form-control" name="introduction" | 
|                        dataType="*1-200" ignore="ignore" errormsg="介绍不能超过200" | 
|                        th:value="${obj?.introduction}"> | 
|                 <div class="Validform_checktip"></div> | 
|             </div> | 
|             <label class="col-sm-2 control-label">自动下架时间</label> | 
|             <div class="col-sm-3"> | 
|                 <input    type="text" class="form-control datetimepicker" | 
|                        name="saleOffTime" readonly="readonly" | 
|                        th:value="${#dates.format(obj?.saleOffTime, 'yyyy-MM-dd')}" | 
|                 > | 
|             </div> | 
|         </div> | 
|         <div class="form-group"> | 
|             <label class="col-sm-2 control-label">是否赠送<span class="text-danger">*</span></label> | 
|             <div class="col-sm-3"> | 
|                 <select class="form-control" name="isPresent" id="isPresent" | 
|                         nullmsg="不能为空,请选择" dataType="*"> | 
|                     <option value=''>--请选择--</option> | 
|                     <option value='是' th:selected="${obj?.isPresent == '是'}">是</option> | 
|                     <option value='否' th:selected="${obj?.isPresent == '否'}">否</option> | 
|                 </select> | 
|                 <div class="Validform_checktip"></div> | 
|             </div> | 
|   | 
|         </div> | 
|         <div class="form-group"> | 
|             <label class="col-sm-2 control-label">最大发卡数量<span class="text-danger">*</span></label> | 
|             <div class="col-sm-3"> | 
|                 <input    th:value="${obj?.carMaxSaleCount}" class="form-control" id="carMaxSaleCount" | 
|                        name="carMaxSaleCount" data-toggle="tooltip" | 
|                        title="发卡数量为充值卡可销售的最大次数,发卡数量为0则为无限制" dataType="n" nullmsg="请填写发卡数量" | 
|                        errormsg="发卡数量为数字"> | 
|                 <div class="Validform_checktip"></div> | 
|             </div> | 
|             <!--<label class="col-sm-2 control-label">最大使用次数<span class="text-danger">*</span></label> | 
|             <div class="col-sm-3"> | 
|                 <input    th:value="${obj?.carUseCount}" class="form-control" id="carUseCount" | 
|                        name="carUseCount" data-toggle="tooltip" | 
|                        title="最大使用次数为充值卡可使用的最大次数超过次数后会员卡自动失效,最大使用次数为0则为无限制" dataType="n" | 
|                        nullmsg="请填写最大使用次数" errormsg="最大使用次数为数字" | 
|                        th:disabled="${obj?.isVipCar == '是'}" | 
|                 > | 
|                 <div class="Validform_checktip"></div> | 
|             </div>--> | 
|         </div> | 
|   | 
|   | 
|         <div id="warp1"> | 
|             <div class="form-group"> | 
|                 <label class="col-sm-2 control-label">添加商品 <span | 
|                         class="text-danger">*</span></label> | 
|                 <div class="col-sm-3"> | 
|                     <button class="btn btn-success btn-sm " | 
|                             onclick="openPruductList()" type="button">添加</button> | 
|                 </div> | 
|             </div> | 
|             <div class="form-group"> | 
|                 <div class="col-sm-8 col-md-offset-2"> | 
|                     <table class="table table-striped table-hover table-bordered" | 
|                            id="mgrid"> | 
|                         <thead> | 
|                         <tr> | 
|                             <th>序号</th> | 
|                             <th>商品名称</th> | 
|                             <th>商品类型</th> | 
|                             <th class="isShowNum">数量<span class="text-danger">*</span></th> | 
|                             <th>操作</th> | 
|                         </tr> | 
|                         </thead> | 
|                         <tbody id="cpId1"> | 
|   | 
|                         </tbody> | 
|   | 
|                     </table> | 
|                 </div> | 
|             </div> | 
|         </div> | 
|   | 
|         <div class="form-group"> | 
|             <label class="col-sm-2 control-label">综合卡活动描述</label> | 
|             <div class="col-sm-8"> | 
|                 <textarea name="description" id="artcontent" th:text="${obj?.description}"> | 
|   | 
|                     </textarea> | 
|             </div> | 
|         </div> | 
|   | 
|         <div class="form-group"> | 
|             <label class="col-sm-2 control-label">上传图片</label> | 
|             <div class="col-sm-9"> | 
|                 <input    onclick="MTools.chooesFile('#fileText')" | 
|                        class="input-text upload-url radius form-control" type="text" | 
|                        id="showFileName" readonly style="width: 30%; display: inline;"> | 
|                 <a onclick="MTools.chooesFile('#fileText')" | 
|                    class="btn btn-success radius"> <i class="fa fa-cloud-upload"></i> | 
|                     浏览文件 | 
|                 </a> <!-- <input    type="button" class='btn btn-success radius' | 
|                     onclick="MTools.upFile('#submitBtn')" value="上传"> --> <a | 
|                     id="selectInServices" class="btn btn-success radius"> <i | 
|                     class="fa fa-cloud"></i> 远程图库 | 
|             </a> | 
|             </div> | 
|         </div> | 
|   | 
|         <div class="form-group"> | 
|             <div class="col-sm-2 control-label"></div> | 
|             <div class="col-sm-9"> | 
|             </div> | 
|         </div> | 
|   | 
|         <div class="form-group "> | 
|             <div class="col-sm-12 text-center"> | 
|                 <button onclick="myForm.submit()" class="btn btn-success radius">保存</button>     | 
|                 <a href="javascript:;" onclick="MTools.closeForm()" class="btn btn-danger radius">取消</a> | 
|             </div> | 
|         </div> | 
|   | 
|     </form> | 
| </div> | 
| <!-- PC图片上传表单 begin--> | 
| <form class="form form-horizontal" method="post" style="display: none;" | 
|       enctype="multipart/form-data" target="blankFrame" | 
|       action="${path }/resource/plugin/kindeditor/upload_json.jsp?dir=image&flag=img_1&hiddenImg=hiddenImg"> | 
|   | 
|     <input    id="fileText" type="file" multiple name="file-1" | 
|            onchange="MTools.selectFile('#showFileName','#fileText','#submitBtn')"/> <input | 
|         type="submit" id="submitBtn"/> | 
| </form> | 
|   | 
| <iframe src="" name="blankFrame" id="blankFrame" | 
|         style="height: 100px; width: 100px; display: none;"></iframe> | 
|   | 
|   | 
| </div> | 
|   | 
|   | 
| <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script> | 
| <script th:inline="javascript"> | 
|     $(".select2").select2({'width':'100%'}); | 
|     //表单js对象 | 
|     var myForm = null; | 
|     var goodsAttr = ''; | 
|     //已选择的产品集合 | 
|     var totalGoods = []; | 
|   | 
|     $(function() { | 
|   | 
|         $("[data-toggle='tooltip']").tooltip(); | 
|   | 
|         //改变标题 | 
|         parent.layer.title("新增综合卡", parent.layer.getFrameIndex(window.name)); | 
|         //初始化时间格式 | 
|         var initParam = { | 
|             format : "yyyy-mm-dd", //默认显示年与日,如果想显示十分秒:"yyyy-mm-dd hh:ii:ss" | 
|             minView : "2", //"month",只显示年月日的选择,不会再跳转去选择时分秒;如果想要选择时分秒的:"hour" | 
|         }; | 
|         MTools.ininDatetimepicker(initParam); | 
|         //初始化select | 
|         MTools.autoFullSelect(); | 
|         MTools.autoFullSelect({ | 
|             selecteder : ".selectFlag" | 
|         }); | 
|   | 
|         myForm = MForm.initForm({ | 
|             beforeSubmit : function() { | 
|                 //如果不是一卡通判断是否绑定明细 | 
|                 console.log($('input[name="carIsAll"]:checked').val()); | 
|   | 
|                 if (totalGoods.length == 0) { | 
|                     layer.msg("请添加绑定的商品", { | 
|                         icon : 2 | 
|                     }); | 
|                     return false; | 
|                 } | 
|                 //富文本内容同步到textarea | 
|                 editor.sync(); | 
|             }, | 
|             invokeUrl : basePath+"/admin/shoppinggoods/addOrModify", | 
|             afterSubmit : function() { | 
|                 parent.myGrid.serchData(); | 
|             }, | 
|         }); | 
|   | 
|         //创建富文本编辑器 | 
|         MUI.createEdit("description", '100%', '400px', 'editor'); | 
|         //抓取远程图片 | 
|         MUI.openServiceImgSpace(function(url) { | 
|             $("#img_1").attr("src", url).show(); | 
|             $("#hiddenImg").val(url); | 
|         }, "#selectInServices"); | 
|   | 
|         //初始化商城产品类型列表 | 
|         initFunctionList(); | 
|   | 
|         //初始化绑定产品列表 | 
|         readInitData(); | 
|         writeDate(); | 
|     }); | 
|   | 
|   | 
|     /**初始化绑定的产品列表和项目列表*/ | 
|   | 
|     function readInitData(){ | 
|   | 
|         var projItemsL =/*[[${obj?.zongheCarGoods}]]*/ | 
|         if (projItemsL) { | 
|             for (var i = 0; i < projItemsL.length; i++) { | 
|                 var projItem = projItemsL[i]; | 
|                 var obj = new Object(); | 
|                 obj.id = projItem.shoppingGoods.id; | 
|                 obj.name = projItem.shoppingGoods.name; | 
|                 obj.goodType = projItem.shoppingGoods.goodType; | 
|                 //数量 | 
|                 obj.total = projItem.total; | 
|                 totalGoods[i] = obj; | 
|             } | 
|         } | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 初始化商城产品类型:category列表 | 
|      */ | 
|     function initFunctionList() { | 
|         $.AjaxProxy({ | 
|             a : false, | 
|             c : false, | 
|             p : { | 
|                 salePlatform : '线下' | 
|             } | 
|         }).invoke(basePath+"/admin/shoppinggoodscategory/all", function(loj) { | 
|             $("#parentId").createSelectTree(loj.attr("result").rows, { | 
|                 append : true, | 
|                 value : "name", | 
|                 defaultValue : "${obj.cateId}" | 
|             }); | 
|         }); | 
|   | 
|     } | 
|   | 
|     //打开绑定产品页面 | 
|     function openPruductList() { | 
|         layer.full(    layer | 
|             .open({ | 
|                 type : 2, | 
|                 title : "选择产品", | 
|                 area : [ MUI.SIZE_L, '400px' ], | 
|                 content : [ basePath+'/admin/redirect/hive/products/select-zhognhecar-bangding-list' ] | 
|             })); | 
|     } | 
|   | 
|   | 
|     //添加产品回调 | 
|     function callback(arr) { | 
|         removeDouble(arr, totalGoods); | 
|         writeDate(); | 
|     } | 
|   | 
|     //删除选中的元素 | 
|     function delSelectItem(node, id) { | 
|         //根据列表的id找到元素相应下表的元素 | 
|         for (var i = 0; i < totalGoods.length; i++) { | 
|             if (totalGoods[i].id == id) { | 
|                 totalGoods.splice(i, 1); | 
|                 break; | 
|   | 
|             } | 
|         } | 
|         //移除tr | 
|         $(node).closest('tr').remove(); | 
|         $("#cpId1").find("tr").each(function(i) { | 
|             $(this).find("td").eq(0).html(i + 1); | 
|         }); | 
|     } | 
|     //填写数据到html | 
|     function writeDate() { | 
|         var html = ""; | 
|         var flagType = $("#goodType").val(); | 
|         for (var i = 0; i < totalGoods.length; i++) { | 
|             if (!totalGoods[i].price) { | 
|                 totalGoods[i].price = ""; | 
|             } | 
|             if (!totalGoods[i].assembleId) { | 
|                 totalGoods[i].assembleId = ""; | 
|             } | 
|             if (!totalGoods[i].total) { | 
|                 totalGoods[i].total = ""; | 
|             } | 
|             html += '<tr>' | 
|                 + '<td>' | 
|                 + (i + 1) | 
|                 + '</td>' | 
|                 + '<td>' | 
|                 + totalGoods[i].name | 
|                 + '<input    type="hidden" name="assembleGoods['+i+'].assembleGoodId" value="'+totalGoods[i].id+'"> </td>' | 
|                 + '<td>' | 
|                 + totalGoods[i].goodType | 
|                 + '</td>' | 
|                 +'<td class="isShowNum" ><input      datatype="n" type="number" maxlength="8" errormsg="请填写正数" id="c'+i+'" nullmsg="数量不能为空"  class="form-control " name="assembleGoods['+i+'].total" value="'+totalGoods[i].total+'"><div class="Validform_checktip"></div></td>'; | 
|             if(totalGoods[i].assembleId==null||totalGoods[i].assembleId ==''||temp){ | 
|                 html += '<td class="center"><a style="text-decoration: none" class="fa fa-trash" onClick="delSelectItem(this,' | 
|                     + totalGoods[i].id | 
|                     + ')" href="javascript:;" title="删除"></a></td>'; | 
|             }else{ | 
|                 html += '<td class="center"></td>'; | 
|             } | 
|             html += '</tr>'; | 
|         } | 
|         $("#cpId1").html(html); | 
|     } | 
|   | 
|     //-------------------------去重方法-begin--------------------------------- | 
|   | 
|     //赋值或者去重复 | 
|     function removeDouble(arr, srcArr) { | 
|   | 
|         if (srcArr == null) { | 
|             for (var i = 0; i < arr.length; i++) { | 
|                 var obj = new Object(); | 
|                 obj = arr[i]; | 
|                 srcArr[srcArr.length]=obj; | 
|             } | 
|         } else { | 
|             for (var i = 0; i < arr.length; i++) { | 
|                 //去重 | 
|                 console.log("比较"+arr[i].name); | 
|   | 
|                 var isDouble = false; | 
|                 for (var j = 0; j < srcArr.length; j++) { | 
|                     console.log(arr[i].id,srcArr[j].id); | 
|                     if (arr[i].id == srcArr[j].id) { | 
|                         isDouble = true; | 
|                         break; | 
|                     } | 
|                 } | 
|   | 
|   | 
|                 //如果不重复 | 
|                 if (!isDouble) { | 
|                     var obj = new Object(); | 
|                     obj = arr[i]; | 
|                     srcArr[srcArr.length]=obj; | 
|                 } | 
|             } | 
|         } | 
|     } | 
|   | 
| </script> | 
| </body> | 
| </html> |