Files
easygoadmin-wiki/EasyGoAdmin_Gin_EleVue/zh/frontend/overview.md
T
2026-10-25 17:24:27 +08:00

2.4 KiB
Raw Blame History

9.1 前端工程概述

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

技术构成

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

工程地图

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/        页面(按业务域分目录)

与后端的协作形态

登录 → 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 组件四篇

命令

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

下一步

→ 9.2 目录结构详解