已知问题与建议
调研过程中(2026-10-21)发现的问题与建议,按影响程度排列。
1. 骑手管理存在脏数据(安装预置数据与用户表不匹配)
现象:「门店 → 骑手管理」列表中预置了两条骑手记录(赵大明、用户9872),但昵称、手机号列为空。
根因:安装脚本 api/database/sparkshop_ordering.sql 中:
sp_store_rider表预置了 2 条骑手,user_id分别为 25(赵大明)与 24(用户9872);- 而
sp_user表没有任何预置用户(全脚本 0 条INSERT INTO sp_user)。
骑手记录以 user_id 关联 C 端用户,指向了不存在的用户,导致昵称/手机号无法回显——属于安装 SQL 的脏数据,建议安装脚本删除这 2 条预置骑手,或同时预置对应的测试用户。

2. 收银台「预约」开单的预约时间选择器未渲染
现象:收银台结账弹窗选择「预约」类型后,「预约时间」表单项标签显示,但 n-date-picker 控件完全没有渲染进 DOM(document.querySelector('.n-date-picker') 为空),导致预约单无法从收银台开出。
影响:收银台无法产生预约单;「预约订单」页面只能空置(预约单也可能来自 C 端预约场景,H5 端当前未见入口)。
建议:检查 cashier/src/views/cashier.vue 中 NDatePicker 的引入与结账弹窗(n-modal)的渲染方式(display-directive),确认生产构建产物中该组件未被按需打包裁剪;本地 dev 模式复测定位是构建问题还是运行时错误。
3. 收银台「系统」页展示的大屏地址缺少 /cashier 前缀(已修复)
现象:收银台「系统 → 客户确认屏 / 取餐叫号大屏」展示的访问地址(如 http://www.sporder.com/display/cart?code=HCQLA2WF)直接打开是 404。
根因:cashier/src/views/system.vue 中 baseUrl 只取了 window.location.origin,未包含 SPA 部署前缀。收银台构建产物部署在 TP8 站点的 /cashier/ 子路径下(vite base: /cashier/),大屏路由实际为 /cashier/display/cart、/cashier/display/queue。
修复(2026-10-21):baseUrl 改为 ${window.location.origin}${import.meta.env.BASE_URL.replace(/\/$/, '')},展示地址与提示文案中的路径均改为动态生成,开发(base=/)与生产(base=/cashier/)部署均正确;已重新构建部署并验证「系统」页展示与「打开」跳转正常。
4. C 端存在残留「待付款」订单
现象:H5 下单唤起支付后放弃支付,订单以「待付款」状态留在列表(本次调研产生 2 笔),并计入后台仪表盘「近 7 天待付款」待办。
现状:这类订单依赖「定时任务」超时自动取消。若生产环境未部署/未启动定时任务(「系统 → 定时任务」),待付款订单将长期滞留并占用库存与取餐号序列。
建议:上线检查清单中加入「订单超时取消定时任务已启用」。
4. 收货地址定位依赖浏览器 Geolocation
现象:H5 新增收货地址通过「智能识别」解析文本时只解析姓名/电话/省市区/详细地址,不写入经纬度;下单外送时后端强校验坐标(contact_lat/lng > 0),导致智能识别创建的地址无法直接外送,界面提示“点击上方地址重新保存一次即可自动定位”。
建议:智能识别成功后自动触发地理编码(高德/腾讯地图 API)回填坐标,或在地址保存流程中明示“定位失败”状态,避免顾客下单时才被拦截。
5. 截图环境说明
本文档所有后台/收银台截图均为 1600×900 视口下的真实界面;门店、商品、订单、用户、财务等列表页数据来自本次调研的真实下单操作,营销、系统等配置页为安装后默认数据,个别页面(分销、积分商城、次卡等)暂无业务数据,以空列表形态呈现,不影响功能完整性判断。