Skip to content

9.1 前端工程概述 ​

概述

前端为独立 Vite 工程(ui/):Vue3 + TypeScript + ElementPlus + Pinia。核心机制包括 axios 信封解包、动态菜单路由、权限指令与 28 个公共组件。本章按"工程基础 → 核心机制 → 公共组件 → 开发实践"组织。

技术构成 ​

层选型
框架Vue 3.4(Composition API)+ TypeScript 4.9
构建Vite 3(开发端口 8001,/api 代理到 8000)
UIElementPlus 2.7 + @element-plus/icons
状态Pinia(7 个 store 模块)
路由vue-router 4(静态 + 动态菜单生成)
HTTPaxios 0.27(自研拦截器封装层)
富文本TinyMCE / vue-quill(双引擎)
其他echarts、xlsx、cropperjs、ali-oss、dayjs、lodash

工程地图 ​

text
ui/src/
├── api/          接口模块(按业务域分组)
├── components/   公共组件(28 个)
├── directives/   指令(perm/perms/scrollBar/clickOutside)
├── enums/        枚举常量
├── hooks/        组合式函数(core/event/setting/web 分组)
├── layout/       布局系统
├── router/       静态路由 + 动态生成器 + 守卫
├── store/        Pinia(user/asyncRoute/tabsView/design/project/lockscreen/ossConfig)
├── styles/       全局样式与主题变量
├── settings/     应用默认设置
├── utils/        工具(http/auth/validate/date/file...)
└── views/        页面(按业务域分目录)

与后端的协作形态 ​

text
登录 → GetMenus(动态路由)→ 页面渲染
     → api 模块发起请求(http 封装加前缀/Token)
     → 拦截器解包信封(0 成功 / 401 刷新或跳登录 / 其余弹 msg)
     → v-perm 控制按钮显隐 / 字典接口驱动下拉

阅读路线 ​

目标页面
了解工程结构9.2 目录结构详解
接后端接口9.4 HTTP 封装 + 9.14 API 模块编写规范
做页面9.13 新增页面开发步骤
排查登录/权限问题9.5 路由与动态菜单 + 9.7 权限控制 + 9.8 登录流程
用公共组件9.9–9.12 组件四篇

命令 ​

bash
cd ui
pnpm dev            # 开发
pnpm build          # 生产构建
pnpm type:check     # 类型检查
pnpm lint:eslint    # ESLint

下一步 ​

→ 9.2 目录结构详解

小蚂蚁云团队 · 提供技术支持