Skip to content

9.1 前端工程概述 ​

概述

前端为 Vue3 + TypeScript + Vite + Element Plus + Pinia 的标准工程化项目(ui/ 目录),采用 Composition API,核心机制为:动态菜单路由、指令级权限、三件套页面规范(api/columns/querySchemas)、统一封装的 axios。

技术栈 ​

技术版本用途
Vue^3.4.27核心框架(Composition API)
TypeScript^5.x类型系统
Vite^5.x构建(多环境模式 dev/test/uat/prod)
Element Plus^2.7.4UI 组件库
Pinia^2.1.7状态管理
Vue Router^4.3.2路由(常量路由 + 动态菜单路由)
axios^0.27.2HTTP(封装于 utils/http/axios,VAxios 类)
echarts^5.5.0数据可视化(仪表盘)
tinymce / vue-quill5.10.3 / beta.8富文本编辑器
xlsx^0.18.5Excel 导入导出
cropperjs / vue-cropper—图片裁剪
dayjs / lodash-es—工具

工程结构(src 下九层) ​

text
api/         接口模块(按域分目录,url 对齐 gmeta path)
components/  公共组件(25 类)
directives/  自定义指令(permission 权限等)
enums/       枚举常量(http/cache/page/permissions/role…)
hooks/       组合式函数(core/event/setting/web…)
layout/      布局系统
router/      路由(constant 常量 + generator-routers 动态 + 守卫)
settings/    全局设置(项目/设计/组件/动画)
store/       Pinia(modules 7 个)
styles/      全局样式与主题变量
utils/       工具库(http 封装/auth/storage/downloadFile…)
views/       页面(按域分目录:system/data/content/monitor/tool…)

核心机制一览 ​

机制说明详见
HTTP 封装VAxios 类 + transform 链;统一信封解包、401 处理、消息提示9.4
动态菜单路由登录后拉 /api/index/getMenus 生成路由(generator-routers)9.5
状态管理Pinia modules:user/asyncRoute/tabsView/designSetting…9.6
权限控制directives/permission 按 permissions 控制按钮9.7
登录流程多形态(账号/手机/扫码/Qrcode 表单)+ token 存储9.8
三件套规范api + columns.ts + querySchemas.ts 页面开发模式9.12

与后端的契约 ​

text
baseURL = /api(Vite 开发代理指向 :8000)
接口 url 无 /v1 版本段(/user/page 而非 /v1/user/page)
响应信封 {code, ok, msg, data}:0 成功解包 / 1 弹 msg / 401 跳登录
登录读 data.access_token(下划线例外)
筛选三件套对齐:querySchemas ↔ PageReq ↔ spec 声明

常用命令 ​

sh
pnpm dev            # 开发(Vite 代理 /api → :8000)
pnpm build          # 生产构建
pnpm type:check     # vue-tsc 类型检查
pnpm lint:eslint    # ESLint 修复
pnpm preview        # 构建并预览

页面与后端模块对应 ​

前端目录后端模块
views/system/{user,role,menu,dept,level,position,tenant}system 域七模块
views/system/logger/{loginLog,operLog}login_log / operation_log
views/data/{city,config,dict,notice,param}data 域五模块
views/content/{article,category,link}content 域三模块
views/monitor/{online,server,cache,job}online_user/server_monitor/cache_monitor/job
views/tool/{generator,example}generator / example
views/file/fileTemplatefile_template
views/setting/{profile,configWeb}index 个人中心 / config web 接口

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