| | |
| | | <style> |
| | | #goods-updatenew { |
| | | padding: 20px 25px 25px 0; |
| | | } |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-update" lay-title="编辑商品"> |
| | | <div class="layui-row febs-container"> |
| | | <div class="layui-col-md12"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body febs-table-full"> |
| | | <div class="layui-fluid" id="goods-update"> |
| | | <form class="layui-form" action="" lay-filter="goods-update-form"> |
| | | <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief"> |
| | | <ul class="layui-tab-title"> |
| | | <li class="layui-this">基础信息</li> |
| | | <li>详情设置</li> |
| | | <li>价格设置</li> |
| | | </ul> |
| | | <input type="text" name="id" |
| | | placeholder="" autoComplete="off" class="layui-input febs-hide"> |
| | | <div class="layui-tab-content"> |
| | | <div class="layui-tab-item layui-show"> |
| | | <blockquote class="layui-elem-quote blue-border">基本信息设置</blockquote> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">商品名称:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="goodsName" lay-verify="required" |
| | | placeholder="" autoComplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">商品编号:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="goodsNo" lay-verify="required" |
| | | placeholder="" autoComplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">商品分类:</label> |
| | | <div class="layui-input-block"> |
| | | <select name="categoryId" class="categary-addPeoduct"> |
| | | <option value="">请选择</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | #goods-updatenew .layui-treeSelect .ztree li a, .ztree li span { |
| | | margin: 0 0 2px 3px !important; |
| | | } |
| | | #goods-updatenew #data-permission-tree-block { |
| | | border: 1px solid #eee; |
| | | border-radius: 2px; |
| | | padding: 3px 0; |
| | | } |
| | | #user-add .layui-treeSelect .ztree li span.button.switch { |
| | | top: 1px; |
| | | left: 3px; |
| | | } |
| | | <div class="layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">单位:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="unit" lay-verify="required" placeholder="" |
| | | autoComplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">库存:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="stock" lay-verify="required" placeholder="" |
| | | autoComplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">销量:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="volume" lay-verify="required" |
| | | placeholder="" autoComplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </style> |
| | | <div class="layui-fluid" id="goods-updatenew"> |
| | | <form class="layui-form" action="" lay-filter="goods-updatenew-form"> |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label febs-form-item-require">id:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="id"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">商品名称:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="goodsName" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">商品编号:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="goodsNo" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">所属分类:</label> |
| | | <div class="layui-input-block"> |
| | | <select name="categoryId" class="categary-goods-updatenew-category" id="goodsUpdateSelect" > |
| | | <option value="">请选择</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">单位:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="unit" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">原价:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="originalPrice" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">现价:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="presentPrice" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">商品介绍:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="goodsIntrodution" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">样式:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="addMallGoodsSkuDtos" autocomplete="off" class="layui-input" id="attrName"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-lg6"> |
| | | <button type="button" class="layui-btn layui-btn-normal layui-btn-xs" id="test3" >添加</button> |
| | | </div> |
| | | </div> |
| | | <div id="attrWrap"></div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">商品介绍:</label> |
| | | <div class="layui-input-block"> |
| | | <label> |
| | | <textarea name="goodsIntrodution" rows="5" autoComplete="off" |
| | | class="layui-textarea"></textarea> |
| | | </label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">缩略图:</label> |
| | | <div class="layui-input-block"> |
| | | <div class="layui-upload"> |
| | | <button type="button" class="layui-btn layui-btn-normal layui-btn-xs" id="test2">上传</button> |
| | | <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;"> |
| | | <div class="layui-upload-list" id="demo2"></div> |
| | | </blockquote> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label">缩略图链接:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" id="thumb" lay-verify="required" name="thumb" autocomplete="off" class="layui-input" readonly> |
| | | </div> |
| | | </div> |
| | | <blockquote class="layui-elem-quote blue-border">商品类型</blockquote> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">商品类型</label> |
| | | <div class="layui-input-block"> |
| | | <select name="isNormal" class="goods-type" |
| | | lay-filter="goods-type-select"> |
| | | <option value="1">普通商品区</option> |
| | | <option value="2">套餐区</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">轮播图:</label> |
| | | <div class="layui-input-block"> |
| | | <div class="layui-upload"> |
| | | <button type="button" class="layui-btn layui-btn-normal layui-btn-xs" id="thumbsBanner">上传</button> |
| | | <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;"> |
| | | <div class="layui-upload-list" id="thumbsBanners"></div> |
| | | </blockquote> |
| | | <div class="layui-form-item febs-hide tc-set"> |
| | | <label class="layui-form-label">静态倍数</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="staticMulti" placeholder="请输入静态倍数" |
| | | autoComplete="off" class="layui-input"> |
| | | <div class="layui-form-mid layui-word-aux">支付后,赠送(购买金额*静态倍数)的赠送积分 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item febs-hide tc-set"> |
| | | <label class="layui-form-label">静态占比(%)</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="staticProp" placeholder="请输入静态占比" |
| | | autoComplete="off" class="layui-input"> |
| | | <div class="layui-form-mid layui-word-aux">所有套餐静态占比相加应等于100%</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-tab-item"> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">缩略图:</label> |
| | | <div class="layui-input-block"> |
| | | <div class="layui-upload"> |
| | | <button type="button" |
| | | class="layui-btn layui-btn-normal layui-btn" id="test2"> |
| | | 上传 |
| | | </button> |
| | | <blockquote class="layui-elem-quote layui-quote-nm" |
| | | style="margin-top: 10px;"> |
| | | <div class="layui-upload-list" id="demo2"></div> |
| | | </blockquote> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label">缩略图链接:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" id="thumb" lay-verify="required" name="thumb" |
| | | autoComplete="off" class="layui-input" readOnly> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">轮播图:</label> |
| | | <div class="layui-input-block"> |
| | | <div class="layui-upload"> |
| | | <button type="button" |
| | | class="layui-btn layui-btn-normal layui-btn" |
| | | id="thumbsBanner">上传 |
| | | </button> |
| | | <blockquote class="layui-elem-quote layui-quote-nm" |
| | | style="margin-top: 10px;"> |
| | | <div class="layui-upload-list" id="thumbsBanners"></div> |
| | | </blockquote> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label">缩略图链接:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" id="thumbs" lay-verify="required" name="thumbs" |
| | | autoComplete="off" class="layui-input" readOnly> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">商品详情:</label> |
| | | <div class="layui-input-block"> |
| | | <textarea id="lay_edit" lay-verify="goodsDetails" name="goodsDetails" |
| | | class="layui-textarea"></textarea> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-tab-item"> |
| | | <blockquote class="layui-elem-quote blue-border">价格设置</blockquote> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">原价:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="originalPrice" lay-verify="required" |
| | | placeholder="" autoComplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">现价:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="presentPrice" lay-verify="required" |
| | | placeholder="" autoComplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">成本价:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="costPrice" lay-verify="required" placeholder="" |
| | | autoComplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | |
| | | <blockquote class="layui-elem-quote blue-border">多规格设置</blockquote> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label">开启多规格:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="radio" name="isSku" value="1" title="是" |
| | | lay-filter="isSku"/> |
| | | <input type="radio" name="isSku" value="2" title="否" lay-filter="isSku" |
| | | checked/> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item multi-sku-table febs-hide"> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label febs-form-item-require">样式:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="addMallGoodsSkuDtos" autoComplete="off" |
| | | class="layui-input" id="attrName"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-lg6"> |
| | | <button type="button" |
| | | class="layui-btn layui-btn-normal layui-btn" id="test3"> |
| | | 添加 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <div class="layui-input-block"> |
| | | <table id="multiSku" lay-filter="multiSku"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div class="layui-form-item febs-hide" style="text-align:center"> |
| | | <button class="layui-btn" lay-submit="" lay-filter="goods-update-form-submit" |
| | | id="submit"> |
| | | </button> |
| | | <!-- <button class="layui-btn layui-btn-danger" lay-submit=""--> |
| | | <!-- lay-filter="goods-update-form-cancel" id="cancel">取消--> |
| | | <!-- </button>--> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label">缩略图链接:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" id="thumbs" lay-verify="required" name="thumbs" autocomplete="off" class="layui-input" readonly> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">商品详情:</label> |
| | | <div class="layui-input-block"> |
| | | <textarea id="lay_edit" lay-verify="goodsDetails" name = "goodsDetails" class="layui-textarea">[[${mailGoodsUpdate.goodsDetails}]]</textarea> |
| | | </div> |
| | | </div> |
| | | <div class="layui-row layui-col-space10 layui-form-item"> |
| | | <div class="layui-col-lg6"> |
| | | <label class="layui-form-label">是否热卖:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="radio" name="isHot" value="1" title="是" > |
| | | <input type="radio" name="isHot" value="2" title="否" checked=""> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item febs-hide"> |
| | | <button class="layui-btn" lay-submit="" lay-filter="goods-update-form-submit" id="submit"></button> |
| | | </div> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <div class="layui-form-item" style="text-align:center">--> |
| | | <!-- <button class="layui-btn" lay-submit="" lay-filter="goods-update-form-submit" id="submit">保存</button>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | <style> |
| | | .blue-border { |
| | | border-left-color: #2db7f5; |
| | | font-size: 18px; |
| | | } |
| | | |
| | | .layui-table-cell { |
| | | height: auto; |
| | | } |
| | | </style> |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | | <button class="layui-btn layui-btn-danger layui-btn-sm" type="button" lay-event="delSku">删除</button> |
| | | </div> |
| | | </script> |
| | | <script type="text/html" id="tableImgUpload"> |
| | | <div class="layui-upload"> |
| | | <button type="button" class="layui-btn layui-btn-normal layui-btn-xs sku-img" id="skuImg{{d.index}}">上传 |
| | | </button> |
| | | </br> |
| | | <img class="layui-upload-img" id="imageUrls{{d.index}}" style="width: 100px; display:none;" |
| | | src="{{d.skuImage}}"> |
| | | <input type="text" id="skuImage{{d.index}}" name="skuImage{{d.index}}" autoComplete="off" value="{{d.skuImage}}" |
| | | class="layui-input febs-hide"> |
| | | </div> |
| | | </script> |
| | | <!-- 表格操作栏 end --> |
| | | <script data-th-inline="javascript"> |
| | | layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','dropdown', 'laydate','layedit','upload'], function () { |
| | | layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'dropdown', 'laydate', 'layedit', 'upload', 'element', 'table'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | layer = layui.layer, |
| | | table = layui.table, |
| | | formSelects = layui.formSelects, |
| | | treeSelect = layui.treeSelect, |
| | | form = layui.form, |
| | | laydate = layui.laydate, |
| | | eleTree = layui.eleTree, |
| | | mailGoodsUpdate = [[${mailGoodsUpdate}]], |
| | | $view = $('#goods-add'), |
| | | goodsInfo = [[${goodsInfo}]], |
| | | $view = $('#goods-update'), |
| | | layedit = layui.layedit, |
| | | upload = layui.upload, |
| | | validate = layui.validate; |
| | | validate = layui.validate, |
| | | element = layui.element; |
| | | |
| | | form.render(); |
| | | laydate.render({ |
| | | elem: '#febs-form-group-date' |
| | | }); |
| | | |
| | | formSelects.render(); |
| | | |
| | | var tableSkuData = []; |
| | | var tableIns = table.render({ |
| | | elem: '#multiSku' |
| | | , limit: 999 |
| | | , toolbar: "#toolbar" |
| | | , defaultToolbar: [] |
| | | , cols: [[ //表头 |
| | | {type: 'checkbox'} |
| | | , {field: 'index', title: '序号', width: 70} |
| | | , {field: 'styleName', title: '样式', edit: 'text'} |
| | | , {field: 'skuName', title: '规格', edit: 'text'} |
| | | , {field: 'presentPrice', title: '现价', edit: 'text'} |
| | | , {field: 'originalPrice', title: '原价', edit: 'text'} |
| | | , {field: 'costPrice', title: '成本价', edit: 'text'} |
| | | , {templet: '#tableImgUpload', title: '缩略图', width: 150} |
| | | , {field: 'stock', title: '库存', edit: 'text'} |
| | | , {field: 'skuVolume', title: '销量', edit: 'text'} |
| | | , {field: 'skuImage', title: '缩略图地址', hide: true} |
| | | , {field: 'id', title: 'skuId', hide: true} |
| | | , {field: 'styleId', title: 'styleId', hide: true} |
| | | ]] |
| | | , data: [] |
| | | }); |
| | | |
| | | var delSku = []; |
| | | table.on('toolbar(multiSku)', function (obj) { |
| | | var data = obj.data; |
| | | |
| | | var hasData = table.cache['multiSku']; |
| | | var checkData = table.checkStatus('multiSku').data; |
| | | |
| | | if (checkData.length <= 0) { |
| | | febs.alert.warn('请选择删除数据'); |
| | | return; |
| | | } |
| | | if (obj.event === 'delSku') { |
| | | for (let i = 0; i < checkData.length; i++) { |
| | | var delData = checkData[i]; |
| | | console.log(delData) |
| | | for (let j = 0; j < hasData.length; j++) { |
| | | if (hasData[j].index == delData.index) { |
| | | if (delData.id) { |
| | | delSku.push(delData.id); |
| | | } |
| | | |
| | | hasData.splice(j, 1); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | console.log(delSku); |
| | | |
| | | for (let i = 0; i < hasData.length; i++) { |
| | | hasData[i].index = i + 1; |
| | | } |
| | | |
| | | tableSkuData = hasData; |
| | | reloadTable(hasData); |
| | | } |
| | | }); |
| | | |
| | | form.on('radio(isSku)', function (data) { |
| | | if (data.value == 2) { |
| | | $('.multi-sku-table').hide(); |
| | | } else { |
| | | $('.multi-sku-table').show(); |
| | | } |
| | | }); |
| | | |
| | | function addTableDate(data) { |
| | | var hasData = table.cache['multiSku']; |
| | | |
| | | data.index = hasData.length + 1; |
| | | tableSkuData.push(data); |
| | | |
| | | reloadTable(tableSkuData); |
| | | return data.index; |
| | | } |
| | | |
| | | function reloadTable(data) { |
| | | table.reload('multiSku', { |
| | | data: data |
| | | }); |
| | | |
| | | for (let i = 0; i < data.length; i++) { |
| | | if (data[i].skuImage) { |
| | | $('#imageUrls' + (i + 1)).css('display', 'block'); |
| | | } |
| | | // 重新绑定图片上传 |
| | | bindUpload(i + 1); |
| | | } |
| | | } |
| | | |
| | | table.on('edit(multiSku)', function (obj) { |
| | | var value = obj.value //得到修改后的值 |
| | | , data = obj.data //得到所在行所有键值 |
| | | , field = obj.field; //得到字段 |
| | | |
| | | for (let i = 0; i < tableSkuData.length; i++) { |
| | | if (tableSkuData[i].index == data.index) { |
| | | tableSkuData[i] = data; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | $('#test3').on('click', function () { |
| | | let attrNameVal = $('#attrName').val(); |
| | | if (attrNameVal == null || attrNameVal == "") { |
| | | febs.alert.warn('样式名称不能为空'); |
| | | return false; |
| | | } |
| | | |
| | | var data = {}; |
| | | data.styleName = attrNameVal; |
| | | addTableDate(data); |
| | | }); |
| | | |
| | | function bindUpload(index) { |
| | | // 普通图片上传 |
| | | upload.render({ |
| | | elem: '#skuImg' + index |
| | | , url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 |
| | | , done: function (res) { |
| | | febs.alert.success(res.data.src); |
| | | $('#imageUrls' + index).attr('src', res.data.src); |
| | | $('#imageUrls' + index).css('display', 'block'); |
| | | $('#skuImage' + index).val(res.data.src); |
| | | |
| | | |
| | | for (let i = 0; i < tableSkuData.length; i++) { |
| | | if (tableSkuData[i].index == index) { |
| | | tableSkuData[i].skuImage = res.data.src; |
| | | } |
| | | } |
| | | |
| | | reloadTable(tableSkuData); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | //(下拉框) |
| | | $.get(ctx + 'admin/goodsCategory/categorys/allTree', function (data) { |
| | | for (var k in data) |
| | | { |
| | | $(".categary-goods-updatenew-category").append("<option value='" + data[k].parentId + "'>" + data[k].name + "</option>"); |
| | | for (var k in data) { |
| | | $(".categary-addPeoduct").append("<option value='" + data[k].parentId + "'>" + data[k].name + "</option>"); |
| | | } |
| | | layui.use('form', function () { |
| | | var form = layui.form; |
| | | $("#goodsUpdateSelect").val(mailGoodsUpdate.categoryId) |
| | | // $("#categarySelect").val(member.parentId) |
| | | form.render(); |
| | | }); |
| | | }); |
| | |
| | | //多图片上传 |
| | | upload.render({ |
| | | elem: '#thumbsBanner' |
| | | ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 |
| | | ,multiple: true |
| | | ,before: function(obj){ |
| | | , url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 |
| | | , multiple: true |
| | | , before: function (obj) { |
| | | //预读本地文件示例,不支持ie8 |
| | | obj.preview(function(index, file, result){ |
| | | $('#thumbsBanners').append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img" style="width: 100px">') |
| | | obj.preview(function (index, file, result) { |
| | | $('#thumbsBanners').append('<img src="' + result + '" alt="' + file.name + '" class="layui-upload-img" style="width: 100px">') |
| | | }); |
| | | } |
| | | ,done: function(res){ |
| | | , done: function (res) { |
| | | var thumbs = $("#thumbs").val(); |
| | | if(thumbs == ''){ |
| | | if (thumbs == '') { |
| | | $("#thumbs").val(res.data.src); |
| | | }else{ |
| | | } else { |
| | | $("#thumbs").val(thumbs + ',' + res.data.src); |
| | | } |
| | | // alert($("#thumb").val()); |
| | | } |
| | | }); |
| | | |
| | | //图片上传 |
| | | upload.render({ |
| | | elem: '#test2' |
| | | ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 |
| | | ,multiple: true |
| | | ,before: function(obj){ |
| | | , url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 |
| | | , multiple: true |
| | | , before: function (obj) { |
| | | //预读本地文件示例,不支持ie8 |
| | | obj.preview(function(index, file, result){ |
| | | $('#demo2').append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img" style="width: 100px">') |
| | | obj.preview(function (index, file, result) { |
| | | $('#demo2').append('<img src="' + result + '" alt="' + file.name + '" class="layui-upload-img" style="width: 100px">') |
| | | }); |
| | | } |
| | | ,done: function(res){ |
| | | // var thumbs = $("#thumb").val(); |
| | | // if(thumbs == ''){ |
| | | , done: function (res) { |
| | | $("#thumb").val(res.data.src); |
| | | // }else{ |
| | | // $("#thumb").val(thumbs + ',' + res.data.src); |
| | | // } |
| | | // alert($("#thumb").val()); |
| | | } |
| | | }); |
| | | |
| | | initValue(); |
| | | layedit.set({ //设置图片接口 |
| | | uploadImage: { |
| | | url: 'admin/goods/uploadFileBase64', //接口url |
| | |
| | | } |
| | | }); |
| | | //创建一个编辑器 |
| | | var index = layedit.build('lay_edit',{ |
| | | var index = layedit.build('lay_edit', { |
| | | height: 300 |
| | | }); |
| | | //提交时把值同步到文本域中 |
| | | form.verify({ |
| | | //content富文本域中的lay-verify值 |
| | | goodsDetails: function(value) { |
| | | goodsDetails: function (value) { |
| | | return layedit.sync(index); |
| | | } |
| | | }); |
| | | |
| | | initUserValue(); |
| | | |
| | | function appendSku(sku,skuIndex){ |
| | | var index = skuIndex; |
| | | let attrNameVal = sku.skuName; |
| | | let styleName = sku.styleName; |
| | | let styleId = sku.styleId; |
| | | let skuId = sku.id; |
| | | let stockVal = sku.stock; |
| | | let skuVolume = sku.skuVolume; |
| | | let originalPrice = sku.originalPrice; |
| | | let presentPrice = sku.presentPrice; |
| | | let skuImage = sku.skuImage; |
| | | $('#attrWrap').append(` |
| | | <div class="layui-form-item item"> |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label febs-form-item-require">id:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="id` + index + `" value="` + skuId + `"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label febs-form-item-require">id:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="delLog` + index + `"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label febs-form-item-require">styleId:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" id="styleId` + index +`" name="styleId` + index + `" value="` + styleId + `"> |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <input type="text" name="styleName` + index + `" value="` + styleName + `" autocomplete="off" class="layui-input" readonly > |
| | | </div> |
| | | <div style="float:left" > |
| | | <div> |
| | | <input type="text" name="skuName` + index +`" value="` + attrNameVal + `" placeholder="规格名称" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <label class="layui-form-label">图片:</label> |
| | | <div class="layui-input-block"> |
| | | <div class="layui-upload"> |
| | | <button type="button" class="layui-btn layui-btn-normal layui-btn-xs sku-img" id="skuImg` + index + `">上传</button> |
| | | <img class="layui-upload-img" src="` + skuImage + `" id="imageUrls` + index + `" style="width: 100px" > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div style="float:left" class="febs-hide"> |
| | | <div> |
| | | <input type="text" id="skuImage` + index +`" value="` + skuImage + `" name="skuImage` + index + `" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <div> |
| | | <input type="number" name="stock` + index +`" value="` + stockVal + `" placeholder="库存" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <div> |
| | | <input type="number" name="skuVolume` + index +`" value="` + skuVolume + `" placeholder="销售数量" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <div> |
| | | <input type="number" name="originalPrice` + index +`" value="` + originalPrice + `" placeholder="原价" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <div> |
| | | <input type="number" name="presentPrice` + index + `" value="` + presentPrice + `" placeholder="现价" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <button type="button" class="layui-btn del-attr-btn" data-index="` + index +`">删除</button> |
| | | </div> |
| | | </div> |
| | | `) |
| | | //普通图片上传 |
| | | upload.render({ |
| | | elem: '#skuImg' + index |
| | | ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 |
| | | ,done: function(res){ |
| | | febs.alert.success(res.data.src); |
| | | $('#imageUrls' + index).attr('src', res.data.src); |
| | | $('#skuImage'+ index).val(res.data.src); |
| | | } |
| | | function initValue() { |
| | | var images = goodsInfo.images; |
| | | var thumbs = images.join(","); |
| | | form.val("goods-update-form", { |
| | | "id": goodsInfo.id, |
| | | "goodsName": goodsInfo.goodsName, |
| | | "goodsNo": goodsInfo.goodsNo, |
| | | "unit": goodsInfo.unit, |
| | | "stock": goodsInfo.stock, |
| | | "volume": goodsInfo.volume, |
| | | "goodsIntrodution": goodsInfo.goodsIntrodution, |
| | | "isNormal": goodsInfo.isNormal, |
| | | "staticMulti": goodsInfo.staticMulti, |
| | | "staticProp": goodsInfo.staticProp, |
| | | "originalPrice": goodsInfo.originalPrice, |
| | | "presentPrice": goodsInfo.presentPrice, |
| | | "costPrice": goodsInfo.costPrice, |
| | | "isSku": goodsInfo.isSku, |
| | | "thumb": goodsInfo.thumb, |
| | | "thumbs": thumbs |
| | | }); |
| | | |
| | | if (goodsInfo.isNormal == 2) { |
| | | $(".tc-set").show(); |
| | | } |
| | | |
| | | if (goodsInfo.isSku == 1) { |
| | | $(".multi-sku-table").show(); |
| | | } |
| | | |
| | | var skus = goodsInfo.skus; |
| | | for (let i = 0; i < skus.length; i++) { |
| | | skus[i].index = i+1; |
| | | } |
| | | |
| | | for (let i = 0; i < images.length; i++) { |
| | | $('#thumbsBanners').append('<img src="' + images[i] + '" alt="" class="layui-upload-img" style="width: 100px">') |
| | | } |
| | | |
| | | $('#demo2').append('<img src="' + goodsInfo.thumb + '" alt="" class="layui-upload-img" style="width: 100px">') |
| | | layedit.setContent(index, "1234", false); |
| | | tableSkuData = skus; |
| | | reloadTable(skus); |
| | | } |
| | | |
| | | function initUserValue() { |
| | | var skuIndex = 0; |
| | | let skuLength = mailGoodsUpdate.mailGoodsSkuDetailVo.length; |
| | | for(var skuIndex = 0; skuIndex < skuLength; skuIndex++){ |
| | | appendSku(mailGoodsUpdate.mailGoodsSkuDetailVo[skuIndex],skuIndex); |
| | | } |
| | | //缩略图图片回显 |
| | | if(mailGoodsUpdate.thumb != null || mailGoodsUpdate.thumb != ''){ |
| | | $('#demo2').append('<img src="'+ mailGoodsUpdate.thumb +'" class="layui-upload-img" style="width: 100px">') |
| | | $("#thumb").val(mailGoodsUpdate.thumb); |
| | | } |
| | | var imagesInitIndex = 0; |
| | | let imagesInitIndexlength = mailGoodsUpdate.mailGoodsImagesVo.length; |
| | | for(var imagesInitIndex = 0; imagesInitIndex < imagesInitIndexlength; imagesInitIndex++){ |
| | | console.log(mailGoodsUpdate.mailGoodsImagesVo); |
| | | $('#thumbsBanners').append('<img src="'+ mailGoodsUpdate.mailGoodsImagesVo[imagesInitIndex] +'" class="layui-upload-img" style="width: 100px">') |
| | | $("#thumbs").val(mailGoodsUpdate.mailGoodsImagesVo[imagesInitIndex] + ','); |
| | | } |
| | | |
| | | form.val("goods-updatenew-form", { |
| | | "id": mailGoodsUpdate.id, |
| | | "goodsNo": mailGoodsUpdate.goodsNo, |
| | | "categoryId": mailGoodsUpdate.categoryId, |
| | | "mailGoodsSkuDetailVo": mailGoodsUpdate.mailGoodsSkuDetailVo, |
| | | "mailGoodsImagesVo": mailGoodsUpdate.mailGoodsImagesVo, |
| | | "unit": mailGoodsUpdate.unit, |
| | | "originalPrice": mailGoodsUpdate.originalPrice, |
| | | "presentPrice": mailGoodsUpdate.presentPrice, |
| | | "goodsIntrodution": mailGoodsUpdate.goodsIntrodution, |
| | | "thumb": mailGoodsUpdate.thumb, |
| | | "goodsDetails": mailGoodsUpdate.goodsDetails, |
| | | "isHot": mailGoodsUpdate.isHot, |
| | | "isHot": mailGoodsUpdate.isHot, |
| | | "goodsName": mailGoodsUpdate.goodsName |
| | | }); |
| | | } |
| | | |
| | | $('#test3').on('click', function (){ |
| | | var index = $("#attrWrap").children().length; |
| | | let attrNameVal = $('#attrName').val(); |
| | | if(attrNameVal==null || attrNameVal==""){ |
| | | febs.alert.warn('样式名称不能为空'); |
| | | return false; |
| | | } |
| | | $('#attrWrap').append(` |
| | | <div class="layui-form-item item"> |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label febs-form-item-require">id:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="id` + index + `"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label febs-form-item-require">styleId:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" id="styleId` + index +`" name="styleId` + index + `"> |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <input type="text" name="styleName` + index + `" value="` + $('#attrName').val() + `" autocomplete="off" class="layui-input" readonly > |
| | | </div> |
| | | <div style="float:left" > |
| | | <div> |
| | | <input type="text" name="skuName` + index +`" placeholder="规格名称" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <label class="layui-form-label">图片:</label> |
| | | <div class="layui-input-block"> |
| | | <div class="layui-upload"> |
| | | <button type="button" class="layui-btn layui-btn-normal layui-btn-xs sku-img" id="skuImg` + index + `">上传</button> |
| | | <img class="layui-upload-img" id="imageUrls` + index + `" style="width: 100px" > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div style="float:left" class="febs-hide"> |
| | | <div> |
| | | <input type="text" id="skuImage` + index +`" name="skuImage` + index + `" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <div> |
| | | <input type="number" name="stock` + index +`" placeholder="库存" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <div> |
| | | <input type="number" name="skuVolume` + index +`" placeholder="销售数量" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <div> |
| | | <input type="number" name="originalPrice` + index +`" placeholder="原价" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <div> |
| | | <input type="number" name="presentPrice` + index + `" placeholder="现价" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div style="float:left" > |
| | | <button type="button" class="layui-btn del-attr-btn" data-index="` + index +`">删除</button> |
| | | </div> |
| | | </div> |
| | | `) |
| | | //普通图片上传 |
| | | upload.render({ |
| | | elem: '#skuImg' + index |
| | | ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 |
| | | ,done: function(res){ |
| | | febs.alert.success(res.data.src); |
| | | $('#imageUrls' + index).attr('src', res.data.src); |
| | | $('#skuImage'+ index).val(res.data.src); |
| | | } |
| | | }); |
| | | }); |
| | | upload.render({ |
| | | elem: '#skuImg'+index |
| | | ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 |
| | | ,done: function(res){ |
| | | elem: '#skuImg' + index |
| | | , url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 |
| | | , done: function (res) { |
| | | febs.alert.success(res.data.src); |
| | | $('#imageUrls' + index).attr('src', res.data.src); |
| | | $('#skuImage'+ index).val(res.data.src); |
| | | $('#skuImage' + index).val(res.data.src); |
| | | } |
| | | }); |
| | | $("#attrWrap").on("click",".del-attr-btn",function(){ |
| | | var index = $(this).attr('data-index') |
| | | if($("input[name='styleId" + index + "']").val() ==null || $("input[name='styleId" + index + "']").val() ==''){ |
| | | $($("#attrWrap").find(".item")[index].remove()); |
| | | }else{ |
| | | $("input[name='delLog" + index + "']").val("delLog"); |
| | | $($("#attrWrap").find(".item")[index].style.display = "none"); |
| | | } |
| | | }); |
| | | |
| | | form.on('submit(goods-update-form-submit)', function (data) { |
| | | let skuArrs = []; |
| | | var skuArr = $("#attrWrap").find(".item"); |
| | | for(var i = 0;i < skuArr.length;i++){ |
| | | skuArrs.push({ |
| | | id: $("input[name='id" + i + "']").val(), |
| | | styleName: $("input[name='styleName" + i + "']").val(), |
| | | styleId: $("input[name='styleId" + i + "']").val(), |
| | | delLog: $("input[name='delLog" + i + "']").val(), |
| | | skuName: $("input[name='skuName" + i + "']").val(), |
| | | skuImage: $("input[name='skuImage" + i + "']").val(), |
| | | stock: $("input[name='stock" + i + "']").val(), |
| | | skuVolume: $("input[name='skuVolume" + i + "']").val(), |
| | | originalPrice:$("input[name='originalPrice" + i + "']").val(), |
| | | presentPrice: $("input[name='presentPrice" + i + "']").val() |
| | | }) |
| | | } |
| | | // if(skuArr.length < 0){ |
| | | // febs.alert.warn("请填写商品规格"); |
| | | // return false; |
| | | // } |
| | | // console.log(skuArrs) |
| | | data.field.mailGoodsSkuDto = skuArrs; |
| | | console.log(data.field) |
| | | console.log(tableSkuData); |
| | | data.field.mailGoodsSkuDto = tableSkuData; |
| | | data.field.delSkuId=delSku; |
| | | $.ajax({ |
| | | 'url':ctx + 'admin/goods/updateMallGoods', |
| | | 'type':'post', |
| | | 'dataType':'json', |
| | | 'headers' : {'Content-Type' : 'application/json;charset=utf-8'}, //接口json格式 |
| | | 'url': ctx + 'admin/goods/updateMallGoods', |
| | | 'type': 'post', |
| | | 'dataType': 'json', |
| | | 'headers': {'Content-Type': 'application/json;charset=utf-8'}, //接口json格式 |
| | | 'traditional': true,//ajax传递数组必须添加属性 |
| | | 'data':JSON.stringify(data.field), |
| | | 'success':function (data) { |
| | | if(data.code==0){ |
| | | 'data': JSON.stringify(data.field), |
| | | 'success': function (data) { |
| | | if (data.code == 200) { |
| | | layer.closeAll(); |
| | | febs.alert.success('操作成功'); |
| | | // var index = parent.layer.getFrameIndex(window.name); |
| | | // parent.layer.close(index); |
| | | // febs.alert.success('操作成功'); |
| | | febs.alert.success(data.message); |
| | | $('#febs-goods').find('#reset').click(); |
| | | }else{ |
| | | } else { |
| | | febs.alert.warn(data.message); |
| | | } |
| | | }, |
| | | 'error':function () { |
| | | 'error': function () { |
| | | febs.alert.warn('服务器繁忙'); |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | |
| | | form.on('select(goods-type-select)', function (data) { |
| | | $('.tc-set').each(function () { |
| | | if (data.value == 2) { |
| | | $(this).show(); |
| | | } else { |
| | | $(this).hide(); |
| | | } |
| | | }) |
| | | }); |
| | | |
| | | }); |
| | | </script> |