Files
platforms/docs/项目文档_配送点独立资源页面_v1.0.md
2026-08-22 20:35:57 +08:00

4.4 KiB
Raw Blame History

项目文档:配送点独立资源页面 v1.0

1. 项目概述

本次将配送点管理系统中标准资源的新建、详情和编辑操作从列表抽屉迁移为独立 URL 页面。页面框架参考平台总后台的共享记录页模式,同时严格使用配送点 JWT 数据范围和配送点后端现有接口。

技术栈为 Vue 3、TypeScript、Vue Router、Arco Design Vue、Vite。运行环境要求 Node.js 20.19.0 及以上,前端默认访问地址为 http://localhost:5176

2. 页面能力范围

  • 17 类非单例资源提供独立详情页。
  • 9 类具有后端 POST 接口的资源提供独立新建页。
  • 5 类具有后端 PUT 接口的资源提供独立编辑页。
  • 配送点资料继续使用专用只读卡片,不生成记录子路由。
  • /staff/add/gasorder/create 保留为正式新建地址,其余资源使用列表路径下的 /new
  • 只读资源仅生成详情页;追加型资源生成新建和详情页,不生成编辑页。

3. 目录结构

frontend/delivery_admin/
├── scripts/
│   └── check-resource-pages.mjs       # 校验页面矩阵与后端 CRUD 契约
└── src/
    ├── api/
    │   ├── resource-display.ts        # 中文字段、状态和详情值展示
    │   ├── resource-navigation.ts     # 独立页面路由和安全返回地址
    │   └── resource-record-form.ts    # 表单初始化、字段白名单和校验
    ├── router/routes/modules/
    │   └── resource-route-builder.ts  # 根据资源能力生成独立路由
    ├── views/resource/
    │   ├── ResourceRecordPage.vue     # 新建、详情、编辑三态容器
    │   ├── ResourceDetailContent.vue  # 主记录和集合详情展示
    │   ├── ResourceFieldForm.vue      # 通用资源字段表单
    │   ├── ResourceActionDialog.vue   # 详情业务动作与危险确认
    │   └── use-unsaved-record.ts      # 未保存离开保护
    └── views/shared/
        └── ResourceListPage.vue       # 跳转独立页面的标准列表

4. 核心实现

resource-route-builder.ts 根据资源定义中的 canCreatecanEdit 和页面类型生成隐藏子路由。每条记录拥有稳定 URL列表查询参数通过 return_to 保存,详情返回后可恢复来源列表状态。

ResourceRecordPage.vue 通过路由元数据 recordMode 在新建、详情、编辑三态间切换。新建成功进入详情,编辑成功返回详情;未保存表单离开时弹出确认。合同等受控资源的业务动作位于详情页,危险操作继续二次确认。

页面布局与平台总后台保持一致:使用灰色页面背景、顶部面包屑和操作栏;详情由“基本信息”“关联记录”“业务操作”分区卡片组成;新建和编辑使用双列响应式表单,并将保存、取消操作固定在表单内容底部。

resource-record-form.ts 为五类可编辑资源声明后端更新字段白名单,防止用户名、合同编号等只读字段出现在编辑页或被无效提交。

支付与退款资源统一使用后端正式名称 payment_orderpayment_refund,菜单地址仍保持 /finance/payments/finance/refunds,避免接口路径不一致导致 404。

5. 维护指南

新增标准资源时,先同步后端契约,再在 resources.ts 中配置资源字段和能力。若后端支持编辑,必须同步维护 resource-record-form.ts 的更新字段白名单。完成后运行:

npm.cmd run contract:sync
npm.cmd run resource-pages:check
npm.cmd run type:check
npm.cmd run build

不要为只读或追加型资源手工开放编辑路由。单例资料、树形页面或强业务定制页面应继续使用专用组件,不纳入通用记录页生成器。

6. 变更记录

  • 新增共享独立记录页、标准列表页、路由生成器和未保存保护。
  • 删除已停用的抽屉式 CrudListPage.vue
  • 修复支付、退款资源与后端契约名称不一致的问题。
  • 新增 17/9/5 页面能力矩阵自动检查。
  • 保持配送点资料专用只读页面和现有公共后端接口不变。

7. 已知边界

独立页面只使用配送端已存在的关系查询和 CRUD 能力,不引入平台端头像上传、合同附件上传、平台角色或跨组织账户摘要接口。普通头像和附件 URI 字段仍按原后端文本契约展示或填写。