feat: 修改登录页加入企业逻辑
This commit is contained in:
@ -12,6 +12,7 @@ import { ref, onMounted } from 'vue';
|
|||||||
import { getQueryParam } from '@/utils/helper';
|
import { getQueryParam } from '@/utils/helper';
|
||||||
|
|
||||||
import { getEnterpriseByInviteCode, joinEnterpriseByInviteCode } from '@/api/all';
|
import { getEnterpriseByInviteCode, joinEnterpriseByInviteCode } from '@/api/all';
|
||||||
|
|
||||||
const enterprise = ref();
|
const enterprise = ref();
|
||||||
const inviteCode = ref();
|
const inviteCode = ref();
|
||||||
|
|
||||||
@ -27,8 +28,11 @@ async function handleJoin() {
|
|||||||
await joinEnterpriseByInviteCode(inviteCode.value);
|
await joinEnterpriseByInviteCode(inviteCode.value);
|
||||||
AMessage.success('加入成功');
|
AMessage.success('加入成功');
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
// onMounted(() => {
|
||||||
getEnterprise();
|
// getEnterprise();
|
||||||
|
// });
|
||||||
|
defineExpose({
|
||||||
|
getEnterprise,
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|||||||
@ -1,13 +1,17 @@
|
|||||||
<script setup lang="ts">
|
<script setup>
|
||||||
import { useAppStore } from '@/stores';
|
import { useAppStore } from '@/stores';
|
||||||
import { useResponsive } from '@/hooks';
|
import { useResponsive } from '@/hooks';
|
||||||
import JoinModal from '@/components/join-modal.vue';
|
import JoinModal from '@/components/join-modal.vue';
|
||||||
import { getQueryParam } from '@/utils/helper';
|
import { getQueryParam } from '@/utils/helper';
|
||||||
|
import { useUserStore } from '@/stores';
|
||||||
|
|
||||||
import { ref, onMounted, computed } from 'vue';
|
import { ref, onMounted, computed } from 'vue';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
|
|
||||||
const joinEnterpriseVisible = ref(false);
|
const joinEnterpriseVisible = ref(false);
|
||||||
|
const joinModalRef = ref(null);
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
|
const userStore = useUserStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
||||||
@ -36,14 +40,15 @@ const paddingStyle = computed(() => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
checkHasInviteCode();
|
checkHasInviteCode();
|
||||||
});
|
});
|
||||||
const setCollapsed = (val: boolean) => {
|
const setCollapsed = (val) => {
|
||||||
appStore.updateSettings({ menuCollapse: val });
|
appStore.updateSettings({ menuCollapse: val });
|
||||||
};
|
};
|
||||||
|
|
||||||
const checkHasInviteCode = () => {
|
const checkHasInviteCode = () => {
|
||||||
const inviteCode = getQueryParam('invite_code');
|
const inviteCode = getQueryParam('invite_code');
|
||||||
if (inviteCode) {
|
if (userStore.isLogin && inviteCode) {
|
||||||
joinEnterpriseVisible.value = true;
|
joinEnterpriseVisible.value = true;
|
||||||
|
joinModalRef.value?.getEnterprise?.();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const drawerVisible = ref(false);
|
const drawerVisible = ref(false);
|
||||||
@ -57,7 +62,7 @@ provide('toggleDrawerMenu', () => {
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<a-layout :class="['layout', { mobile: appStore.hideMenu }]">
|
<a-layout :class="['layout', { mobile: appStore.hideMenu }]">
|
||||||
<JoinModal v-model:visible="joinEnterpriseVisible" />
|
<JoinModal v-model:visible="joinEnterpriseVisible" ref="joinModalRef" />
|
||||||
<div v-if="navbar" class="layout-navbar">
|
<div v-if="navbar" class="layout-navbar">
|
||||||
<base-navbar />
|
<base-navbar />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -18,9 +18,10 @@ export default function setupUserLoginInfoGuard(router: Router) {
|
|||||||
const routeName = to?.name as string;
|
const routeName = to?.name as string;
|
||||||
const requiresAuth = to?.meta?.requiresAuth || false;
|
const requiresAuth = to?.meta?.requiresAuth || false;
|
||||||
const requireLogin = to?.meta?.requireLogin || false;
|
const requireLogin = to?.meta?.requireLogin || false;
|
||||||
|
const query = to?.query ?? {};
|
||||||
|
|
||||||
if (requireLogin && !userStore.isLogin) {
|
if (requireLogin && !userStore.isLogin) {
|
||||||
goUserLogin();
|
goUserLogin(query);
|
||||||
next();
|
next();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -125,13 +125,16 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import PuzzleVerification from './components/PuzzleVerification.vue';
|
import PuzzleVerification from './components/PuzzleVerification.vue';
|
||||||
import { fetchLoginCaptCha, fetchAuthorizationsCaptcha, fetchProfileInfo } from '@/api/all/login';
|
import { fetchLoginCaptCha, fetchAuthorizationsCaptcha, fetchProfileInfo } from '@/api/all/login';
|
||||||
|
import { joinEnterpriseByInviteCode } from '@/api/all';
|
||||||
import { ref, reactive, onUnmounted, computed } from 'vue';
|
import { ref, reactive, onUnmounted, computed } from 'vue';
|
||||||
import { useUserStore } from '@/stores';
|
import { useUserStore } from '@/stores';
|
||||||
import { useEnterpriseStore } from '@/stores/modules/enterprise';
|
import { useEnterpriseStore } from '@/stores/modules/enterprise';
|
||||||
import { handleUserLogin } from '@/utils/user';
|
import { handleUserLogin } from '@/utils/user';
|
||||||
import router from '@/router';
|
import router from '@/router';
|
||||||
|
import { useRoute } from 'vue-router';
|
||||||
|
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
|
const route = useRoute();
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const enterpriseStore = useEnterpriseStore();
|
const enterpriseStore = useEnterpriseStore();
|
||||||
const countdown = ref(0);
|
const countdown = ref(0);
|
||||||
@ -144,7 +147,6 @@ const submitting = ref(false);
|
|||||||
const hasCheck = ref(false);
|
const hasCheck = ref(false);
|
||||||
const mobileNumber = ref('');
|
const mobileNumber = ref('');
|
||||||
const selectedAccountIndex = ref(0);
|
const selectedAccountIndex = ref(0);
|
||||||
|
|
||||||
const accounts = ref([]);
|
const accounts = ref([]);
|
||||||
|
|
||||||
const loginForm = reactive({
|
const loginForm = reactive({
|
||||||
@ -299,6 +301,15 @@ const handleSubmit = async () => {
|
|||||||
// 处理登录成功逻辑
|
// 处理登录成功逻辑
|
||||||
AMessage.success(isLogin.value ? '登录成功' : '注册成功');
|
AMessage.success(isLogin.value ? '登录成功' : '注册成功');
|
||||||
userStore.setToken(data.access_token);
|
userStore.setToken(data.access_token);
|
||||||
|
|
||||||
|
const { invite_code } = route.query;
|
||||||
|
if (invite_code) {
|
||||||
|
const { code } = await joinEnterpriseByInviteCode(invite_code as string);
|
||||||
|
if (code === 200) {
|
||||||
|
AMessage.success('加入企业成功');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
getProfileInfo();
|
getProfileInfo();
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user