| | |
| | | <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"> |
| | | <input type="text" name="goodsName" lay-verify="required" placeholder="50个以内的字符" 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"> |
| | | <input type="text" name="goodsNo" lay-verify="required" placeholder="30个以内的字符" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-col-lg6"> |
| | | <div class="layui-col-lg3"> |
| | | <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 class="layui-col-lg3"> |
| | | <label class="layui-form-label febs-form-item-require">序号:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="number" name="orderNumber" lay-verify="required" placeholder="纯数字" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </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"> |
| | | <input type="text" name="unit" lay-verify="required" placeholder="10个以内的字符" autocomplete="off" class="layui-input"> |
| | | <div class="layui-form-mid layui-word-aux">例如:个、克。</div> |
| | | </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="goodsWeight" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> |
| | | <input type="text" name="goodsWeight" lay-verify="required" placeholder="纯数字" autocomplete="off" class="layui-input"> |
| | | |
| | | <div class="layui-form-mid layui-word-aux">默认单位:克。请填写数字。如:1千克,则填入1000。</div> |
| | | </div> |
| | | </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="stock" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> |
| | | <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"> |
| | | <input type="text" name="volume" lay-verify="required" placeholder="纯数字" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <label class="layui-form-label">商品介绍:</label> |
| | | <div class="layui-input-block"> |
| | | <label> |
| | | <textarea name="goodsIntrodution" rows="5" autocomplete="off" class="layui-textarea" ></textarea> |
| | | <textarea name="goodsIntrodution" rows="5" autocomplete="off" class="layui-textarea" placeholder="1000个以内的字符" ></textarea> |
| | | </label> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="layui-input-block"> |
| | | <select name="isNormal" class="goods-type" lay-filter="goods-type-select"> |
| | | <option value="1">普通商品区</option> |
| | | <option value="2">套餐区</option> |
| | | <!-- <option value="2">套餐区</option>--> |
| | | </select> |
| | | </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="staticMulti" placeholder="请输入静态倍数" autocomplete="off" class="layui-input"> |
| | | <div class="layui-form-mid layui-word-aux">支付后,赠送(购买金额*静态倍数)的赠送积分</div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label">推销员返积分比例(%)</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <input type="text" name="staticMulti" placeholder="请输入推销员返积分比例" autocomplete="off" class="layui-input">--> |
| | | <!-- </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 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"> |
| | |
| | | <label class="layui-form-label">商品参数:</label> |
| | | <div class="layui-input-block"> |
| | | <label> |
| | | <textarea name="goodsParameter" rows="5" autocomplete="off" class="layui-textarea" ></textarea> |
| | | <textarea name="goodsParameter" rows="5" autocomplete="off" class="layui-textarea" placeholder="1000个以内的字符"></textarea> |
| | | </label> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label febs-form-item-require">商品详情:</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <textarea id="goodsDetailEditAdd" lay-verify="content" name = "goodsDetails" class="layui-textarea"></textarea>--> |
| | | <!--<!– <div style="border: 1px solid #ccc;">–>--> |
| | | <!--<!– <div id="toolbar-container-good-add" style="border-bottom: 1px solid #ccc;"></div>–>--> |
| | | <!--<!– <div id="editor-container-good-add" style="height: 450px;"></div>–>--> |
| | | <!--<!– </div>–>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">商品详情:</label> |
| | | <div class="layui-input-block"> |
| | | <!-- <textarea id="goodsDetailEdit" lay-verify="goodsDetails" name = "goodsDetails" class="layui-textarea"></textarea>--> |
| | | <!-- <textarea id="goodsDetailEditAdd" lay-verify="content" name = "goodsDetails" class="layui-textarea"></textarea>--> |
| | | <div style="border: 1px solid #ccc;"> |
| | | <div id="toolbar-container" style="border-bottom: 1px solid #ccc;"></div> |
| | | <div id="editor-container" style="height: 450px;"></div> |
| | | <div id="toolbar-container" class="toolbar"></div> |
| | | <div id="text-container" class="text" style="height: 450px;"></div> |
| | | </div> |
| | | </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="originalPrice" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> |
| | | <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 class="layui-form-mid layui-word-aux">现价设置为0进入零撸专区</div> |
| | | <input type="text" name="presentPrice" lay-verify="required" placeholder="纯数字" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <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="levelOnePrice" 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="levelTwoPrice" 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="levelThreePrice" 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 class="layui-col-lg6"> |
| | | <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> |
| | | </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 id="carriageAmountDefault" type="text" name="carriageAmount" placeholder="" autocomplete="off" class="layui-input"> |
| | | <div class="layui-form-mid layui-word-aux">远费设置为0元,前台商品将显示为免运费。</div> |
| | | <input id="carriageAmountDefault" type="text" name="carriageAmount" placeholder="纯数字" autocomplete="off" class="layui-input"> |
| | | <div class="layui-form-mid layui-word-aux">远费设置为0元,商品将显示为免运费。</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- <blockquote class="layui-elem-quote blue-border">优惠卷设置</blockquote>--> |
| | | <!-- <div class="layui-form-item coupon-rule">--> |
| | | <!-- <div class="layui-col-lg6">--> |
| | | <!-- <label class="layui-form-label">优惠卷:</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <div id="coupon-rule"></div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | |
| | | <blockquote class="layui-elem-quote blue-border">多规格设置</blockquote> |
| | | <div class="layui-col-lg6"> |
| | |
| | | <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"> |
| | | <input type="text" name="addMallGoodsSkuDtos" placeholder="30个以内的字符" 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 class="layui-col-lg1"> |
| | | <button type="button" |
| | | class="layui-btn layui-btn-normal layui-btn" id="test3"> |
| | | 添加 |
| | | </button> |
| | | </div> |
| | | <!-- <div class="layui-col-lg1">--> |
| | | <!-- <button type="button"--> |
| | | <!-- class="layui-btn layui-btn-normal layui-btn" id="test4">--> |
| | | <!-- 新增样品--> |
| | | <!-- </button>--> |
| | | <!-- </div>--> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | |
| | | validate = layui.validate, |
| | | element = layui.element; |
| | | |
| | | //验证输入数字 |
| | | form.verify({ |
| | | isNum: function(value, item){ //value:表单的值、item:表单的DOM对象 |
| | | if(!new RegExp("^[0-9]+$").test(value)){ |
| | | return '该字段只能填写数字!'; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // 验证汉字数量不超过100个 |
| | | form.verify({ |
| | | chineseCharCount: function(value, item){ //value:表单的值、item:表单的DOM对象 |
| | | // 使用正则表达式匹配汉字,并计算数量 |
| | | var chineseCharCount = (value.match(/[\u4e00-\u9fa5]/g) || []).length; |
| | | if(chineseCharCount > 100){ |
| | | return '汉字数量不能超过100个!'; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | form.render(); |
| | | |
| | | var E = window.wangEditor; |
| | | const editorConfig = { MENU_CONF: {} }; |
| | | editorConfig.MENU_CONF['uploadImage'] = { |
| | | server: '/admin/goods/uploadFileBase64', |
| | | fieldName : "file", |
| | | customInsert(res, insertFn) { |
| | | insertFn(res.data.src, res.data.title, '') |
| | | }, |
| | | } |
| | | const E = window.wangEditor; |
| | | const editor = new E('#toolbar-container', '#text-container'); // 传入两个元素 |
| | | editor.config.showLinkImg = false; |
| | | editor.config.uploadFileName = 'file'; |
| | | editor.config.customUploadImg = function (files, insertImgFn) { |
| | | // files 是 input 中选中的文件列表 |
| | | // insertImgFn 是获取图片 url 后,插入到编辑器的方法 |
| | | // 上传图片,返回结果,将图片插入到编辑器中 |
| | | for (let i = 0; i < files.length; i++){ |
| | | var form = new FormData(); |
| | | form.append("file", files[0]); |
| | | $.ajax({ |
| | | url:'/admin/goods/uploadFileBase64', |
| | | type: "post", |
| | | processData: false, |
| | | contentType: false, |
| | | data: form, |
| | | dataType: 'json', |
| | | success(res) { |
| | | // 上传代码返回结果之后,将图片插入到编辑器中 |
| | | insertImgFn(res.data.src, res.data.title, '') |
| | | } |
| | | }) |
| | | } |
| | | }; |
| | | editor.create(); |
| | | |
| | | const editor = E.createEditor({ |
| | | selector: '#editor-container', |
| | | config : editorConfig, |
| | | mode: 'default' |
| | | }); |
| | | |
| | | const toolbar = E.createToolbar({ |
| | | editor, |
| | | selector: '#toolbar-container', |
| | | mode: 'default' |
| | | }); |
| | | // var E = window.wangEditor; |
| | | // const editorConfig = { MENU_CONF: {} }; |
| | | // editorConfig.MENU_CONF['uploadImage'] = { |
| | | // server: '/admin/goods/uploadFileBase64', |
| | | // fieldName : "file", |
| | | // customInsert(res, insertFn) { |
| | | // insertFn(res.data.src, res.data.title, '') |
| | | // }, |
| | | // } |
| | | // |
| | | // const editor = E.createEditor({ |
| | | // selector: '#editor-container-good-add', |
| | | // config : editorConfig, |
| | | // mode: 'default' |
| | | // }); |
| | | // |
| | | // const toolbar = E.createToolbar({ |
| | | // editor, |
| | | // selector: '#toolbar-container-good-add', |
| | | // mode: 'default' |
| | | // }); |
| | | |
| | | laydate.render({ |
| | | elem: '#febs-form-group-date' |
| | | }); |
| | | layedit.set({ //设置图片接口 |
| | | uploadImage: { |
| | | url: 'admin/goods/uploadFileBase64', //接口url |
| | | type: 'post', |
| | | } |
| | | }); |
| | | //创建一个编辑器 |
| | | var indexAdd = layedit.build('goodsDetailEditAdd',{ |
| | | height: 300 |
| | | }); |
| | | form.verify({ |
| | | //content富文本域中的lay-verify值 |
| | | content: function(value) { |
| | | return layedit.sync(indexAdd); |
| | | } |
| | | }); |
| | | |
| | | formSelects.render(); |
| | |
| | | iconfont: { |
| | | parent: 'hidden', |
| | | }, |
| | | tips: '请选择', |
| | | filterable: true, |
| | | radio: true, |
| | | clickClose: true, |
| | | tree: { |
| | |
| | | }); |
| | | }) |
| | | |
| | | // var couponRule = xmSelect.render({ |
| | | // el: '#coupon-rule', |
| | | // language: 'zn', |
| | | // prop : { |
| | | // value : 'id', |
| | | // children : 'child' |
| | | // }, |
| | | // iconfont: { |
| | | // parent: 'hidden', |
| | | // }, |
| | | // // radio: true, |
| | | // clickClose: true, |
| | | // tree: { |
| | | // show: true, |
| | | // //非严格模式 |
| | | // strict: false, |
| | | // }, |
| | | // data: [] |
| | | // }) |
| | | // |
| | | // febs.get(ctx + 'admin/goods/couponTreeSet', null, function(res) { |
| | | // couponRule.update({ |
| | | // data : res.data, |
| | | // autoRow: true, |
| | | // }); |
| | | // }) |
| | | |
| | | var tableSkuData=[]; |
| | | var tableIns = table.render({ |
| | | elem: '#multiSku' |
| | |
| | | ,cols: [[ //表头 |
| | | {type: 'checkbox'} |
| | | ,{field: 'index', title: '序号', width:70} |
| | | ,{field: 'styleName', title: '样式', edit:'text'} |
| | | ,{field: 'skuName', title: '规格', edit:'text'} |
| | | ,{field: 'goodsWeight', title: '重量', edit:'text'} |
| | | ,{field: 'presentPrice', title: '现价', edit:'text'} |
| | | ,{field: 'originalPrice', title: '原价', edit:'text'} |
| | | ,{field: 'costPrice', title: '成本价', edit:'text'} |
| | | ,{field: 'styleName', title: '样式', edit:'text', width:200} |
| | | ,{field: 'skuName', title: '规格', edit:'text', width:200} |
| | | // ,{field: 'sample', title:'样品', width:100} |
| | | ,{field: 'goodsWeight', title: '重量', edit:'text', width:100} |
| | | // ,{field: 'levelOnePrice', title: '一级价格', edit:'text', width:100} |
| | | // ,{field: 'levelTwoPrice', title: '二级价格', edit:'text', width:100} |
| | | // ,{field: 'levelThreePrice', title: '三级价格', edit:'text', width:100} |
| | | ,{field: 'originalPrice', title: '原价', edit:'text', width:100} |
| | | ,{field: 'presentPrice', title: '现价', edit:'text', width:100} |
| | | ,{field: 'costPrice', title: '成本价', edit:'text', width:100} |
| | | ,{templet: '#tableImgUpload', title: '缩略图', width:150} |
| | | ,{field: 'stock', title: '库存', edit:'text'} |
| | | ,{field: 'skuVolume', title: '销量', edit:'text'} |
| | | ,{field: 'stock', title: '库存', edit:'text', width:100} |
| | | ,{field: 'skuVolume', title: '销量', edit:'text', width:100} |
| | | ,{field: 'skuImage', title: '缩略图地址', hide:true} |
| | | ]] |
| | | ,data: [] |
| | |
| | | |
| | | var data = {}; |
| | | data.styleName = attrNameVal; |
| | | addTableDate(data); |
| | | }); |
| | | |
| | | $('#test4').on('click', function () { |
| | | var data = {}; |
| | | data.sample = "样品"; |
| | | addTableDate(data); |
| | | }); |
| | | |
| | |
| | | |
| | | form.on('submit(goods-add-form-submit)', function (data) { |
| | | data.field.goodsType = 1; |
| | | // let couponRuleList = couponRule.getValue(); |
| | | // if (couponRuleList.length > 0) { |
| | | // var couponIds = []; |
| | | // layui.each(couponRuleList, function (key, item) { |
| | | // couponIds.push(item.id) |
| | | // }); |
| | | // data.field.couponIds=couponIds; |
| | | // } |
| | | data.field.addMallGoodsSkuDtos = tableSkuData; |
| | | data.field.categoryId = category.getValue('valueStr'); |
| | | data.field.carriageRuleId = carriageRule.getValue('valueStr'); |
| | | data.field.goodsDetails = editor.getHtml(); |
| | | // let content = layedit.getContent(); |
| | | // alert(content); |
| | | // data.field.goodsDetails = content; |
| | | data.field.goodsDetails = editor.txt.html(); |
| | | $.ajax({ |
| | | 'url':ctx + 'admin/goods/addMallGoods', |
| | | 'type':'post', |