从首页关键路口跳转到 /surve?tab=crossing&action=open-dialog&id=... 后存在三个问题:
- action 参数处理完留在 URL 里,刷新/组件重挂时 checkRouteParams(mounted +
$route.query 深监听)会再次自动弹出"路口详情"弹窗;
- 弹窗 id 用 'route_'+Date.now() 每次唯一,反而让 openDialog 的按-id 去重失效,
导致反复触发时弹窗叠加;
- 弹窗标题写死 label:'路口详情',盖过了详情接口按 id 返回的真实路口名,标题与
点击的路口对不上。
修复:
- checkRouteParams crossing 分支改为只传真实路口 id,标题/数据均由
showCrossingDetailDialogs 按 id 查接口返回(currentRoute.name 来自 DB.points),
与点击路口一致;id 稳定后弹窗可去重、显示真实数据而非 mock 兜底;
- 处理完一次性意图后 router.replace 移除 action,避免刷新/重挂重复弹窗(specialDuty
分支同样覆盖)。
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||