| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import { reactive, ref } from 'vue'
- import type { FormInstance } from 'element-plus'
- import { useUserStore } from '/admin/stores/modules/user'
- import router from '/admin/router'
- import { t } from '/admin/support/helper'
- export const useLogin = () => {
- const params = reactive({
- email: 'catch@admin.com',
- password: 'catchadmin',
- remember: false,
- })
- const loading = ref(false)
- const rules = reactive({
- email: [
- { required: true, message: t('login.verify.email.required'), trigger: 'blur' },
- { type: 'email', message: t('login.verify.email.invalid'), trigger: 'blur' },
- ],
- password: [{ required: true, message: t('login.verify.password.required'), trigger: 'blur' }],
- })
- const form = ref<FormInstance>()
- const submit = (loginForm: FormInstance | undefined) => {
- if (!loginForm) return
- loginForm.validate(valid => {
- if (valid) {
- loading.value = true
- const store = useUserStore()
- store
- .login(params)
- .then(() => {
- loading.value = false
- router.push({ path: '/' })
- })
- .catch(e => {
- loading.value = false
- })
- } else {
- return false
- }
- })
- }
- return {
- params,
- rules,
- loading,
- submit,
- form,
- }
- }
|