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