10 KiB
10 KiB
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 业务特点
- ERP 核心功能: 包含订单、商品、仓库、打印等 ERP 核心模块
- 多平台支持: 支持店铺管理、平台商品同步等功能
- 打印模板系统: 专门的打印模板设计和批量打印功能
- 仓库管理: 完整的仓库、库存、采购、收货管理流程
6. 总结
这是一个功能完善的 ERP 前端系统,基于 Vue 3 现代技术栈构建。项目具有清晰的模块划分、完整的权限控制体系和良好的架构设计。主要特点包括:
- 技术栈先进: Vue 3 + TypeScript + Vite + Pinia + Element Plus
- 架构清晰: 模块化设计,职责分离明确
- 功能完整: 覆盖 ERP 核心业务功能
- 用户体验: 路由懒加载、布局系统等优化
- 可维护性: TypeScript 类型安全、代码结构清晰
项目适合作为企业级 ERP 系统的前端部分,具有良好的可扩展性和维护性。