Files
admin-web/README.md
T
2026-07-30 17:59:43 +08:00

4.3 KiB

虫虫出海管理后台

平台内部运营与管理应用,使用 Vue 3、TypeScript、Vite、Vue Router、Pinia 和 Element Plus。

本地运行

cd apps/admin-web
pnpm install
pnpm dev

生产构建:

pnpm typecheck
pnpm build

自动化测试:

pnpm test

依赖和 pnpm-lock.yaml 均保存在当前前端项目中,不需要在仓库根目录安装 Node 依赖。

工作台已从一期路由与菜单移除;登录后按当前角色进入第一个有权限的业务页面。一期 Admin 路由聚焦登录、客户及注册审核、平台收货仓、快递公司、往来单位、头程订单、内部用户、角色管理和菜单权限。

后台菜单按“业务管理”和“系统管理”分组。企业审核、平台角色、菜单及按钮权限资源已接入真实 IAM 接口;客户档案、基础资料和部分系统管理页面仍使用 Pinia 模拟数据,不请求尚未确定的 Java 业务接口。

本地 Gateway 联调

开发环境统一通过 Vite 的 /api 代理访问 Gateway,不在浏览器代码中拼接 Nacos 服务名或服务直连端口。复制 .env.example 为 .env.local,并按联调机器修改:

VITE_API_BASE_URL=/api
API_PROXY_TARGET=http://192.168.110.149:9000

认证请求使用 /api/auth/**,平台 IAM 请求使用 /api/platform/v1/iam/**。登录后从 JWT 读取平台身份和授权快照,再与 IAM 返回的启用权限资源取交集。企业审核调用 /reviews,打开审核详情后按租户调用 /tenants/{tenantId}/qualifications;营业执照通过 /api/platform/v1/files/qualifications/{tenantId}/{fileName} 携带平台 Token 临时读取,关闭预览后释放本地对象地址。平台角色调用 /roles,权限资源调用 /permissions;接口未提供的编辑、删除、启停和已有授权回显不会模拟成功。一期真实权限资源只创建 MENU 与 BUTTON,不创建 PAGE 或 API 类型。其余业务页面需在对应服务契约确认后逐项替换,生产逻辑不得静默回退到模拟数据。

仓库管理当前维护义乌、深圳、青岛、上海、宁波、厦门等平台国内收货仓,支持筛选、新增、编辑和启停。停用仓库保留历史数据,但不再提供给客户新建头程订单选择;订单详情使用下单时保存的仓库编码、名称和地址快照,仓库主数据后续修改不改变历史展示。本阶段不包含 FBA/海外目的仓、库存、库位或出入库作业,快照仍为 Pinia 模拟数据,服务端持久化待接入。

快递公司和往来单位一期静态维护已完成:支持筛选、详情、新增、编辑、启停、唯一校验、标准模板下载和导入文件基础检查;往来单位支持六类多选角色、联系人和完整地址。两类主数据只导入不导出,导入只新增,任一行错误整批失败。工作表内容、模板版本、重复数据和整批事务必须由后端解析校验;接口提供前,前端不模拟校验或导入成功。头程订单可维护一组快递公司和快递单号;订单不设“已驳回”,后台修改待审核订单后仍保持待审核并写入审计。上述业务数据仍使用 Pinia,等待后端新架构明确契约后接入。

真实接口错误会保留后端返回的业务错误码、requestId 和 traceId。登录、企业审核、平台角色及权限资源的主要失败态支持直接复制追踪标识,便于与后端日志关联。

平台联调账号和密码只在 Vite 开发模式下预填,联调提示也只在开发模式显示。生产登录表单默认留空;生产构建产物不得包含本地联调账号、密码或开发提示文案。

静态权限预览

管理后台支持在顶栏切换本地角色,预览该角色可见的菜单、可访问页面和可用操作。预览角色保存在浏览器本地,刷新后继续保留;退出登录时清除,下次登录重新使用默认角色。

该功能仅用于静态页面和交互验收:

  • 预览角色和演示业务数据来自本地 Pinia;真实登录会切换到服务端权限,并让已接入页面调用 Java 业务 API。
  • 当前不模拟角色的 dataScope 数据范围。
  • 菜单隐藏、页面拦截和操作禁用不能替代服务端鉴权。
  • 后续接入 Java 服务时,接口仍须独立校验登录身份、角色权限和数据范围。