Files
Ai_Admin/templates/admin/order-list.html
Jane Doe 9992293b9f 2.0
2024-09-25 12:18:07 +08:00

138 lines
4.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<style>
body {
background-color: #f5f5f5;
}
.layui-container {
width: 100% !important;
padding: 20px;
background-color: #ffffff;
}
h2 {
color: #333;
font-size: 24px;
}
.layui-table {
width: 100%;
margin-top: 20px;
}
.layui-table tbody tr:nth-child(odd) {
background-color: #f9f9f9;
}
.layui-table tbody tr:nth-child(even) {
background-color: #eaf6f6;
}
.stats-container {
display: flex;
align-items: center;
margin-top: 20px;
}
.stats-container p {
margin: 0 20px;
font-size: 14px;
}
.stats-container span {
color: #2de5cf;
}
</style>
</head>
<body>
<div class="layui-container">
<h2>订单列表</h2>
<table id="orderTable" lay-filter="orderTable"></table>
<div class="stats-container">
<p>总订单数量: <span id="totalCount">0</span></p>
<p>支付宝订单数量: <span id="alipayCount">0</span>--¥:<span id="alipaySum"></span>人民币</p>
<p>贝宝订单数量: <span id="paypalCount">0</span>--$<span id="paypalSum"></span>美金</p>
<p>待处理订单: <span id="pendingCount">0</span></p>
<p>已完成订单: <span id="completedCount">0</span></p>
<p>已取消订单: <span id="canceledCount">0</span></p>
<p>失败订单: <span id="failedCount">0</span></p>
</div>
</div>
<script>
layui.use(['jquery', 'table', 'layer'], function() {
const $ = layui.jquery;
const table = layui.table;
const layer = layui.layer;
// 加载订单列表
function loadOrderList() {
table.render({
elem: '#orderTable',
url: '/custom_admin/home/order-list/',
method: 'post',
page: true, // 开启分页
limit: 10, // 每页显示的数量
cols: [[
{field: 'order_id', title: '订单号', width: '20%'},
{field: 'username', title: '用户名', width: '15%'},
{field: 'plan__title', title: '购买套餐', width: '10%'},
{field: 'amount', title: '金额', width: '10%', templet: function(d) {
// 根据支付方式设置金额前面的符号
return d.payment_method === '支付宝' ? `¥${d.amount}` : `$${d.amount}`;
}},
{field: 'payment_method', title: '支付方式', width: '10%'},
{field: 'status', title: '订单状态', width: '10%'},
{field: 'created_at', title: '创建时间', width: '15%'},
{title: '操作', width: '10%', toolbar: '#actionToolbar'}
]],
done: function(res) {
$('#totalCount').text(res.count); // 更新总订单数
res.payment_method_count.forEach(item => {
if (item.payment_method === 'alipay') {
$('#alipayCount').text(item.count);
} else if (item.payment_method === 'paypal') {
$('#paypalCount').text(item.count);
}
});
$('#alipaySum').text(res.total_income_by_payment_method[0].total_income);
$('#paypalSum').text(res.total_income_by_payment_method[1].total_income);
$('#pendingCount').text(res.status_count.pending);
$('#completedCount').text(res.status_count.completed);
$('#canceledCount').text(res.status_count.canceled);
$('#failedCount').text(res.status_count.failed);
}
});
}
// 删除订单功能
table.on('tool(orderTable)', function(obj) {
const data = obj.data;
const layEvent = obj.event;
if (layEvent === 'delete') {
deleteOrder(data.id);
}
});
function deleteOrder(id) {
layer.confirm('确定删除该订单吗?', function(index) {
$.post(`/api/delete-order/${id}/`, function(res) {
if (res.code === 200) {
layer.msg('删除成功');
loadOrderList();
} else {
layer.msg('删除失败: ' + res.message);
}
});
layer.close(index);
});
}
loadOrderList();
});
</script>
<script type="text/html" id="actionToolbar">
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="delete">删除</button>
</script>