dm-design/商家端web/订单管理/订单详情.html

803 lines
29 KiB
HTML
Raw Permalink 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.

<!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', Arial, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
padding: 20px;
min-height: 100vh;
}
.container {
max-width: 1400px;
margin: 0 auto;
background: white;
border-radius: 12px;
box-shadow: 0 10px 40px rgba(0,0,0,0.1);
overflow: hidden;
}
.header {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 30px 40px;
display: flex;
justify-content: space-between;
align-items: center;
}
.header h1 {
font-size: 28px;
font-weight: 600;
}
.status-badge {
background: rgba(255,255,255,0.2);
padding: 8px 20px;
border-radius: 20px;
font-size: 14px;
backdrop-filter: blur(10px);
}
.content {
padding: 40px;
}
.section {
margin-bottom: 35px;
padding-bottom: 30px;
border-bottom: 2px solid #f0f0f0;
}
.section:last-child {
border-bottom: none;
}
.section-title {
font-size: 20px;
font-weight: 600;
color: #333;
margin-bottom: 25px;
padding-left: 15px;
border-left: 4px solid #667eea;
}
.info-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 25px;
}
.info-item {
display: flex;
flex-direction: column;
padding: 15px;
background: #f8f9fa;
border-radius: 8px;
transition: all 0.3s ease;
}
.info-item:hover {
background: #e9ecef;
transform: translateY(-2px);
}
.info-label {
font-size: 13px;
color: #6c757d;
margin-bottom: 8px;
font-weight: 500;
}
.info-value {
font-size: 15px;
color: #212529;
font-weight: 600;
}
.info-value.highlight {
color: #667eea;
font-size: 18px;
}
.info-value.money {
color: #e74c3c;
font-size: 18px;
}
/* 收货信息特殊样式 */
.receiver-section {
background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
padding: 25px;
border-radius: 8px;
margin-bottom: 30px;
}
.receiver-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
}
/* 商品表格样式 */
.product-table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
.product-table thead {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.product-table th {
padding: 15px;
text-align: left;
font-weight: 600;
font-size: 14px;
}
.product-table td {
padding: 15px;
border-bottom: 1px solid #e9ecef;
font-size: 14px;
color: #495057;
}
.product-table tbody tr:hover {
background: #f8f9fa;
}
.product-table tbody tr:last-child td {
border-bottom: none;
}
.product-image {
width: 60px;
height: 60px;
object-fit: cover;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
/* 状态标签 */
.status-tag {
display: inline-block;
padding: 6px 16px;
border-radius: 20px;
font-size: 13px;
font-weight: 600;
}
.status-tag.success {
background: #d4edda;
color: #155724;
}
.status-tag.warning {
background: #fff3cd;
color: #856404;
}
.status-tag.danger {
background: #f8d7da;
color: #721c24;
}
.status-tag.info {
background: #d1ecf1;
color: #0c5460;
}
/* 时间轴样式 */
.timeline {
position: relative;
padding-left: 30px;
}
.timeline-item {
position: relative;
padding-bottom: 20px;
}
.timeline-item:before {
content: '';
position: absolute;
left: -23px;
top: 5px;
width: 12px;
height: 12px;
border-radius: 50%;
background: #667eea;
border: 3px solid white;
box-shadow: 0 0 0 2px #667eea;
}
.timeline-item:after {
content: '';
position: absolute;
left: -18px;
top: 17px;
width: 2px;
height: calc(100% - 5px);
background: #e9ecef;
}
.timeline-item:last-child:after {
display: none;
}
.timeline-time {
font-size: 12px;
color: #6c757d;
margin-bottom: 5px;
}
.timeline-label {
font-size: 14px;
font-weight: 600;
color: #495057;
}
/* 费用汇总卡片 */
.fee-summary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 30px;
border-radius: 12px;
margin-top: 20px;
}
.fee-summary-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
margin-bottom: 20px;
}
.fee-summary-item {
text-align: center;
padding: 15px;
background: rgba(255,255,255,0.1);
border-radius: 8px;
backdrop-filter: blur(10px);
}
.fee-summary-label {
font-size: 13px;
margin-bottom: 8px;
opacity: 0.9;
}
.fee-summary-value {
font-size: 24px;
font-weight: 700;
}
.fee-total {
text-align: center;
padding-top: 20px;
border-top: 2px solid rgba(255,255,255,0.2);
}
.fee-total-label {
font-size: 16px;
margin-bottom: 10px;
opacity: 0.9;
}
.fee-total-value {
font-size: 36px;
font-weight: 700;
}
/* 响应式设计 */
@media (max-width: 1200px) {
.info-grid {
grid-template-columns: repeat(2, 1fr);
}
.fee-summary-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 768px) {
.info-grid {
grid-template-columns: 1fr;
}
.receiver-grid {
grid-template-columns: 1fr;
}
.fee-summary-grid {
grid-template-columns: 1fr;
}
.content {
padding: 20px;
}
.product-table {
font-size: 12px;
}
.product-table th,
.product-table td {
padding: 10px;
}
}
/* 打印样式 */
@media print {
body {
background: white;
padding: 0;
}
.container {
box-shadow: none;
}
.info-item:hover {
transform: none;
}
}
</style>
</head>
<body>
<div class="container">
<!-- 头部 -->
<div class="header">
<div>
<h1>结算单位订单详情</h1>
<p style="margin-top: 5px; opacity: 0.9; font-size: 14px;">Order Details</p>
</div>
<div class="status-badge">
<span id="orderStatus">已完成</span>
</div>
</div>
<!-- 主体内容 -->
<div class="content">
<!-- 基本订单信息 -->
<div class="section">
<h2 class="section-title">基本信息</h2>
<div class="info-grid">
<div class="info-item">
<span class="info-label">总订单号</span>
<span class="info-value highlight">2024010100001</span>
</div>
<div class="info-item">
<span class="info-label">结算单位订单号</span>
<span class="info-value highlight">UT2024010100001</span>
</div>
<div class="info-item">
<span class="info-label">当日订单序号</span>
<span class="info-value">第 1 单</span>
</div>
<div class="info-item">
<span class="info-label">结算单位类型</span>
<span class="info-value">
<span class="status-tag info">市场经营多订单</span>
</span>
</div>
<div class="info-item">
<span class="info-label">市场名称</span>
<span class="info-value">XX菜市场</span>
</div>
<div class="info-item">
<span class="info-label">店铺名称</span>
<span class="info-value">张三水果店</span>
</div>
<div class="info-item">
<span class="info-label">订单类别</span>
<span class="info-value">
<span class="status-tag success">普通订单</span>
</span>
</div>
<div class="info-item">
<span class="info-label">下单渠道</span>
<span class="info-value">微信小程序</span>
</div>
<div class="info-item">
<span class="info-label">支付方式</span>
<span class="info-value">微信支付</span>
</div>
</div>
</div>
<!-- 费用汇总 -->
<div class="section">
<h2 class="section-title">费用明细</h2>
<div class="fee-summary">
<div class="fee-summary-grid">
<div class="fee-summary-item">
<div class="fee-summary-label">商品金额</div>
<div class="fee-summary-value">¥88.00</div>
</div>
<div class="fee-summary-item">
<div class="fee-summary-label">配送费</div>
<div class="fee-summary-value">¥5.00</div>
</div>
<div class="fee-summary-item">
<div class="fee-summary-label">包装费</div>
<div class="fee-summary-value">¥2.00</div>
</div>
<div class="fee-summary-item">
<div class="fee-summary-label">优惠券减免</div>
<div class="fee-summary-value">-¥10.00</div>
</div>
<div class="fee-summary-item">
<div class="fee-summary-label">会员折扣</div>
<div class="fee-summary-value">-¥5.00</div>
</div>
<div class="fee-summary-item">
<div class="fee-summary-label">平台服务费</div>
<div class="fee-summary-value">¥3.00</div>
</div>
<div class="fee-summary-item">
<div class="fee-summary-label">调度费</div>
<div class="fee-summary-value">¥2.00</div>
</div>
<div class="fee-summary-item">
<div class="fee-summary-label">预计收入</div>
<div class="fee-summary-value">¥75.00</div>
</div>
</div>
<div class="fee-total">
<div class="fee-total-label">顾客实付金额</div>
<div class="fee-total-value">¥80.00</div>
</div>
</div>
<!-- 其他费用信息 -->
<div class="info-grid" style="margin-top: 25px;">
<div class="info-item">
<span class="info-label">分销费用</span>
<span class="info-value money">¥8.00</span>
</div>
<div class="info-item">
<span class="info-label">代理费用</span>
<span class="info-value money">¥5.00</span>
</div>
<div class="info-item">
<span class="info-label">商品总重量</span>
<span class="info-value">3.5 kg</span>
</div>
</div>
</div>
<!-- 收货信息 -->
<div class="section">
<h2 class="section-title">收货信息</h2>
<div class="receiver-section">
<div class="receiver-grid">
<div class="info-item" style="background: white;">
<span class="info-label">收货人</span>
<span class="info-value">李四 (先生)</span>
</div>
<div class="info-item" style="background: white;">
<span class="info-label">联系电话</span>
<span class="info-value">138****8888</span>
</div>
<div class="info-item" style="background: white; grid-column: 1 / -1;">
<span class="info-label">收货地址</span>
<span class="info-value">广东省 深圳市 南山区 科技园小区 5栋201</span>
</div>
<div class="info-item" style="background: white;">
<span class="info-label">地址标签</span>
<span class="info-value">
<span class="status-tag info"></span>
</span>
</div>
<div class="info-item" style="background: white;">
<span class="info-label">经纬度</span>
<span class="info-value">113.9544 / 22.5445</span>
</div>
</div>
</div>
</div>
<!-- 配送信息 -->
<div class="section">
<h2 class="section-title">配送信息</h2>
<div class="info-grid">
<div class="info-item">
<span class="info-label">配送方式</span>
<span class="info-value">
<span class="status-tag info">专员配送</span>
</span>
</div>
<div class="info-item">
<span class="info-label">配送对象</span>
<span class="info-value">专员配送</span>
</div>
<div class="info-item">
<span class="info-label">配送距离</span>
<span class="info-value">3.2 km</span>
</div>
<div class="info-item">
<span class="info-label">预计配送时长</span>
<span class="info-value">30 分钟</span>
</div>
<div class="info-item">
<span class="info-label">配送专员</span>
<span class="info-value">王五</span>
</div>
<div class="info-item">
<span class="info-label">打包专员</span>
<span class="info-value">赵六</span>
</div>
<div class="info-item">
<span class="info-label">客服专员</span>
<span class="info-value">钱七</span>
</div>
<div class="info-item">
<span class="info-label">要求配送时间</span>
<span class="info-value">尽快送达</span>
</div>
<div class="info-item" style="grid-column: 1 / -1;">
<span class="info-label">备注信息</span>
<span class="info-value">请不要按门铃,直接放门口,谢谢!</span>
</div>
</div>
</div>
<!-- 订单状态 -->
<div class="section">
<h2 class="section-title">订单状态</h2>
<div class="info-grid">
<div class="info-item">
<span class="info-label">业务状态</span>
<span class="info-value">
<span class="status-tag success">已完成</span>
</span>
</div>
<div class="info-item">
<span class="info-label">支付状态</span>
<span class="info-value">
<span class="status-tag success">已支付</span>
</span>
</div>
<div class="info-item">
<span class="info-label">结算状态</span>
<span class="info-value">
<span class="status-tag success">已结算</span>
</span>
</div>
<div class="info-item">
<span class="info-label">退款状态</span>
<span class="info-value">
<span class="status-tag success">正常</span>
</span>
</div>
<div class="info-item">
<span class="info-label">支付分组</span>
<span class="info-value">总订单支付</span>
</div>
<div class="info-item">
<span class="info-label">是否已评价</span>
<span class="info-value">
<span class="status-tag success">已评价</span>
</span>
</div>
</div>
</div>
<!-- 时间轴 -->
<div class="section">
<h2 class="section-title">订单时间轴</h2>
<div class="timeline">
<div class="timeline-item">
<div class="timeline-time">2024-01-01 10:00:00</div>
<div class="timeline-label">订单创建</div>
</div>
<div class="timeline-item">
<div class="timeline-time">2024-01-01 10:01:30</div>
<div class="timeline-label">支付成功</div>
</div>
<div class="timeline-item">
<div class="timeline-time">2024-01-01 10:02:00</div>
<div class="timeline-label">商家接单</div>
</div>
<div class="timeline-item">
<div class="timeline-time">2024-01-01 10:15:00</div>
<div class="timeline-label">备餐完成</div>
</div>
<div class="timeline-item">
<div class="timeline-time">2024-01-01 10:20:00</div>
<div class="timeline-label">完成取货</div>
</div>
<div class="timeline-item">
<div class="timeline-time">2024-01-01 10:22:00</div>
<div class="timeline-label">开始配送</div>
</div>
<div class="timeline-item">
<div class="timeline-time">2024-01-01 10:50:00</div>
<div class="timeline-label">确认送达</div>
</div>
<div class="timeline-item">
<div class="timeline-time">2024-01-01 10:55:00</div>
<div class="timeline-label">用户确认收货</div>
</div>
<div class="timeline-item">
<div class="timeline-time">2024-01-01 11:00:00</div>
<div class="timeline-label">订单完成</div>
</div>
</div>
</div>
<!-- 商品列表 -->
<div class="section">
<h2 class="section-title">订单商品</h2>
<table class="product-table">
<thead>
<tr>
<th>商品图片</th>
<th>商品名称</th>
<th>店铺名称</th>
<th>规格</th>
<th>原价</th>
<th>终价</th>
<th>数量</th>
<th>小计</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img src="https://via.placeholder.com/60" alt="商品图片" class="product-image">
</td>
<td>新鲜苹果</td>
<td>张三水果店</td>
<td>500g/份</td>
<td>¥20.00</td>
<td style="color: #e74c3c; font-weight: 600;">¥18.00</td>
<td>2</td>
<td style="color: #e74c3c; font-weight: 700;">¥36.00</td>
</tr>
<tr>
<td>
<img src="https://via.placeholder.com/60" alt="商品图片" class="product-image">
</td>
<td>新鲜香蕉</td>
<td>张三水果店</td>
<td>1kg/份</td>
<td>¥15.00</td>
<td style="color: #e74c3c; font-weight: 600;">¥13.00</td>
<td>1</td>
<td style="color: #e74c3c; font-weight: 700;">¥13.00</td>
</tr>
<tr>
<td>
<img src="https://via.placeholder.com/60" alt="商品图片" class="product-image">
</td>
<td>进口橙子</td>
<td>张三水果店</td>
<td>1kg/份</td>
<td>¥25.00</td>
<td style="color: #e74c3c; font-weight: 600;">¥20.00</td>
<td>1</td>
<td style="color: #e74c3c; font-weight: 700;">¥20.00</td>
</tr>
<tr>
<td>
<img src="https://via.placeholder.com/60" alt="商品图片" class="product-image">
</td>
<td>新鲜葡萄</td>
<td>张三水果店</td>
<td>500g/份</td>
<td>¥22.00</td>
<td style="color: #e74c3c; font-weight: 600;">¥19.00</td>
<td>1</td>
<td style="color: #e74c3c; font-weight: 700;">¥19.00</td>
</tr>
<tr style="background: #f8f9fa; font-weight: 600;">
<td colspan="6" style="text-align: right; padding-right: 20px;">
商品总计:
</td>
<td>5 件</td>
<td style="color: #e74c3c; font-size: 16px;">¥88.00</td>
</tr>
</tbody>
</table>
</div>
<!-- 其他信息 -->
<div class="section">
<h2 class="section-title">其他信息</h2>
<div class="info-grid">
<div class="info-item">
<span class="info-label">用户ID</span>
<span class="info-value">10001</span>
</div>
<div class="info-item">
<span class="info-label">市场ID</span>
<span class="info-value">1001</span>
</div>
<div class="info-item">
<span class="info-label">店铺ID</span>
<span class="info-value">2001</span>
</div>
<div class="info-item">
<span class="info-label">是否系统自动取消</span>
<span class="info-value"></span>
</div>
<div class="info-item">
<span class="info-label">是否忽略历史备注</span>
<span class="info-value"></span>
</div>
<div class="info-item">
<span class="info-label">优惠券ID</span>
<span class="info-value">CPN20240101001</span>
</div>
</div>
</div>
</div>
</div>
<script>
// 这里可以添加JavaScript来动态加载订单数据
// 示例通过AJAX从后端API获取订单详情并填充页面
// 订单状态映射
const statusMap = {
0: { text: '待支付', className: 'warning' },
1: { text: '待接单', className: 'info' },
2: { text: '待备货', className: 'info' },
3: { text: '待取货', className: 'info' },
4: { text: '待配送', className: 'info' },
5: { text: '配送中', className: 'info' },
6: { text: '已配送', className: 'success' },
8: { text: '已完成', className: 'success' },
'-1': { text: '已取消', className: 'danger' },
'-2': { text: '退款中', className: 'warning' },
'-3': { text: '完全退款', className: 'danger' },
'-4': { text: '部分退款', className: 'warning' }
};
// 示例:更新订单状态
function updateOrderStatus(status) {
const statusInfo = statusMap[status] || { text: '未知状态', className: 'info' };
document.getElementById('orderStatus').textContent = statusInfo.text;
}
// 示例从API加载订单数据
// function loadOrderData(unitOrderNo) {
// fetch(`/api/unit-order/${unitOrderNo}`)
// .then(response => response.json())
// .then(data => {
// // 填充页面数据
// updateOrderStatus(data.status);
// // ... 更新其他字段
// })
// .catch(error => console.error('Error loading order data:', error));
// }
// 页面加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
console.log('结算单位订单详情页面已加载');
// 可以在这里调用 loadOrderData() 来加载实际数据
});
</script>
</body>
</html>