# 2026-07-20 工作记录 ## 复制 site-vue 登录页到 mp-vue 将 `/Users/gxwebsoft/VUE/site-vue/src/views/passport/login` 的登录页复制到当前项目 `mp-vue/src/views/passport/login`。 ### 关键发现 - 两边 `components/` 子目录完全一致,无需复制;仅 `index.vue` 有差异(源为重构后的新版本,22387 字节)。 - 源登录页重构后依赖 site-vue 专属 API,mp-vue 原本缺失: - `loginByUserId` / `loginByEmail`:写死了外部地址 `https://server.websoft.top/api/...`(非 mp-vue 后端) - `loginBySuperAdminSms`:走 `SERVER_API_URL + '/loginBySuperAdminSms'` - `listAdminsByEmailAll`(来自 `@/api/system/user`):同样指向 `server.websoft.top` - 用户确认采用「完整移植含 API」方案,保留上述 websoft.top 硬编码地址(已知风险:登录会打到 site-vue 后端,需确认 mp-vue 后端是否支持这些接口)。 ### 已改动文件 1. `src/views/passport/login/index.vue` —— 直接覆盖为源版本。 2. `src/api/passport/login/index.ts` —— 新增 `loginByUserId`、`loginBySuperAdminSms`、`loginByEmail` 三个函数。 3. `src/api/system/user/index.ts` —— 新增 `listAdminsByEmailAll` 函数。 4. `src/api/passport/login/model/index.ts` —— LoginParam 增加 `userId`、`email` 字段。 ### 验证 - 所有 import 符号在 mp-vue 中均存在(`@/router`、`QrCodeStatusResponse`、`QrLogin` 组件、`configWebsiteField` 等)。 - 两边 `User` 模型字段一致(含 `isSuperAdmin`、`templateId`),表单初值与 `LoginForm` 类型匹配。 - 已触发 `vue-tsc --noEmit` 全量类型检查(后台任务)确认无编译错误。