useLogin.ts 752 B

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