xiaoyong931011
2021-09-28 105eb6748372c92c9c0c69aa503074b9419e0515
20210927
1 files added
2 files modified
261 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java 14 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/goods/goodsList.html 13 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/goods/goodsUpdate.html 234 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java
@@ -65,4 +65,18 @@
        model.addAttribute("mailGoodsDetail", data);
        return FebsUtil.view("modules/goods/detailGoods");
    }
    /**
     * 商品-编辑-详情
     * @param id
     * @param model
     * @return
     */
    @GetMapping("goodsUpdate/{id}")
    @RequiresPermissions("goodsUpdate:update")
    public String goodsUpdate(@PathVariable long id, Model model) {
        AdminMailGoodsDetailVo data = mallGoodsService.getMallGoodsInfoById(id);
        model.addAttribute("mailGoodsUpdate", data);
        return FebsUtil.view("modules/goods/goodsUpdate");
    }
}
src/main/resources/templates/febs/views/modules/goods/goodsList.html
@@ -98,6 +98,17 @@
                    maxmin: true,
                });
            }
            if (layEvent === 'goodsUpdate') {
                febs.modal.open('编辑', 'modules/goods/goodsUpdate/' + data.id, {
                    btn: ['提交', '取消'],
                    yes: function (index, layero) {
                        $('#goods-update').find('#submit').trigger('click');
                    },
                    btn2: function () {
                        layer.closeAll();
                    }
                });
            }
            if (layEvent === 'seeImgThumb') {
                var t = $view.find('#seeImgThumb'+data.id+'');
                //页面层
@@ -196,7 +207,7 @@
                            }else{
                                return '<button class="layui-btn layui-btn-normal layui-btn-xs febs-bg-green" lay-event="upGoods" shiro:hasPermission="user:update">上架</button>'
                                + '<button class="layui-btn layui-btn-normal layui-btn-xs febs-bg-red" lay-event="delGoods" shiro:hasPermission="user:update">删除</button>'
                                + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="updateGoods" shiro:hasPermission="user:update">编辑</button>'
                                + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="goodsUpdate" shiro:hasPermission="user:update">编辑</button>'
                            }
                        },minWidth: 300,align:'center'}
src/main/resources/templates/febs/views/modules/goods/goodsUpdate.html
New file
@@ -0,0 +1,234 @@
<style>
    #goods-update {
        padding: 20px 25px 25px 0;
    }
    #goods-update .layui-treeSelect .ztree li a, .ztree li span {
        margin: 0 0 2px 3px !important;
    }
    #goods-update #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;
    }
</style>
<div class="layui-fluid" id="goods-update">
    <form class="layui-form" action="" lay-filter="goods-update-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" class="layui-input" readonly>
                </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" class="layui-input" readonly>
                </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="parentId" class="categary-goods-update-category" id="categarySelect" readonly>
                        <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">规格:</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">
                <img alt="缩略图" data-th-src="${mailGoodsUpdate.thumb}"  style="width: 100px">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">商品详情:</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>
    </form>
</div>
<script data-th-inline="javascript">
    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','layedit'], function () {
        var $ = layui.$,
            febs = layui.febs,
            layer = layui.layer,
            formSelects = layui.formSelects,
            treeSelect = layui.treeSelect,
            form = layui.form,
            eleTree = layui.eleTree,
            mailGoodsUpdate = [[${mailGoodsUpdate}]],
            $view = $('#goods-update'),
            validate = layui.validate,
            layedit = layui.layedit,
            _deptTree;
        form.render();
        //(下拉框)
        $.get(ctx + 'admin/goodsCategory/categorys/allTree', function (data) {
            for (var k in data)
            {
                $(".categary-goods-update-category").append("<option value='" + data[k].parentId + "'>" + data[k].name + "</option>");
            }
            layui.use('form', function () {
                var form = layui.form;
                $("#categarySelect").val(mailGoodsUpdate.categoryId)
                form.render();
            });
        });
        layedit.set({    //设置图片接口
            uploadImage: {
                url: 'admin/goods/uploadFileBase64', //接口url
                type: 'post',
            }
        });
        //创建一个编辑器
        var index = layedit.build('lay_edit',{
            height: 300
        });
        //提交时把值同步到文本域中
        form.verify({
            //content富文本域中的lay-verify值
            goodsDetails: function(value) {
                return layedit.sync(index);
            }
        });
        initUserValue();
        function appendSku(sku,skuIndex){
            var index = skuIndex;
            let attrNameVal = sku.skuName;
            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">
                        <label class="layui-form-label">规格详情:</label>
                        <div class="layui-input-block layui-form-item item">
                            <div style="float:left" >
                                <div>
                                    <input type="text" class="layui-input" value="` + attrNameVal + `" readonly >
                                </div>
                            </div>
                            <div  style="float:left" >
                                <div>
                                    <img class="layui-upload-img" src="` + skuImage + `" style="width: 100px" readonly>
                                </div>
                            </div>
                            <div style="float:left" >
                                <div>
                                    <input type="text" value="` + stockVal + `" placeholder="库存" autocomplete="off" class="layui-input" readonly>
                                </div>
                            </div>
                            <div style="float:left" >
                                <div>
                                    <input type="text" value="` + skuVolume + `" placeholder="销售数量" autocomplete="off" class="layui-input" readonly>
                                </div>
                            </div>
                            <div style="float:left" >
                                <div>
                                    <input type="text" value="` + originalPrice + `" placeholder="原价" autocomplete="off" class="layui-input" readonly>
                                </div>
                            </div>
                            <div style="float:left" >
                                <div>
                                    <input type="text" value="` + presentPrice + `" placeholder="现价" autocomplete="off" class="layui-input" readonly>
                                </div>
                            </div>
                        </div>
                    </div>
            `)
        }
        function initUserValue() {
            var skuIndex = 0;
            let skuLength = mailGoodsUpdate.mailGoodsSkuDetailVo.length;
            for(var skuIndex = 0; skuIndex < skuLength; skuIndex++){
                appendSku(mailGoodsUpdate.mailGoodsSkuDetailVo[skuIndex],skuIndex);
            }
            form.val("goods-update-form", {
                "id": mailGoodsUpdate.id,
                "goodsNo": mailGoodsUpdate.goodsNo,
                "categoryId": mailGoodsUpdate.categoryId,
                "mailGoodsSkuDetailVo": mailGoodsUpdate.mailGoodsSkuDetailVo,
                "unit": mailGoodsUpdate.unit,
                "originalPrice": mailGoodsUpdate.originalPrice,
                "presentPrice": mailGoodsUpdate.presentPrice,
                "goodsIntrodution": mailGoodsUpdate.goodsIntrodution,
                "thumb": mailGoodsUpdate.thumb,
                "goodsDetails": mailGoodsUpdate.goodsDetails,
                "isHot": mailGoodsUpdate.isHot,
                "goodsName": mailGoodsUpdate.goodsName
            });
        }
    });
</script>