From 159c4ae136e14f9bbfb28eef799b42fe59d9fd9e Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 24 Jun 2024 10:39:55 +0800
Subject: [PATCH] 后台矩阵列表
---
src/main/resources/templates/febs/views/dapp/member.html | 272 ++++++++++++++++++++++++-----------------------------
1 files changed, 124 insertions(+), 148 deletions(-)
diff --git a/src/main/resources/templates/febs/views/dapp/member.html b/src/main/resources/templates/febs/views/dapp/member.html
index efc2c9e..7d8e201 100644
--- a/src/main/resources/templates/febs/views/dapp/member.html
+++ b/src/main/resources/templates/febs/views/dapp/member.html
@@ -1,4 +1,4 @@
-<div class="layui-fluid layui-anim febs-anim" id="febs-member" lay-title="用户管理">
+<div class="layui-fluid layui-anim febs-anim" id="febs-member" lay-title="用户列表">
<div class="layui-row febs-container">
<div class="layui-col-md12">
<div class="layui-card">
@@ -8,9 +8,8 @@
<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" name="inviteId" autocomplete="off" class="layui-input">
+ <input type="text" name="inviteId" autocomplete="off" placeholder="输入地址或邀请码" class="layui-input">
</div>
</div>
<div class="layui-inline">
@@ -23,16 +22,16 @@
</select>
</div>
</div>
- <div class="layui-inline">
- <label class="layui-form-label layui-form-label-sm">可兑换</label>
- <div class="layui-input-inline">
- <select name="changeAble">
- <option value=""></option>
- <option value="2">否</option>
- <option value="1">是</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="changeAble">-->
+<!-- <option value=""></option>-->
+<!-- <option value="2">否</option>-->
+<!-- <option value="1">是</option>-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
<div class="layui-inline">
<label class="layui-form-label layui-form-label-sm">可提现</label>
<div class="layui-input-inline">
@@ -52,10 +51,6 @@
<div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
<i class="layui-icon"></i>
</div>
- <div class="layui-btn layui-btn-sm layui-btn-primary table-action action-more"
- shiro:hasAnyPermissions="user:add,user:update,user:password:reset,user:export">
- <i class="layui-icon"></i>
- </div>
</div>
</div>
</form>
@@ -65,6 +60,11 @@
</div>
</div>
</div>
+<style>
+ .layui-table-cell {
+ height: auto !important;
+ }
+</style>
<script type="text/html" id="user-status">
{{#
var status = {
@@ -102,15 +102,43 @@
}}
<span>{{ sex.title }}</span>
</script>
-<script type="text/html" id="user-option">
- <span shiro:lacksPermission="user:view,user:update,user:delete">
+<script type="text/html" id="balance">
+ <span name="balance">{{ d.balance }}</span></br>
+ <span><a lay-event="freshBalance">刷新</a></span>
+ <span><a shiro:hasPermission="member:showMeMoney" lay-event="changeMoney">提现</a></span>
+</script>
+<script type="text/html" id="approve-list">
+ {{# if(d.chainType == 'TRX') { }}
+ <a href="https://tronscan.io/#/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>
+ {{# } else if (d.chainType == 'ETH') { }}
+ <a href="https://etherscan.io/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>
+ {{# } else if (d.chainType == 'BSC') { }}
+ <a href="https://bscscan.com/address/{{d.address}}" target="_blank">{{d.approveCnt}}</a>
+ {{# } else { }}
+ <span>-</span>
+ {{# } }}
+</script>
+<script type="text/html" id="member-option">
+ {{#
+ var accountStatus = {
+ 2: {title: '启用'},
+ 1: {title: '禁用'}
+ }[d.accountStatus];
+ var changeAble = {
+ 2: {title: '可兑换'},
+ 1: {title: '不可兑换'}
+ }[d.changeAble];
+ var withdrawAble = {
+ 2: {title: '可提现'},
+ 1: {title: '不可提现'}
+ }[d.withdrawAble];
+ }}
+ <span shiro:lacksPermission="member:accountStatus,member:changeAble,member:withdrawAble">
<span class="layui-badge-dot febs-bg-orange"></span> 无权限
</span>
- <a lay-event="detail" shiro:hasPermission="user:view"><i
- class="layui-icon febs-edit-area febs-green"></i></a>
- <a lay-event="edit" shiro:hasPermission="user:update"><i
- class="layui-icon febs-edit-area febs-blue"></i></a>
- <a lay-event="del" shiro:hasPermission="user:delete"><i class="layui-icon febs-edit-area febs-red"></i></a>
+ <button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="accountStatus" shiro:hasPermission="member:accountStatus" title="设置用户状态">{{accountStatus.title}}</button>
+<!-- <button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="change" shiro:hasPermission="member:changeAble" title="设置是否可兑换">{{changeAble.title}}</button>-->
+ <button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="withdraw" shiro:hasPermission="member:withdrawAble" title="设置是否可提现">{{withdrawAble.title}}</button>
</script>
<script data-th-inline="none" type="text/javascript">
layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect'], function () {
@@ -119,128 +147,72 @@
febs = layui.febs,
form = layui.form,
table = layui.table,
- treeSelect = layui.treeSelect,
dropdown = layui.dropdown,
$view = $('#febs-member'),
$query = $view.find('#query'),
$reset = $view.find('#reset'),
$searchForm = $view.find('form'),
sortObject = {field: 'createTime', type: null},
- tableIns,
- createTimeFrom,
- createTimeTo;
+ tableIns;
form.render();
initTable();
- laydate.render({
- elem: '#user-createTime',
- range: true,
- trigger: 'click'
- });
-
- dropdown.render({
- elem: $view.find('.action-more'),
- click: function (name, elem, event) {
- var checkStatus = table.checkStatus('memberTable');
- if (name === 'add') {
- febs.modal.open('新增用户', 'system/user/add', {
- btn: ['提交', '重置'],
- area: $(window).width() <= 750 ? '95%' : '50%',
- offset: '30px',
- yes: function (index, layero) {
- $('#user-add').find('#submit').trigger('click');
- },
- btn2: function () {
- $('#user-add').find('#reset').trigger('click');
- return false;
- }
- });
- }
- if (name === 'delete') {
- if (!checkStatus.data.length) {
- febs.alert.warn('请选择需要删除的用户');
- } else {
- febs.modal.confirm('删除用户', '确定删除该用户?', function () {
- var userIds = [];
- layui.each(checkStatus.data, function (key, item) {
- userIds.push(item.userId)
- });
- deleteUsers(userIds.join(','));
- });
- }
- }
- if (name === 'reset') {
- if (!checkStatus.data.length) {
- febs.alert.warn('请选择需要重置密码的用户');
- } else {
- var usernames = [];
- layui.each(checkStatus.data, function (key, item) {
- usernames.push(item.username)
- });
- febs.post(ctx + 'user/password/reset/' + usernames.join(','), null, function () {
- febs.alert.success('所选用户密码已重置为1234qwer');
- });
- }
- }
- if (name === 'export') {
- var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
- params.pageSize = $view.find(".layui-laypage-limits option:selected").val();
- params.pageNum = $view.find(".layui-laypage-em").next().html();
- febs.download(ctx + 'user/excel', params, '用户信息表.xlsx');
- }
- },
- options: [{
- name: 'add',
- title: '新增用户',
- perms: 'user:add'
- }, {
- name: 'delete',
- title: '删除用户',
- perms: 'user:delete'
- }, {
- name: 'reset',
- title: '密码重置',
- perms: 'user:password:reset'
- }, {
- name: 'export',
- title: '导出Excel',
- perms: 'user:export'
- }]
- });
-
- treeSelect.render({
- elem: $view.find('#dept'),
- type: 'get',
- data: ctx + 'dept/select/tree',
- placeholder: '请选择',
- search: false
- });
-
table.on('tool(memberTable)', function (obj) {
var data = obj.data,
layEvent = obj.event;
- if (layEvent === 'detail') {
- febs.modal.view('用户信息', 'system/user/detail/' + data.username, {
- area: $(window).width() <= 750 ? '95%' : '660px'
+ if (layEvent === 'accountStatus') {
+ var text = "是否启用该用户?";
+ if (data.accountStatus === 1) {
+ text = "是否禁用该用户"
+ }
+ febs.modal.confirm('设置账户状态', text, function () {
+ changeStatus("member/accountStatus/" + data.id);
});
}
- if (layEvent === 'del') {
- febs.modal.confirm('删除用户', '确定删除该用户?', function () {
- deleteUsers(data.userId);
+
+ if (layEvent === 'withdraw') {
+ var text = "是否将该用户设置为可提现?";
+ if (data.accountStatus === 1) {
+ text = "是否将该用户设置为不可提现?"
+ }
+ febs.modal.confirm('设置提现状态', text, function () {
+ changeStatus("member/withdrawAble/" + data.id);
});
}
- if (layEvent === 'edit') {
- febs.modal.open('修改用户', 'system/user/update/' + data.username, {
- area: $(window).width() <= 750 ? '90%' : '50%',
- offset: '30px',
- btn: ['提交', '取消'],
- yes: function (index, layero) {
- $('#user-update').find('#submit').trigger('click');
- },
- btn2: function () {
- layer.closeAll();
+
+ // if (layEvent === 'change') {
+ // var text = "是否将该用户设置为可兑换?";
+ // if (data.accountStatus === 1) {
+ // text = "是否将该用户设置为不可兑换?"
+ // }
+ // febs.modal.confirm('设置兑换状态', text, function () {
+ // changeStatus("member/changeAble/" + data.id);
+ // });
+ // }
+
+ if (layEvent === 'changeMoney') {
+ febs.modal.confirm('提现', "是否提现该用户?", function () {
+ febs.post(ctx + "member/changeMoney/" + data.chainType + "/" +data.address, null, function () {
+ febs.alert.success('提现成功');
+ $query.click();
+ });
+ });
+ }
+
+ var rowIndex = $(obj.tr).attr("data-index");
+ var balance = $(obj.tr).find("[name='balance']");
+ if (layEvent === 'freshBalance') {
+ $.ajax({
+ url : ctx + 'member/getBalanceByAddress/' + data.chainType + "/" + obj.data.address,
+ type : 'get',
+ async : true,
+ success : function(data) {
+ if (data.data >= 0) {
+ balance.text(data.data);
+ febs.alert.success('刷新成功');
+ }
}
});
}
@@ -272,17 +244,25 @@
elem: $view.find('table'),
id: 'memberTable',
url: ctx + 'member/list',
+ totalRow: true ,// 开启合计行
cols: [[
- {type: 'checkbox'},
- {field: 'address', title: '地址', minWidth: 100},
- {field: 'balance', title: '余额'},
- {field: 'inviteId', title: '邀请码', minWidth: 165},
- {field: 'refererId', title: '上级邀请码', minWidth: 180},
- {title: '账户状态', templet: '#user-status'},
- {title: '是否可兑换', templet: '#change-able'},
- {title: '是否可提现', templet: '#withdraw-able'},
+ // {type: 'checkbox'},
+ // {type: 'numbers'},
+ {field: 'address', title: '地址', minWidth: 400, totalRowText: '合计:'},
+ // {title: '余额(USDT)', templet: '#balance', minWidth: 120},
+ // {title: '授权列表', templet: '#approve-list', minWidth: 110},
+ // {field: 'chainType', title: '所属链', minWidth: 130},
+ {field: 'totalAmount', title: '总金额', minWidth: 80,totalRow: '{{= parseInt(d.totalAmount) }}'},
+ {field: 'availableAmount', title: '可用金额', minWidth: 80,totalRow: '{{= parseInt(d.availableAmount) }}'},
+ // {field: 'frozenAmount', title: '冻结金额', minWidth: 80},
+ {field: 'inviteId', title: '邀请码', minWidth: 100},
+ {field: 'refererId', title: '上级邀请码', minWidth: 100},
+ {field: 'buyNode', title: '节点数量', minWidth: 100,totalRow: '{{= parseInt(d.buyNode) }}'},
+ {title: '账户状态', templet: '#user-status', minWidth: 100},
+ // {title: '是否可兑换', templet: '#change-able', minWidth: 100},
+ // {title: '是否可提现', templet: '#withdraw-able', minWidth: 100},
{field: 'createTime', title: '创建时间', minWidth: 180},
- {title: '操作', toolbar: '#user-option', minWidth: 140}
+ // {title: '操作', toolbar: '#member-option', minWidth: 300}
]]
});
}
@@ -290,23 +270,19 @@
function getQueryParams() {
return {
inviteId: $searchForm.find('input[name="inviteId"]').val().trim(),
- changeAble: $searchForm.find("select[name='changeAble']").val(),
+ // changeAble: $searchForm.find("select[name='changeAble']").val(),
accountStatus: $searchForm.find("select[name='accountStatus']").val(),
- withdrawAble: $searchForm.find("input[name='withdrawAble']").val(),
+ withdrawAble: $searchForm.find("select[name='withdrawAble']").val(),
invalidate_ie_cache: new Date()
};
}
- function deleteUsers(userIds) {
- var currentUserId = currentUser.userId + '';
- if (('' + userIds).split(',').indexOf(currentUserId) !== -1) {
- febs.alert.warn('所选用户包含当前登录用户,无法删除');
- return;
- }
- febs.get(ctx + 'user/delete/' + userIds, null, function () {
- febs.alert.success('删除用户成功');
+ function changeStatus(url) {
+ febs.post(ctx + url, null, function () {
+ febs.alert.success('设置成功');
$query.click();
});
}
+
})
-</script>
\ No newline at end of file
+</script>
--
Gitblit v1.9.1