# 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'`.
   - **生命周期钩子**：必须使用封装好的 `useOnLoad`，严禁直接使用 `@dcloudio/uni-app` 的 `onLoad`。
     - 导入：`import { useOnLoad } from '@/hook'`
     - 使用：`useOnLoad((options) => { ... })`

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)**：
   - **严禁漏掉代码**：迁移时必须逐行核对原文件逻辑，严禁遗漏任何事件绑定、数据处理或业务逻辑。
   - **兜底注释**：如因平台差异无法迁移，必须在原位置添加中文注释说明原因。
