67 lines
5.4 KiB
Markdown
67 lines
5.4 KiB
Markdown
# 后台实施记录
|
||
|
||
后台代码已按第 1 批对接说明及用户确认适配,仅后台,不修改 C 端。真实后端联调尚未完成,未部署、提交或调用真实后台写接口。
|
||
|
||
## 结果与证据
|
||
|
||
| 证据 | 已确认结果 | 实现路径 |
|
||
| --- | --- | --- |
|
||
| 规则测试与本地订单详情 | 支付摘要、独立支付单状态、失败记录、空时间与金额展示正常 | `src/types/api/order.ts`、订单列表/详情、`orderPayment.ts` |
|
||
| 规则测试与模拟核销/代理注册详情 | 终态优先于陈旧恢复标志,核销可重提、代理注册提示重新扫码 | 核销展示工具、退款常量、注册状态辅助函数及相应页面 |
|
||
| 规则测试与模拟改密弹窗 | 新密码禁止符号,旧密码不受新长度限制;375px 下错误说明不重叠 | `loginPassword.ts`、后台密码表单、本人改密弹窗与双语文案 |
|
||
| 规则测试与模拟换货确认完成 | 1202 从 `data.phone` 展示号码,提示可取消,单据仍待确认,不自动解绑 | `exchangeError.ts`、换货页面与服务 |
|
||
| 数值测试与模拟预警规则/详情 | 规则额度移除,MB 快照两位小数,零和缺失区分,套餐商品额度保留 | 预警类型、规则页、记录列表/详情及 `trafficAlert.ts` |
|
||
| 模板和源码回归检查 | 新四列表头与手机号说明,设备 IMEI 必填说明、原 Excel 模板和行级失败反馈保持 | `shopBusinessOwnerImport.ts`、导入页面 |
|
||
|
||
ui-ux-pro-max 用于检查标签含义、错误反馈和长文案换行;保留现有 Element Plus 样式,未引入新 UI 依赖或改版。docs-generator 用于区分实施结果、可复现检查和未完成的真实联调,任务清单没有将后端验收提前标为完成。
|
||
|
||
## 复现本地验证
|
||
|
||
在项目根目录执行:
|
||
|
||
```powershell
|
||
# 63 项规则及已有回归测试;加载入口兼容 pnpm 的 esbuild 隔离布局。
|
||
node --import ./scripts/tests/register-esbuild.mjs --test --test-reporter=spec scripts/tests/*.test.mjs
|
||
npx --no-install vue-tsc --noEmit
|
||
|
||
# 生产构建输出到临时目录,关闭自动声明生成并校验原声明内容未被覆盖。
|
||
node scripts/tests/verifyBuild.mjs
|
||
openspec validate update-october-batch-one-admin-integration --strict --no-interactive
|
||
```
|
||
|
||
受影响文件 ESLint、Prettier 和 UTF-8 检查通过。生产构建存在原有搜索表单常量赋值、审计/认证循环分块和大 chunk 警告,未扩大本次修改去重构这些模块。
|
||
|
||
### 本地页面检查
|
||
|
||
```powershell
|
||
node scripts/tests/verifyBuild.mjs --serve
|
||
```
|
||
|
||
访问 `http://127.0.0.1:5190`。该预览拦截全部 `/api/` 请求且禁用真实代理,测试数据为模拟值;登录和写请求不会到真实后台。模拟账号为超级管理员,仅用于本地验收,输入满足登录页既有规则的任意测试账号密码即可。
|
||
|
||
已检查订单详情、核销失败详情、代理注册失败详情、预警详情/规则页、改密弹窗和换货完成 1202 提示;页面检查未产生 JS 错误。改密弹窗额外检查 375px 视口。
|
||
|
||
模板下载从统一 UTF-8 BOM 文本生成新 CSV,原 GBK 静态文件不再被此页面引用,没有改写用户已有模板资产。设备 Excel 模板没有修改。`src/types/components.d.ts` 与实施前内容 SHA-256 一致;已有开发服务器的自动生成曾补入本次新 Alert 声明,已改显式组件导入并只撤回该自动新增行,用户原差异保留。
|
||
|
||
## 待真实联调
|
||
|
||
1. 六类审批失败终态真实数据、权限矩阵、未知结果恢复、核销预占释放和提现重新冻结。
|
||
2. 真实支付摘要与多次支付历史、换货解除关联后成功重试及其他错误响应。
|
||
3. CSV 表头/手机号错误、逐行部分成功,以及设备 IMEI 空白/全部失败。
|
||
4. 新建与历史订单、IoT 卡、设备、预警导出文件列。
|
||
|
||
这些项目继续保留在任务清单,用户验收及部署后再归档。
|
||
|
||
## 用户追加:换货冲突快捷解绑
|
||
|
||
已在用户明确要求下补充以下行为:
|
||
|
||
- 创建换货捕获提交时新资产 ICCID/虚拟号及 `associated_phones`;确认完成使用换货单的新资产标识。跳转手机号优先取 1202 `data.phone`,缺失时取新资产手机号数组首个有效值,不使用旧资产。
|
||
- 用户点击跳转后,路由带 `asset_identifier` 和 `phone`,目标页从 1 页/20 条精确查询。只实际勾选匹配两项条件且有效的记录,不全选历史失效记录。
|
||
- 表格勾选方法由已有 ArtTable 透传;手工取消后不立即重新勾选,重置、筛选、翻页及解绑后刷新清空旧选择;缓存重入或路由参数变化重新取目标,过期响应不能覆盖新查询。
|
||
- 批量解绑仍使用 `phone_asset_association:unbind_batch` 和原原因/二次确认表单;结果列展示「解绑成功/解绑失败」,资产类型同时显示中文,不修改后端布尔值契约。
|
||
|
||
原说明要求号码不额外记录或持久化;用户追加明确要求两项路由参数,因此用户主动跳转时允许号码进入该 URL 查询参数,不额外记录日志或写入本地存储。
|
||
|
||
新增三项自动测试,全套 66 项通过,类型检查、受影响文件 lint、编码和严格规范校验通过,生产构建通过(原有警告仍在)。本地模拟确认了完整的 1202 弹窗 → 带参跳转 → 筛选并勾选有效记录 → 手工取消禁用按钮 → 原确认表单 → 中文成功结果链路,没有调用真实后台解绑接口。
|