shop-web/src/App.vue

82 lines
2.2 KiB
Vue
Raw Normal View History

2025-03-05 09:22:29 +08:00
<script setup lang="ts">
import Layout from "@/layout/index.vue"
import { useUserStore } from "@/pinia/stores/user"
import { useDark } from "@@/composables/useDark"
2025-03-17 08:30:57 +08:00
import { useWxStore } from "@/pinia/stores/wx"
import { tokenLogin } from '@/common/apis/ab98'
import { useAb98UserStore } from '@/pinia/stores/ab98-user'
import { useProductStore } from "./pinia/stores/product"
2025-03-05 09:22:29 +08:00
// const userStore = useUserStore()
const wxStore = useWxStore();
const route = useRoute();
const router = useRouter();
const ab98UserStore = useAb98UserStore();
const productStore = useProductStore();
2025-03-05 09:22:29 +08:00
const { isDark, initDark } = useDark()
const isLoading = false;
// const isLoading = computed(() => userStore.token && !userStore.username)
// watch(
// () => userStore.token,
// (newVal) => {
// newVal && userStore.getInfo()
// },
// {
// immediate: true
// }
// )
initDark()
2025-03-17 08:30:57 +08:00
onMounted(() => {
const urlParams = new URLSearchParams(window.location.search);
console.log('urlParams', urlParams);
const code = urlParams.get('code') || undefined;
const state = urlParams.get('state') || undefined;
2025-04-02 09:33:47 +08:00
const corpid = urlParams.get('corpid') || undefined;
const isAdmin = urlParams.get('isAdmin') || undefined;
if (state && state.indexOf('token') !== -1) {
const token = state.split('token_')[1];
if (token) {
ab98UserStore.setTokenLogin(token);
watch(
() => wxStore.userid,
(newVal) => {
if (newVal && !ab98UserStore.isLogin) {
tokenLogin(ab98UserStore.tokenLogin, newVal).then(res => {
if (res?.code === 0 && res.data?.success) {
ab98UserStore.setTel(res.data.tel)
ab98UserStore.setUserInfo(res.data)
ab98UserStore.setIsLogin(true)
router.push('/')
}
})
}
},
{ immediate: true }
)
}
}
if (isAdmin == '1') {
wxStore.setIsCabinetAdmin(true);
}
2025-03-17 08:30:57 +08:00
if (code || state) {
2025-04-02 09:33:47 +08:00
wxStore.handleWxCallback({ corpid, code, state })
2025-03-17 08:30:57 +08:00
}
})
2025-03-05 09:22:29 +08:00
</script>
<template>
<van-config-provider :theme="isDark ? 'dark' : 'light'" un-h-full>
<van-loading v-if="isLoading" un-h-full un-flex-center>
加载中...
</van-loading>
<Layout v-else />
</van-config-provider>
</template>