# Repository Guidelines 本仓库为基于 Vite + Vue 3 + TypeScript 的前端项目,依赖 Ant Design Vue、Pinia、Axios 等。统一使用 UTF-8 编码。 ## 项目结构与模块组织 - 源码:`src/`(`components/`、`pages/`、`services/`、`apis/`、`stores/`、`hooks/`、`assets/`) - 静态资源:`public/` - 接口模拟:`mocks/`(本地联调示例数据) - 文档:`docs/` - 配置:`vite.config.ts`、`tsconfig*.json`、`eslint.config.js` ## 构建、测试与本地运行 - 本地开发:`pnpm start` 或 `npm run start`(启动 Vite 开发服务器) - 生产构建:`pnpm build` 或 `npm run build`(先 TypeCheck 再打包) - 本地预览:`pnpm preview` 或 `npm run preview` - 代码检查:`npx eslint . --ext .ts,.vue` - 样式检查:`npx stylelint "src/**/*.{vue,scss,css}"` - 格式化:`npx prettier -w .` ## 代码风格与命名约定 - TypeScript + Vue SFC,缩进 2 空格;单引号;必须分号;`max-len` 120。 - 组件命名采用帕斯卡命名(例:`RobotLabels.vue`);忽略名:`index.vue`、`exception.vue`。 - 导入排序使用 `eslint-plugin-simple-import-sort`。 - 样式使用 SCSS,按 `stylelint` 推荐与 Recess Order。 ## 测试规范 当前未集成单测框架。建议后续采用 Vitest + Vue Test Utils,测试文件命名 `*.spec.ts`,位置 `src/**/__tests__/` 或与源码同级。 ## 提交与合并请求 - 提交遵循 Conventional Commits:`feat|fix|refactor(scope?): 简要中文描述`。 - 示例:`feat(editor): 新增导入场景模态框` - PR 需包含:变更说明、影响范围、操作步骤/截图(UI 变更)、关联 Issue、风险与回滚方案。 - 在提交前确保:通过构建与 ESLint/Stylelint/Prettier 检查。 ## 安全与配置提示 - 后端地址与令牌从环境变量读取:`ENV_HTTP_BASE`、`ENV_DEV_TOKEN`、`ENV_DEV_TENANT_ID`(见 `src/services/http.ts`)。请在 `.env.development`/`.env.production` 配置。 - 避免将敏感信息写入仓库;调试日志仅限开发环境。 -Always reply to me in Chinese 文件编码使用 UTF‑8 --- # web-amr 项目 AI 编程指导(Vue 3 + Vite + TS + Ant Design Vue + Pinia) 本指南用于约束 AI 在本项目中新增功能/修复 Bug 的方式,目标是:代码优雅、可维护、可读、符合主流 Vue 生态实践,并与仓库现有风格一致。 --- ## 1. 总体原则 1. **先理解再动手** - 先搜索仓库已有实现(同类页面/组件/Store/接口封装),优先复用现成模式。 - 不引入新范式/新库,除非明确要求;避免“为了重构而重构”。 2. **最小必要改动(Minimal Diff)** - 只改与需求直接相关的文件和逻辑。 - 不随意改命名、格式、结构;不顺手修“无关的”问题。 3. **分层清晰、职责单一** - UI 逻辑、业务逻辑、数据访问、状态管理分离。 - 一个文件/组件只负责一类事情。 4. **可读性优先于“聪明”** - 选择易懂的实现而非炫技。 - 复杂逻辑拆分为可测试的小函数/Hook/Store action。 --- ## 2. 项目结构与放置规范 - 页面:`src/pages/**` - 每个页面一个文件夹,包含 `index.vue`、子组件、局部 hooks、局部类型。 - 组件:`src/components/**` - 复用组件放这里;页面私有组件放页面目录内。 - 状态:`src/stores/**`(Pinia) - 全局/跨页面状态必须放 Store。 - 接口: - `src/apis/**`:接口定义、类型、路径、参数; - `src/services/**`:Axios 实例、拦截器、通用请求工具。 - Hooks:`src/hooks/**` - 复用的组合式逻辑;页面私有 hooks 放页面目录。 - 静态资源:`src/assets/**`、`public/**` **放置判定:** 跨页面复用 → `components/stores/hooks/apis`;仅当前页面使用 → 页面目录内。 --- ## 3. Vue 组件设计(主流实践) 1. **Composition API + `