Files
portal-mini-front/.codebuddy/rules/00-project-overview.md
T
2026-10-25 23:35:10 +08:00

70 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: 项目 overview —— portal-mini-front 后台管理系统的技术栈、目录结构与运行方式
globs: ["**/*"]
alwaysApply: true
---
# 项目概述
## 产品定位
`portal-mini-front` 是一个**后台管理系统前端**(Portal 管理后台),面向内部运营/管理员,核心场景是:登录鉴权 → 菜单/路由权限 → 数据列表(查询/分页/筛选)→ 增删改查表单 → 数据看板。
## 技术栈(固定选型,不得随意替换)
| 领域 | 选型 | 说明 |
| --- | --- | --- |
| 框架 | Vue 3.4+ | 仅使用 Composition API |
| 语言 | TypeScript 5.x | 严格模式,禁止 `any` |
| 构建 | Vite 5+ | |
| UI 库 | Element Plus | 主题色、组件尺寸统一在应用入口配置 |
| 脚手架基线 | `vue3-element-admin` | 目录结构、请求封装、权限方案以该模板为基准 |
| 状态管理 | Pinia + pinia-plugin-persistedstate | 使用 setup store 语法,按需声明 persist 路径 |
| 路由 | Vue Router 4 | 动态路由 + 权限守卫 |
| HTTP | Axios | 统一封装于 `src/utils/request.ts` |
| 图标 | `@element-plus/icons-vue` + 本地 svg sprite | |
| 工具库 | VueUse(`@vueuse/core`) | 优先复用,不重复造轮子 |
| 代码规范 | ESLint + Prettier + husky/lint-staged | 提交前自动校验 |
> 引入任何新依赖前必须说明理由;能用 Element Plus / VueUse / 现有 utils 解决的,不允许加新库。
## 目录结构约定
```
src/
├── api/ # 接口层,按业务模块划分,不得在组件内直接写请求
│ └── {module}/
│ └── index.ts # 导出 {Module}API 对象
├── components/ # 跨模块复用的全局组件(自动注册)
├── composables/ # 跨模块复用的组合式函数 useXxx
├── directives/ # 自定义指令,如 v-hasPerm
├── enums/ # 枚举与常量字典
├── layouts/ # 布局骨架(侧边栏/顶栏/标签栏/内容区)
├── router/ # 静态路由 + 动态路由 + 守卫
├── store/modules/ # Pinia 模块
├── styles/ # 全局样式、变量、Element Plus 覆盖
├── types/ # 全局与模块类型声明(*.d.ts 或 *.ts)
├── utils/ # request / storage / 通用工具
└── views/ # 页面,按业务模块划分
└── {module}/
├── index.vue # 列表主页(必须)
└── components/ # 仅该模块使用的子组件(表单弹窗等)
```
命名规则:
- 目录、文件名统一 **kebab-case**;Vue 组件文件用 **PascalCase.vue** 或目录 + `index.vue`。
- 页面路由 path 与 `views/{module}` 目录保持一致。
## 常用命令
```bash
pnpm dev # 本地开发
pnpm build:prod # 生产构建
pnpm preview # 预览构建产物
pnpm lint # ESLint 检查并修复
pnpm type-check # vue-tsc 类型检查
```
## 环境
- 环境变量文件:`.env.development` / `.env.production`,变量必须以 `VITE_` 开头。
- 接口地址统一走 `VITE_APP_BASE_API`,本地通过 Vite `server.proxy` 解决跨域,**不允许在代码里硬编码域名或端口**。
- 后端未就绪时开启 `VITE_USE_MOCK=true`(仅 dev 生效),由 `mock/plugin.ts` 中间件拦截 `/api/v1` 返回模拟数据,不引入任何 mock 依赖。后端联调时置为 `false`,直接走代理。