useLogin.ts 759 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { Ref } from 'vue'
  2. export enum LoginStateEnum {
  3. LOGIN,
  4. REGISTER,
  5. RESET_PASSWORD,
  6. MOBILE,
  7. QR_CODE,
  8. SSO
  9. }
  10. const currentState = ref(LoginStateEnum.LOGIN)
  11. export function useLoginState() {
  12. function setLoginState(state: LoginStateEnum) {
  13. currentState.value = state
  14. }
  15. const getLoginState = computed(() => currentState.value)
  16. function handleBackLogin() {
  17. setLoginState(LoginStateEnum.LOGIN)
  18. }
  19. return {
  20. setLoginState,
  21. getLoginState,
  22. handleBackLogin
  23. }
  24. }
  25. export function useFormValid<T extends Object = any>(formRef: Ref<any>) {
  26. async function validForm() {
  27. const form = unref(formRef)
  28. if (!form) return
  29. const data = await form.validate()
  30. return data as T
  31. }
  32. return {
  33. validForm
  34. }
  35. }