From df2a71cf5feb914a9ca0540142bb6bf1865e26fb Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 13 Nov 2025 18:26:19 +0800
Subject: [PATCH] feat:未登录跳转登录页

---
 src/App.vue |  210 +++++++++++++++++++++++++++++----------------------
 1 files changed, 119 insertions(+), 91 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index 498f372..fbe3bf7 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,109 +1,137 @@
 <script setup>
-import {onHide, onLaunch, onShow} from "@dcloudio/uni-app";
-import {useAppStore, useUserStore} from "@/store";
-import {mpUpdate} from "@/utils/index";
-import {genTestUserSig} from '@/utils/voiceCallByTX/GenerateTestUserSig.js';
-// #ifdef H5
-import {  TUICallKitAPI } from '@trtc/calls-uikit-vue'
-// #endif
-const appStore = useAppStore();
-const userStore = useUserStore();
-
-onLaunch(() => {
-  // 初始化系统信息
-  appStore.initSystemInfo();
-
-  // #ifdef MP-WEIXIN
-  mpUpdate();
-  // #endif
-});
-
-const userId = computed(() => userStore?.userInfo?.user_id)
-
-function initVoiceCallFromApp() {
-  const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
-  const {userSig, SDKAppID} = genTestUserSig(userId.value);
-  uni.$TUICallKit = TUICallKit;
-  uni.$TUICallKit.login({
-    SDKAppID,
-    userID: userId.value,
-    userSig: userSig,
-  })
-}
-
-async function initVoiceCallFromH5() {
-  const {userSig, SDKAppID} = genTestUserSig(userId.value)
-  await TUICallKitAPI.init({
-    userID: userId.value,
-    userSig,
-    SDKAppID,
-  })
-}
-
-// 初始化登陆腾讯音频平台
-watch(userId, () => {
-  if (!userId.value) return
+  import {
+    onHide,
+    onLaunch,
+    onShow
+  } from "@dcloudio/uni-app";
+  import {
+    useAppStore,
+    useUserStore
+  } from "@/store";
+  import {
+    mpUpdate
+  } from "@/utils/index";
+  import {
+    genTestUserSig
+  } from '@/utils/voiceCallByTX/GenerateTestUserSig.js';
   // #ifdef H5
-  initVoiceCallFromH5()
+  import {
+    TUICallKitAPI
+  } from '@trtc/calls-uikit-vue'
   // #endif
+  const appStore = useAppStore();
+  const userStore = useUserStore();
 
-  // #ifdef APP-PLUS
-  initVoiceCallFromApp()
-  // #endif
-}, {immediate: true})
+  onLaunch(() => {
+    // 初始化系统信息
+    appStore.initSystemInfo();
 
-onShow(() => {
-  console.log("App Show");
-});
+    if (!userStore.userInfo) {
+      //不存在则跳转至登录页
+      uni.reLaunch({
+        url: "/pages/login/index",
+      })
+    }
 
-onHide(() => {
-  console.log("App Hide");
-});
+    // #ifdef MP-WEIXIN
+    mpUpdate();
+    // #endif
+  });
+
+  const userId = computed(() => userStore?.userInfo?.user_id)
+
+  function initVoiceCallFromApp() {
+    const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
+    const {
+      userSig,
+      SDKAppID
+    } = genTestUserSig(userId.value);
+    uni.$TUICallKit = TUICallKit;
+    uni.$TUICallKit.login({
+      SDKAppID,
+      userID: userId.value,
+      userSig: userSig,
+    })
+  }
+
+  async function initVoiceCallFromH5() {
+    const {
+      userSig,
+      SDKAppID
+    } = genTestUserSig(userId.value)
+    await TUICallKitAPI.init({
+      userID: userId.value,
+      userSig,
+      SDKAppID,
+    })
+  }
+
+  // 初始化登陆腾讯音频平台
+  watch(userId, () => {
+    if (!userId.value) return
+    // #ifdef H5
+    initVoiceCallFromH5()
+    // #endif
+
+    // #ifdef APP-PLUS
+    initVoiceCallFromApp()
+    // #endif
+  }, {
+    immediate: true
+  })
+
+  onShow(() => {
+    console.log("App Show");
+  });
+
+  onHide(() => {
+    console.log("App Hide");
+  });
 </script>
 
 <style lang="scss">
-/* 每个页面公共css */
-@import "uview-plus/index.scss";
-@import "@/static/styles/common.scss";
+  /* 每个页面公共css */
+  @import "uview-plus/index.scss";
+  @import "@/static/styles/common.scss";
 
-.TUICallKit-mobile{
-  position: fixed;
-  left: 0;
-  top: 0;
-  z-index: 9999;
-}
+  .TUICallKit-mobile {
+    position: fixed;
+    left: 0;
+    top: 0;
+    z-index: 9999;
+  }
 
-page {
-  background-image: url('~@/static/images/user/bg.png');
-  background-size: cover;
-  background-position: center;
-  background-repeat: no-repeat;
-  background-attachment: fixed;
-  // min-height: 10vh;
-}
+  page {
+    background-image: url('~@/static/images/user/bg.png');
+    background-size: cover;
+    background-position: center;
+    background-repeat: no-repeat;
+    background-attachment: fixed;
+    // min-height: 10vh;
+  }
 
-.uni-tabbar__item:nth-child(4) {
-  .uni-tabbar__bd {
-    .uni-tabbar__icon {
-      width: 60px !important;
-      height: 60px !important;
-      margin-top: -20px;
+  .uni-tabbar__item:nth-child(4) {
+    .uni-tabbar__bd {
+      .uni-tabbar__icon {
+        width: 60px !important;
+        height: 60px !important;
+        margin-top: -20px;
+      }
     }
   }
-}
 
-.uni-tabbar-border {
-  background-color: #f6f6f6 !important;
-}
+  .uni-tabbar-border {
+    background-color: #f6f6f6 !important;
+  }
 
-.uni-page-head__title {
-  font-family: Source Han Sans CN, Source Han Sans CN !important;
-  font-weight: 400 !important;
-  font-size: 17px !important;
-  color: #222324 !important;
-}
+  .uni-page-head__title {
+    font-family: Source Han Sans CN, Source Han Sans CN !important;
+    font-weight: 400 !important;
+    font-size: 17px !important;
+    color: #222324 !important;
+  }
 
-.uni-page-head {
-  background: transparent !important;
-}
+  .uni-page-head {
+    background: transparent !important;
+  }
 </style>

--
Gitblit v1.9.3