erp-frontend/项目分析文档.md
2026-04-01 17:07:17 +08:00

10 KiB
Raw Blame History

ERP 前端项目分析文档

1. 开发框架分析

技术栈

  • 前端框架: Vue 3 + TypeScript
  • 构建工具: Vite
  • 状态管理: Pinia
  • UI 组件库: Element Plus
  • 路由库: Vue Router
  • HTTP 客户端: Axios (推测,基于 API 文件结构)

版本信息 (基于 package.json 分析)

项目使用现代前端技术栈,基于 Vue 3 生态构建。Vite 作为构建工具提供快速开发体验。

2. 项目路由结构

路由配置文件

  • src/router/index.ts: 路由入口文件,导出路由和 Pinia 实例
  • src/router/manual.ts: 实际路由配置,包含所有业务路由
  • src/router/guard.ts: 路由守卫,处理认证和权限控制

路由布局

采用单页面应用结构,基于 MainLayout.vue 布局组件。主要路由结构如下:

/
├── / (Layout 组件)
│   ├── /order/list                 订单列表
│   ├── /goods/list                 商品列表
│   ├── /goods/edit                 新增商品
│   ├── /goods/edit/:id             编辑商品
│   ├── /goods/platform             平台商品
│   ├── /goods/push-log             商品推送日志
│   ├── /warehouse (嵌套路由)       仓库管理
│   │   ├── /list                   仓库列表
│   │   ├── /stock                  库存管理
│   │   ├── /stock-detail/:id       库存详情
│   │   ├── /purchase               采购单管理
│   │   ├── /purchase-detail/:id    采购单详情
│   │   ├── /receiving              收货单管理
│   │   ├── /receiving-detail/:id   收货单详情
│   │   ├── /edit                   新增仓库
│   │   ├── /edit/:id               编辑仓库
│   │   └── /bind-template/:id      仓库模板绑定
│   ├── /print/batch                批量打印
│   ├── /print/log                  打印日志
│   ├── /print/template-library/list 模板列表
│   ├── /print/template-library/design 模板设计
│   ├── /print/batch-detail/:id     批次详情
│   ├── /platform/waybill-accounts  面单账号
│   ├── /platform/shops             店铺管理
│   ├── /platform/shops/callback    授权回调
│   └── /setting (嵌套路由)         系统设置
│       ├── /supplier               供应商管理
│       └── /brand                  品牌管理

路由特性

  • 懒加载: 使用动态导入 (() => import('@/views/...')) 实现路由懒加载
  • 权限控制: 通过路由守卫检查登录状态和权限
  • 布局系统: 多布局支持 (MainLayout, MainLayoutFixed, MainLayoutSafe, MainLayoutSimple, PrintLayout, SimpleLayout)

3. 模块/功能模块分析

3.1 订单管理模块

  • 视图组件: src/views/Order/OrderList.vue
  • 路由: /order/list
  • 功能: 订单列表展示和管理
  • 相关组件: src/components/order/ 目录

3.2 商品管理模块

  • 视图组件:
    • src/views/Goods/List.vue - 商品列表
    • src/views/Goods/Edit.vue - 商品编辑(新增/编辑)
    • src/views/Goods/PlatformGoods.vue - 平台商品
    • src/views/Goods/PushLog.vue - 商品推送日志
  • 路由: /goods/list, /goods/edit, /goods/edit/:id, /goods/platform, /goods/push-log
  • 功能: 商品信息管理、平台商品同步、推送日志跟踪
  • 相关组件: src/components/product/ 目录

3.3 仓库管理模块

  • 视图组件:
    • src/views/Warehouse/index.vue - 仓库列表
    • src/views/Warehouse/Stock.vue - 库存管理
    • src/views/Warehouse/StockDetail.vue - 库存详情
    • src/views/Warehouse/Purchase.vue - 采购单管理
    • src/views/Warehouse/PurchaseDetail.vue - 采购单详情
    • src/views/Warehouse/Receiving.vue - 收货单管理
    • src/views/Warehouse/ReceivingDetail.vue - 收货单详情
    • src/views/Warehouse/Edit.vue - 仓库编辑
    • src/views/Warehouse/BindTemplate.vue - 仓库模板绑定
  • 路由: /warehouse 下的所有子路由
  • 功能: 仓库管理、库存管理、采购单、收货单管理、仓库模板绑定
  • 状态管理: 相关 store 模块(推测)

3.4 打印管理模块

  • 视图组件:
    • src/views/Print/batch.vue - 批量打印
    • src/views/Print/log.vue - 打印日志
    • src/views/Print/TemplateList/index.vue - 模板列表
    • src/views/Print/TemplateDesign/index.vue - 模板设计
    • src/views/Print/batch-detail/[id].vue - 批次详情
  • 路由: /print/ 下的所有路由
  • 功能: 批量打印、打印日志管理、打印模板设计与管理
  • 相关组件: src/components/PrintDialog.vue

3.5 平台管理模块

  • 视图组件:
    • src/views/Platform/WaybillAccounts.vue - 面单账号
    • src/views/Platform/Shops/index.vue - 店铺管理
    • src/views/Platform/Shops/Callback.vue - 授权回调
  • 路由: /platform/ 下的路由
  • 功能: 平台店铺管理、面单账号管理、授权回调处理

3.6 系统设置模块

  • 视图组件:
    • src/views/Setting/Supplier.vue - 供应商管理
    • src/views/Setting/Brand.vue - 品牌管理
  • 路由: /setting 下的子路由
  • 功能: 供应商管理、品牌管理

3.7 状态管理 (Pinia Stores)

  • 用户认证: src/stores/user.ts
    • 管理用户登录状态、token、用户信息
    • 提供登录、退出、token 刷新等功能
  • 订单: src/stores/order.ts
    • 订单相关状态管理
  • 认证: src/stores/auth.ts
    • 认证相关状态

4. 目录结构说明

src/
├── api/                    # API 接口封装
│   ├── auth.ts            # 认证相关 API
│   ├── goods.ts           # 商品 API
│   ├── order.ts           # 订单 API
│   ├── platform.ts        # 平台 API
│   ├── warehouse.ts       # 仓库 API
│   ├── user.ts           # 用户 API
│   └── utils/            # API 工具函数
├── assets/               # 静态资源
├── components/           # 公共组件
│   ├── base/            # 基础组件
│   ├── icons/           # 图标组件
│   ├── order/           # 订单相关组件
│   ├── product/         # 商品相关组件
│   ├── PrintDialog.vue  # 打印对话框
│   └── ...
├── layouts/             # 布局组件
│   ├── MainLayout.vue      # 主布局
│   ├── MainLayoutFixed.vue # 固定布局
│   ├── MainLayoutSafe.vue  # 安全布局
│   ├── MainLayoutSimple.vue# 简单布局
│   ├── PrintLayout.vue     # 打印布局
│   ├── SimpleLayout.vue    # 简单布局
│   └── Sidebar.vue         # 侧边栏
├── router/              # 路由配置
│   ├── index.ts        # 路由入口
│   ├── manual.ts       # 路由配置
│   └── guard.ts        # 路由守卫
├── stores/             # Pinia 状态管理
│   ├── user.ts        # 用户状态
│   ├── order.ts       # 订单状态
│   └── auth.ts        # 认证状态
├── types/              # TypeScript 类型定义
│   ├── user.ts        # 用户类型
│   ├── auth.ts        # 认证类型
│   ├── platform.ts    # 平台类型
│   └── template.ts    # 模板类型
├── views/              # 页面视图
│   ├── Order/         # 订单相关页面
│   ├── Goods/         # 商品相关页面
│   ├── Warehouse/     # 仓库相关页面
│   ├── Print/         # 打印相关页面
│   ├── Platform/      # 平台相关页面
│   ├── Setting/       # 设置相关页面
│   └── ...
└── App.vue            # 根组件

5. 项目特色与架构亮点

5.1 权限控制系统

  • 路由守卫: src/router/guard.ts 实现完整的认证和权限检查
  • 白名单机制: 定义不需要登录即可访问的路由
  • 权限映射: 通过 permissionRoutes 配置路由权限要求
  • 用户角色: 支持基于角色和权限的访问控制

5.2 状态管理设计

  • Pinia 架构: 使用 Vue 3 推荐的 Pinia 进行状态管理
  • 模块化 Stores: 按业务模块分离 store用户、订单、认证
  • 持久化存储: 支持 localStorage 和 sessionStorage 自动同步
  • 响应式状态: 完整的 TypeScript 类型支持

5.3 API 封装

  • 模块化 API: 按业务模块组织 API 文件
  • 统一错误处理: 推测有统一的错误处理机制
  • 类型安全: 基于 TypeScript 的类型定义

5.4 路由设计

  • 布局分离: 多布局系统适应不同页面需求
  • 路由懒加载: 提升应用性能
  • 嵌套路由: 合理的嵌套路由结构组织相关功能
  • 动态路由参数: 支持路由参数传递和 Props 注入

5.5 开发工具集成

  • Vite 快速构建: 现代化的构建工具提供优秀的开发体验
  • 路径别名: 配置 @ 指向 src 目录,简化导入路径
  • TypeScript 支持: 完整的类型系统支持

5.6 业务特点

  1. ERP 核心功能: 包含订单、商品、仓库、打印等 ERP 核心模块
  2. 多平台支持: 支持店铺管理、平台商品同步等功能
  3. 打印模板系统: 专门的打印模板设计和批量打印功能
  4. 仓库管理: 完整的仓库、库存、采购、收货管理流程

6. 总结

这是一个功能完善的 ERP 前端系统,基于 Vue 3 现代技术栈构建。项目具有清晰的模块划分、完整的权限控制体系和良好的架构设计。主要特点包括:

  • 技术栈先进: Vue 3 + TypeScript + Vite + Pinia + Element Plus
  • 架构清晰: 模块化设计,职责分离明确
  • 功能完整: 覆盖 ERP 核心业务功能
  • 用户体验: 路由懒加载、布局系统等优化
  • 可维护性: TypeScript 类型安全、代码结构清晰

项目适合作为企业级 ERP 系统的前端部分,具有良好的可扩展性和维护性。