deotalandAi/.trae/documents/修改登录注册邀请码逻辑.md

71 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 实施计划
### 1. 分析当前代码结构
* **PhoneLogin.vue**:手机号登录页面主组件,包含登录卡片和子组件调用
* **PhoneLoginForm.vue**:登录表单组件,包含登录方式切换和表单字段
* **login.js**包含登录相关的API调用方法如`sendPhoneCode`和`phoneLoginCode`
### 2. 修改PhoneLoginForm.vue组件
#### 模板部分修改
* **更新登录模式切换**:将现有的三种模式(密码登录、注册、重置密码)改为仅保留登录相关的模式
* **添加密码/验证码登录切换**:在登录模式下,添加一个新的切换开关,允许用户在密码登录和验证码登录之间切换
* **调整表单字段显示**:根据选择的登录方式显示相应的表单字段
#### 脚本部分修改
* **添加登录方式状态**:添加`loginMethod` ref用于跟踪用户选择的是密码登录还是验证码登录
* **设置默认登录方式**:将默认登录方式设置为验证码登录
* **更新表单验证逻辑**:根据选择的登录方式调整验证规则
* **更新发送验证码逻辑**:发送登录验证码时传递`purpose: 'login'`
* **更新表单提交逻辑**:验证码登录时调用`phoneLoginCode`函数
### 3. 修改PhoneLogin.vue组件
* **更新handleLogin方法**:确保根据登录方式调用正确的登录函数
### 4. 实施细节
#### PhoneLoginForm.vue修改点
* **第155行**:将默认`loginMode`改为'code'
* **第38-70行**:添加密码/验证码登录切换按钮
* **第256-285行**:更新`handleSendCode`方法确保发送验证码时传递正确的purpose
* **第288-316行**:更新`handleSubmit`方法,处理验证码登录逻辑
#### PhoneLogin.vue修改点
* **第79-81行**:更新`handleLogin`方法,根据登录方式调用正确的登录函数
### 5. 预期行为
* 用户默认看到验证码登录界面
* 用户可以在密码登录和验证码登录之间切换
* 发送登录验证码时,传递`purpose: 'login'`
* 验证码登录调用`phoneLoginCode`函数
* 密码登录保持原有功能不变
### 6. 需要修改的文件
* `d:\work\Aiproject\DeotalandAi\apps\frontend\src\components\auth\PhoneLoginForm.vue`
* `d:\work\Aiproject\DeotalandAi\apps\frontend\src\views\Login\PhoneLogin.vue`