From ae88bca64d28e91341e00913cc2d816f889c5ec8 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Fri, 25 Jul 2025 11:18:59 +0800 Subject: [PATCH] feat(mall): 为幸福社交圈分类添加背景图片功能 --- src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html | 283 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 197 insertions(+), 86 deletions(-) diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html index 2c07876..458e70f 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html @@ -1,4 +1,4 @@ -<div class="layui-fluid layui-anim febs-anim" id="febs-member-list" lay-title="会员列表"> +<div class="layui-fluid layui-anim febs-anim" id="febs-member-list" lay-title="用户列表"> <div class="layui-row febs-container"> <div class="layui-col-md12"> <div class="layui-card"> @@ -8,32 +8,53 @@ <div class="layui-col-md10"> <div class="layui-form-item"> <div class="layui-inline"> - <label class="layui-form-label layui-form-label-sm">用户昵称</label> + <label class="layui-form-label layui-form-label-sm">用户名</label> <div class="layui-input-inline"> - <input type="text" placeholder="用户昵称" name="name" autocomplete="off" class="layui-input"> + <input type="text" placeholder="用户名" name="name" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-inline"> - <label class="layui-form-label layui-form-label-sm">手机号码</label> + <label class="layui-form-label layui-form-label-sm">联系方式</label> <div class="layui-input-inline"> - <input type="text" placeholder="手机号码" name="account" autocomplete="off" class="layui-input"> + <input type="text" placeholder="联系方式" name="phone" autocomplete="off" class="layui-input"> </div> </div> + <div class="layui-inline"> - <label class="layui-form-label layui-form-label-sm">会员类型</label> + <label class="layui-form-label layui-form-label-sm">会员等级</label> <div class="layui-input-inline"> - <select name="level"> + <select name="director" class="director-type"> <option value="">请选择</option> - <option value="ZERO_LEVEL">普通用户</option> - <option value="FIRST_LEVEL">城市合伙人</option> + </select> + </div> + </div> + + <div class="layui-inline"> + <label class="layui-form-label layui-form-label-sm">分销等级</label> + <div class="layui-input-inline"> + <select name="storeMaster" class="storeMaster-type"> + <option value="">请选择</option> </select> </div> </div> <div class="layui-inline"> - <label class="layui-form-label layui-form-label-sm">会员生日</label> + <label class="layui-form-label layui-form-label-sm">状态</label> <div class="layui-input-inline"> - <input type="text" name="birthday" id="febs-member-benefits-list-birthday-start" lay-verify="date" - placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input"> + <select name="accountStatus"> + <option value="">请选择</option> + <option value="1">启用</option> + <option value="2">停用</option> + </select> + </div> + </div> + <div class="layui-inline"> + <label class="layui-form-label layui-form-label-sm">核销员</label> + <div class="layui-input-inline"> + <select name="checkOrder"> + <option value="">请选择</option> + <option value="0">否</option> + <option value="1">是</option> + </select> </div> </div> </div> @@ -68,11 +89,11 @@ <a lay-event="edit" shiro:hasPermission="user:update"><i class="layui-icon febs-edit-area febs-blue"></i></a> </script> -<script type="text/html" id="switchStatus"> +<script type="text/html" id="accountStatusSwitch"> {{# if(d.accountStatus === 1) { }} - <input type="checkbox" value={{d.id}} lay-text="正常|禁用" checked lay-skin="switch" lay-filter="switchStatus"> + <input type="checkbox" value={{d.id}} lay-text="启用|停用" checked lay-skin="switch" lay-filter="accountStatusSwitch"> {{# } else { }} - <input type="checkbox" value={{d.id}} lay-text="正常|禁用" lay-skin="switch" lay-filter="switchStatus"> + <input type="checkbox" value={{d.id}} lay-text="启用|停用" lay-skin="switch" lay-filter="accountStatusSwitch"> {{# } }} </script> <script type="text/html" id="switchStoreMaster"> @@ -97,17 +118,49 @@ <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="isSalesmanSwitch"> {{# } }} </script> + +<script type="text/html" id="checkOrderSwitch"> + {{# if(d.checkOrder === 1) { }} + <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="checkOrderSwitch"> + {{# } else { }} + <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="checkOrderSwitch"> + {{# } }} +</script> + +<script type="text/html" id="checkLeaderSwitch"> + {{# if(d.checkLeader === 1) { }} + <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="checkLeaderSwitch"> + {{# } else { }} + <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="checkLeaderSwitch"> + {{# } }} +</script> + +<script type="text/html" id="isDoctorSwitch"> + {{# if(d.doctorState === 1) { }} + <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="isDoctorSwitch"> + {{# } else { }} + <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="isDoctorSwitch"> + {{# } }} +</script> <style> .layui-form-onswitch { background-color: #5FB878 !important; } </style> -<script type="text/html" id="toolbar"> +<script type="text/html" id="memberToolbar"> <div class="layui-btn-container"> - <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateReferer">修改推荐人</button> - <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateVipLevel">修改会员等级</button> - <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="addCoupon">优惠券派送</button> +<!-- <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateReferer">修改推荐人</button>--> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="updateMemberLevel:update" lay-event="updateMemberLevel">修改会员等级</button> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="updateSaleLevel:update" lay-event="updateSaleLevel">修改分销等级</button> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="wallet:update" lay-event="balance">余额修改</button> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="wallet:update" lay-event="prizeScore">积分修改</button> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="wallet:update" lay-event="commission">佣金修改</button> +<!-- <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="addCoupon">优惠券派送</button>--> </div> +</script> + +<script type="text/html" id="memberOption"> +<!-- <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="user:update" lay-event="memberOut">注销</button>--> </script> <!-- 表格操作栏 end --> <script data-th-inline="none" type="text/javascript"> @@ -128,11 +181,36 @@ form.render(); laydate.render({ - elem: '#febs-member-benefits-list-birthday-start' + elem: '#febs-member-benefits-list-birthday-start', + format:'MM-dd' + }); + //(下拉框) + $.get(ctx + 'admin/level/levelAll', function (res) { + var data = res.data; + for (let k in data) + { + $(".director-type").append("<option value='" + data[k].code + "'>" + data[k].name + "</option>"); + } + layui.use('form', function () { + var form = layui.form; + form.render(); + }); + }); + //(下拉框) + $.get(ctx + 'admin/level/saleLevelAll', function (res) { + var data = res.data; + for (let k in data) + { + $(".storeMaster-type").append("<option value='" + data[k].code + "'>" + data[k].name + "</option>"); + } + layui.use('form', function () { + var form = layui.form; + form.render(); + }); }); // 表格初始化 - initTable(); + initMemberListTable(); // 初始化表格操作栏各个按钮功能 table.on('tool(userTable)', function (obj) { @@ -209,13 +287,13 @@ } function closeAccount(id) { febs.get(ctx + 'admin/mallMember/closeAccount/' + id, null, function () { - febs.alert.success('禁用成功'); + febs.alert.success('操作成功'); $query.click(); }); } function openAccount(id) { febs.get(ctx + 'admin/mallMember/openAccount/' + id, null, function () { - febs.alert.success('开启成功'); + febs.alert.success('操作成功'); $query.click(); }); } @@ -240,6 +318,22 @@ }); } + form.on('switch(checkOrderSwitch)', function (data) { + if (data.elem.checked) { + checkOrder(data.value); + } else { + checkOrder(data.value); + } + }) + + form.on('switch(checkLeaderSwitch)', function (data) { + if (data.elem.checked) { + checkLeader(data.value); + } else { + checkLeader(data.value); + } + }) + form.on('switch(isSalesmanSwitch)', function (data) { if (data.elem.checked) { upSale(data.value); @@ -247,6 +341,35 @@ downSale(data.value); } }) + + form.on('switch(isDoctorSwitch)', function (data) { + if (data.elem.checked) { + doctorStateChange(data.value); + } else { + doctorStateChange(data.value); + } + }) + + function doctorStateChange(id) { + febs.get(ctx + 'admin/mallMember/doctorStateChange/' + id, null, function () { + febs.alert.success('操作成功'); + $query.click(); + }); + } + + function checkOrder(id) { + febs.get(ctx + 'admin/mallMember/checkOrder/' + id, null, function () { + febs.alert.success('操作成功'); + $query.click(); + }); + } + + function checkLeader(id) { + febs.get(ctx + 'admin/mallMember/checkLeader/' + id, null, function () { + febs.alert.success('操作成功'); + $query.click(); + }); + } function upSale(id) { febs.get(ctx + 'admin/mallMember/upSale/' + id, null, function () { @@ -274,59 +397,33 @@ tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject}); }); - function initTable() { + function initMemberListTable() { tableIns = febs.table.init({ elem: $view.find('table'), id: 'userTable', url: ctx + 'admin/mallMember/getMallMemberList', - toolbar:"#toolbar", + toolbar:"#memberToolbar", defaultToolbar:[], cols: [[ {type: 'checkbox'}, - {field: 'phone', title: '手机号码', minWidth: 150,align:'left'}, - {field: 'name', title: '用户昵称', minWidth: 100,align:'left'}, - {field: 'birthday', title: '会员生日', minWidth: 100,align:'left'}, - {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left'}, - {field: 'balance', title: '余额', minWidth: 100,align:'left'}, - // {field: 'score', title: '赠送积分', minWidth: 100,align:'left'}, - {field: 'prizeScore', title: '积分', minWidth: 100,align:'left'}, - // {field: 'commission', title: '佣金', minWidth: 100,align:'left'}, - {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'}, - {field: 'levelName', title: '会员等级', minWidth: 100,align:'left'}, - // {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'}, + {type: 'numbers', title: '', width: 80}, + {field: 'checkOrder', title: '状态', templet: '#accountStatusSwitch', minWidth: 100,align:'center'}, + {field: 'checkOrder', title: '活动核销', templet: '#checkOrderSwitch', minWidth: 100,align:'center'}, + {field: 'checkLeader', title: '自提核销', templet: '#checkLeaderSwitch', minWidth: 100,align:'center'}, {field: 'isSalesman', title: '推销员设置', templet: '#isSalesmanSwitch', minWidth: 100,align:'center'}, - // {field: 'director', title: '总监', templet:'#switchDirector', minWidth: 100}, - // {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: 100,align:'center'}, - // {field: 'leaderState', title: '是否是团长', - // templet: function (d) { - // if (d.leaderState === 1) { - // return '<span style="color:green;">团长</span>' - // }else if (d.leaderState === 3) { - // return '<span">申请中</span>' - // }else if (d.leaderState === 4) { - // return '<span">普通用户(取消团长资格)</span>' - // }else{ - // return '<span">普通用户</span>' - // } - // }, minWidth: 100,align:'center'}, - // {field: 'accountStatus', title: '账号状态', templet: '#switchStatus', minWidth: 100,align:'center'}, + // {title: '操作', toolbar: '#memberOption', minWidth: 200, align: 'center'}, + {field: 'name', title: '用户名', minWidth: 100,align:'center'}, + {field: 'realName', title: '真实姓名', minWidth: 100,align:'center'}, + {field: 'phone', title: '联系方式', minWidth: 150,align:'center'}, + {field: 'balance', title: '余额', minWidth: 150,align:'center'}, + {field: 'score', title: '会员经验', minWidth: 150,align:'center'}, + {field: 'prizeScore', title: '积分', minWidth: 150,align:'center'}, + {field: 'commission', title: '可用佣金', minWidth: 150,align:'center'}, + {field: 'totalScore', title: '总佣金', minWidth: 150,align:'center'}, + {field: 'directorName', title: '会员等级', minWidth: 150,align:'center'}, + {field: 'storeMasterName', title: '分销等级', minWidth: 150,align:'center'}, + {field: 'inviteId', title: '邀请码', minWidth: 100,align:'center'}, {field: 'createdTime', title: '注册时间', minWidth: 180,align:'center'}, - {title: '操作', - templet: function (d) { - return '' - +'<button class="layui-btn layui-btn-normal layui-btn-xs febs-bg-red" lay-event="memberOut" shiro:hasPermission="user:update">注销</button>' - // + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addLeader" shiro:hasPermission="user:update">设置为团长</button>' - - },minWidth: 200,align:'center'} ]] }); } @@ -371,16 +468,29 @@ }); } - if (layEvent === 'updateVipLevel') { + if (layEvent === 'updateSaleLevel') { var checkData = table.checkStatus('userTable').data; if (checkData.length > 1) { febs.alert.warn('每次只能修改一个用户'); return; } - // var idList = []; - // for (var i = 0; i < checkData.length; i++) { - // idList.push(checkData[i].id); - // } + febs.modal.open('设置分销等级', 'modules/mallMember/saleLevelSetting/' + checkData[0].id, { + btn: ['确认', '取消'], + yes: function (index, layero) { + $('#sale-level-set').find('#submit').trigger('click'); + }, + btn2: function () { + layer.closeAll(); + } + }); + } + + if (layEvent === 'updateMemberLevel') { + var checkData = table.checkStatus('userTable').data; + if (checkData.length > 1) { + febs.alert.warn('每次只能修改一个用户'); + return; + } febs.modal.open('设置会员等级', 'modules/mallMember/vipLevelSetting/' + checkData[0].id, { btn: ['确认', '取消'], yes: function (index, layero) { @@ -417,21 +527,21 @@ if (checkData.length > 1) { febs.alert.warn('请选择一个用户'); } - systemPay("修改余额", checkData[0].id, 1); - } - - if (layEvent === 'score') { - if (checkData.length > 1) { - febs.alert.warn('请选择一个用户'); - } - systemPay("修改赠送积分", checkData[0].id, 2); + systemPay("余额", checkData[0].id, 1); } if (layEvent === 'prizeScore') { if (checkData.length > 1) { febs.alert.warn('请选择一个用户'); } - systemPay("修改竞猜积分", checkData[0].id, 3); + systemPay("积分", checkData[0].id, 2); + } + + if (layEvent === 'commission') { + if (checkData.length > 1) { + febs.alert.warn('请选择一个用户'); + } + systemPay("佣金", checkData[0].id, 3); } if (layEvent === 'agentLevel') { @@ -475,14 +585,15 @@ function getQueryParams() { return { name: $searchForm.find('input[name="name"]').val().trim(), - account: $searchForm.find('input[name="account"]').val().trim(), - level: $searchForm.find("select[name='level']").val(), - birthday: $searchForm.find("input[name='birthday']").val(), - // level: $searchForm.find("select[name='level']").val(), + phone: $searchForm.find('input[name="phone"]').val().trim(), + checkOrder: $searchForm.find("select[name='checkOrder']").val(), + accountStatus: $searchForm.find("select[name='accountStatus']").val(), + director: $searchForm.find("select[name='director']").val(), + storeMaster: $searchForm.find("select[name='storeMaster']").val(), }; } - form.on('switch(switchStatus)', function (data) { + form.on('switch(accountStatusSwitch)', function (data) { if (data.elem.checked) { openAccount(data.value); } else { -- Gitblit v1.9.1