From 9cde9f1f38bbca378cfd096bf40309fb8698e25c Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Fri, 17 Apr 2026 16:47:57 +0800 Subject: [PATCH] fix --- punchnet/Features/Auth/AuthService.swift | 8 ++--- .../Auth/ViewModels/RegisterModel.swift | 6 ++-- .../Auth/ViewModels/ResetPasswordModel.swift | 6 ++-- .../Features/Auth/Views/RegisterView.swift | 34 +++++++++---------- .../Auth/Views/ResetPasswordView.swift | 25 +++++++------- 5 files changed, 40 insertions(+), 39 deletions(-) diff --git a/punchnet/Features/Auth/AuthService.swift b/punchnet/Features/Auth/AuthService.swift index 313b062..0cdb27b 100644 --- a/punchnet/Features/Auth/AuthService.swift +++ b/punchnet/Features/Auth/AuthService.swift @@ -53,9 +53,9 @@ struct AuthService { return try await SDLAPIClient.doPost(path: "/auth/token", params: params, as: NetworkSession.self) } - static func requestRegisterVerifyCode(username: String) async throws -> RegisterSession { + static func requestRegisterVerifyCode(phoneNumber: String) async throws -> RegisterSession { var params: [String: Any] = [ - "username": username + "username": phoneNumber ] params.merge(baseParams) {$1} @@ -82,9 +82,9 @@ struct AuthService { return try await SDLAPIClient.doPost(path: "/register/submit", params: params, as: String.self) } - static func requestResetPasswordVerifyCode(username: String) async throws -> ResetPasswordSession { + static func requestResetPasswordVerifyCode(phoneNumber: String) async throws -> ResetPasswordSession { var params: [String: Any] = [ - "username": username + "username": phoneNumber ] params.merge(baseParams) {$1} diff --git a/punchnet/Features/Auth/ViewModels/RegisterModel.swift b/punchnet/Features/Auth/ViewModels/RegisterModel.swift index 8a92b8a..d01cb2b 100644 --- a/punchnet/Features/Auth/ViewModels/RegisterModel.swift +++ b/punchnet/Features/Auth/ViewModels/RegisterModel.swift @@ -20,14 +20,14 @@ class RegisterModel { } // 保存临时变量 - var username: String = "" + var phoneNumber: String = "" var sessionId: Int = 0 var stage: Stage = .requestVerifyCode var transitionEdge: Edge = .trailing // 默认从右进入 - func requestVerifyCode(username: String) async throws -> AuthService.RegisterSession { - return try await AuthService.requestRegisterVerifyCode(username: username) + func requestVerifyCode(phoneNumber: String) async throws -> AuthService.RegisterSession { + return try await AuthService.requestRegisterVerifyCode(phoneNumber: phoneNumber) } func submitVerifyCode(sessionId: Int, verifyCode: String) async throws -> String { diff --git a/punchnet/Features/Auth/ViewModels/ResetPasswordModel.swift b/punchnet/Features/Auth/ViewModels/ResetPasswordModel.swift index 7fc2a5a..1e99549 100644 --- a/punchnet/Features/Auth/ViewModels/ResetPasswordModel.swift +++ b/punchnet/Features/Auth/ViewModels/ResetPasswordModel.swift @@ -23,11 +23,11 @@ class ResetPasswordModel { var transitionEdge: Edge = .trailing // 默认从右进入 // 保存内部状态 - var username: String = "" + var phoneNumber: String = "" var sessionId: Int = 0 - func requestVerifyCode(username: String) async throws -> AuthService.ResetPasswordSession { - return try await AuthService.requestResetPasswordVerifyCode(username: username) + func requestVerifyCode(phoneNumber: String) async throws -> AuthService.ResetPasswordSession { + return try await AuthService.requestResetPasswordVerifyCode(phoneNumber: phoneNumber) } func submitVerifyCode(sessionId: Int, verifyCode: String) async throws -> String { diff --git a/punchnet/Features/Auth/Views/RegisterView.swift b/punchnet/Features/Auth/Views/RegisterView.swift index 4d4e1a9..dd048b3 100644 --- a/punchnet/Features/Auth/Views/RegisterView.swift +++ b/punchnet/Features/Auth/Views/RegisterView.swift @@ -111,16 +111,16 @@ struct RegisterRequestVerifyCodeView: View { @Bindable var model = registerModel VStack(spacing: 24) { - headerSection(title: "创建个人网络", subtitle: "输入邮箱开始注册") + headerSection(title: "创建个人网络", subtitle: "输入手机号开始注册") VStack(spacing: 16) { - PunchTextField(icon: "person.crop.circle", placeholder: "邮箱", text: $model.username) + PunchTextField(icon: "phone.fill", placeholder: "手机号", text: $model.phoneNumber) } .frame(width: 280) Button(action: { Task { @MainActor in - await self.requestVerifyCode(username: model.username) + await self.requestVerifyCode(phoneNumber: model.phoneNumber) } }) { Text("获取验证码") @@ -130,7 +130,7 @@ struct RegisterRequestVerifyCodeView: View { .buttonStyle(.borderedProminent) .controlSize(.large) .frame(width: 280) - .disabled(!SDLUtil.isValidIdentifyContact(model.username) || isProcessing) + .disabled(SDLUtil.identifyContact(model.phoneNumber) != .phone || isProcessing) } .padding(40) .alert(isPresented: $showAlert) { @@ -138,25 +138,25 @@ struct RegisterRequestVerifyCodeView: View { } } - private func requestVerifyCode(username: String) async { + private func requestVerifyCode(phoneNumber: String) async { self.isProcessing = true defer { self.isProcessing = false } - if username.isEmpty { + if phoneNumber.isEmpty { self.showAlert = true - self.errorMessage = "邮箱为空" + self.errorMessage = "手机号为空" return } - switch SDLUtil.identifyContact(username) { - case .email: + switch SDLUtil.identifyContact(phoneNumber) { + case .phone: do { - let registerSession = try await self.registerModel.requestVerifyCode(username: username) + let registerSession = try await self.registerModel.requestVerifyCode(phoneNumber: phoneNumber) withAnimation(.spring(duration: 0.6, bounce: 0.2)) { self.registerModel.stage = .submitVerifyCode - self.registerModel.username = username + self.registerModel.phoneNumber = phoneNumber self.registerModel.sessionId = registerSession.sessionId self.registerModel.transitionEdge = .trailing @@ -170,7 +170,7 @@ struct RegisterRequestVerifyCodeView: View { } default: self.showAlert = true - self.errorMessage = "邮箱格式错误" + self.errorMessage = "手机号格式错误" } } @@ -199,14 +199,14 @@ struct RegisterSubmitVerifyCodeView: View { var body: some View { VStack(spacing: 24) { - headerSection(title: "身份验证", subtitle: "验证码已发送至 \(registerModel.username)") + headerSection(title: "身份验证", subtitle: "验证码已发送至 \(registerModel.phoneNumber)") VStack(alignment: .trailing, spacing: 16) { PunchTextField(icon: "envelope.badge", placeholder: "输入 6 位验证码", text: $code) Button { Task { @MainActor in - await self.resendVerifyCodeAction(username: registerModel.username) + await self.resendVerifyCodeAction(phoneNumber: registerModel.phoneNumber) } } label: { if isEnabled { @@ -257,9 +257,9 @@ struct RegisterSubmitVerifyCodeView: View { } // 重新发送验证码 - private func resendVerifyCodeAction(username: String) async { + private func resendVerifyCodeAction(phoneNumber: String) async { do { - let result = try await self.registerModel.requestVerifyCode(username: username) + let result = try await self.registerModel.requestVerifyCode(phoneNumber: phoneNumber) print("send verify code result: \(result)") } catch let err { print("resend verify get error: \(err)") @@ -439,7 +439,7 @@ struct RegisterSuccessView: View { Button(action: { // 关闭当前注册窗口 withAnimation(.spring(duration: 0.6, bounce: 0.2)) { - self.appContext.appScene = .login(username: registerModel.username) + self.appContext.appScene = .login(username: registerModel.phoneNumber) } }) { Text("立即开始使用") diff --git a/punchnet/Features/Auth/Views/ResetPasswordView.swift b/punchnet/Features/Auth/Views/ResetPasswordView.swift index 37663e3..a685357 100644 --- a/punchnet/Features/Auth/Views/ResetPasswordView.swift +++ b/punchnet/Features/Auth/Views/ResetPasswordView.swift @@ -72,14 +72,14 @@ struct GetVerifyCodeView: View { @Bindable var model = resetPasswordModel VStack(spacing: 24) { - headerSection(title: "重置密码", subtitle: "请输入关联的邮箱来验证身份") + headerSection(title: "重置密码", subtitle: "请输入关联的手机号来验证身份") - PunchTextField(icon: "person.crop.circle", placeholder: "邮箱", text: $model.username) + PunchTextField(icon: "phone.fill", placeholder: "手机号", text: $model.phoneNumber) .frame(width: 280) Button { Task { @MainActor in - await self.sendVerifyCode(username: model.username) + await self.sendVerifyCode(phoneNumber: model.phoneNumber) } } label: { Text("获取验证码") @@ -89,7 +89,7 @@ struct GetVerifyCodeView: View { .buttonStyle(.borderedProminent) .controlSize(.large) .frame(width: 280) - .disabled(!SDLUtil.isValidIdentifyContact(model.username) || isProcessing) + .disabled(SDLUtil.identifyContact(model.phoneNumber) != .phone || isProcessing) } .padding(40) .alert(isPresented: $showAlert) { @@ -98,16 +98,17 @@ struct GetVerifyCodeView: View { } // 发送验证码 - private func sendVerifyCode(username: String) async { + private func sendVerifyCode(phoneNumber: String) async { self.isProcessing = true defer { self.isProcessing = false } do { - let resetSession = try await resetPasswordModel.requestVerifyCode(username: username) + let resetSession = try await resetPasswordModel.requestVerifyCode(phoneNumber: phoneNumber) withAnimation(.spring(duration: 0.6, bounce: 0.2)) { self.resetPasswordModel.stage = .submitVerifyCode + self.resetPasswordModel.phoneNumber = phoneNumber self.resetPasswordModel.sessionId = resetSession.sessionId self.resetPasswordModel.transitionEdge = .trailing @@ -141,14 +142,14 @@ struct SubmitVerifyCodeView: View { var body: some View { VStack(spacing: 24) { - headerSection(title: "身份验证", subtitle: "验证码已发送至 \(self.resetPasswordModel.username)") + headerSection(title: "身份验证", subtitle: "验证码已发送至 \(self.resetPasswordModel.phoneNumber)") VStack(alignment: .trailing, spacing: 16) { PunchTextField(icon: "envelope.badge", placeholder: "输入 6 位验证码", text: $code) Button(isResendEnabled ? "重新获取" : "重新获取 (\(remainingSeconds)s)") { Task { @MainActor in - await self.resendAction(username: self.resetPasswordModel.username) + await self.resendAction(phoneNumber: self.resetPasswordModel.phoneNumber) } } .buttonStyle(.link) @@ -191,8 +192,8 @@ struct SubmitVerifyCodeView: View { } } - private func resendAction(username: String) async { - _ = try? await resetPasswordModel.requestVerifyCode(username: username) + private func resendAction(phoneNumber: String) async { + _ = try? await resetPasswordModel.requestVerifyCode(phoneNumber: phoneNumber) await startCountdown() } @@ -266,7 +267,7 @@ struct ResetPasswordView: View { var body: some View { VStack(spacing: 24) { - headerSection(title: "设置新密码", subtitle: "请为账号 \(self.resetPasswordModel.username) 设置一个强密码") + headerSection(title: "设置新密码", subtitle: "请为手机号 \(self.resetPasswordModel.phoneNumber) 设置一个强密码") VStack(spacing: 12) { PunchTextField(icon: "lock.shield", placeholder: "新密码 (至少8位)", text: $password, isSecure: true) @@ -362,7 +363,7 @@ struct ResetPasswordSuccessView: View { Button(action: { withAnimation(.spring(duration: 0.6, bounce: 0.2)) { - self.appContext.appScene = .login(username: self.resetPasswordModel.username) + self.appContext.appScene = .login(username: self.resetPasswordModel.phoneNumber) } }) { Text("返回登录")