415 lines
14 KiB
HTML
415 lines
14 KiB
HTML
|
|
<!DOCTYPE html>
|
||
|
|
<html lang="zh-CN">
|
||
|
|
<head>
|
||
|
|
<meta charset="UTF-8">
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
|
<title>订单管理系统</title>
|
||
|
|
<style>
|
||
|
|
* {
|
||
|
|
margin: 0;
|
||
|
|
padding: 0;
|
||
|
|
box-sizing: border-box;
|
||
|
|
}
|
||
|
|
|
||
|
|
body {
|
||
|
|
font-family: 'Microsoft YaHei', sans-serif;
|
||
|
|
background-color: #f5f5f5;
|
||
|
|
padding: 20px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.header {
|
||
|
|
background: white;
|
||
|
|
padding: 20px;
|
||
|
|
margin-bottom: 20px;
|
||
|
|
border-radius: 8px;
|
||
|
|
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||
|
|
}
|
||
|
|
|
||
|
|
.header h1 {
|
||
|
|
font-size: 24px;
|
||
|
|
color: #333;
|
||
|
|
margin-bottom: 10px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.header p {
|
||
|
|
color: #666;
|
||
|
|
font-size: 14px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.order-container {
|
||
|
|
background: white;
|
||
|
|
border-radius: 8px;
|
||
|
|
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||
|
|
overflow: hidden;
|
||
|
|
}
|
||
|
|
|
||
|
|
/* 第一级表格样式 */
|
||
|
|
.level-1-table {
|
||
|
|
width: 100%;
|
||
|
|
border-collapse: collapse;
|
||
|
|
font-size: 14px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-1-table th {
|
||
|
|
background: #f8f9fa;
|
||
|
|
padding: 12px 8px;
|
||
|
|
text-align: center;
|
||
|
|
border-bottom: 2px solid #dee2e6;
|
||
|
|
font-weight: 600;
|
||
|
|
color: #495057;
|
||
|
|
font-size: 13px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-1-table td {
|
||
|
|
padding: 12px 8px;
|
||
|
|
text-align: center;
|
||
|
|
border-bottom: 1px solid #dee2e6;
|
||
|
|
color: #212529;
|
||
|
|
}
|
||
|
|
|
||
|
|
.expandable-row {
|
||
|
|
cursor: pointer;
|
||
|
|
transition: background-color 0.2s;
|
||
|
|
}
|
||
|
|
|
||
|
|
.expandable-row:hover {
|
||
|
|
background-color: #f8f9fa;
|
||
|
|
}
|
||
|
|
|
||
|
|
.expand-icon {
|
||
|
|
display: inline-block;
|
||
|
|
width: 16px;
|
||
|
|
height: 16px;
|
||
|
|
margin-right: 8px;
|
||
|
|
transition: transform 0.3s;
|
||
|
|
}
|
||
|
|
|
||
|
|
.expand-icon.expanded {
|
||
|
|
transform: rotate(90deg);
|
||
|
|
}
|
||
|
|
|
||
|
|
/* 第二级表格样式 */
|
||
|
|
.level-2-container {
|
||
|
|
display: none;
|
||
|
|
background: #f8f9fa;
|
||
|
|
border-top: 1px solid #dee2e6;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-2-table {
|
||
|
|
width: 100%;
|
||
|
|
border-collapse: collapse;
|
||
|
|
margin-left: 30px;
|
||
|
|
font-size: 14px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-2-table th {
|
||
|
|
background: #e9ecef;
|
||
|
|
padding: 10px 8px;
|
||
|
|
text-align: center;
|
||
|
|
border-bottom: 1px solid #dee2e6;
|
||
|
|
font-weight: 600;
|
||
|
|
color: #495057;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-2-table td {
|
||
|
|
padding: 10px 8px;
|
||
|
|
text-align: center;
|
||
|
|
border-bottom: 1px solid #dee2e6;
|
||
|
|
color: #212529;
|
||
|
|
}
|
||
|
|
|
||
|
|
/* 第三级表格样式 */
|
||
|
|
.level-3-container {
|
||
|
|
display: none;
|
||
|
|
background: #ffffff;
|
||
|
|
border-top: 1px solid #dee2e6;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-3-table {
|
||
|
|
width: 100%;
|
||
|
|
border-collapse: collapse;
|
||
|
|
margin-left: 60px;
|
||
|
|
font-size: 13px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-3-table th {
|
||
|
|
background: #f1f3f4;
|
||
|
|
padding: 8px 6px;
|
||
|
|
text-align: center;
|
||
|
|
border-bottom: 1px solid #dee2e6;
|
||
|
|
font-weight: 600;
|
||
|
|
color: #495057;
|
||
|
|
font-size: 12px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-3-table td {
|
||
|
|
padding: 8px 6px;
|
||
|
|
text-align: center;
|
||
|
|
border-bottom: 1px solid #dee2e6;
|
||
|
|
color: #212529;
|
||
|
|
}
|
||
|
|
|
||
|
|
.product-image {
|
||
|
|
width: 40px;
|
||
|
|
height: 40px;
|
||
|
|
object-fit: cover;
|
||
|
|
border-radius: 4px;
|
||
|
|
border: 1px solid #dee2e6;
|
||
|
|
}
|
||
|
|
|
||
|
|
/* 响应式设计 */
|
||
|
|
@media (max-width: 768px) {
|
||
|
|
body {
|
||
|
|
padding: 10px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-1-table th,
|
||
|
|
.level-1-table td {
|
||
|
|
padding: 8px 4px;
|
||
|
|
font-size: 12px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-2-table,
|
||
|
|
.level-3-table {
|
||
|
|
margin-left: 15px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-2-table th,
|
||
|
|
.level-2-table td {
|
||
|
|
padding: 8px 4px;
|
||
|
|
font-size: 12px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-3-table th,
|
||
|
|
.level-3-table td {
|
||
|
|
padding: 6px 3px;
|
||
|
|
font-size: 11px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.product-image {
|
||
|
|
width: 30px;
|
||
|
|
height: 30px;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/* 层级指示线 */
|
||
|
|
.level-indicator {
|
||
|
|
position: relative;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-indicator:before {
|
||
|
|
content: '';
|
||
|
|
position: absolute;
|
||
|
|
left: -20px;
|
||
|
|
top: 0;
|
||
|
|
bottom: 0;
|
||
|
|
width: 3px;
|
||
|
|
background: #007bff;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-2-indicator:before {
|
||
|
|
background: #28a745;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-3-indicator:before {
|
||
|
|
background: #ffc107;
|
||
|
|
}
|
||
|
|
|
||
|
|
.order-level-badge {
|
||
|
|
display: inline-block;
|
||
|
|
padding: 2px 6px;
|
||
|
|
border-radius: 3px;
|
||
|
|
font-size: 11px;
|
||
|
|
font-weight: 600;
|
||
|
|
margin-right: 8px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-1-badge {
|
||
|
|
background: #e3f2fd;
|
||
|
|
color: #1976d2;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-2-badge {
|
||
|
|
background: #e8f5e8;
|
||
|
|
color: #388e3c;
|
||
|
|
}
|
||
|
|
|
||
|
|
.level-3-badge {
|
||
|
|
background: #fff3e0;
|
||
|
|
color: #f57c00;
|
||
|
|
}
|
||
|
|
</style>
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
<div class="header">
|
||
|
|
<h1>订单管理系统</h1>
|
||
|
|
<p>多级订单详情查看系统 - 支持总订单、店铺订单、商品订单三级展开</p>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="order-container">
|
||
|
|
<!-- 第一级表格 - 总订单信息 -->
|
||
|
|
<table class="level-1-table">
|
||
|
|
<thead>
|
||
|
|
<tr>
|
||
|
|
<th>操作</th>
|
||
|
|
<th>总订单号</th>
|
||
|
|
<th>顾客支付</th>
|
||
|
|
<th>配送费</th>
|
||
|
|
<th>优惠券减免</th>
|
||
|
|
<th>下单时间</th>
|
||
|
|
<th>预计送达时间</th>
|
||
|
|
<th>预计收入</th>
|
||
|
|
<th>距离</th>
|
||
|
|
</tr>
|
||
|
|
</thead>
|
||
|
|
<tbody>
|
||
|
|
<tr class="expandable-row" onclick="toggleLevel2(this)">
|
||
|
|
<td>
|
||
|
|
<span class="order-level-badge level-1-badge">总订单</span>
|
||
|
|
<span class="expand-icon">▶</span>
|
||
|
|
</td>
|
||
|
|
<td>111202507191533848089917</td>
|
||
|
|
<td>3.8</td>
|
||
|
|
<td>0</td>
|
||
|
|
<td>0</td>
|
||
|
|
<td>2025-07-19 15:34:13</td>
|
||
|
|
<td>-</td>
|
||
|
|
<td>3.18</td>
|
||
|
|
<td>0.125078736989803303</td>
|
||
|
|
</tr>
|
||
|
|
<tr class="level-2-container">
|
||
|
|
<td colspan="9" class="level-indicator level-2-indicator">
|
||
|
|
<!-- 第二级表格 - 店铺订单信息 -->
|
||
|
|
<table class="level-2-table">
|
||
|
|
<thead>
|
||
|
|
<tr>
|
||
|
|
<th>操作</th>
|
||
|
|
<th>序号</th>
|
||
|
|
<th>店铺名称</th>
|
||
|
|
</tr>
|
||
|
|
</thead>
|
||
|
|
<tbody>
|
||
|
|
<tr class="expandable-row" onclick="toggleLevel3(this)">
|
||
|
|
<td>
|
||
|
|
<span class="order-level-badge level-2-badge">店铺</span>
|
||
|
|
<span class="expand-icon">▶</span>
|
||
|
|
</td>
|
||
|
|
<td>1</td>
|
||
|
|
<td>牛牛蔬菜店</td>
|
||
|
|
</tr>
|
||
|
|
<tr class="level-3-container">
|
||
|
|
<td colspan="3" class="level-indicator level-3-indicator">
|
||
|
|
<!-- 第三级表格 - 商品订单信息 -->
|
||
|
|
<table class="level-3-table">
|
||
|
|
<thead>
|
||
|
|
<tr>
|
||
|
|
<th>序号</th>
|
||
|
|
<th>商品订单号</th>
|
||
|
|
<th>商品名称</th>
|
||
|
|
<th>商品原价</th>
|
||
|
|
<th>商品终价</th>
|
||
|
|
<th>商品订单金额</th>
|
||
|
|
<th>商品数量</th>
|
||
|
|
<th>商品单价</th>
|
||
|
|
<th>商品图片</th>
|
||
|
|
</tr>
|
||
|
|
</thead>
|
||
|
|
<tbody>
|
||
|
|
<tr>
|
||
|
|
<td><span class="order-level-badge level-3-badge">商品</span>1</td>
|
||
|
|
<td>11420250719153384802014</td>
|
||
|
|
<td>上海青约300g</td>
|
||
|
|
<td>2</td>
|
||
|
|
<td>2</td>
|
||
|
|
<td>2</td>
|
||
|
|
<td>1</td>
|
||
|
|
<td>-</td>
|
||
|
|
<td>
|
||
|
|
<img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiBmaWxsPSIjRjBGOEZGIi8+CjxwYXRoIGQ9Ik0yMCAzNUMyOC4yODQzIDM1IDM1IDI4LjI4NDMgMzUgMjBDMzUgMTEuNzE1NyAyOC4yODQzIDUgMjAgNUMxMS43MTU3IDUgNSAxMS43MTU3IDUgMjBDNSAyOC4yODQzIDExLjcxNTcgMzUgMjAgMzVaIiBzdHJva2U9IiM0Q0FGNTBCIE1IDkgc3Ryb2tlLXdpZHRoPSIyIi8+CjxwYXRoIGQ9Ik0xNSAxNUgyNSIgc3Ryb2tlPSIjNENBRjUwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTcgMjBIMjMiIHN0cm9rZT0iIzRDQUY1MCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTE5IDI1SDIxIiBzdHJva2U9IiM0Q0FGNTBILE1pdGVyPSJhY2FmaW50aWFsaXMiLz4KPHN2Zz4K"
|
||
|
|
alt="蔬菜图片" class="product-image">
|
||
|
|
</td>
|
||
|
|
</tr>
|
||
|
|
</tbody>
|
||
|
|
</table>
|
||
|
|
</td>
|
||
|
|
</tr>
|
||
|
|
</tbody>
|
||
|
|
</table>
|
||
|
|
</td>
|
||
|
|
</tr>
|
||
|
|
</tbody>
|
||
|
|
</table>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<script>
|
||
|
|
// 切换第二级表格显示状态
|
||
|
|
function toggleLevel2(row) {
|
||
|
|
const icon = row.querySelector('.expand-icon');
|
||
|
|
const nextRow = row.nextElementSibling;
|
||
|
|
|
||
|
|
if (nextRow.style.display === 'none' || !nextRow.style.display) {
|
||
|
|
nextRow.style.display = 'table-row';
|
||
|
|
icon.classList.add('expanded');
|
||
|
|
icon.textContent = '▼';
|
||
|
|
} else {
|
||
|
|
nextRow.style.display = 'none';
|
||
|
|
icon.classList.remove('expanded');
|
||
|
|
icon.textContent = '▶';
|
||
|
|
|
||
|
|
// 关闭所有第三级表格
|
||
|
|
const level3Containers = nextRow.querySelectorAll('.level-3-container');
|
||
|
|
level3Containers.forEach(container => {
|
||
|
|
container.style.display = 'none';
|
||
|
|
const level2Icon = container.parentElement.parentElement.querySelector('.expand-icon');
|
||
|
|
if (level2Icon) {
|
||
|
|
level2Icon.classList.remove('expanded');
|
||
|
|
level2Icon.textContent = '▶';
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 切换第三级表格显示状态
|
||
|
|
function toggleLevel3(row) {
|
||
|
|
const icon = row.querySelector('.expand-icon');
|
||
|
|
const nextRow = row.nextElementSibling;
|
||
|
|
|
||
|
|
if (nextRow.style.display === 'none' || !nextRow.style.display) {
|
||
|
|
nextRow.style.display = 'table-row';
|
||
|
|
icon.classList.add('expanded');
|
||
|
|
icon.textContent = '▼';
|
||
|
|
} else {
|
||
|
|
nextRow.style.display = 'none';
|
||
|
|
icon.classList.remove('expanded');
|
||
|
|
icon.textContent = '▶';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 页面加载时初始化所有展开容器为隐藏状态
|
||
|
|
document.addEventListener('DOMContentLoaded', function() {
|
||
|
|
const allContainers = document.querySelectorAll('.level-2-container, .level-3-container');
|
||
|
|
allContainers.forEach(container => {
|
||
|
|
container.style.display = 'none';
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
// 添加键盘支持
|
||
|
|
document.addEventListener('keydown', function(e) {
|
||
|
|
if (e.key === 'Escape') {
|
||
|
|
// 按ESC键收起所有展开的表格
|
||
|
|
const allContainers = document.querySelectorAll('.level-2-container, .level-3-container');
|
||
|
|
const allIcons = document.querySelectorAll('.expand-icon');
|
||
|
|
|
||
|
|
allContainers.forEach(container => {
|
||
|
|
container.style.display = 'none';
|
||
|
|
});
|
||
|
|
|
||
|
|
allIcons.forEach(icon => {
|
||
|
|
icon.classList.remove('expanded');
|
||
|
|
icon.textContent = '▶';
|
||
|
|
});
|
||
|
|
}
|
||
|
|
});
|
||
|
|
</script>
|
||
|
|
</body>
|
||
|
|
</html>
|