| | |
| | | <el-row style="margin-right: -10px; margin-left: -10px"> |
| | | <el-col :span="24" style="padding-right: 10px; padding-left: 10px"> |
| | | <el-form-item> |
| | | <LoginFormTitle style="width: 100%" /> |
| | | <LoginFormTitle style="width: 100%"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24" style="padding-right: 10px; padding-left: 10px"> |
| | |
| | | </el-form> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { ElLoading } from 'element-plus' |
| | | import {ElLoading} from 'element-plus' |
| | | import LoginFormTitle from './LoginFormTitle.vue' |
| | | import type { RouteLocationNormalizedLoaded } from 'vue-router' |
| | | import type {RouteLocationNormalizedLoaded} from 'vue-router' |
| | | |
| | | import { useIcon } from '@/hooks/web/useIcon' |
| | | import {useIcon} from '@/hooks/web/useIcon' |
| | | |
| | | import * as authUtil from '@/utils/auth' |
| | | import { usePermissionStore } from '@/store/modules/permission' |
| | | import {usePermissionStore} from '@/store/modules/permission' |
| | | import * as LoginApi from '@/api/login' |
| | | import { LoginStateEnum, useFormValid, useLoginState } from './useLogin' |
| | | import {LoginStateEnum, useFormValid, useLoginState} from './useLogin' |
| | | |
| | | defineOptions({ name: 'LoginForm' }) |
| | | defineOptions({name: 'LoginForm'}) |
| | | |
| | | const { t } = useI18n() |
| | | const iconHouse = useIcon({ icon: 'ep:house' }) |
| | | const iconAvatar = useIcon({ icon: 'ep:avatar' }) |
| | | const iconLock = useIcon({ icon: 'ep:lock' }) |
| | | const {t} = useI18n() |
| | | const iconHouse = useIcon({icon: 'ep:house'}) |
| | | const iconAvatar = useIcon({icon: 'ep:avatar'}) |
| | | const iconLock = useIcon({icon: 'ep:lock'}) |
| | | const formLogin = ref() |
| | | const { validForm } = useFormValid(formLogin) |
| | | const { getLoginState } = useLoginState() |
| | | const { currentRoute, push } = useRouter() |
| | | const {validForm} = useFormValid(formLogin) |
| | | const {getLoginState} = useLoginState() |
| | | const {currentRoute, push} = useRouter() |
| | | const permissionStore = usePermissionStore() |
| | | const redirect = ref<string>('') |
| | | const loginLoading = ref(false) |
| | |
| | | authUtil.removeLoginForm() |
| | | } |
| | | authUtil.setToken(res) |
| | | if (!redirect.value) { |
| | | if (!redirect.value || redirect.value == "/") { |
| | | redirect.value = '/index' |
| | | } |
| | | // 判断是否为SSO登录 |
| | | if (redirect.value.indexOf('sso') !== -1) { |
| | | window.location.href = window.location.href.replace('/login?redirect=', '') |
| | | } else { |
| | | push({ path: redirect.value || permissionStore.addRouters[0].path }) |
| | | push({path: redirect.value || permissionStore.addRouters[0].path}) |
| | | } |
| | | } finally { |
| | | loginLoading.value = false |