feat(store): 在订单列表页新增下单时间展示
- 订单卡片头部左侧新增「下单时间:YYYY-MM-DD HH:mm」显示,位于订单号下方 - 状态标签右侧对齐方式由垂直居中调整为顶端对齐,适配两行文本 - 新增辅助函数 formatOrderTime 兼容 ISO 和空格分隔时间格式,仅保留到分钟 - 复用后台返回的 ShopOrder.createTime 字段,无需后端改动,保证时间数据准确同步
This commit is contained in:
7
.workbuddy/memory/2026-07-23.md
Normal file
7
.workbuddy/memory/2026-07-23.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# 2026-07-23 工作日志
|
||||||
|
|
||||||
|
## 门店订单列表补充「下单时间」
|
||||||
|
- 文件:`src/pages/store/orders/index.tsx`
|
||||||
|
- 在订单卡片头部(左侧)新增「下单时间:YYYY-MM-DD HH:mm」,位于订单号下方;状态标签仍在右侧(`items-center`→`items-start` 适配两行)。
|
||||||
|
- 数据字段:复用 `ShopOrder.createTime`(创建时间=下单时间,接口本来就有返回,列表排序也用它,无需改后端)。
|
||||||
|
- 新增辅助函数 `formatOrderTime(raw)`:兼容 `2026-07-23T02:00:18` 与 `2026-07-23 02:00:18` 两种格式,仅保留到分钟。
|
||||||
55
2026-07-17- 功能修复点.txt
Normal file
55
2026-07-17- 功能修复点.txt
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
2026年7月17日 下午改动问题总结
|
||||||
|
================================================
|
||||||
|
|
||||||
|
1. 门店订单页 — 付款凭证(paymentVoucher)未显示
|
||||||
|
文件: src/pages/store/orders/index.tsx
|
||||||
|
问题: renderOrderCard 中只渲染了送达凭证(sendEndImg),遗漏了付款凭证(paymentVoucher)
|
||||||
|
修复: 在买家备注下方、送达凭证上方新增付款凭证展示区(绿色背景),支持点击预览大图
|
||||||
|
|
||||||
|
2. 门店订单页 — 改价功能来回调整
|
||||||
|
文件: src/pages/store/orders/index.tsx
|
||||||
|
问题: 先把独立「改价」按钮和弹窗合并到「确认收款」弹窗中
|
||||||
|
修复: 下午用户要求改回来,恢复独立的改价按钮(橙色bg-orange-500)和弹窗,确认收款弹窗去掉实付金额输入框
|
||||||
|
|
||||||
|
3. 门店订单页 — 拆分"确认完成"为"送达"和"确认完成"
|
||||||
|
文件: src/pages/store/orders/index.tsx
|
||||||
|
问题: 新增deliver(送达)操作:已发货但无送达照片时显示,上传照片后按钮自动隐藏
|
||||||
|
修复: complete(确认完成):仅已付款可操作,只标记orderStatus=1。清除误用deliveryStatus=30表示"已送达"的逻辑
|
||||||
|
|
||||||
|
4. 状态文案对齐 — "已发货待收款"
|
||||||
|
文件: src/pages/store/orders/index.tsx, src/components/common/OrderCard/index.tsx, src/pages/order/detail.tsx
|
||||||
|
问题: 线下付款(payType=9)+已发货+未付款 → 三端统一显示"已发货待收款"(红色)
|
||||||
|
修复: 其他已发货 → "待收货"(蓝色)
|
||||||
|
|
||||||
|
5. 修复未付款已发货订单状态显示错误
|
||||||
|
文件: src/components/common/OrderCard/index.tsx, src/pages/order/detail.tsx
|
||||||
|
问题: !payStatus判断优先于deliveryStatus,导致"未付款但已发货"显示为"待付款"
|
||||||
|
修复: 物流状态判断提前到付款状态之前
|
||||||
|
|
||||||
|
6. 门店中心 — 右上角扫码登录PC后台
|
||||||
|
文件: src/pages/store/center/index.tsx
|
||||||
|
问题: 顶部渐变区右上角新增扫码图标,点击调起微信扫码 → 解析token → confirmWechatQRLogin确认PC端登录
|
||||||
|
|
||||||
|
7. 订单详情页 — "过期时间"改为"送达时间"
|
||||||
|
文件: src/pages/order/detail.tsx
|
||||||
|
问题: 信息区「过期时间」(expirationTime)改为「送达时间」(deliveryTime)
|
||||||
|
|
||||||
|
8. 新用户注册后首次加购购物车不刷新
|
||||||
|
文件: src/passport/login.tsx, src/passport/register.tsx, src/passport/sms-login.tsx, src/pages/shop/cart.tsx等
|
||||||
|
问题: 登录/注册后只存了storage,未同步UserContext → isLoggedIn仍为false → 购物车不刷新
|
||||||
|
修复: 登录/注册后调loginUser()/syncFromStorage()同步React状态
|
||||||
|
|
||||||
|
9. 收货地址编辑不加载旧数据
|
||||||
|
文件: src/pages/user/address-edit.tsx, src/api/shop/shopUserAddress/index.ts
|
||||||
|
问题: API路径PUT /shop/shop-user-address/{id} → PUT /shop/shop-user-address(后端无/{id}路径导致404)
|
||||||
|
修复: setFormData改为merge模式防止null覆盖
|
||||||
|
|
||||||
|
10. 地图选择首次打开列表不显示
|
||||||
|
文件: src/pages/user/address-edit.tsx
|
||||||
|
问题: 鸿蒙手机首次打开chooseLocation时POI列表空白
|
||||||
|
修复: 先getLocation获取当前位置传入地图,确保首次打开就在用户位置附近
|
||||||
|
|
||||||
|
11. 订单详情页金额明细0隐藏问题
|
||||||
|
文件: src/pages/order/detail.tsx
|
||||||
|
问题: {order.reducePrice && Number(order.reducePrice) > 0}当reducePrice为0时React渲染了文本"0"
|
||||||
|
修复: 改为{Number(order.reducePrice || 0) > 0 && (...)}
|
||||||
@@ -84,6 +84,17 @@ function formatDateTime(date: Date): string {
|
|||||||
return `${y}-${m}-${d} ${h}:${mi}:${s}`
|
return `${y}-${m}-${d} ${h}:${mi}:${s}`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 格式化下单时间为「YYYY-MM-DD HH:mm」,兼容 "2026-07-23T02:00:18" 与 "2026-07-23 02:00:18" */
|
||||||
|
function formatOrderTime(raw?: string): string {
|
||||||
|
if (!raw) return ''
|
||||||
|
const s = raw.replace('T', ' ').trim()
|
||||||
|
const parts = s.split(' ')
|
||||||
|
if (parts.length < 2) return s
|
||||||
|
const timeParts = parts[1].split(':')
|
||||||
|
const hhmm = `${timeParts[0]}:${timeParts[1] || '00'}`
|
||||||
|
return `${parts[0]} ${hhmm}`
|
||||||
|
}
|
||||||
|
|
||||||
/** 解析 sendEndImg:兼容 JSON 数组(新格式)和逗号分隔(旧格式) */
|
/** 解析 sendEndImg:兼容 JSON 数组(新格式)和逗号分隔(旧格式) */
|
||||||
function parseSendEndImg(raw: string): string[] {
|
function parseSendEndImg(raw: string): string[] {
|
||||||
if (!raw || !raw.trim()) return []
|
if (!raw || !raw.trim()) return []
|
||||||
@@ -585,8 +596,13 @@ export default function StoreOrdersPage() {
|
|||||||
return (
|
return (
|
||||||
<View key={order.orderId} className='bg-white rounded-xl mx-3 mt-3 p-4'>
|
<View key={order.orderId} className='bg-white rounded-xl mx-3 mt-3 p-4'>
|
||||||
{/* 订单头部 */}
|
{/* 订单头部 */}
|
||||||
<View className='flex justify-between items-center mb-3'>
|
<View className='flex justify-between items-start mb-3'>
|
||||||
<Text className='text-xs text-gray-400'>订单号:{order.orderNo}</Text>
|
<View className='flex flex-col'>
|
||||||
|
<Text className='text-xs text-gray-400'>订单号:{order.orderNo}</Text>
|
||||||
|
{order.createTime ? (
|
||||||
|
<Text className='text-xs text-gray-400 mt-1'>下单时间:{formatOrderTime(order.createTime)}</Text>
|
||||||
|
) : null}
|
||||||
|
</View>
|
||||||
<Text className='text-xs' style={{color: getStatusColor(order)}}>
|
<Text className='text-xs' style={{color: getStatusColor(order)}}>
|
||||||
{getStatusText(order)}
|
{getStatusText(order)}
|
||||||
</Text>
|
</Text>
|
||||||
|
|||||||
Reference in New Issue
Block a user