diff --git a/.cursor/skills/project-framework/SKILL.md b/.cursor/skills/project-framework/SKILL.md new file mode 100644 index 0000000..3d6cdbe --- /dev/null +++ b/.cursor/skills/project-framework/SKILL.md @@ -0,0 +1,85 @@ +--- +name: project-framework +description: Defines the PolyClientVuetify project's framework, structure, and coding conventions. Use when adding or modifying any code in this repository so that changes follow the same stack, patterns, and style. +--- + +# 项目框架规范 + +在**新增或修改**本仓库内任何代码时,按以下规范执行,保证风格与架构一致。 + +## 技术栈 + +- **框架**:Vue 3(Composition API)+ TypeScript +- **构建**:Vite 7,路径别名 `@/*` → `./src/*` +- **UI**:Vuetify 4(`v-app`、`v-card`、`v-btn` 等) +- **状态**:Pinia +- **路由**:Vue Router 5(createWebHistory) +- **代码质量**:ESLint + Prettier + oxlint;单测 Vitest,E2E Playwright + +## 目录与文件放置 + +| 用途 | 目录/文件 | 说明 | +|----------------|------------------------------|------| +| 页面级视图 | `src/views/` | 对应路由,一个路由一个 Vue 文件 | +| 可复用组件 | `src/components/` | 被多个 view 或其它组件引用 | +| 接口与类型 | `src/api/` | 请求封装、接口函数、响应/请求类型 | +| 全局状态 | `src/stores/` | Pinia store,按领域拆分 | +| 路由配置 | `src/router/index.ts` | 集中声明 routes | +| 入口与插件 | `src/main.ts`、`src/plugins/` | 不随意新增顶级文件 | + +- 新页面:在 `views/` 新增 `.vue`,并在 `router/index.ts` 增加 `path`、`name`、`component`。 +- 新接口:在 `api/` 下合适模块(如 `event.ts`)或新建 `xxx.ts`,复用 `request.ts` 的 `get`/`post`,并导出类型与函数。 + +## Vue 组件规范 + +1. **单文件结构顺序**:`