补充重置密码功能
This commit is contained in:
@@ -10,6 +10,7 @@ struct RecoverPasswordFeature {
|
||||
var newPassword: String = ""
|
||||
var isCodeLoading: Bool = false
|
||||
var isResetLoading: Bool = false
|
||||
var isResetSuccess: Bool = false
|
||||
var errorMessage: String? = nil
|
||||
var isCodeSent: Bool = false
|
||||
|
||||
@@ -30,6 +31,7 @@ struct RecoverPasswordFeature {
|
||||
case getCodeResponse(Result<EmailGetCodeResponse, Error>)
|
||||
case resetPasswordTapped
|
||||
case resetPasswordResponse(Result<ResetPasswordResponse, Error>)
|
||||
case resetSuccess
|
||||
case resetState
|
||||
}
|
||||
|
||||
@@ -145,9 +147,9 @@ struct RecoverPasswordFeature {
|
||||
state.isResetLoading = false
|
||||
|
||||
if response.isSuccess {
|
||||
// 密码重置成功,可以显示成功信息并导航回登录页面
|
||||
state.isResetSuccess = true
|
||||
state.errorMessage = nil
|
||||
return .none
|
||||
return .send(.resetSuccess)
|
||||
} else {
|
||||
state.errorMessage = response.errorMessage
|
||||
return .none
|
||||
@@ -162,12 +164,17 @@ struct RecoverPasswordFeature {
|
||||
}
|
||||
return .none
|
||||
|
||||
case .resetSuccess:
|
||||
// 密码重置成功,准备返回上一页
|
||||
return .none
|
||||
|
||||
case .resetState:
|
||||
state.email = ""
|
||||
state.verificationCode = ""
|
||||
state.newPassword = ""
|
||||
state.isCodeLoading = false
|
||||
state.isResetLoading = false
|
||||
state.isResetSuccess = false
|
||||
state.errorMessage = nil
|
||||
state.isCodeSent = false
|
||||
return .none
|
||||
@@ -196,11 +203,11 @@ struct ResetPasswordResponse: Codable, Equatable {
|
||||
}
|
||||
}
|
||||
|
||||
/// 密码重置请求
|
||||
/// 密码重置请求 - 新API端点
|
||||
struct ResetPasswordRequest: APIRequestProtocol {
|
||||
typealias Response = ResetPasswordResponse
|
||||
|
||||
let endpoint = "/password/reset" // 假设的密码重置端点
|
||||
let endpoint = "/acc/pwd/resetByEmail" // 新的API端点
|
||||
let method: HTTPMethod = .POST
|
||||
let includeBaseParameters = true
|
||||
let queryParameters: [String: String]?
|
||||
@@ -211,12 +218,12 @@ struct ResetPasswordRequest: APIRequestProtocol {
|
||||
/// - Parameters:
|
||||
/// - email: DES加密后的邮箱地址
|
||||
/// - code: 验证码
|
||||
/// - newPassword: DES加密后的新密码
|
||||
init(email: String, code: String, newPassword: String) {
|
||||
/// - newPwd: DES加密后的新密码
|
||||
init(email: String, code: String, newPwd: String) {
|
||||
self.queryParameters = [
|
||||
"email": email,
|
||||
"code": code,
|
||||
"newPassword": newPassword
|
||||
"newPwd": newPwd, // 参数名改为newPwd
|
||||
"code": code
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -266,9 +273,9 @@ struct RecoverPasswordHelper {
|
||||
print(" 加密新密码: \(encryptedPassword)")
|
||||
|
||||
return ResetPasswordRequest(
|
||||
email: encryptedEmail,
|
||||
email: email,
|
||||
code: code,
|
||||
newPassword: encryptedPassword
|
||||
newPwd: encryptedPassword // 参数名改为newPwd
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -269,6 +269,12 @@ struct RecoverPasswordView: View {
|
||||
// 可以在这里添加焦点切换逻辑
|
||||
}
|
||||
}
|
||||
.onChange(of: store.isResetSuccess) { isResetSuccess in
|
||||
// 密码重置成功后自动返回上一页
|
||||
if isResetSuccess {
|
||||
onBack()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Private Methods
|
||||
|
Reference in New Issue
Block a user