| <!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> | 
|     <script type="text/javascript" charset="utf-8" | 
|             th:src="@{/plugin/beditor/ueditor.config.js}"></script> | 
|     <script type="text/javascript" charset="utf-8" | 
|             th:src="@{/plugin/beditor/ueditor.all.js}"> | 
|   | 
|     </script> | 
|     <script type="text/javascript" charset="utf-8" | 
|             th:src="@{/plugin/beditor/lang/zh-cn/zh-cn.js}"></script> | 
|     <style> | 
|         #erpNoDiv { | 
|             width:200px; | 
|             display: inline-grid; | 
|             grid-template-columns: 20% 80%; | 
|         } | 
|     </style> | 
| </head> | 
| <body> | 
| <div class="ibox-content"> | 
|     <form class="form-horizontal" id="dataform" onsubmit="javascript:return false;"> | 
|         <input autocomplete="off"   type="hidden" name="tokenUrl" th:value="${tokenUrl}"> | 
|         <input autocomplete="off"   type="hidden" name="token" th:value="${token}"> | 
|         <input autocomplete="off"   type="hidden" name="id" th:value="${obj.id}"> | 
|         <div class="row"> | 
|             <div class="col-sm-12"> | 
|                 <div class="ibox-content"> | 
|                     <div class="panel panel-default"> | 
|                         <div class="panel-heading">基本信息</div> | 
|                         <div class="panel-body"> | 
|                             <div class="form-group"> | 
|                                 <label class="col-sm-2 control-label">分类ID | 
|                                     <span class="text-danger">*</span> | 
|                                 </label> | 
|                                 <div class="col-sm-4"> | 
|                                     <select class="form-control select2 " size="1" name="categoryId" | 
|                                             id="parentId" style="width: 100%"> | 
|                                     </select> | 
|                                 </div> | 
|   | 
|                                 <label class="col-sm-2 control-label">产品名称 | 
|                                     <span class="text-danger">*</span> | 
|                                 </label> | 
|                                 <div class="col-sm-4"> | 
|                                     <input autocomplete="off"   type="text" class="form-control" name="title" | 
|                                            maxLength="120" dataType="*" | 
|                                            th:value="${obj.title}" nullmsg="产品名称不能为空"> | 
|                                 </div> | 
|                             </div> | 
|                             <div class="form-group"> | 
|                                 <label class="col-sm-2 control-label">产品简介 | 
|                                     <span class="text-danger">*</span> | 
|                                 </label> | 
|                                 <div class="col-sm-4"> | 
|                                     <input autocomplete="off"   type="text" class="form-control" name="briefIntroduction" | 
|                                            maxLength="1000" dataType="*" | 
|                                            th:value="${obj.briefIntroduction}" nullmsg="产品简介不能为空"> | 
|                                 </div> | 
|   | 
|                             </div> | 
|                             <div class="form-group"> | 
|                                 <label class="col-sm-2 control-label">价格 | 
|                                     <span class="text-danger">*</span> | 
|                                 </label> | 
|                                 <div class="col-sm-4"> | 
|                                     <input autocomplete="off"   type="text" class="form-control" name="price" datatype="/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/" | 
|                                            errormsg="请填写数字"    th:value="${obj.price}" nullmsg="价格不能为空"> | 
|                                 </div> | 
|                                 <label class="col-sm-2 control-label">展示销量 | 
|                                     <span class="text-danger">*</span> | 
|                                 </label> | 
|                                 <div class="col-sm-4"> | 
|                                     <input autocomplete="off"   type="text" class="form-control" name="dsVolume" | 
|                                            dataType="n" nullmsg="展示销量不能为空" | 
|                                            th:value="${obj.dsVolume}" errormsg="请填写数字"> | 
|                                 </div> | 
|                                 <!--<label class="col-sm-2 control-label">运费 | 
|                                     <span class="text-danger">*</span> | 
|                                 </label> | 
|                                 <div class="col-sm-4"> | 
|                                     <input autocomplete="off"   type="text" class="form-control" name="carriage" | 
|                                            maxLength="250" datatype="*" | 
|                                            th:value="${obj.carriage}" nullmsg="运费不能为空"> | 
|                                 </div>--> | 
|                             </div> | 
|                             <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="buyLimit"  dataType="n"  ignore="ignore" | 
|                                            th:value="${obj.buyLimit}" errormsg="请填写数字"> | 
|                                 </div> | 
|                                 <label class="col-sm-2 control-label">是否上架 | 
|                                 </label> | 
|                                 <div class="col-sm-4"> | 
|                                     <select th:field="${obj.status}" class="form-control select2 " size="1" | 
|                                             name="status" | 
|                                             id="status" style="width: 100%"> | 
|                                         <option value="1" th:selected="${obj.status == '1'}">是</option> | 
|                                         <option value="2" th:selected="${obj.status == '2'}">否</option> | 
|                                         </option> | 
|   | 
|                                     </select> | 
|                                 </div> | 
|                             </div> | 
|   | 
|                             <div class="form-group"> | 
|   | 
|                                 <label class="col-sm-2 control-label">是否为服务项目 | 
|                                 </label> | 
|                                 <div class="col-sm-4"> | 
|                                     <select th:field="${obj.isService}" class="form-control " size="1" | 
|                                             name="isService" | 
|                                             id="isService" style="width: 100%"> | 
|                                         <option value="2" th:selected="${obj.isService == '2'}">否</option> | 
|                                         <option value="1" th:selected="${obj.isService == '1'}">是</option> | 
|                                         </option> | 
|   | 
|                                     </select> | 
|                                 </div> | 
|   | 
|                                 <label class="col-sm-2 control-label">服务时长 | 
|                                 </label> | 
|                                 <div class="col-sm-4"> | 
|                                     <input autocomplete="off"   type="text" class="form-control" name="serviceTime" | 
|                                            maxLength="50" | 
|                                            th:value="${obj.serviceTime}" > | 
|                                 </div> | 
|   | 
|   | 
|                             </div> | 
|   | 
|                             <!--<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="rsVolume" | 
|   | 
|                                            th:value="${obj.rsVolume}" errormsg="请填写数字"> | 
|                                 </div> | 
|                             </div>--> | 
|                             <div class="form-group"> | 
|                                 <label class="col-sm-2 control-label">属性设置 </label> | 
|                                 <input autocomplete="off"     name="attrs" id="attrs" type="hidden" > | 
|                                 <input autocomplete="off"   name="attrValues" id="attrValues" type="hidden"/> | 
|                                 <div class="col-sm-4"> | 
|                                     <select class="select2 form-control" | 
|                                             multiple="multiple" id="attrIds"> | 
|                                     </select> | 
|                                 </div> | 
|                                 <label class="col-sm-2 control-label">划线价格 | 
|                                 </label> | 
|                                 <div class="col-sm-4"> | 
|                                     <input autocomplete="off"   type="text" class="form-control" name="markedPrice" datatype="/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/" | 
|                                            errormsg="请填写数字" ignore="ignore"   th:value="${obj.markedPrice}" nullmsg="价格不能为空"> | 
|                                 </div> | 
|   | 
|                             </div> | 
|   | 
|                           <!--  <label class="col-sm-2 control-label">PC端封面 | 
|   | 
|                             </label> | 
|                             <div class="col-sm-4"> | 
|                                 <input autocomplete="off"   th:value="${obj.imgPc}" name="imgPc" id="imgPc" | 
|                                        class="form-control  upload-input" type="text" /> <a | 
|                                     class="btn btn-primary radius upload-a">选择图片 | 
|                             </a> | 
|                             </div>--> | 
|                             <div class="form-group"> | 
|                                 <label class="col-sm-2 control-label">手机端封面 | 
|   | 
|                                 </label> | 
|                                 <div class="col-sm-4"> | 
|                                     <input autocomplete="off"   th:value="${obj.imgMobile}" name="imgMobile" id="imgMobile" | 
|                                            class="form-control  upload-input" type="text" /> <a | 
|                                         class="btn btn-primary radius upload-a">选择图片 | 
|                                 </a> | 
|   | 
|                                 </div> | 
|   | 
|                                 <label class="col-sm-2 control-label">选择店铺</label> | 
|                                 <div class="col-sm-4"> | 
|                                     <select class="form-control autoFull select2" dataType="*" multiple="multiple" | 
|                                             nullmsg="店铺不能为空" id="shopSelect" | 
|                                             th:data-url="@{/admin/shopInfo/findShops}" data-value="id" | 
|                                             data-filed="shopName" th:data-def="${obj.shopIds}" name="shopIds"> | 
|                                     </select> | 
|   | 
|                                 </div> | 
|   | 
|   | 
|                             </div> | 
|                         </div> | 
|                     </div> | 
|                 </div> | 
|             </div> | 
|   | 
|         </div> | 
|   | 
|         <div class="row"> | 
|             <div class="col-sm-12"> | 
|                 <div class="ibox-content"> | 
|                     <div class="panel panel-default"> | 
|                         <div class="panel-heading">产品规格 <span class="text-danger">*</span></div> | 
|                         <div class="panel-body"> | 
|                             <a class="btn btn-default small " style="margin-bottom: 10px;" | 
|                                onclick="addSku()">添加规格</a> | 
|                             <table class="table  table-bordered" id="skutable"> | 
|                                 <tr> | 
|                                     <th style="display:none;">id</th> | 
|                                     <th>规格名称<span class="text-danger">*</span></th> | 
|                                     <th>规格图片地址<span class="text-danger">*</span></th> | 
|                                     <th>库存<span class="text-danger">*</span></th> | 
|                                     <th>价格<span class="text-danger">*</span></th> | 
|                                     <th>积分</th> | 
|                                     <th>关联ERP产品</th> | 
|                                     <th>排序</th> | 
|                                     <th>操作</th> | 
|                                 </tr> | 
|                             </table> | 
|                         </div> | 
|                     </div> | 
|                 </div> | 
|             </div> | 
|         </div> | 
|   | 
|         <div class="row"> | 
|             <div class="col-sm-6"> | 
|                 <div class="ibox-content"> | 
|                     <div class="panel panel-default"> | 
|                         <div class="panel-heading">产品参数</div> | 
|                         <div class="panel-body" id="paramvalues" > | 
|                                 <div class="form-group" th:each="list,userStat:${valueList}" th:switch="${list.paramType}"> | 
|                                     <input autocomplete="off"   type="hidden" name="paramId" th:value="${list.paramId}"> | 
|                                     <input autocomplete="off"   type="hidden" name="paramName" th:value="${list.paramName}"> | 
|                                     <input autocomplete="off"   type="hidden" name="paramType" th:value="${list.paramType}"> | 
|                                     <input autocomplete="off"   type="hidden" name="sort" th:value="${list.sort}"> | 
|                                     <label th:text="${list.paramName}" class="col-sm-2 control-label"> | 
|                                     </label> | 
|                                     <div th:id="param+${list.paramId}" class="col-sm-8" th:case="'0'"> | 
|                                         <input autocomplete="off"   type="text" class="form-control" name="paramValue" | 
|                                                maxLength="5000"  > | 
|                                     </div> | 
|                                     <div th:id="param+${list.paramId}" class="col-sm-8" th:case="'1'"> | 
|                                         <select class="form-control " size="1" name="paramValue" > | 
|                                             <option value="-">请选择</option> | 
|                                             <option th:each="paramValue:${list.valueList}" th:value="${paramValue.paramValue}" th:text="${paramValue.paramValue}"></option> | 
|                                         </select> | 
|                                     </div> | 
|                                 </div> | 
|                         </div> | 
|                     </div> | 
|                 </div> | 
|             </div> | 
|   | 
|             <div class="col-sm-6"> | 
|                 <div class="ibox-content"> | 
|                     <div class="panel panel-default"> | 
|                         <div class="panel-heading">产品图片</div> | 
|                         <div class="panel-body"> | 
|                             <a class="btn btn-default small " style="margin-bottom: 10px;" | 
|                                onclick="addImgTr()">添加图片</a> | 
|                             <table class="table  table-bordered" id="imgtable"> | 
|                                 <tr> | 
|                                     <th>排序</th> | 
|                                     <!--<th>选为主图</th>--> | 
|                                     <th>图片</th> | 
|                                     <th>操作</th> | 
|                                 </tr> | 
|                             </table> | 
|   | 
|                         </div> | 
|                     </div> | 
|                 </div> | 
|             </div> | 
|         </div> | 
|   | 
|         <div class="row"> | 
|             <div class="col-sm-12"> | 
|                 <div class="ibox-content"> | 
|                     <div class="panel panel-default"> | 
|                         <div class="panel-heading">手机端详情</div> | 
|                         <div class="panel-body"> | 
|                             <div class="panel-body"> | 
|                                 <script style="width: 100%; height: 500px" id="mobileDetails" | 
|                                         name="mobileDetails" type="text/plain"></script></div> | 
|                         </div> | 
|                     </div> | 
|                 </div> | 
|             </div> | 
|   | 
|             <!--<div class="col-sm-6"> | 
|                 <div class="ibox-content"> | 
|                     <div class="panel panel-default"> | 
|                         <div class="panel-heading">PC端详情</div> | 
|                         <div class="panel-body"> | 
|                             <div class="panel-body"> | 
|                                 <script style="width: 100%; height: 500px" id="pcDetails" | 
|                                         name="pcDetails" type="text/plain"></script></div> | 
|                         </div> | 
|                     </div> | 
|                 </div> | 
|             </div> | 
| --> | 
|         </div> | 
|   | 
|                 <div class="navbar navbar-fixed-bottom" style="background:#F5F5F5"> | 
|                     <div class="col-sm-12 text-center" style="margin-top:12px;"> | 
|                         <a id="saveBut" href="javascript:;" onclick="submit()" | 
|                            class="btn btn-success radius"><i class="fa fa-check"></i> 保存</a>     <a | 
|                             class="btn btn-danger radius" href="javascript:;" onclick="MTools.closeForm()"><i | 
|                             class="fa fa-close"></i> 关闭</a> | 
|                     </div> | 
|                 </div> | 
|   | 
|         <input autocomplete="off"   type="hidden" id="shopProductImg" name="shopProductImg" value="" > | 
|         <input autocomplete="off"   type="hidden" id="shopSku" name="shopSku" value=""> | 
|         <input autocomplete="off"   type="hidden" id="paramRefs" name="paramRefs" value="" > | 
|     </form> | 
| </div> | 
| </body> | 
| <script type="text/html" id="imgtemplate"> | 
|     <tr id="trId"> | 
|         <td><input autocomplete="off"   type="text" class="form-control" style="width:50px;" name=""></td> | 
|        <!-- <td><input autocomplete="off"   type="radio" value="1" name=""></td>--> | 
|         <td><input autocomplete="off"    name="" id="adImg" class="form-control  upload-input" type="text" /><a></a></td> | 
|         <td><i class="fa fa-trash form-control-static" | 
|                onclick="delThis('trId')"></i></td> | 
|     </tr> | 
| </script> | 
| <script type="text/html" id="template"> | 
|     <tr id="trId"> | 
|     <td style="display:none;"><input autocomplete="off"   type="hidden" class="form-control"> </td> | 
|     <td><input autocomplete="off"   type="text" datatype="*1-20" class="form-control" name=""> </td> | 
|     <td><input autocomplete="off"    name="" id="adImg" | 
|         class="form-control  upload-input" type="text" /><a></a></td> | 
|     <td><input autocomplete="off"   type="text" class="form-control" name=""></td> | 
|     <td><input autocomplete="off"   type="text" class="form-control" name=""></td> | 
|     <td><input autocomplete="off"   type="number" class="form-control" name=""></td> | 
|     <td><div id="erpNoDiv"> | 
|         <button class="btn btn-info" onclick="selectProduct('shopIdValue','skuId')"><i class="fa fa-plus"></i></button> | 
|         <p class="form-control-static erpGoodsName"></p> | 
|         <input autocomplete="off"   type="hidden" class="form-control" name="erpGoodsCode"> | 
|     </div></td> | 
|     <td><input autocomplete="off"   type="text" class="form-control" name=""></td> | 
|     <td><i class="fa fa-trash form-control-static" onclick="delThis('trId')"></i></td> | 
|     </tr> | 
| </script> | 
|   | 
|   | 
|   | 
| <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script> | 
| <script type="text/javascript" th:src="@{/js/systools/jquery.serializejson.min.js}"></script> | 
| <script th:inline="javascript"> | 
|     MTools.autoFullSelect(); | 
|     $(".select2").select2(); | 
|     MUI.initImgUpload(".upload-input"); | 
|     /*<![CDATA[*/ | 
|     var obj =/*[[${obj}]]*/ | 
|     /*]]>*/ | 
|     var mobileEditor = UE.getEditor('mobileDetails'); | 
|     var pcEditor = UE.getEditor('pcDetails'); | 
|     var invokeUrl = basePath + "/admin/shopProduct/addShopProduct"; | 
|     if (obj.id != null) { | 
|         invokeUrl = basePath + "/admin/shopProduct/modifyShopProduct"; | 
|     } | 
|   | 
|     var myForm = MForm.initForm({ | 
|   | 
|         invokeUrl: invokeUrl, | 
|         afterSubmit: function () { | 
|             parent.myGrid.serchData(); | 
|         }, | 
|         beforeSubmit:function () { | 
|   | 
|         }, | 
|     }); | 
|     $(function () { | 
|         initSeclect("#parentId",[[${obj.categoryId}]]); | 
|         initAttrSeclect("#attrIds"); | 
|         $("#mobileDetails").html(obj.mobileDetails); | 
|         $("#pcDetails").html(obj.pcDetails); | 
|     }) | 
|   | 
|     //获取规格参数值 | 
|     function  getParamvalues(){ | 
|         var paramvalues=[]; | 
|         $("#paramvalues").find(".form-group").each(function () { | 
|             var param = {}; | 
|             var paramId=$(this).find("input[name=paramId]").val(); | 
|             param.paramId = paramId; | 
|             var paramName =$(this).find("input[name=paramName]").val(); | 
|             param.paramName = paramName; | 
|             var paramValue =$(this).find("select option:selected").text(); | 
|             if(paramValue =='' || paramValue =='undefined'){ | 
|                 paramValue = $(this).find("input[name=paramValue]").val(); | 
|             } | 
|             param.paramValue=paramValue; | 
|             var paramType = $(this).find("input[name=paramType]").val(); | 
|             param.paramType = paramType; | 
|   | 
|             var sort = $(this).find("input[name=sort]").val(); | 
|             param.sort = sort; | 
|             paramvalues.push(param); | 
|   | 
|         }); | 
|   | 
|            return paramvalues; | 
|   | 
|     } | 
|   | 
|     //初始化相册和sku列表 | 
|     function initAlbumAndSku(){ | 
|         $.AjaxProxy({p:{id:"[[${obj.id}]]"}}).invoke("/admin/shopProduct/getParam",function(loj){ | 
|             var mapInfo=loj.getValue("mapInfo"); | 
|             initAlbum(mapInfo.shopImg); | 
|             initSku(mapInfo.shopSkus); | 
|             initAttr(mapInfo.AttrRefs); | 
|             initParamValues(mapInfo.paramRefValues); | 
|         }); | 
|     } | 
|   | 
|     //初始化产品参数 | 
|     function initParamValues(params){ | 
|         for(var i=0;i<params.length;i++){ | 
|             var id = params[i].paramId; | 
|             if('1'== params[i].paramType ){ | 
|                 $("#param"+id).find("select").val(params[i].paramValue); | 
|             }else{ | 
|                 $("#param"+id).find("input").val(params[i].paramValue); | 
|             } | 
|   | 
|         } | 
|     } | 
|   | 
|   | 
|     //初始化产品属性 | 
|     function initAttr(AttrRefs){ | 
|         var attr=[]; | 
|         for(var i=0 ; i<AttrRefs.length ; i++){ | 
|             attr.push(AttrRefs[i].attrId); | 
|         } | 
|         console.log(attr) | 
|         $("#attrIds").val(attr).trigger("change"); | 
|     } | 
|   | 
|     //初始化产品图片 | 
|     function initAlbum(shopImg){ | 
|         for(var i=0 ; i < shopImg.length ; i++ ){ | 
|             var imgId = MTools.randomStr(); | 
|             var trId = MTools.randomStr(); | 
|             var isMain=""; | 
|             if(shopImg[i].isMainImg==1){ | 
|                 isMain='checked="checked"'; | 
|             } | 
|             var imgshop = shopImg[i]; | 
|             var sort = imgshop.sort; | 
|             if(sort == null){ | 
|                 sort = ""; | 
|             } | 
|             var imgPath = imgshop.imgPath; | 
|             if(imgPath == null){ | 
|                 imgPath =""; | 
|             } | 
|             var html= | 
|                 '<tr id="'+trId+'">' | 
|                 +'<td><input autocomplete="off"   type="text" class="form-control" style="width:50px;" value="'+sort+'" name=""></td>' | 
|                // +'<td><input autocomplete="off"   type="radio" value="1"  '+isMain+' name=""></td>' | 
|                 +'<td><input autocomplete="off"    name="" id="'+imgId+'" class="form-control  upload-input" value="'+imgPath+'"  type="text" /><a></a></td>' | 
|                 +'<td><i class="fa fa-trash form-control-static"    onclick="delThis(\''+trId+'\')"></i></td>' | 
|                 +'</tr>'; | 
|             $("#imgtable").find("tbody").append(html); | 
|             MUI.initImgUpload("#" + imgId); | 
|         } | 
|     } | 
|   | 
|     //初始化产品规格 | 
|     function initSku(shopSkus){ | 
|         for(var c=0 ; c<shopSkus.length ; c++){ | 
|             console.log("c",c) | 
|             var sku=shopSkus[c]; | 
|             console.log(sku); | 
|             var imgId = MTools.randomStr(); | 
|             var trId = MTools.randomStr(); | 
|             var name = shopSkus[c].name; | 
|             if(name == null || name ==0){ | 
|                 name = ""; | 
|             } | 
|             var stock = shopSkus[c].stock; | 
|             if(stock == null){ | 
|                 stock = ""; | 
|             } | 
|             var price = shopSkus[c].price; | 
|             if(price == null || price==0){ | 
|                 price = ""; | 
|             } | 
|   | 
|             var score = shopSkus[c].score; | 
|             if(score == null || score==0){ | 
|                 score = ""; | 
|             } | 
|             var sort = shopSkus[c].sort; | 
|             if(sort == null || sort==0){ | 
|                 sort = ""; | 
|             } | 
|             var stockCode = shopSkus[c].stockCode; | 
|             if(stockCode == null || typeof stockCode == 'undefined'){ | 
|                 stockCode = ""; | 
|             } | 
|             var goodsName = shopSkus[c].goodsName; | 
|             if (goodsName == null || typeof stockCode == 'undefined') { | 
|                 goodsName = ""; | 
|             } | 
|   | 
|             var html= | 
|                 '<tr id="'+trId+'">' | 
|                 +'<td style="display:none;"><input autocomplete="off"   type="hidden" class="form-control" value="'+shopSkus[c].id+'" ></td>' | 
|                 +'<td><input autocomplete="off"   type="text" class="form-control" value="'+name+'" name=""></td>' | 
|   | 
|                 +'<td><input autocomplete="off"    name="imgPath" id="'+imgId+'" class="form-control  upload-input" value="'+shopSkus[c].imgPath+'"  type="text" /><a></a></td>' | 
|                 +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+stock+'" name=""></td>' | 
|                 +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+price+'" name=""></td>' | 
|                 +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+score+'" name=""></td>' | 
|                 +'<td><div id="erpNoDiv"><button class="btn btn-info" onclick="selectProduct(\'shopIdValue\',\''+trId+'\')"><i class="fa fa-plus"></i></button>' | 
|                 +'<p class="form-control-static erpGoodsName">'+ goodsName +'</p><input autocomplete="off" class="form-control" type="hidden"  value="'+stockCode+'" name="erpGoodsCode"></div></td>' | 
|                 +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+sort+'" name=""></td>' | 
|                 +'<td><i class="fa fa-trash form-control-static"    onclick="delThis(\''+trId+'\')"></i></td>' | 
|                 +'</tr>'; | 
|             $("#skutable").find("tbody").append(html); | 
|   | 
|             MUI.initImgUpload("#" + imgId); | 
|         } | 
|   | 
|   | 
|     } | 
|   | 
|     var validform = MValidform.validform("#dataform"); | 
|   | 
|     function submit() { | 
|         // 验证表单 | 
|         if (!validform.check()) { | 
|             return false; | 
|         } | 
|         var skus = getSkus(); | 
|         if(skus.length<1){ | 
|             layer.msg("至少填写一个产品规格",{ | 
|                     icon : 2, | 
|                     time : 2000 | 
|             }); | 
|             return false; | 
|         } | 
|         var falg = getSkusValues(); | 
|         if(falg){ | 
|             return false; | 
|         } | 
|         //获取sku和相册信息 | 
|         $("#shopSku").val(JSON.stringify(skus)); | 
|         $("#shopProductImg").val(JSON.stringify(getAlbums())); | 
|         $("#paramRefs").val(JSON.stringify(getParamvalues())); | 
|   | 
|   | 
|         //设置属性值 | 
|         getMultiSelectVal(); | 
|         var data = $("#dataform").serializeJSON(); | 
|         console.log("----->", $("#shopSelect").val()); | 
|         data.shopIds = $("#shopSelect").val().join(","); | 
|         $.ajax({ | 
|             type : "post", | 
|             url : invokeUrl, | 
|             contentType : "application/x-www-form-urlencoded", | 
|             datatype : "json", | 
|             data : data, | 
|             async : true, | 
|             success : function(result) { | 
|                 // 全局异常处理器发出的错误信息 | 
|                 if (result.status == "200") { | 
|                     // 关闭iframe层 | 
|                     layer.msg(result.info, { | 
|                         icon : 1, | 
|                         time : 1000, | 
|                         end:function(){ | 
|                             parent.myGrid.serchData(); | 
|                             MTools.closeForm() | 
|                         } | 
|                     }); | 
|                 } else { | 
|                     layer.msg(result.info, { | 
|                         icon : 2, | 
|                         time : 1000, | 
|                         end:function(){ | 
|                             parent.myGrid.serchData(); | 
|                             MTools.closeForm() | 
|                         } | 
|                     }); | 
|                     return null; | 
|                 } | 
|             } | 
|         }); | 
|         return false; | 
|     } | 
|   | 
|   | 
|   | 
|     //初始化属性下拉选 | 
|     function initAttrSeclect(seler, def) { | 
|         $.AjaxProxy().invoke(basePath + "/admin/shopProductAttribute/showSonAttribute?attrCode=service", | 
|             function (loj) { | 
|                 $(seler).createSelectTree( | 
|                     loj.attr("result").rows, | 
|                     { | 
|                         id: "attrId", | 
|                         parent: "parentId", | 
|                         value: "attrName", | 
|                         append: false, | 
|                         defaultValue: def, | 
|                         defaultHtml: '' | 
|                     }); | 
|                 //如果是编辑就设置默认值 | 
|                 if(obj.id != null){ | 
|                     initAlbumAndSku(); | 
|                 } | 
|             }); | 
|     } | 
|   | 
|     //初始化分类ID | 
|     function initSeclect(seler, def) { | 
|         $.AjaxProxy().invoke(basePath + "/admin/shopProductAttribute/showSonAttribute?attrCode=cpfl&status=1", | 
|             function (loj) { | 
|                 $(seler).createSelectTree( | 
|                     loj.attr("result").rows, | 
|                     { | 
|                         id: "attrId", | 
|                         parent: "parentId", | 
|                         value: "attrName", | 
|                         append: false, | 
|                         defaultValue: def, | 
|                         defaultHtml: '' | 
|                     }); | 
|             }); | 
|     } | 
|   | 
|     //添加图片节点 | 
|     function addImgTr() { | 
|         var imgId = MTools.randomStr(); | 
|         var trId = MTools.randomStr(); | 
|         $("#imgtable").find("tbody").append( | 
|             $("#imgtemplate").html().replace("adImg", imgId).replace( | 
|                 "trId", trId).replace("trId", trId)); | 
|         MUI.initImgUpload("#" + imgId); | 
|     } | 
|   | 
|     //添加规格节点 | 
|     function addSku() { | 
|         var imgId = MTools.randomStr(); | 
|         var trId = MTools.randomStr(); | 
|         $("#skutable").find("tbody").append( | 
|             $("#template").html().replace("adImg", imgId).replace("trId", | 
|                 trId).replace("trId", trId) | 
|                 .replace("skuId", trId)); | 
|         MUI.initImgUpload("#" + imgId); | 
|     } | 
|   | 
|     //获取选择属性节点 | 
|     function getMultiSelectVal() { | 
|         var attrId =[]; | 
|         var attrvalues=[]; | 
|         var obj=document.getElementById('attrIds'); | 
|         //获取所有的option | 
|         var options=obj.options; | 
|         for(var i=0;i<options.length;i++){ | 
|             //判断optin是否被选中了 | 
|             var  attr = options[i].selected; | 
|             if(attr){ | 
|                 attrId.push(options[i].value); | 
|                 attrvalues.push(options[i].text); | 
|   | 
|             } | 
|         } | 
|         $("#attrs").val(attrId.join(",")); | 
|         $("#attrValues").val(attrvalues.join(",")); | 
|     } | 
|   | 
|     //删除节点 | 
|     function delThis(node) { | 
|         $("#" + node).remove(); | 
|     } | 
|   | 
|     /*获取sku表格中的参数*/ | 
|     function getSkus() { | 
|         var skus = []; | 
|         $("#skutable tbody").find("tr").each(function(i) { | 
|             console.log(i); | 
|             var sku = {}; | 
|             if (i != 0) { | 
|                 var tds = $(this).find("td"); | 
|                 var length = tds.length - 1; | 
|                 var id = tds.eq(length - 8).find("input").val(); | 
|                 if(id == null){ | 
|                     id =""; | 
|                 } | 
|                 sku.id = id; | 
|   | 
|                 //规格名称 | 
|                 var name = tds.eq(length - 7).find("input").val(); | 
|                 if(name == null){ | 
|                     name = ""; | 
|                 } | 
|                 sku.name = name; | 
|   | 
|                 //图片地址 | 
|                 var path = tds.eq(length - 6).find("img").attr("src"); | 
|                 if(path == null){ | 
|                     path = ""; | 
|                 } | 
|                 sku.imgPath = path; | 
|   | 
|                 //库存 | 
|                 var stock = tds.eq(length - 5).find("input").val(); | 
|                 if(stock == ""){ | 
|                     stock = 0; | 
|                 } | 
|                 sku.stock = stock; | 
|   | 
|                 //价格 | 
|                 var price = tds.eq(length - 4).find("input").val(); | 
|                 if(price == ""){ | 
|                     price =0; | 
|                 } | 
|                 sku.price = price; | 
|   | 
|                 //积分 | 
|                 var score = tds.eq(length - 3).find("input").val(); | 
|                 if(score == ""){ | 
|                     score = 0; | 
|                 } | 
|                 sku.score = score; | 
|   | 
|                 //品种编码 | 
|                 var stockCode = tds.eq(length - 2).find("input").val(); | 
|                 if(stockCode == null || typeof stockCode == 'undefined'){ | 
|                     stockCode = ''; | 
|                 } | 
|                 sku.stockCode = stockCode; | 
|   | 
|                 //排序 | 
|                 var sort = tds.eq(length - 1).find("input").val(); | 
|                 if(sort == ""){ | 
|                     sort = 0; | 
|                 } | 
|                 sku.sort = sort; | 
|   | 
|   | 
|                 skus.push(sku); | 
|             } | 
|         }); | 
|   | 
|         return skus; | 
|     } | 
|   | 
|     /*验证sku表格中的参数*/ | 
|     function getSkusValues() { | 
|         var flag = false; | 
|         var reg = new RegExp("(^[1-9]([0-9]+)?(\\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\\.[0-9]([0-9])?$)"); | 
|         $("#skutable tbody").find("tr").each(function(i) { | 
|             console.log(i); | 
|             if (i != 0) { | 
|                 var tds = $(this).find("td"); | 
|                 var length = tds.length - 1; | 
|                 var name = tds.eq(length - 7).find("input").val(); | 
|                 if(name == ""){ | 
|                     layer.msg("请填写规格名称",{ | 
|                         icon : 2, | 
|                         time : 2000 | 
|                     }); | 
|                     flag = true; | 
|                     return false; | 
|                 } | 
|                 if(name.length >= 20){ | 
|                     layer.msg("规格名称太长",{ | 
|                         icon : 2, | 
|                         time : 2000 | 
|                     }); | 
|                     flag = true; | 
|                     return false; | 
|                 } | 
|   | 
|                 var stock = tds.eq(length - 5).find("input").val(); | 
|                 if(stock == ""){ | 
|                     layer.msg("请填写库存",{ | 
|                         icon : 2, | 
|                         time : 2000 | 
|                     }); | 
|                     flag = true; | 
|                     return false; | 
|                 } | 
|                 var price = tds.eq(length - 4).find("input").val(); | 
|                 if(price == ""){ | 
|                     layer.msg("请填写价格",{ | 
|                         icon : 2, | 
|                         time : 2000 | 
|                     }); | 
|                     flag = true; | 
|                     return false; | 
|                 } | 
|                 if(!reg.test(price) ){ | 
|                     layer.msg("价格填写错误,只能填写正数",{ | 
|                         icon : 2, | 
|                         time : 2000 | 
|                     }); | 
|                     flag = true; | 
|                     return false; | 
|                 } | 
|   | 
|   | 
|   | 
|             } | 
|         }); | 
|   | 
|         return flag; | 
|     } | 
|   | 
|     /** | 
|      获取相册中的图片 | 
|      **/ | 
|     function getAlbums() { | 
|         var albums = []; | 
|         $("#imgtable tbody").find("tr").each(function(i) { | 
|             var images = {}; | 
|             if (i != 0) { | 
|                 var tds = $(this).find("td"); | 
|                 var length = tds.length - 1; | 
|   | 
|                 images.sort = tds.eq(0).find("input").val(); | 
|                 if(images.sort == ''){ | 
|                     images.sort=i; | 
|                 } | 
|   | 
|                /* images.isMainImg = tds.eq(1).find("input:radio:checked").val(); | 
|                 if (images.isMainImg) { | 
|                     images.isMainImg = 1; | 
|                 } else { | 
|                     images.isMainImg = 2; | 
|                 }*/ | 
|                 images.imgPath = tds.eq(1).find("img").attr("src"); | 
|   | 
|                 albums.push(images); | 
|             } | 
|         }); | 
|   | 
|         return albums; | 
|     } | 
|   | 
|   | 
|     function selectProduct(value, id) { | 
|         console.log("123"); | 
|         layer.full(layer.open({ | 
|             type : 2, | 
|             title : "选择产品", | 
|             area : [ MUI.SIZE_L, '400px' ], | 
|             content : [ basePath+'/admin/redirect/shop/select-goods-list?shopId='+value+'&skuId='+id] | 
|         })); | 
|     } | 
|   | 
|     function callback(value, id) { | 
|         if (value.length === 0) { | 
|             return; | 
|         } | 
|         console.log(value); | 
|         $("#"+id).find(".erpGoodsName").text(value[0].name); | 
|         $("#"+id).find("input[name='erpGoodsCode']").val(value[0].id); | 
|     } | 
|   | 
| </script> | 
|   | 
| </body> | 
| </html> |