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