Administrator
2025-04-23 595b7935a30e84fba1bc3561d05f9d19d3e32e1f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<!DOCTYPE html>
<html>
 
<head>
    <meta charset="UTF-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport"
          content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
    <title>积分兑换记录管理</title>
    <link rel="stylesheet" type="text/css" href="layui/css/layui.css"/>
    <link rel="stylesheet" type="text/css" href="css/admin.css"/>
</head>
 
<body>
<div class="page-content-wrap">
    <form class="layui-form" action="" lay-filter='search'>
        <div class="layui-form-item">
            <div class="layui-inline">
                <input type="text" name="uid" id="uid" placeholder="用户ID" autocomplete="off" class="layui-input">
            </div>
            <div class="layui-inline">
                <select name="status" id="status">
                    <option value="">全部状态</option>
                    <option value="0">未审核</option>
                    <option value="1">已通过</option>
                    <option value="2">已拒绝</option>
                </select>
            </div>
            <div class="layui-inline">
                <input type="text" name="start_date" id="start_date" placeholder="开始日期" autocomplete="off" class="layui-input">
            </div>
            <div class="layui-inline">
                <input type="text" name="end_date" id="end_date" placeholder="结束日期" autocomplete="off" class="layui-input">
            </div>
            <div class="layui-inline">
                <button class="layui-btn layui-btn-normal" lay-submit lay-filter="search" id="search"><i
                        class="layui-icon layui-icon-search"></i>搜索
                </button>
            </div>
            <div class="layui-inline">
                <button class="layui-btn layui-btn-warm" id="approve-btn">批量通过</button>
            </div>
            <div class="layui-inline">
                <button class="layui-btn layui-btn-danger" id="reject-btn">批量驳回</button>
            </div>
        </div>
    </form>
    <div class="layui-form" id="table-list">
        <table class="layui-table" lay-even lay-skin="nob" id="table">
        </table>
    </div>
</div>
 
<script src="layui/layui.js" type="text/javascript" charset="utf-8"></script>
<script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/http_api.js"></script>
<script type="text/html" id="toolbarDemo">
    <div class="layui-btn-container">
<!--        <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>-->
<!--        <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>-->
<!--        <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>-->
    </div>
</script>
<script>
    layui.use(['form', 'jquery', 'layer', 'table', 'laydate'], function () {
        var table = layui.table;
        var form = layui.form;
        var $ = layui.jquery;
        var laydate = layui.laydate;
 
        // 初始化日期选择器
        laydate.render({elem: '#start_date', type: 'date'});
        laydate.render({elem: '#end_date', type: 'date'});
 
        let table_option = {
            elem: '#table',
            url: '/admin/api/credit/exchange-record/list', // 数据接口
            parseData: function (res) {
                return {
                    "code": res.code, // 解析接口状态
                    "msg": res.msg, // 解析提示文本
                    "count": res.data.count, // 解析数据长度
                    "data": res.data.list // 解析数据列表
                };
            },
            toolbar: '#toolbarDemo',
            defaultToolbar: ['filter', 'exports', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
                title: '提示'
                ,layEvent: 'LAYTABLE_TIPS'
                ,icon: 'layui-icon-tips'
            }],
            page: true, // 开启分页
            cols: [
                [
                    {type:'checkbox',fixed: 'left'},
                    {field: 'id', title: 'ID', width: 100},
                    {field: 'uid', title: '用户ID', width: 150},
                    {field: 'exchangeType', title: '兑换类型', width: 150},
                    {field: 'exchangeValue', title: '兑换金额(元)', width: 150},
                    {field: 'consumedCredits', title: '消耗积分', width: 150},
                    {field: 'creditBalance', title: '积分余额', width: 150},
                    {field: 'status', title: '状态', width: 150, templet: function (d) {
                        if(d.exchangeStatus === 0){
                            return '<span style="color: #FF5722;">未审核</span>';
                        }
                       else if(d.exchangeStatus===1){
                            return '<span style="color: #5FB878;">已通过</span>';
                        }
                       else if(d.exchangeStatus===2){
                            return '<span style="color: #FFB800;">已拒绝</span>';
                        }
                        return "未知";
                    }},
                    {field: 'createTime', title: '创建时间', width: 180},
                    {field: 'updateTime', title: '更新时间', width: 180}
                ]
            ]
        };
 
        // 初始化表格
        let tableIns = table.render(table_option);
 
        // 监听搜索
        form.on('submit(search)', function (data) {
            tableIns.reload({
                where: data.field,
                page: {curr: 1}
            });
            return false;
        });
 
        // 批量通过
        $('#approve-btn').on('click', function () {
            let checkStatus = table.checkStatus('table');
            let ids = checkStatus.data.map(item => item.id);
            if (ids.length === 0) {
                layer.msg("请至少选择一条记录");
                return true;
            }
            $.post('/admin/api/credit/exchange-record/approve', {ids: JSON.stringify(ids)}, function (response) {
                if (response.code === 0) {
                    layer.msg(response.msg);
                    tableIns.reload();
                } else {
                    layer.msg(response.msg);
                }
            }, 'json').fail(function () {
                layer.msg("网络请求失败");
            });
        });
 
        // 批量驳回
        $('#reject-btn').on('click', function () {
            let checkStatus = table.checkStatus('table');
            let ids = checkStatus.data.map(item => item.id);
            if (ids.length === 0) {
                layer.msg("请至少选择一条记录");
                return;
            }
            $.post('/admin/api/credit/exchange-record/reject', {ids: JSON.stringify(ids)}, function (response) {
                if (response.code === 0) {
                    layer.msg(response.msg);
                    tableIns.reload();
                } else {
                    layer.msg(response.msg);
                }
            }, 'json').fail(function () {
                layer.msg("网络请求失败");
            });
        });
    });
</script>
</body>
 
</html>