38 lines
1.1 KiB
Swift
38 lines
1.1 KiB
Swift
//
|
|
// SignInPhoneViewModel.swift
|
|
// IOS_study
|
|
//
|
|
// Created by CC-star on 2025/7/10.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
@Observable final class SignInPhoneViewModel {
|
|
// @Environment(AuthViewModel.self) var vm
|
|
var phoneNum = ""
|
|
var verCode = ""
|
|
var isLogining = false
|
|
|
|
|
|
@MainActor func getVerCode(phoneNum: String, tName: String, sName: String) async throws {
|
|
try await AuthManager.shared.getVerCode(phoneNum: phoneNum, tName: tName, sName: sName)
|
|
}
|
|
|
|
@MainActor func login() async throws {
|
|
let user = try await AuthManager.shared.login(phoneNum: phoneNum, verCode: verCode)
|
|
// printf(user.mobilePhoneNumber?.value)
|
|
|
|
if let isNewUser = user.get("isNewUser")?.boolValue, !isNewUser {//不是首次登录
|
|
|
|
} else {//首次登录
|
|
try user.set("isNewUser", value: false)
|
|
try await user.save()//保存信息
|
|
|
|
try await UserManager.shared.create(user: user)
|
|
}
|
|
NotificationCenter.default.post(name: .loginSuccess, object: nil)//发送一条通知
|
|
verCode = ""//清空验证码
|
|
}
|
|
|
|
}
|