| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789 |
- <style type="text/css">
- .xm-label-block {
- background-color: #287bd2
- }
- body .tox-tinymce-aux {
- z-index: 19892000 !important;
- }
- .sku-box {
- border: 1px solid #e4e4e4;
- border-radius: 8px;
- padding: 13px;
- }
- </style>
- <!-- 正文开始 -->
- <div class="layui-fluid">
- <div class="layui-card">
- <div class="layui-card-body">
- <div class="layui-form toolbar" id="tbToolBar">
- <div class="layui-form-item">
- <div class="layui-inline">
- <label class="layui-form-label w-auto">商品名称:</label>
- <div class="layui-input-inline mr0">
- <input name="name" class="layui-input" type="text" placeholder="商品名称"/>
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label w-auto">商 家:</label>
- <div class="layui-input-inline mr0">
- <select id="sellerSearch" name="seller_id" lay-filter="xmFilter">
- <option value=""></option>
- </select>
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label w-auto">分 类:</label>
- <div class="layui-input-inline mr0">
- <select id="categorySearch" name="category_id" lay-filter="xmFilter">
- <option value=""></option>
- </select>
- </div>
- </div>
- <div class="layui-inline" style="padding-right: 110px;">
- <button class="layui-btn icon-btn" lay-filter="formSubSearchUser" lay-submit>
- <i class="layui-icon"></i>查询
- </button>
- <button class="layui-btn icon-btn goods-category">
- <i class="layui-icon"></i>商品分类
- </button>
- </div>
- </div>
- </div>
- <div class="layui-tab layui-tab-brief">
- <table id="dataTable" lay-filter="dataTable"></table>
- </div>
- </div>
- </div>
- </div>
- <script type="text/html" id="toolBarTpl">
- <div class="layui-btn-group fl">
- <a class="layui-btn layui-btn-sm layui-icon layui-icon-add-circle-fine product-add-btn"> 添加</a>
- <a table-data="{'url':'store/product/plectron','action':'put',param:{'status': 1}}"
- class="layui-btn layui-btn-sm layui-icon layui-icon-play table-toolbar-btn"> 启用</a>
- <a table-data="{'url':'store/product/plectron','action':'put',param:{'status': 0}}" confirm
- class="layui-btn layui-btn-sm layui-icon layui-icon-pause table-toolbar-btn"> 禁用</a>
- <a table-data="{'url':'store/product/plectron','action':'delete'}" confirm
- class="layui-btn layui-btn-sm layui-icon layui-icon-close table-toolbar-btn"> 删除</a>
- </div>
- </script>
- <!-- 表格操作列 -->
- <script type="text/html" id="tableBarUser">
- <a class="layui-btn layui-btn-xs" lay-event="edit">修改</a>
- <a class="layui-btn layui-btn-danger layui-btn-xs" perm-show="delete:/store/product/<id>" lay-event="del">删除</a>
- </script>
- <!-- 表格状态列 -->
- <script type="text/html" id="tableStateUser">
- <input type="checkbox" value="{{ d.status }}" switch-data="{'url':'store/product/{{ d.id }}','action':'put'}"
- lay-skin="switch" lay-filter="ckDataTableState"
- lay-text="正常|锁定" {{d.status==1?'checked':''}}/>
- </script>
- <!-- 表单弹窗 -->
- <script type="text/html" id="modelGoods">
- <form id="modelGoodsForm" lay-filter="modelGoodsForm" class="layui-form model-form">
- <input name="id" type="hidden"/>
- <div class="model-form-body" style="max-height: 600px;padding:0;">
- <div class="layui-card">
- <div class="layui-tab layui-tab-brief">
- <ul class="layui-tab-title">
- <li class="layui-this">基本信息</li>
- <li>产品详情</li>
- <li>商品规格</li>
- </ul>
- <div class="layui-tab-content">
- <div class="layui-tab-item layui-show">
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">所属商家</label>
- <div class="layui-input-block">
- <select name="seller_id" id="sellerSel" lay-verType="tips" lay-verify="required"
- lay-filter="xmFilter">
- <option value=""></option>
- </select>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">商品主图</label>
- <div class="layui-input-block">
- <input type="text" name="cover_img" value=""
- class="layui-input layui-disabled upload-input-cover_img" lay-verType="tips" lay-verify="required"
- required style="padding-right: 80px;" disabled="">
- <button data-field="cover_img" data-count="9" type="button" style="position: absolute;top: 0;right: 0px;cursor: pointer;"
- class="layui-btn icon-btn uploader">
- <i class="layui-icon"></i>上传图片
- </button>
-
- <div class="cl imglist" id="cover_img"></div>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">商品名称</label>
- <div class="layui-input-block">
- <input name="name" placeholder="请输入商品名称" type="text" class="layui-input"
- maxlength="80"
- lay-verType="tips" lay-verify="required" required/>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">商品分类</label>
- <div class="layui-input-block">
- <div id="categorySel" class="ew-xmselect-tree"></div>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">是否拼团</label>
- <div class="layui-input-block">
- <select id="isPin" name="is_pin" lay-filter="xmFilter">
- <option value="0">否</option>
- <option value="1">是</option>
- </select>
- </div>
- </div>
- <div class="pin-box">
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">拼团人数</label>
- <div class="layui-input-block">
- <input name="pin_sum" placeholder="请输入拼团人数" type="text" class="layui-input"
- maxlength="80"/>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">成团人数</label>
- <div class="layui-input-block">
- <input name="pin_number" placeholder="请输入拼团人数" type="number" class="layui-input"
- maxlength="80"/>
- </div>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">商品限购</label>
- <div class="layui-input-block">
- <input name="limit_buy" placeholder="请输入商品限购,默认0不限购" type="text" class="layui-input"
- maxlength="80"/>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">商品销量</label>
- <div class="layui-input-block">
- <input name="sell_count" placeholder="请输入商品销量" type="text" class="layui-input"
- maxlength="80"/>
- </div>
- </div>
- </div>
- <div class="layui-tab-item">
- <div class="layui-form-item">
- <textarea id="contentCkEditor" name="content"></textarea>
- </div>
- </div>
- <div class="layui-tab-item">
- <!-- 规格-->
- <div id="sku" class="sku-box"></div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="layui-form-item text-right">
- <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
- <button class="layui-btn" perm-show="put:/store/product/<id>" lay-filter="modelSubmitGoods" lay-submit>保存
- </button>
- </div>
- </form>
- </script>
- <!--// 商品分类-->
- <script type="text/html" id="modelGoodsCate">
- <table class="layui-table" id="GoodsCateTb" lay-filter="GoodsCateTb"></table>
- </script>
- <!--商品分类操作-->
- <script type="text/html" id="GoodsCateToolbar">
- <div class="layui-btn-group fl">
- <a class="layui-btn layui-btn-sm layui-icon layui-icon-add-circle-fine goods-cate-add-btn"> 添加</a>
- <a class="layui-btn layui-btn-sm layui-icon layui-icon-refresh goods-cate-refresh-btn"> 刷新</a>
- </div>
- </script>
- <!-- 表格操作列 -->
- <script type="text/html" id="GoodsCateTabbar">
- <a class="layui-btn layui-btn-xs" lay-event="edit">修改</a>
- <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
- </script>
- <script type="text/html" id="modelGoodsCateEdit">
- <form id="modelGoodsCateEditForm" lay-filter="modelGoodsCateEditForm" class="layui-form model-form">
- <input name="id" type="hidden"/>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">上级分类</label>
- <div class="layui-input-block">
- <div id="parentSel" class="ew-xmselect-tree"></div>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">分类名称</label>
- <div class="layui-input-block">
- <input name="name" placeholder="请输入分类名称" type="text" class="layui-input" maxlength="20"
- lay-verType="tips" lay-verify="required" required/>
- </div>
- </div>
- <div class="layui-form-item text-right">
- <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
- <button class="layui-btn" perm-show="put:/store/product/category/<id>" lay-filter="modelSubmitGoodsCateEdit"
- lay-submit>保存
- </button>
- </div>
- </form>
- </script>
- <!-- js部分 -->
- <script>
- layui.use(['layer', 'jquery', 'form', 'upload', 'table', 'tableX', 'util', 'notice', 'admin', 'setter', 'sku', 'xmSelect', 'CKEDITOR', 'Equencing','fileChoose'], function () {
- var $ = layui.jquery;
- var layer = layui.layer;
- var form = layui.form;
- var table = layui.table;
- var tableX = layui.tableX;
- var util = layui.util;
- var sku = layui.sku;
- var admin = layui.admin;
- var notice = layui.notice;
- var setter = layui.setter;
- var xmSelect = layui.xmSelect;
- var CKEDITOR = layui.CKEDITOR;
- var Equencing = layui.Equencing;
- var fileChoose = layui.fileChoose;
- // 获取所有商家
- var seller = [], skuitem = [];
- admin.req('store/seller', {}, function (res) {
- if (10000 == res.code) {
- seller = res.data.list;
- $.each(seller, function (index, item) {
- $('#sellerSearch').append('<option value="' + item.id + '">' + item.seller_name + '</option>');// 下拉菜单里添加元素
- });
- form.render('select');
- } else {
- layer.msg('获取商家列表失败', {icon: 2});
- }
- }, 'GET');
- // 获取所有分类
- var category = [];
- admin.req('store/product/category', {}, function (res) {
- if (10000 == res.code) {
- category = res.data.list;
- $.each(category, function (index, item) {
- $('#categorySearch').append('<option value="' + item.id + '">' + item.name + '</option>');// 下拉菜单里添加元素
- });
- form.render('select');
- } else {
- layer.msg('获取分类列表失败', {icon: 2});
- }
- }, 'GET');
- form.render('select');
- // 渲染表格
- var insTb = table.render({
- elem: '#dataTable',
- url: setter.baseServer + 'store/product',
- page: true,
- title: "商品表",
- // toolbar: true,
- toolbar: '#toolBarTpl',
- cellMinWidth: 100,
- cols: [[
- {type: 'checkbox'},
- {field: 'id', title: '产品ID', width: 100},
- {
- field: 'cover_img', title: '商品主图', templet: function (d) {
- var cover = JSON.parse(d.cover_img),
- html = "";
- $.each(cover, (i, item) => {
- html += '<img src="' + (item || '../../assets/images/placeholder-refund.png') + '" style="height: 100%;margin-right:2px" class="input-img-preview"/>'
- })
- return html;
- }, width: 150
- },
- {field: 'name', title: '商品名称', width: 200},
- {
- field: 'category', title: '分类', templet: function (d) {
- return '<span class="layui-badge layui-badge-gray">' + (d.category ? d.category.name : '未分类') + '</span>';
- }
- },
- {
- field: 'price', title: '售卖价格', templet: function (d) {
- return "<p style='color:red'>¥" + d.price + "</p>";
- }
- },
- {
- field: 'instock_price', title: '进货价格', templet: function (d) {
- return "<p style='color:red'>¥" + d.instock_price + "</p>";
- }
- },
- {
- field: 'dis_price', title: '优惠价格', templet: function (d) {
- return "<p style='color:red'>¥" + d.dis_price + "</p>";
- }
- },
- {field: 'stock', title: '商品库存'},
- {field: 'sell_count', title: '商品销量'},
- {field: 'limit_buy', title: '商品限购'},
- {
- field: 'in_selling', title: '售卖中', templet: function (d) {
- return '<span class="layui-badge ' + (d.in_selling ? "layui-badge-blue" : "layui-badge-red") + '">' + (d.in_selling ? "是" : "否") + '</span>';
- }
- },
- {
- field: 'is_pin', title: '是否拼团', templet: function (d) {
- return '<span class="layui-badge ' + (d.is_pin ? "layui-badge-blue" : "layui-badge-red") + '">' + (d.is_pin ? "是" : "否") + '</span>';
- }
- },
- {
- field: 'pin_price', title: '拼团价格', templet: function (d) {
- return "<p style='color:red'>¥" + d.pin_price + "</p>";
- }
- },
- {field: 'pin_sum', title: '开团人数'},
- {field: 'pin_number', title: '中团人数'},
- {
- field: 'created_at', sort: true, templet: function (d) {
- return util.toDateString(d.created_at * 1e3);
- }, title: '创建时间', width: 180
- },
- {field: 'status', templet: '#tableStateUser', title: '状态', width: 120},
- {fixed: 'right', align: 'center', toolbar: '#tableBarUser', title: '操作', minWidth: 200}
- ]],
- done: function () {
- admin.renderPerm()
- }
- });
- // 商品分类
- $(document).on('click', '.goods-category', function () {
- showGoodsCateTbModel();
- });
- // 添加
- $(document).on('click', '.product-add-btn', function () {
- showEditModel();
- });
- // 搜索
- form.on('submit(formSubSearchUser)', function (data) {
- insTb.reload({where: data.field}, 'data');
- });
- // 工具条点击事件
- table.on('tool(dataTable)', function (obj) {
- var data = obj.data;
- var layEvent = obj.event;
- if (layEvent === 'edit') { // 修改
- showEditModel(data);
- } else if (layEvent === 'del') { // 删除
- layer.confirm('确定要删除“' + data.name + '”吗?', {
- skin: 'layui-layer-admin',
- shade: .1
- }, function (i) {
- layer.close(i);
- layer.load(2);
- admin.req('store/product/' + data.id, function (r) {
- layer.closeAll('loading');
- if (r.code === 10000) {
- notice.msg(r.message, {icon: 1});
- insTb.reload({}, 'data');
- } else {
- notice.msg(r.message, {icon: 2});
- }
- }, 'DELETE');
- });
- }
- });
-
- // uploader
- var uploader = null;
- // 显示表单弹窗
- function showEditModel(data) {
- admin.open({
- id: 'LAY_GoodsModel',
- type: 1,
- area: '900px', //宽高
- title: (data ? '修改' : '添加') + '商品',
- content: $('#modelGoods').html(),
- success: function (layero, dIndex) {
- $(layero).children('.layui-layer-content').css('overflow', 'visible');
- // 是否显示拼团价格
- (data && data.is_pin > 0) ? $(".pin-box").show() : $(".pin-box").hide();
- // 选择拼团类型
- $(document).on('change', '#isPin', function () {
- ($(this).val() == 1) ? $(".pin-box").show() : $(".pin-box").hide();
- });
- var imgs = [];
- if (data && data.cover_img.length > 0) {
- $(".img-preview-box.cover_img").empty();
- $.each(JSON.parse(data.cover_img), (i, t) => {
- imgs.push(t)
- //$(".img-preview-box.cover_img").append('<img class="input-img-preview" src="' + t + '" style="height: 100px;margin: 8px;"/>')
- })
- }
- // 图片展示
- // if(data) {
- // var imgulp = Equencing.render({listid: 'cover_img', jsondata: false, imgsrcarr: imgs});
- uploader = Equencing.render({
- elem: "cover_img",
- data: imgs,
- count: 9,
- });
- // 删除图片数据
- $(document).on('click', '.eq-item-del', function () {
- var elem = $(this).parents('.__item__').eq(0),
- index = elem.attr('item'),
- el = elem.attr('el'),
- ip = $('.upload-input-' + el )[0];
- // 删除对应数据
- uploader.delItem(index),ip.value = uploader.getData();
- });
- // }
- // 商家
- $.each(seller, function (index, item) {
- let ichecked = "";
- if (data) ichecked = data.seller_id === item.id ? "selected" : "";
- $('#sellerSel').append('<option value="' + item.id + '" ' + ichecked + '>' + item.seller_name + '</option>');// 下拉菜单里添加元素
- });
- // 分类处理
- let selCategoryIds = xmSelect.render({
- el: '#categorySel',
- data: setter.lists2tree(category),
- model: {label: {type: 'text'}},
- radio: true,
- clickClose: true,
- name: 'category_id', // 提交的字段名称
- prop: {
- name: 'name',
- value: 'id'
- },
- tree: {
- show: true,
- indent: 15,
- strict: false,
- expandedKeys: true
- },
- height: '250px'
- });
- //设置默认值
- selCategoryIds.setValue([(data ? data.category : {
- name: (data && data.name || '选择上一级菜单'),
- value: 0
- })], null, true);
- // 渲染富文本编辑器
- var contentEdt = CKEDITOR.replace('contentCkEditor', {
- height: 300,
- language: 'zh-cn', //简体中文
- toolbar: [
- //加粗 斜体, 下划线 穿过线 下标字 上标字
- ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript'],
- // 数字列表 实体列表 减小缩进 增大缩进
- ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent'],
- //左对 齐 居中对齐 右对齐 两端对齐
- ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
- //超链接 取消超链接 锚点
- ['Link', 'Unlink', 'Anchor'],
- //图片 flash 表格 水平线 表情 特殊字符 分页符
- ['Image', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak'],
- '/',
- // 样式 格式 字体 字体大小
- ['Styles', 'Format', 'Font', 'FontSize'],
- //文本颜色 背景颜色
- ['TextColor', 'BGColor'],
- //全屏 显示区块
- ['Maximize', 'ShowBlocks', '-']
- ]
- });
- contentEdt.on('fileUploadRequest', function (evt) {
- let xhr = evt.data.fileLoader.xhr;
- xhr.setRequestHeader('Authorization', setter.getToken());
- });
- CKEDITOR.instances.pageCkEditor;
- var skuDat = [];
- if (data) {
- admin.req('store/product/sku/' + data.id, (res) => {
- if (10000 == res.code) {
- skuDat = res.data;
- }
- }, 'GET', {async: false});
- }
- // 颜色 1 白色 1 {"1":"1"}
- // 版本 2 V2 4 {"2":"4"}
- // 组合成 颜色为百色版本为V2的产品
- var SKU = sku.init({id: 'sku', item: skuDat.spec, data: skuDat.sku});
- form.render('radio');
- form.render('select');
- // 回显数据
- form.val('modelGoodsForm', data);
- // 表单提交事件
- form.on('submit(modelSubmitGoods)', function (form) {
- // 主图排序新数据
- if(uploader){
- form.field.cover_img = uploader.getData();
- }
- // 分类
- if (form.field.category_id === '') {
- layer.tips('请选择商品分类', $('#categorySel'), {tips: [3, '#ff4c4c']});
- return false;
- }
- // 判断下拼团价格
- if (form.field.is_pin > 0) {
- if (form.field.pin_price == "" || form.field.pin_price == 0) {
- layer.tips('拼团价格不能为空', $('input[name="pin_price"]'), {tips: [3, '#ff4c4c']});
- return false;
- }
- if (form.field.pin_number == "" || form.field.pin_number == 0) {
- layer.tips('拼团人数不能为空', $('input[name="pin_number"]'), {tips: [3, '#ff4c4c']});
- return false;
- }
- }
- // 追加数据
- var content = contentEdt.getData();
- if (content === '') {
- layer.tips('产品详情内容不能为空', $('#contentCkEditor'), {tips: [3, '#ff4c4c']});
- return false;
- }
- form.field.content = contentEdt.getData();
- var sku = SKU.getData();
- if (sku.length == 0) {
- layer.tips('产品SKU不能为空', $('#sku'), {tips: [3, '#ff4c4c']});
- return false;
- }
- form.field.sku = JSON.stringify(sku);
-
- layer.load(2);
- admin.req('store/product' + (data ? '/' + form.field.id : ''), form.field, function (res) {
- layer.closeAll('loading');
- if (res.code === 10000) {
- layer.close(dIndex);
- notice.msg(res.message, {icon: 1});
- insTb.reload({}, 'data');
- } else {
- notice.msg(res.message, {icon: 2});
- }
- }, data ? 'PUT' : 'POST');
-
- return false;
- });
- }
- });
- }
- // 规格
- function showSpecViewModel() {
- admin.open({
- id: 'LAY_SpecView',
- type: 1,
- area: '720px', //宽高
- title: '商品分类',
- content: $('#modelSpecView').html(),
- success: function (layero, dIndex) {
- $(layero).children('.layui-layer-content').css('overflow', 'visible');
- }
- })
- }
- var goodsCateTb;
- // 展示商品分类
- function showGoodsCateTbModel() {
- admin.open({
- id: 'LAY_GoodsCate',
- type: 1,
- area: '720px', //宽高
- title: '商品分类',
- content: $('#modelGoodsCate').html(),
- success: function (layero, dIndex) {
- $(layero).children('.layui-layer-content').css('overflow', 'visible');
- // 渲染表格
- goodsCateTb = table.render({
- elem: '#GoodsCateTb',
- url: setter.baseServer + 'store/product/category',
- page: true,
- height: 500,
- defaultToolbar: false,
- toolbar: "#GoodsCateToolbar",
- cols: [[
- {type: 'numbers'},
- {
- field: 'parent', title: '上级分类', width: 150, templet: function (d) {
- var parent = "顶级分类";
- $.each(category, (i, c) => {
- if (c.id == d.parent_id) {
- parent = c.name;
- }
- })
- return parent;
- }
- },
- {field: 'name', title: '分类名称', width: 150},
- {
- field: 'created_at', sort: true, templet: function (d) {
- return util.toDateString(d.created_at * 1e3);
- }, title: '创建时间', width: 180
- },
- {fixed: "right", align: 'center', toolbar: '#GoodsCateTabbar', title: '操作', minWidth: 200}
- ]],
- done: function () {
- tableX.merges('GoodsCateTb', [1], false)
- }
- });
- // 工具条点击事件
- table.on('tool(GoodsCateTb)', function (obj) {
- var data = obj.data;
- var layEvent = obj.event;
- if (layEvent === 'edit') { // 修改
- showGoodsCateEditModel(data);
- } else if (layEvent === 'del') { // 删除
- layer.confirm('确定要删除“' + data.name + '”吗?', {
- skin: 'layui-layer-admin',
- shade: .1
- }, function (i) {
- layer.close(i);
- layer.load(2);
- admin.req('store/product/category/delete/' + data.id, function (r) {
- layer.closeAll('loading');
- if (r.code === 10000) {
- notice.msg(r.message, {icon: 1});
- goodsCateTb.reload({}, 'data');
- } else {
- notice.msg(r.message, {icon: 2});
- }
- }, 'DELETE');
- });
- }
- });
- }
- })
- }
- // 添加
- $(document).on('click', '.goods-cate-refresh-btn', function () {
- goodsCateTb.reload({}, 'data');
- });
- // 添加
- $(document).on('click', '.goods-cate-add-btn', function () {
- showGoodsCateEditModel();
- });
- // 显示表单弹窗
- function showGoodsCateEditModel(data) {
- admin.open({
- id: 'LAY_GoodsCateEdit',
- type: 1,
- area: ['420px'], //宽高
- title: (data ? '修改' : '添加') + '商品分类',
- content: $('#modelGoodsCateEdit').html(),
- success: function (layero, dIndex) {
- $(layero).children('.layui-layer-content').css('overflow', 'visible');
- // 分类处理
- let selParentIds = xmSelect.render({
- el: '#parentSel',
- data: setter.lists2tree(category),
- model: {label: {type: 'text'}},
- radio: true,
- clickClose: true,
- name: 'parent_id', // 提交的字段名称
- prop: {
- name: 'name',
- value: 'id'
- },
- tree: {
- show: true,
- indent: 15,
- strict: false,
- expandedKeys: true
- },
- height: '250px'
- });
- //设置默认值
- //selParentIds.setValue([ (data ? data.category :{ name: (data && data.name || '选择上一级菜单'), value: 0})], null, true);
- // 回显数据
- form.val('modelGoodsCateEditForm', data);
- form.render('radio');
- form.render('select');
- // 表单提交事件
- form.on('submit(modelSubmitGoodsCateEdit)', function (form) {
- layer.load(2);
- admin.req('store/product/category' + (data ? '/update/' + form.field.id : '/create'), form.field, function (res) {
- layer.closeAll('loading');
- if (res.code === 10000) {
- layer.close(dIndex);
- notice.msg(res.message, {icon: 1});
- goodsCateTb.reload({}, 'data');
- } else {
- notice.msg(res.message, {icon: 2});
- }
- }, data ? 'PUT' : 'POST');
- return false;
- });
- }
- });
- }
-
-
-
- // 2020 09 19
- // 整合图片排序上传方法
- $(document).on('click', '.uploader', function () {
- var t = $(this),
- s =t.attr('data-field'),
- c =t.attr('data-count') || 0,
- n = $('.upload-input-' + s ),
- j = $('.'+ s);
- fileChoose.open({
- headers: {
- 'Authorization': setter.getToken()
- },
- listUrl: setter.baseServer + 'system/annex',
- uploadUrl: setter.baseServer + 'system/annex/upload',
- num: (c > 1) ? c : 1,
- dialog: {
- offset: '60px'
- },
- response: {
- code: 10000,
- smUrl: 'thumbs'
- },
- onChoose: function (choose) {
- var urls = [];
- // 元数据
- if(n[0].value !== ""){
- urls = JSON.parse(n[0].value);
- }
- // 追加数据
- $.each(choose,(i,t) => {
- urls.push(t.url);
- uploader.addItem(t.url)
- });
- n[0].value = JSON.stringify(urls);
- }
- });
- });
- });
- </script>
|