推送消息

This commit is contained in:
陈红丽 2024-12-19 10:25:36 +08:00
parent de591ede38
commit 7001633625
2 changed files with 17 additions and 15 deletions

View File

@ -5,12 +5,11 @@
<transition v-if="isLock && $route.name !== 'login'" name="slide-up"> <transition v-if="isLock && $route.name !== 'login'" name="slide-up">
<LockScreen /> <LockScreen />
</transition> </transition>
<global-websocket :uri="'/api/websocket/'+userInfo.id" @rollback="rollback" />
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { computed, onMounted, onUnmounted,defineAsyncComponent ,h } from 'vue'; import { computed, onMounted, onUnmounted ,h } from 'vue';
import { ConfigProvider,notification } from 'ant-design-vue'; import { ConfigProvider } from 'ant-design-vue';
import { LockScreen } from '@/components/Lockscreen'; import { LockScreen } from '@/components/Lockscreen';
import { useLockscreenStore } from '@/store/modules/lockscreen'; import { useLockscreenStore } from '@/store/modules/lockscreen';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
@ -19,16 +18,12 @@
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { useProjectSetting } from '@/hooks/setting/useProjectSetting'; import { useProjectSetting } from '@/hooks/setting/useProjectSetting';
import Watermark from '@/utils/wartermark'; import Watermark from '@/utils/wartermark';
import { initWebSocket,sendWebSocket } from '@/components/Websocket/index';
const GlobalWebsocket = defineAsyncComponent(() => import('@/components/Websocket/index.vue'));
import 'dayjs/locale/zh-cn'; import 'dayjs/locale/zh-cn';
dayjs.locale('zh-cn'); dayjs.locale('zh-cn');
const route = useRoute(); const route = useRoute();
const locale = zhCN; const locale = zhCN;
const useLockscreen = useLockscreenStore(); const useLockscreen = useLockscreenStore();
const userStore = useUserStore();
const userInfo: object = userStore.getUserInfo || {};
const isLock = computed(() => useLockscreen.isLock); const isLock = computed(() => useLockscreen.isLock);
const lockTime = computed(() => useLockscreen.lockTime); const lockTime = computed(() => useLockscreen.lockTime);
const {getIsWaterMark} = useProjectSetting(); const {getIsWaterMark} = useProjectSetting();
@ -51,13 +46,6 @@
} }
}, 1000); }, 1000);
}; };
const rollback = (msg)=>{
notification.info({
message: '通知',
description: () =>
h('div', msg),
});
}
onMounted(() => { onMounted(() => {
if(getIsWaterMark.value) { if(getIsWaterMark.value) {
const waterText = import.meta.env.VITE_GLOB_APP_TITLE; const waterText = import.meta.env.VITE_GLOB_APP_TITLE;

View File

@ -49,11 +49,13 @@
/> />
</div> </div>
</template> </template>
<global-websocket :uri="'/api/websocket/'+userInfo.id" @rollback="rollback" />
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, unref, reactive, computed, provide, h, watchEffect, watch } from 'vue'; import { ref, unref, reactive, computed, provide, h, watchEffect, watch,defineAsyncComponent } from 'vue';
import { useAsyncRouteStore } from '@/store/modules/asyncRoute'; import { useAsyncRouteStore } from '@/store/modules/asyncRoute';
import {notification } from 'ant-design-vue';
import { generatorMenu } from '@/utils/index'; import { generatorMenu } from '@/utils/index';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { TabsView } from './components/TagsView'; import { TabsView } from './components/TagsView';
@ -66,12 +68,17 @@
import { useProjectSettingStore } from '@/store/modules/projectSetting'; import { useProjectSettingStore } from '@/store/modules/projectSetting';
import type { RouteContextProps } from '@ant-design-vue/pro-layout'; import type { RouteContextProps } from '@ant-design-vue/pro-layout';
import { useFullscreen } from '@vueuse/core'; import { useFullscreen } from '@vueuse/core';
import { useUserStore } from '@/store/modules/user';
import ProjectSetting from './components/Header/ProjectSetting.vue'; import ProjectSetting from './components/Header/ProjectSetting.vue';
import { SettingOutlined } from '@ant-design/icons-vue'; import { SettingOutlined } from '@ant-design/icons-vue';
import { initWebSocket } from '@/components/Websocket/index';
const GlobalWebsocket = defineAsyncComponent(() => import('@/components/Websocket/index.vue'));
// //
const router = useRouter(); const router = useRouter();
const settingStore = useProjectSettingStore(); const settingStore = useProjectSettingStore();
const userStore = useUserStore();
const userInfo: object = userStore.getUserInfo || {};
const { const {
getLayout, getLayout,
getNavTheme, getNavTheme,
@ -166,6 +173,13 @@
const { openDrawer } = drawerSetting.value; const { openDrawer } = drawerSetting.value;
openDrawer(); openDrawer();
} }
const rollback = (msg)=>{
notification.info({
message: '通知',
description: () =>
h('div', msg),
});
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.ant-admin-layout { .ant-admin-layout {