fix: 消息通知页不能点进详情 — 补全 product_serial_number
问题: 点击通知卡片跳转 detail?taskId=xxx,但 detail.vue onLoad 只认 serial 参数导致空白页 修复: 1. 后端 NotificationResponse 新增 product_serial_number 字段 2. 后端 notifications API 联表 tasks+products 批量填充 serial 3. 前端 notify/index.vue handleCardTap 优先用 product_serial_number 跳转,兜底从 content 正则解析 4. 前端 detail.vue onLoad 新增 taskId 兜底 → doQueryByTask 反查 product_sn
This commit is contained in:
@ -103,7 +103,15 @@ async function handleCardTap(item) {
|
||||
if (!item.is_read) {
|
||||
try { await markNotificationRead(item.id); item.is_read = true; } catch {}
|
||||
}
|
||||
if (item.task_id) {
|
||||
// 🚀 优先使用 product_serial_number,兜底从 content 中解析
|
||||
let sn = item.product_serial_number || "";
|
||||
if (!sn && item.content) {
|
||||
const match = item.content.match(/\[([A-Za-z0-9]{8,16})\]/);
|
||||
if (match) sn = match[1];
|
||||
}
|
||||
if (sn) {
|
||||
uni.navigateTo({ url: `/pages/scan/detail?serial=${sn}` });
|
||||
} else if (item.task_id) {
|
||||
uni.navigateTo({ url: `/pages/scan/detail?taskId=${item.task_id}` });
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user