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">&#xe848;</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">&#xe848;</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