|
@@ -3,16 +3,18 @@ import {
|
|
|
defineComponent,
|
|
|
onMounted,
|
|
|
ref,
|
|
|
- onBeforeUnmount
|
|
|
+ onBeforeUnmount,
|
|
|
+ onUnmounted
|
|
|
} from 'vue';
|
|
|
import { NConfigProvider, zhCN, dateZhCN, NModal } from 'naive-ui';
|
|
|
import { AppProvider } from './components/Application';
|
|
|
-import { RouterView } from 'vue-router';
|
|
|
+import { RouterView, useRouter } from 'vue-router';
|
|
|
import setting from './settings/designSetting';
|
|
|
import { lighten } from './utils';
|
|
|
import RouterError from './components/RouterError';
|
|
|
|
|
|
import { tryOnUnmounted } from '@vueuse/core';
|
|
|
+import { useUserStore } from './store/modules/users';
|
|
|
export default defineComponent({
|
|
|
name: 'App',
|
|
|
setup() {
|
|
@@ -132,6 +134,28 @@ export default defineComponent({
|
|
|
const submitCallback = () => {
|
|
|
window.open('https://www.google.cn/intl/zh-CN/chrome/');
|
|
|
};
|
|
|
+ const handleOpen = (e: MessageEvent) => {
|
|
|
+ if (e.data?.api === 'onLogin') {
|
|
|
+ const userStore = useUserStore();
|
|
|
+ const router = useRouter();
|
|
|
+ const documentDom: any = document;
|
|
|
+ documentDom.exitFullscreen
|
|
|
+ ? documentDom.exitFullscreen()
|
|
|
+ : documentDom.mozCancelFullScreen
|
|
|
+ ? documentDom.mozCancelFullScreen()
|
|
|
+ : documentDom.webkitExitFullscreen
|
|
|
+ ? documentDom.webkitExitFullscreen()
|
|
|
+ : '';
|
|
|
+ userStore.logout();
|
|
|
+ router.replace('/login');
|
|
|
+ }
|
|
|
+ };
|
|
|
+ onMounted(() => {
|
|
|
+ window.addEventListener('message', handleOpen);
|
|
|
+ });
|
|
|
+ onUnmounted(() => {
|
|
|
+ window.removeEventListener('message', handleOpen);
|
|
|
+ });
|
|
|
|
|
|
|
|
|
return () => (
|