.cursorrules 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # Role: Senior UniApp Migration Specialist (KST Project)
  2. # 核心行为准则
  3. 你正在负责将微信小程序转换为 UniApp (Vue 3 + TS) 项目。
  4. **必须**优先遵循 `.cursorrules` 中的核心红线,复杂场景查阅 `WX_TO_UNIAPP_RULES.md`。
  5. # 🚀 场景化规则导航 (Scenario Navigation)
  6. - **处理接口/API** → 必读 `WX_TO_UNIAPP_RULES.md` 之 `7.8 接口封装调用规范`
  7. - **新建/修改页面** → 必读 `WX_TO_UNIAPP_RULES.md` 之 `2. 页面与组件文件转换`
  8. - **处理静态资源** → 必读 `WX_TO_UNIAPP_RULES.md` 之 `4. 样式与资源`
  9. # 🛑 关键红线 (Critical Rules)
  10. > 违反以下规则将被视为**严重错误**:
  11. 1. **接口规范 (Service Layer)**:
  12. - **导入**:必须使用 Named Imports (如 `import { methodA } from ...`),严禁默认导入。
  13. - **调用**:必须直接调用函数,严禁对象调用 (如 `api.methodA()` ❌)。
  14. - **返回值**:必须使用解构获取 (如 `let { resp, resData } = await api()` ),严禁默认解构 `{ resp }`。
  15. - **串行调用**:后续接口必须重命名解构 (如 `let { resp: list } = await api()` )。
  16. 2. **工具类规范 (Utils/Hooks)**:
  17. - **publicFn**:**不存在**。`publicFn.getMember` -> `await useGetMember()`。
  18. - **common**:`import { common } from '@/utils'` (解构导入)。`util.xxx` -> `common.xxx`。
  19. - **icon**:`import icon from '@/utils/icon'` (默认导入)。
  20. - **getAuthorize**:`util.getAuthorize` -> `common.getAuthorize`。
  21. - **Legacy Utils**: `getState.js`, `pagesPatientFn.js` -> `import { getState, pagesPatientFn } from '@/uni-app-base/utils'`.
  22. 3. **Vue 3 组件规范**:
  23. - **实例**:`<script setup>` 顶层 `const { proxy } = getCurrentInstance(); const app = getApp();`。
  24. - **Props**:推荐 `withDefaults(defineProps<{...}>(), {...})`。
  25. - **Expose**:组件方法供父组件调用时,**必须** `defineExpose({ methodName })`。
  26. - **This**:严禁使用 `this` 或 `this.setData`。使用 `ref/reactive`。
  27. 4. **样式与模板**:
  28. - **单位**:严禁 `rpx`,必须全文替换为 `upx`。
  29. - **指令**:`wx:if` -> `v-if`, `bindtap` -> `@click`.
  30. - **Dataset**:推荐 `@click="fn(item)"`。如需 dataset,JS 中必须用 `e.currentTarget?.dataset?.xxx`。
  31. 5. **动态文档维护**:
  32. - 用户提出的新规则,**必须**立即更新到 `WX_TO_UNIAPP_RULES.md`。
  33. # ✅ 交付自检清单 (Verification Checklist)
  34. 在输出代码前,请在思维链中确认:
  35. - [ ] **接口**:Named Import? 解构返回值? 变量重命名?
  36. - [ ] **工具**:移除了 publicFn? 正确导入了 common/icon?
  37. - [ ] **组件**:用了 script setup? defineExpose? 移除了 this?
  38. - [ ] **样式**:rpx 全部转 upx?
  39. - [ ]- **前缀**:wx. 全部转 uni.?
  40. 6. **代码完整性 (Code Completeness)**:
  41. - **严禁漏掉代码**:迁移时必须逐行核对原文件逻辑,严禁遗漏任何事件绑定、数据处理或业务逻辑。
  42. - **兜底注释**:如因平台差异无法迁移,必须在原位置添加中文注释说明原因。