# Vue 3 + Vben Admin 5.0 约束
> 本文件为公司统一配置(L1)的语言约束部分,涵盖 Vue 3 + Vben Admin 5.0 的**专属**约定和模板。
> 按需动态加载:当任务涉及 Vben Admin / Vue 3 + Composition API / TypeScript 前端代码编写时加载本文件。
>
> **公共规范**(格式、组件命名、API命名、API层组织、权限模式、CRUD架构、Lint流程)已在公司统一配置 §六 中定义,本文件不再重复。
---
## 一、技术栈约束
- 使用 Vue 3 + Composition API + `
```
---
## 七、偏好设置配置
在应用目录的 `preferences.ts` 中配置:
```ts
import { defineOverridesPreferences } from "@vben/preferences";
export const overridesPreferences = defineOverridesPreferences({
app: {
layout: "sidebar-nav", // 布局方式
locale: "zh-CN", // 语言
dynamicTitle: true, // 动态标题
watermark: false, // 水印
loginExpiredMode: "page", // 登录过期模式
},
theme: {
mode: "dark", // 主题模式
builtinType: "default", // 内置主题
colorPrimary: "hsl(212 100% 45%)", // 主题色
},
sidebar: {
collapsed: false, // 侧边栏折叠
width: 224, // 侧边栏宽度
},
tabbar: {
enable: true, // 标签页
keepAlive: true, // 缓存
},
});
```
---
## 八、API 请求
> 公共API层组织原则见公司统一配置 §6.4。以下为 Vben 5.0 专属实现。
请求配置在 `src/api/request.ts`:
```ts
import { requestClient } from "#/api/request";
// GET 请求
export async function getUserInfoApi() {
return requestClient.get("/user/info");
}
// POST 请求
export async function saveUserApi(user: UserInfo) {
return requestClient.post("/user", user);
}
```
代理配置在 `vite.config.mts`:
```ts
export default defineConfig(async () => {
return {
vite: {
server: {
proxy: {
"/api": {
target: "http://localhost:5320/api",
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ""),
},
},
},
},
};
});
```
---
## 九、登录接口对接
```ts
// src/api/core/auth.ts
export async function loginApi(data: LoginParams) {
return requestClient.post("/auth/login", data);
}
// src/api/core/user.ts
export async function getUserInfoApi() {
return requestClient.get("/user/info");
}
// src/api/core/auth.ts (可选)
export async function getAccessCodesApi() {
return requestClient.get("/auth/codes");
}
```
---
## 十、国际化
使用 `$t()` 函数:
```ts
import { $t } from '#/locales';
meta: {
title: $t('page.home.title'),
}
```
语言文件在 `packages/locales/` 目录。
---
## 十一、主题定制
CSS 变量覆盖:
```css
:root {
--primary: 212 100% 45%;
--sidebar: 0 0% 100%;
--header: 0 0% 100%;
}
.dark {
--background: 222.34deg 10.43% 12.27%;
--sidebar: 222.34deg 10.43% 12.27%;
}
```
---
## 十二、环境变量
```bash
# .env.development
VITE_PORT=5555
VITE_GLOB_API_URL=/api
VITE_NITRO_MOCK=true
# .env.production
VITE_GLOB_API_URL=https://api.example.com
VITE_COMPRESS=gzip
VITE_ROUTER_HISTORY=hash
```
---
## 十三、格式规范
> 通用格式规范见公司统一配置 §6.1。以下为 Vben 5.0 专属补充。
- Vue SFC 顺序:`template` → `script setup` → `style scoped`
- 组件文件使用 PascalCase 命名
- CSS 使用 `scoped` + CSS 变量,避免全局污染
---
## 十四、编辑前 Lint 流程
> 通用步骤见公司统一配置 §6.7。以下为 Vben 5.0 专属命令。
1. 对变更区域运行 `pnpm lint`
2. 运行 `pnpm check:type` 确认类型正确
3. 修复新引入的 lint / 类型错误
4. 保持变更范围;不重新格式化无关文件
---
## 十五、代码模板
- 代码生成模板按照[template/vue3_templates.md](./template/vue3_templates.md)模板生成代码
## 十六、外部参考文档
> 以下为 Vben Admin 5.0 官方 skill 包中的详细参考文件,需配合 Vben Admin skill 使用。
> 路径相对于 Vben Admin skill 的 `references/` 目录,不在本记忆系统内。
### 核心功能 (references/core/)
- **路由菜单**: `route.md` - 路由配置、Meta属性、多级菜单
- **权限控制**: `access.md` - 三种权限模式、按钮级权限
- **偏好设置**: `preferences.md` - 完整配置项说明
- **主题定制**: `theme.md` - CSS变量、内置主题、自定义主题
- **API请求**: `api.md` - 请求配置、拦截器、多接口地址
- **国际化**: `locale.md` - 语言配置、新增语言包
- **登录对接**: `login.md` - 登录接口、Token刷新
- **图标使用**: `icons.md` - Iconify图标、SVG图标
### 业务组件 (references/components/business/)
- **Page页面**: `page.md` - 页面布局容器、标题区、内容区
- **表单组件**: `form.md` - Vben Form表单配置、校验、联动
- **表格组件**: `table.md` - Vben Vxe Table表格配置、搜索、远程加载
- **模态框**: `modal.md` - Vben Modal配置、拖拽、全屏
- **抽屉**: `drawer.md` - Vben Drawer配置、组件抽离
- **轻量提示框**: `alert.md` - alert、confirm、prompt调用
- **API组件包装器**: `api-component.md` - 远程数据自动加载
### 通用组件 (references/components/common/)
- **数字动画**: `count-to.md` - CountToAnimator数字滚动动画
- **省略文本**: `ellipsis-text.md` - EllipsisText文本省略展开
### 功能配置 (references/features/)
- **常用功能**: `features.md` - 水印、缓存、动态标题等
### 构建部署 (references/deployment/)
- **构建部署**: `deploy.md` - 构建配置、Nginx、Docker
- **常见问题**: `faq.md` - 依赖安装、打包部署、错误排查
---
_最后更新:2026-04-22_
_版本:5.0.0(公共规范已提取至公司统一配置 §六)_