update
This commit is contained in:
parent
fd4d12f7f8
commit
df3be587d8
@ -1,5 +1,49 @@
|
|||||||
/* 订单管理页面样式 */
|
/* 订单管理页面样式 */
|
||||||
|
|
||||||
|
/* 管理页面头部样式 */
|
||||||
|
header {
|
||||||
|
text-align: center;
|
||||||
|
padding: 40px 20px;
|
||||||
|
background: linear-gradient(145deg, #1a1a1a 0%, #2d2d2d 100%);
|
||||||
|
border-radius: 20px;
|
||||||
|
margin-bottom: 40px;
|
||||||
|
box-shadow:
|
||||||
|
0 20px 40px rgba(0, 0, 0, 0.4),
|
||||||
|
inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
||||||
|
border: 1px solid #333;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
header::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
height: 4px;
|
||||||
|
background: linear-gradient(90deg, #ffd700, #ffed4a, #ffd700);
|
||||||
|
}
|
||||||
|
|
||||||
|
header h1 {
|
||||||
|
font-size: 2.5em;
|
||||||
|
color: #ffffff;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
font-weight: 700;
|
||||||
|
background: linear-gradient(45deg, #ffd700, #ffed4a);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
background-clip: text;
|
||||||
|
text-shadow: 0 0 20px rgba(255, 215, 0, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
header p {
|
||||||
|
font-size: 1.1em;
|
||||||
|
color: #b0b0b0;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
/* 管理员导航 - 已移除 */
|
/* 管理员导航 - 已移除 */
|
||||||
|
|
||||||
/* 统计卡片 */
|
/* 统计卡片 */
|
||||||
@ -257,6 +301,18 @@
|
|||||||
box-shadow: 0 4px 12px rgba(255, 215, 0, 0.4);
|
box-shadow: 0 4px 12px rgba(255, 215, 0, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn-delete {
|
||||||
|
background: linear-gradient(135deg, #dc3545, #c82333);
|
||||||
|
color: #fff;
|
||||||
|
border: 1px solid #dc3545;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-delete:hover {
|
||||||
|
background: linear-gradient(135deg, #c82333, #a71e2a);
|
||||||
|
transform: translateY(-1px);
|
||||||
|
box-shadow: 0 4px 12px rgba(220, 53, 69, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
/* 订单详情模态框 */
|
/* 订单详情模态框 */
|
||||||
.order-detail-content {
|
.order-detail-content {
|
||||||
color: #e0e0e0;
|
color: #e0e0e0;
|
||||||
@ -417,6 +473,14 @@
|
|||||||
|
|
||||||
/* 响应式设计 */
|
/* 响应式设计 */
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
|
header h1 {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
header p {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
.stats-section {
|
.stats-section {
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -85,6 +85,9 @@ function updateOrdersTable(orders) {
|
|||||||
<button class="action-btn btn-ship" onclick="showShippingModal('${order.order_id}')">
|
<button class="action-btn btn-ship" onclick="showShippingModal('${order.order_id}')">
|
||||||
📦 发货
|
📦 发货
|
||||||
</button>
|
</button>
|
||||||
|
<button class="action-btn btn-delete" onclick="confirmDeleteOrder('${order.order_id}')" title="删除订单">
|
||||||
|
🗑️ 删除
|
||||||
|
</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
`).join('');
|
`).join('');
|
||||||
@ -427,6 +430,45 @@ function formatDate(dateString) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 确认删除订单
|
||||||
|
function confirmDeleteOrder(orderId) {
|
||||||
|
const order = currentOrders.find(o => o.order_id === orderId);
|
||||||
|
if (!order) {
|
||||||
|
alert('订单未找到');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const confirmMessage = `确认删除以下订单吗?\n\n订单号:${orderId}\n客户:${order.customer_name}\n金额:$${order.total_amount.toFixed(2)} USDT\n\n⚠️ 此操作不可撤销!`;
|
||||||
|
|
||||||
|
if (confirm(confirmMessage)) {
|
||||||
|
deleteOrder(orderId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除订单
|
||||||
|
async function deleteOrder(orderId) {
|
||||||
|
try {
|
||||||
|
const response = await fetch(`/api/admin/orders/${orderId}`, {
|
||||||
|
method: 'DELETE',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const result = await response.json();
|
||||||
|
|
||||||
|
if (response.ok) {
|
||||||
|
alert('订单已成功删除!');
|
||||||
|
loadOrders(); // 重新加载订单列表
|
||||||
|
} else {
|
||||||
|
throw new Error(result.error || '删除订单失败');
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Delete order error:', error);
|
||||||
|
alert('删除订单失败: ' + error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 键盘事件监听
|
// 键盘事件监听
|
||||||
document.addEventListener('keydown', function(e) {
|
document.addEventListener('keydown', function(e) {
|
||||||
if (e.key === 'Escape') {
|
if (e.key === 'Escape') {
|
||||||
|
|||||||
35
server.js
35
server.js
@ -411,6 +411,41 @@ app.put('/api/admin/orders/:order_id/shipping', (req, res) => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 删除订单(管理员)
|
||||||
|
app.delete('/api/admin/orders/:order_id', (req, res) => {
|
||||||
|
const { order_id } = req.params;
|
||||||
|
|
||||||
|
// 先查询订单是否存在
|
||||||
|
db.get('SELECT * FROM orders WHERE order_id = ?', [order_id], (err, order) => {
|
||||||
|
if (err) {
|
||||||
|
console.error('Query order error:', err);
|
||||||
|
return res.status(500).json({ error: '查询订单失败' });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!order) {
|
||||||
|
return res.status(404).json({ error: '订单未找到' });
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除订单
|
||||||
|
db.run('DELETE FROM orders WHERE order_id = ?', [order_id], function(err) {
|
||||||
|
if (err) {
|
||||||
|
console.error('Delete order error:', err);
|
||||||
|
return res.status(500).json({ error: '删除订单失败' });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.changes === 0) {
|
||||||
|
return res.status(404).json({ error: '订单未找到' });
|
||||||
|
}
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
success: true,
|
||||||
|
message: '订单已删除',
|
||||||
|
deleted_order_id: order_id
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
app.listen(PORT, () => {
|
app.listen(PORT, () => {
|
||||||
console.log(`服务器运行在 http://localhost:${PORT}`);
|
console.log(`服务器运行在 http://localhost:${PORT}`);
|
||||||
});
|
});
|
||||||
Loading…
Reference in New Issue
Block a user