From 9b51a95fa8bc9b3a86108c6900e17fc55f8db467 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 19 May 2025 17:02:07 +0800
Subject: [PATCH] refactor(vip): 优化积分和返佣计算逻辑

---
 src/main/resources/templates/febs/views/modules/goods/goodsList.html |  207 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 165 insertions(+), 42 deletions(-)

diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsList.html b/src/main/resources/templates/febs/views/modules/goods/goodsList.html
index 6ccd99b..518d7a3 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsList.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsList.html
@@ -8,8 +8,9 @@
                             <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">
+                                            <input type="text" placeholder="商品名称" name="goodsName" autocomplete="off" class="layui-input">
                                         </div>
                                     </div>
                                 </div>
@@ -27,7 +28,23 @@
                             </div>
                         </div>
                     </form>
-                    <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table>
+                    <table lay-filter="goodsListTable" lay-data="{id: 'goodsListTable'}"></table>
+                    <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>
                 </div>
             </div>
         </div>
@@ -41,6 +58,39 @@
     <a lay-event="edit" shiro:hasPermission="user:update"><i
             class="layui-icon febs-edit-area febs-blue">&#xe7a5;</i></a>
 </script>
+<script type="text/html" id="upOrDownSwitch">
+    {{# if(d.isSale === 1) { }}
+    <input type="checkbox" value={{d.id}} lay-text="上架|下架" checked lay-skin="switch" lay-filter="upOrDownSwitch">
+    {{# } else { }}
+    <input type="checkbox" value={{d.id}} lay-text="上架|下架" lay-skin="switch" lay-filter="upOrDownSwitch">
+    {{# } }}
+</script>
+<script type="text/html" id="isHotSwitch">
+    {{# if(d.isHot === 1) { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="isHotSwitch">
+    {{# } else { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="isHotSwitch">
+    {{# } }}
+</script>
+<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="none" type="text/javascript">
     // 引入组件并初始化
@@ -54,16 +104,18 @@
             $reset = $view.find('#reset'),
             $searchForm = $view.find('form'),
             $add = $view.find('#add'),
-            sortObject = {field: 'phone', type: null},
+            sortObject = {field: 'isSale', type: 'asc'},
             tableIns;
 
         form.render();
-
+        let currPageGoods = 1;//首先默认值为1,防止出错
+        //获取当前页
+        currPageGoods = $view.find(".layui-laypage-em").next().html();
         // 表格初始化
         initTable();
 
         // 初始化表格操作栏各个按钮功能
-        table.on('tool(userTable)', function (obj) {
+        table.on('tool(goodsListTable)', function (obj) {
             var data = obj.data,
                 layEvent = obj.event;
             if (layEvent === 'downGoods') {
@@ -73,12 +125,44 @@
             }
             if (layEvent === 'upGoods') {
                 febs.modal.confirm('上架', '确认上架该商品?', function () {
-                    downGoods(data.id);
+                    upGoods(data.id);
                 });
             }
-            if (layEvent === 'see') {
-                febs.modal.open( '个人信息', 'modules/mallMember/detail/' + data.id, {
+            if (layEvent === 'delGoods') {
+                febs.modal.confirm('删除', '确认删除该商品?', function () {
+                    delGoods(data.id);
+                });
+            }
+            if (layEvent === 'detailGoods') {
+                febs.modal.open( '商品详情', 'modules/goods/detailGoods/' + data.id, {
                     maxmin: true,
+                });
+            }
+            if (layEvent === 'goodsUpdate') {
+                febs.modal.open('编辑', 'modules/goods/goodsUpdateNew/' + data.id, {
+                    btn: ['提交', '取消'],
+                    area:['100%','100%'],
+                    yes: function (index, layero) {
+                        $('#febs-update').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
+            if (layEvent === 'seeImgThumb') {
+                var t = $view.find('#seeImgThumb'+data.id+'');
+                //页面层
+                layer.open({
+                    type: 1,
+                    title: "图片",
+                    skin: 'layui-layer-rim', //加上边框
+                    area: ['80%', '80%'], //宽高
+                    shadeClose: true, //开启遮罩关闭
+                    end: function (index, layero) {
+                        return false;
+                    },
+                    content: '<div style="text-align:center"><img src="' + $(t).attr('src') + '" /></div>'
                 });
             }
         });
@@ -88,78 +172,117 @@
                 $query.click();
             });
         }
-
-
+        function delGoods(id) {
+            febs.get(ctx + 'admin/goods/delMallGoods/' + id, null, function () {
+                febs.alert.success('删除成功');
+                $query.click();
+            });
+        }
         function upGoods(id) {
             febs.get(ctx + 'admin/goods/upMallGoods/' + id, null, function () {
                 febs.alert.success('上架成功');
                 $query.click();
             });
         }
-
+        function goodsHot(id) {
+            febs.get(ctx + 'admin/goods/goodsHot/' + id, null, function () {
+                febs.alert.success('设置成功');
+                $query.click();
+            });
+        }
+        function goodsNotHot(id) {
+            febs.get(ctx + 'admin/goods/goodsNotHot/' + id, null, function () {
+                febs.alert.success('设置成功');
+                $query.click();
+            });
+        }
 
         // 查询按钮
         $query.on('click', function () {
             var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
-            tableIns.reload({where: params, page: {curr: 1}});
+            // params.pageNum = $view.find(".layui-laypage-em").next().html();
+            tableIns.reload({where: params, page: {curr: currPageGoods}});
         });
 
         // 刷新按钮
         $reset.on('click', function () {
             $searchForm[0].reset();
             sortObject.type = 'null';
-            tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
+            tableIns.reload({where: getQueryParams(), page: {curr: currPageGoods}, initSort: sortObject});
         });
 
         $add.on('click', function () {
-            febs.view.tab.change("/modules/goods/goodsAddNew/");
+            febs.modal.open('新增商品', 'modules/goods/goodsAddNew/', {
+                btn: ['提交', '取消'],
+                area:['100%','100%'],
+                yes: function (index, layero) {
+                    $('#febs-goods-add').find('#submit').trigger('click');
+                },
+                btn2: function () {
+                    layer.closeAll();
+                }
+            });
         });
 
         function initTable() {
             tableIns = febs.table.init({
                 elem: $view.find('table'),
-                id: 'userTable',
-                url: ctx + 'admin/goods/goodsList',
+                id: 'goodsListTable',
+                url: ctx + 'admin/goods/goodsList?goodsType=1',
                 cols: [[
-                    {field: 'goodsName', title: '商品名称', minWidth: 150,align:'left'},
-                //     {field: 'accountType', title: '账号类型',
-                //         templet: function (d) {
-                //             if (d.accountType === 2) {
-                //                 return '<span style="color:red;">测试账号</span>'
-                //             } else if (d.accountType === 1) {
-                //                 return '<span style="color:green;">正常账号</span>'
-                //             }else{
-                //                 return ''
-                //             }
-                //         }, minWidth: 80,align:'center'},
-                //     {field: 'accountStatus', title: '账号状态',
-                //         templet: function (d) {
-                //             if (d.accountStatus === 1) {
-                //                 return '<span style="color:green;">正常</span>'
-                //             } else if (d.accountStatus === 2) {
-                //                 return '<span style="color:red;">禁用</span>'
-                //             }else{
-                //                 return ''
-                //             }
-                //         }, minWidth: 80,align:'center'},
-                //     {field: 'createdTime', title: '注册时间', minWidth: 180,align:'center'},
+                    {field: 'goodsNo', title: '商品编号', minWidth: 100,align:'left'},
+                    {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: 'isSale', title: '是否上架', templet: '#upOrDownSwitch', minWidth: 100,align:'center'},
+                    {field: 'isHot', title: '是否主推', templet: '#isHotSwitch', minWidth: 100,align:'center'},
+                    {templet:"#goodsTypeFormat",  title: '商品类型', minWidth: 140,align:'left'},
+                    {templet:"#isSkuFormat", title: '是否多规格', minWidth: 100,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'},
                     {title: '操作',
                         templet: function (d) {
                             if (d.isSale === 1) {
-                                return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="downGoods" shiro:hasPermission="user:update">下架</button>'
+                                return '';
+                                // return '<button class="layui-btn layui-btn-normal layui-btn-xs febs-bg-orange" lay-event="downGoods" shiro:hasPermission="user:update">下架</button>'
+                                // + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detailGoods" shiro:hasPermission="user:update">详情</button>'
                             }else{
-                                return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="upGoods" shiro:hasPermission="user:update">上架</button>'
+                                // '<button class="layui-btn layui-btn-normal layui-btn-xs febs-bg-green" lay-event="upGoods" shiro:hasPermission="user:update">上架</button>'
+                                return ''
+                                + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="goodsUpdate" 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>'
 
                             }
-                        },minWidth: 300,align:'center'}
+                        },minWidth: 160,align:'center'}
                 ]]
             });
         }
 
+        form.on('switch(upOrDownSwitch)', function (data) {
+            if (data.elem.checked) {
+                upGoods(data.value);
+            } else {
+                downGoods(data.value);
+            }
+        })
+
+        form.on('switch(isHotSwitch)', function (data) {
+            if (data.elem.checked) {
+                goodsHot(data.value);
+            } else {
+                goodsNotHot(data.value);
+            }
+        })
+
         // 获取查询参数
         function getQueryParams() {
             return {
-                name: $searchForm.find('input[name="goodsName"]').val().trim(),
+                goodsName: $searchForm.find('input[name="goodsName"]').val().trim(),
             };
         }
 

--
Gitblit v1.9.1