From 7b9794e5ca2596692fae1e733c989376c90b2aeb Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Fri, 19 Jan 2024 01:36:25 +0800 Subject: [PATCH] fix --- src/main/resources/templates/febs/views/modules/vip/coupon-select.html | 92 ++++++ src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipBenefitsController.java | 12 src/main/resources/templates/febs/views/modules/vip/vipBenefits-list.html | 11 src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java | 8 src/main/resources/templates/febs/views/modules/vip/vipBenefits-add.html | 478 +++++++++++++++++++++++++++++++ src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java | 21 + src/main/resources/templates/febs/views/modules/vip/goods-select-list.html | 229 +++++++++++++++ 7 files changed, 837 insertions(+), 14 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipBenefitsController.java b/src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipBenefitsController.java index fbc0eb5..dbe476f 100644 --- a/src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipBenefitsController.java +++ b/src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipBenefitsController.java @@ -4,14 +4,12 @@ import cc.mrbird.febs.common.controller.BaseController; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.vip.entity.MallVipBenefits; import cc.mrbird.febs.vip.service.IMallVipBenefitsService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.Map; @@ -37,4 +35,10 @@ public FebsResponse getById(@PathVariable("id") Long id) { return new FebsResponse().success().data(mallVipBenefitsService.findVipBenefitsById(id)); } + + @PostMapping("/addBenefits") + public FebsResponse addBenefits(@RequestBody MallVipBenefits mallVipBenefits) { + System.out.println(1111); + return new FebsResponse().success(); + } } diff --git a/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java b/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java index be63da8..a4b0048f 100644 --- a/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java +++ b/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java @@ -4,7 +4,9 @@ import cc.mrbird.febs.common.utils.FebsUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @Controller("mallVipConfig") @@ -17,4 +19,23 @@ public String benefitsList() { return FebsUtil.view("modules/vip/vipBenefits-list"); } + + @GetMapping(value = "/vipBenefitsAdd") + public String vipBenefitsAdd() { + return FebsUtil.view("modules/vip/vipBenefits-add"); + } + + + @GetMapping(value = "/goodsSelect/{index}") + public String goodsSelect(@PathVariable("index") String index, Model model) { + model.addAttribute("tableIndex", index); + return FebsUtil.view("modules/vip/goods-select-list"); + } + + + @GetMapping(value = "/couponSelect/{index}") + public String couponSelect(@PathVariable("index") String index, Model model) { + model.addAttribute("tableIndex", index); + return FebsUtil.view("modules/vip/coupon-select"); + } } diff --git a/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java b/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java index b3ec2c7..b9bc408 100644 --- a/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java +++ b/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import java.math.BigDecimal; import java.util.List; @Data @@ -29,7 +30,12 @@ /** * 积分倍数 */ - private String multiple; + private BigDecimal scoreMultiple; + + /** + * 获取途径 1-会员日 2-生日 + */ + private Integer gainType; /** * 权益备注 diff --git a/src/main/resources/templates/febs/views/modules/vip/coupon-select.html b/src/main/resources/templates/febs/views/modules/vip/coupon-select.html new file mode 100644 index 0000000..dacc5b3 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/vip/coupon-select.html @@ -0,0 +1,92 @@ +<style> + #vip-coupon-select { + padding: 20px 25px 25px 0; + } + + #vip-coupon-select .layui-treeSelect .ztree li a, .ztree li span { + margin: 0 0 2px 3px !important; + } + #vip-coupon-select #data-permission-tree-block { + border: 1px solid #eee; + border-radius: 2px; + padding: 3px 0; + } + #vip-coupon-select .layui-treeSelect .ztree li span.button.switch { + top: 1px; + left: 3px; + } + #vip-coupon-select img{ + max-width:100px + } + +</style> +<div class="layui-fluid" id="vip-coupon-select"> + <form class="layui-form" action="" lay-filter="vip-coupon-select-form"> + + <div class="layui-form-item"> + <label class="layui-form-label">优惠卷:</label> + <div class="layui-input-inline"> + <select name="couponId" class="vip-coupon-select-category" id="couponCategarySelect" lay-filter="coupon-select"> + <option value="">请选择</option> + </select> + </div> + </div> + + <div class="layui-form-item febs-hide"> + <button class="layui-btn" lay-submit="" lay-filter="vip-coupon-select-form-submit" id="submit"></button> + </div> + </form> +</div> + +<script data-th-inline="javascript"> + layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate','upload'], function () { + var $ = layui.$, + febs = layui.febs, + layer = layui.layer, + formSelects = layui.formSelects, + treeSelect = layui.treeSelect, + form = layui.form, + laydate = layui.laydate, + eleTree = layui.eleTree, + tableIndex = [[${tableIndex}]], + $view = $('#vip-coupon-select'), + upload = layui.upload, + selectData, + couponList, + validate = layui.validate; + + form.render(); + laydate.render({ + elem: '#febs-form-group-date' + }); + + formSelects.render(); + + //(下拉框) + $.get(ctx + 'admin/goods/coupon/tree', function (data) { + couponList = data; + for (var k in data) + { + $(".vip-coupon-select-category").append("<option value='" + data[k].couponId + "'>" + data[k].couponName + "</option>"); + } + layui.use('form', function () { + var form = layui.form; + $("#couponCategarySelect").val('') + form.render(); + }); + }); + + form.on('select(coupon-select)', function(data) { + for(var i = 0; i<couponList.length; i++) { + if (data.value == couponList[i].couponId) { + selectData = couponList[i]; + } + } + }); + + form.on('submit(vip-coupon-select-form-submit)', function (data) { + console.log(1111); + parent.setCouponSelect(tableIndex, selectData) + }); + }); +</script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/vip/goods-select-list.html b/src/main/resources/templates/febs/views/modules/vip/goods-select-list.html new file mode 100644 index 0000000..b711d4f --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/vip/goods-select-list.html @@ -0,0 +1,229 @@ +<div class="layui-fluid layui-anim febs-anim" id="febs-select-goods" lay-title="商品列表"> + <div class="layui-row febs-container"> + <div class="layui-col-md12"> + <div class="layui-tab layui-tab-brief" lay-filter="goods-select-tab"> + <ul class="layui-tab-title"> + <li class="layui-this">付费商品</li> + <li>积分商品</li> + </ul> + <div class="layui-tab-content"> + <div class="layui-tab-item layui-show"> + <div class="layui-card"> + <div class="layui-card-body febs-table-full"> + <form class="layui-form layui-table-form" lay-filter="goods-select-table-form" id="form"> + <div class="layui-row"> + <div class="layui-col-md10"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label layui-form-label-sm">商品名称</label> + <div class="layui-input-inline"> + <input type="text" placeholder="商品名称" name="goodsName" autocomplete="off" class="layui-input"> + </div> + </div> + </div> + </div> + <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query"> + <i class="layui-icon"></i> + </div> + </div> + </div> + </form> + <table lay-filter="goodsListTable" id="goodsListTable" lay-data="{id: 'goodsListTable'}"></table> + </div> + </div> + </div> + + <div class="layui-tab-item"> + <div class="layui-card"> + <div class="layui-card-body febs-table-full" id="scoreForm"> + <form class="layui-form layui-table-form" lay-filter="goods-select-table-form"> + <div class="layui-row"> + <div class="layui-col-md10"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label layui-form-label-sm">商品名称</label> + <div class="layui-input-inline"> + <input type="text" placeholder="商品名称" name="goodsName" autocomplete="off" class="layui-input"> + </div> + </div> + </div> + </div> + <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="scoreQuery"> + <i class="layui-icon"></i> + </div> + </div> + </div> + </form> + <table lay-filter="scoreGoodsListTable" id="scoreGoodsListTable" lay-data="{id: 'scoreGoodsListTable'}"></table> + </div> + </div> + </div> + </div> + </div> + </div> + + <div class="layui-form-item febs-hide"> + <button class="layui-btn" id="goods-select-form-submit"></button> + <button class="layui-btn" id="goods-select-close"></button> + </div> + </div> +</div> +<style type="text/css"> + .layui-table-cell{ + text-align:center; + height: auto; + white-space: nowrap; /*文本不会换行,在同一行显示*/ + overflow: hidden; /*超出隐藏*/ + text-overflow: ellipsis; /*省略号显示*/ + } + .layui-table img{ + max-width:100px + } + ::-webkit-scrollbar { + height: 20px !important; + background-color: #f4f4f4; + } +</style> +<script type="text/html" id="isSkuFormat"> + {{# if(d.isSku === 1) { }} + <span>是</span> + {{# } else { }} + <span>否</span> + {{# } }} +</script> +<script type="text/html" id="goodsTypeFormat"> + {{# if(d.isNormal == 1) { }} + <span>普通商品</span> + {{# } else { }} + <span>套餐</span> + {{# } }} +</script> +<style> + .layui-form-onswitch { + background-color: #5FB878 !important; + } +</style> +<!-- 表格操作栏 end --> +<script data-th-inline="javascript" type="text/javascript"> + // 引入组件并初始化 + layui.use([ 'jquery', 'form', 'table', 'febs'], function () { + var $ = layui.jquery, + febs = layui.febs, + form = layui.form, + table = layui.table, + element = layui.element, + $view = $('#febs-select-goods'), + $query = $view.find('#query'), + $searchForm = $view.find('#form'), + $scoreSearchForm = $view.find('#scoreForm'), + $scoreQuery = $view.find('#scoreQuery'), + sortObject = {field: 'isSale', type: 'asc'}, + tableIns, + tableIndex = [[${tableIndex}]], + tableSelect = 'goodsListTable', + scoreTableIns; + + form.render(); + let currPageGoods = 1;//首先默认值为1,防止出错 + //获取当前页 + currPageGoods = $view.find(".layui-laypage-em").next().html(); + // 表格初始化 + initTable(); + initScoreTable(); + + // 查询按钮 + $query.on('click', function () { + var params = $.extend(getQueryParams($searchForm), {field: sortObject.field, order: sortObject.type}); + tableIns.reload({where: params, page: {curr: 1}}); + }); + + // 查询按钮 + $scoreQuery.on('click', function () { + var params = $.extend(getQueryParams($scoreSearchForm), {field: sortObject.field, order: sortObject.type}); + scoreTableIns.reload({where: params, page: {curr: 1}}); + }); + + function initTable() { + var tableFeilds = [ + {type: 'radio', title: ''}, + {field: 'goodsName', title: '商品名称', minWidth: 140,align:'left'}, + {field: 'thumb', title: '缩略图', + templet: function (d) { + return '<a lay-event="seeImgThumb"><img id="seeImgThumb'+d.id+'" src="'+d.thumb+'" alt=""></a>'; + }, minWidth: 150,align:'center'}, + {field: 'categaryName', title: '分类', minWidth: 140,align:'left'}, + {templet:"#goodsTypeFormat", title: '商品类型', minWidth: 140,align:'left'}, + {field: 'presentPrice', title: '现价', minWidth: 100,align:'left'}, + {field: 'originalPrice', title: '原价', minWidth: 100,align:'left'}, + {field: 'stock', title: '商品库存', minWidth: 100,align:'left'}, + {field: 'skuVolume', title: '商品销量', minWidth: 100,align:'left'}, + ]; + + tableIns = febs.table.init({ + elem: $("#goodsListTable"), + id: 'goodsListTable', + url: ctx + 'admin/goods/goodsList?goodsType=1&isSale=1', + cols: [tableFeilds] + }); + } + + // table.on('row(goodsListTable)', function(obj){ + // var data = obj.data; // 获取当前行数据 + // + // console.log(obj) + // // obj.setRowChecked({ + // // type: 'radio' + // // }); + // }); + + function initScoreTable() { + var scoreFields = [ + {type: 'radio', title: ''}, + {field: 'goodsName', title: '商品名称', minWidth: 140,align:'left'}, + {field: 'thumb', title: '缩略图', + templet: function (d) { + return '<a lay-event="seeImgThumb"><img id="seeImgThumb'+d.id+'" src="'+d.thumb+'" alt=""></a>'; + }, minWidth: 150,align:'center'}, + {field: 'categaryName', title: '分类', minWidth: 140,align:'left'}, + {field: 'presentPrice', title: '现价', minWidth: 100,align:'left'}, + {field: 'originalPrice', title: '原价', minWidth: 100,align:'left'}, + {field: 'stock', title: '商品库存', minWidth: 100,align:'left'}, + {field: 'skuVolume', title: '商品销量', minWidth: 100,align:'left'}, + ] + + scoreTableIns = febs.table.init({ + elem: $("#scoreGoodsListTable"), + id: 'scoreGoodsListTable', + url: ctx + 'admin/goods/goodsList?goodsType=2&isSale=1', + cols: [scoreFields] + }); + } + + // 获取查询参数 + function getQueryParams(elem) { + return { + goodsName: elem.find('input[name="goodsName"]').val().trim(), + }; + } + + $("#goods-select-form-submit").on('click', function() { + var checkData = table.checkStatus(tableSelect).data; + if (checkData.length > 0) { + parent.setGoodsSelect(tableIndex, checkData[0]); + } + }) + + element.on('tab(goods-select-tab)', function(data) { + if (data.index == 0) { + tableSelect = 'goodsListTable'; + } + + if (data.index == 1) { + tableSelect = 'scoreGoodsListTable'; + } + }); + + }) +</script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/vip/vipBenefits-add.html b/src/main/resources/templates/febs/views/modules/vip/vipBenefits-add.html new file mode 100644 index 0000000..79db64e --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/vip/vipBenefits-add.html @@ -0,0 +1,478 @@ +<div class="layui-fluid layui-anim febs-anim" id="febs-vipBenefits-add" lay-title="新增会员权益"> + <div class="layui-row febs-container"> + <div class="layui-col-md12"> + <div class="layui-fluid" id="act-add"> + <form class="layui-form" action="" lay-filter="vipBenefits-add-form"> + <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="name" 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"> + <select name="gainType" class="gain-type" lay-filter="gain-type-select"> + <option value="1">会员日</option> + <option value="2">会员生日</option> + </select> + </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"> + <select name="type" class="benefits-type" lay-filter="benefits-type-select"> + <option value="1">积分</option> + <option value="2">其他</option> + </select> + </div> + </div> + + <div class="layui-col-lg6" id="scoreMultiple"> + <label class="layui-form-label febs-form-item-require">积分倍数:</label> + <div class="layui-input-block"> + <input type="text" name="scoreMultiple" placeholder="" autocomplete="off" class="layui-input"> + </div> + </div> + </div> + + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">权益ICON</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"> + <img class="layui-upload-img" id="demo2" style="width: 100px" > + </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="benefitsIcon" lay-verify="required" name="icon" autocomplete="off" class="layui-input" readonly> + </div> + </div> + + <div class="layui-form-item"> + <label class="layui-form-label">备注:</label> + <div class="layui-input-block"> + <label> + <textarea name="remark" rows="5" autocomplete="off" class="layui-textarea" ></textarea> + </label> + </div> + </div> + + <blockquote class="layui-elem-quote blue-border">权益详情页面设置</blockquote> + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg3"> + <label class="layui-form-label">是否可点击</label> + <div class="layui-input-block"> + <input type="radio" name="isClick" value="1" title="是" lay-filter="isClick"/> + <input type="radio" name="isClick" value="2" title="否" lay-filter="isClick" checked /> + </div> + </div> + <div class="layui-col-lg3 febs-hide" id="linkTypeDiv"> + <label class="layui-form-label febs-form-item-require">点击类型</label> + <div class="layui-input-block"> + <select name="linkType" class="linkType" lay-filter="link-type-select"> + <option value="">请选择</option> + <option value="1">链接</option> + <option value="2">领取商品</option> + <option value="3">优惠券</option> + </select> + </div> + </div> + <div class="layui-col-lg6"> + <button type="button" class="layui-btn layui-btn-normal layui-btn" id="addBenefits" >添加</button> + </div> + + <div class="layui-form-item"> + <table id="benefitsDetailsItem" lay-filter="benefitsDetailsItem"></table> + </div> + </div> + </div> + + <div class="layui-form-item febs-hide"> + <button class="layui-btn" lay-submit="" lay-filter="vipBenefits-add-form-submit" id="submit">保存</button> + </div> + </form> + </div> + </div> + </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="delAct">删除</button> + </div> +</script> +<script type="text/html" id="awardtableImgUpload"> + <div class="layui-upload"> + <button type="button" class="layui-btn layui-btn-normal layui-btn-xs sku-img" id="awardImg{{d.index}}">上传</button></br> + <img class="layui-upload-img" id="awardImageUrls{{d.index}}" style="width: 100px; display:none;" src="{{d.image}}" > + <input type="text" id="awardImage{{d.index}}" name="awardImage{{d.index}}" autocomplete="off" value="{{d.image}}" class="layui-input febs-hide"> + </div> +</script> + +<!--<script type="text/html" id="seqInput">--> +<!-- <input type="text" name="seq" autocomplete="off" class="layui-input">--> +<!--</script>--> +<!-- 表格操作栏 end --> +<script data-th-inline="javascript"> + layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','dropdown', 'laydate', 'layedit', 'upload', 'element', 'table', 'xmSelect'], 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, + $view = $('#febs-vip-benefits'), + layedit = layui.layedit, + upload = layui.upload, + validate = layui.validate, + element = layui.element; + + form.render(); + formSelects.render(); + + //图片上传 + upload.render({ + elem: '#test2' + ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 + ,done: function(res){ + $('#demo2').attr('src', res.data.src); + $("#benefitsIcon").val(res.data.src); + } + }); + + var tableBenefitsItemsData=[]; + var tableIns = table.render({ + elem: '#benefitsDetailsItem' + ,limit:999 + ,toolbar:"#toolbar" + ,defaultToolbar:[] + ,cols: [[ //表头 + {type: 'checkbox'} + ,{field: 'index', title: '序号', width:70} + ,{field: 'isClick', title: '是否可点击', + templet: function (d) { + if (d.isClick == '1') { + return '<span>是</span>' + } else if (d.isClick == '2') { + return '<span>否</span>' + }else{ + return '' + } + }, minWidth: 80,align:'center'} + ,{field: 'seq', title: '排序', edit:'text'} + ,{templet: '#awardtableImgUpload', title: '详情图片', width:150} + ,{templet: '#detailsEvent', title: '操作对应属性'} + ,{field: 'linkType', title: '类型', + templet: function (d) { + if (d.linkType == '1') { + return '<span>链接</span>' + } else if (d.linkType == '2') { + return '<span>指定商品</span>' + }else if (d.linkType == '3') { + return '<span>优惠券</span>' + }else{ + return '' + } + }, minWidth: 80,align:'center'} + ]] + ,data: [] + }); + + table.on('toolbar(benefitsDetailsItem)', function(obj){ + var data = obj.data; + + var hasData = table.cache['benefitsDetailsItem']; + var checkData = table.checkStatus('benefitsDetailsItem').data; + + if (checkData.length <= 0) { + febs.alert.warn('请选择删除数据'); + return; + } + if(obj.event === 'delAct'){ + for (let i = 0; i < checkData.length; i++) { + var delData = checkData[i]; + for (let j = 0; j < hasData.length; j++) { + if (hasData[j].index == delData.index) { + hasData.splice(j, 1); + break; + } + } + } + + for (let i = 0; i < hasData.length; i++) { + hasData[i].index = i + 1; + } + + tableBenefitsItemsData=hasData; + reloadTable(hasData); + } + }); + + function addTableDate(data) { + var hasData = table.cache['benefitsDetailsItem']; + + data.index = hasData.length + 1; + data.contentName = '' + data.content = '' + tableBenefitsItemsData.push(data); + + reloadTable(tableBenefitsItemsData); + return data.index; + } + + function reloadTable(data) { + table.reload('benefitsDetailsItem', { + data : data + }); + + for (let i = 0; i < data.length; i++) { + if (data[i].image) { + $('#awardImageUrls'+ (i+1)).css('display','block'); + } + // 重新绑定图片上传 + bindUpload(i+1); + } + } + + table.on('edit(benefitsDetailsItem)', function(obj){ + var value = obj.value //得到修改后的值 + ,data = obj.data //得到所在行所有键值 + ,field = obj.field; //得到字段 + + for (let i = 0; i < tableBenefitsItemsData.length; i++) { + if (tableBenefitsItemsData[i].index == data.index) { + tableBenefitsItemsData[i] = data; + } + } + }); + + function listenerLinkContent() { + var hasData = table.cache['benefitsDetailsItem']; + + $(".linkContent").each(function(index, elem) { + var dataIndex = $(this).attr('data-index'); + var $this = $(this); + $(this).on('blur', function() { + var data = $this.val(); + hasData[dataIndex - 1].content = data; + + tableBenefitsItemsData = hasData; + }) + }); + } + + function listenerGoodsSelect() { + var hasData = table.cache['benefitsDetailsItem']; + + $(".goodsSelect").each(function(index, elem) { + var dataIndex = $(this).attr('data-index'); + $(this).on('click', function() { + febs.modal.open('选择商品', 'modules/vip/config/goodsSelect/' + dataIndex, { + btn: ['提交', '取消'], + yes: function (index, layero) { + $('#febs-select-goods').find('#goods-select-form-submit').trigger('click'); + layer.close(index); + }, + btn2: function () { + } + }); + }) + }); + } + + function listenerCouponSelect() { + $(".couponSelect").each(function(index, elem) { + var dataIndex = $(this).attr('data-index'); + $(this).on('click', function() { + febs.modal.open('选择优惠券', 'modules/vip/config/couponSelect/' + dataIndex, { + btn: ['提交', '取消'], + yes: function (index, layero) { + $('#vip-coupon-select').find('#submit').trigger('click'); + layer.close(index); + }, + btn2: function () { + } + }); + }) + }); + } + + $('#addBenefits').on('click', function (){ + var isClickVal = $("input[name='isClick']:checked").val(); + var linkTypeVal = $("select[name='linkType']").val(); + if(isClickVal == 1 && (linkTypeVal == null || linkTypeVal == "")) { + febs.alert.warn('链接类型不能为空'); + return false; + } + + + var data = {}; + data.linkType = linkTypeVal; + data.isClick = isClickVal; + addTableDate(data); + + if (linkTypeVal == 1) { + listenerLinkContent(); + } + + if (linkTypeVal == 2) { + listenerGoodsSelect(); + } + + if (linkTypeVal == 3) { + listenerCouponSelect(); + } + + }); + + function bindUpload(index) { + // 普通图片上传 + upload.render({ + elem: '#awardImg' + index + ,url: ctx + 'admin/goods/uploadFileBase64' //改成您自己的上传接口 + ,done: function(res){ + febs.alert.success("上传成功"); + $('#awardImageUrls' + index).attr('src', res.data.src); + $('#awardImageUrls'+ index).css('display','block'); + $('#awardImage'+ index).val(res.data.src); + + for (let i = 0; i < tableBenefitsItemsData.length; i++) { + if(tableBenefitsItemsData[i].index == index) { + tableBenefitsItemsData[i].image = res.data.src; + } + } + + reloadTable(tableBenefitsItemsData); + } + }); + } + + form.on('radio(isClick)', function(data) { + if (data.value == 2) { + $('#linkTypeDiv').hide(); + } else { + $('#linkTypeDiv').show(); + } + }); + + form.on('select(benefits-type-select)', function(data) { + if (data.value == 1) { + $('#scoreMultiple').show(); + } else { + $('#scoreMultiple').hide(); + } + }); + + form.on('submit(vipBenefits-add-form-submit)', function (data) { + data.field.details = tableBenefitsItemsData; + $.ajax({ + 'url':ctx + 'admin/vip/benefits/addBenefits', + '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==200){ + layer.closeAll(); + febs.alert.success(data.message); + $('#febs-act').find('#reset').click(); + }else{ + febs.alert.warn(data.message); + } + }, + 'error':function () { + febs.alert.warn('服务器繁忙'); + } + }) + return false; + }); + + window.setGoodsSelect = function(tableIndex, data) { + var hasData = table.cache['benefitsDetailsItem']; + + for(var i = 0; i<hasData.length; i++) { + if (tableIndex == hasData[i].index) { + hasData[i].content = data.id; + hasData[i].contentName = data.goodsName + } + } + + tableBenefitsItemsData = hasData; + $(".goodsSelect").each(function(index, elem) { + var dataIndex = $(this).attr('data-index'); + if (dataIndex == tableIndex) { + $(this).val(data.goodsName); + $(this).next().val(data.id); + } + }); + } + + window.setCouponSelect = function(tableIndex, data) { + var hasData = table.cache['benefitsDetailsItem']; + + for(var i = 0; i<hasData.length; i++) { + if (tableIndex == hasData[i].index) { + hasData[i].content = data.couponId; + hasData[i].contentName = data.couponName + } + } + + tableBenefitsItemsData = hasData; + console.log(tableBenefitsItemsData) + $(".couponSelect").each(function(index, elem) { + var dataIndex = $(this).attr('data-index'); + if (dataIndex == tableIndex) { + $(this).val(data.couponName); + $(this).next().val(data.couponId); + } + }); + } + + }); +</script> + + +<script type="text/html" id="detailsEvent"> + {{# if(d.isClick == 1 && d.linkType == 1){ }} + <input type="text" name="content" autocomplete="off" data-index="{{d.index}}" value="{{d.content}}" class="layui-input linkContent"> + {{# } }} + {{# if( d.isClick == 1 && d.linkType == 2){ }} + <input type="text" autocomplete="off" name="contentName" data-index="{{d.index}}" value="{{d.contentName}}" class="layui-input goodsSelect" readonly> + <input type="text" name="content" autocomplete="off" value="{{d.content}}" class="layui-input goodsSelectId febs-hide" readonly> + {{# } }} + {{# if(d.isClick == 1 && d.linkType == 3){ }} + <input type="text" name="contentName" autocomplete="off" data-index="{{d.index}}" value="{{d.contentName}}" class="layui-input couponSelect" readonly> + <input type="text" name="content" autocomplete="off" value="{{d.content}}" class="layui-input couponSelectId febs-hide" readonly> + {{# } }} +</script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/vip/vipBenefits-list.html b/src/main/resources/templates/febs/views/modules/vip/vipBenefits-list.html index b6be61c..a4b3f90 100644 --- a/src/main/resources/templates/febs/views/modules/vip/vipBenefits-list.html +++ b/src/main/resources/templates/febs/views/modules/vip/vipBenefits-list.html @@ -32,13 +32,6 @@ background-color: #5FB878 !important; } </style> -<script type="text/html" id="isTopSwitch"> - {{# if(d.isTop === 1) { }} - <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="isTopSwitch"> - {{# } else { }} - <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="isTopSwitch"> - {{# } }} -</script> <!-- 表格操作栏 start --> <script type="text/html" id="user-option"> <span shiro:lacksPermission="vipBenefits:view,vipBenefits:update,vipBenefits:delete"> @@ -111,10 +104,10 @@ }); $add.on('click', function () { - febs.modal.open('新增', 'modules/news/newsInfoAdd/', { + febs.modal.open('新增', 'modules/vip/config/vipBenefitsAdd/', { btn: ['提交', '取消'], yes: function (index, layero) { - $('#newsInfo-add').find('#submit').trigger('click'); + $('#febs-vipBenefits-add').find('#submit').trigger('click'); }, btn2: function () { layer.closeAll(); -- Gitblit v1.9.1