devicesmgt/sgzb-ui/src/App.vue

82 lines
2.0 KiB
Vue
Raw Normal View History

2023-11-28 20:33:38 +08:00
<template>
2024-07-08 16:26:03 +08:00
<div id="app">
<router-view />
<theme-picker />
2024-07-09 08:26:07 +08:00
2024-07-09 11:22:10 +08:00
<Notice
:noticeDialog="noticeDialog"
:noticeList="noticeList"
@closeDialog="closeDialog"
></Notice>
2024-07-08 16:26:03 +08:00
</div>
2023-11-28 20:33:38 +08:00
</template>
<script>
2024-07-08 16:26:03 +08:00
import ThemePicker from '@/components/ThemePicker'
2024-07-09 11:22:10 +08:00
import { getHomeNoticeApi } from '@/api/system/notice.js'
2024-07-09 08:26:07 +08:00
import Notice from '@/components/Notice'
2024-07-09 11:22:10 +08:00
import { getToken } from '@/utils/auth'
2023-11-28 20:33:38 +08:00
export default {
2024-07-08 16:26:03 +08:00
name: 'App',
2024-07-09 08:26:07 +08:00
components: { ThemePicker, Notice },
2023-11-28 20:33:38 +08:00
metaInfo() {
return {
2024-07-08 16:26:03 +08:00
title:
this.$store.state.settings.dynamicTitle &&
this.$store.state.settings.title,
titleTemplate: (title) => {
return title
? `${title} - ${process.env.VUE_APP_TITLE}`
: process.env.VUE_APP_TITLE
},
}
},
data() {
return {
2024-07-09 08:26:07 +08:00
noticeDialog: {
outerTitle: '重要通知',
outerWidth: '70%',
outerVisible: false,
},
2024-07-09 11:22:10 +08:00
noticeList: [],
2023-11-28 20:33:38 +08:00
}
2024-07-08 16:26:03 +08:00
},
updated() {
2024-07-09 11:22:10 +08:00
// 判断是否需要获取通知信息
2024-07-10 08:50:28 +08:00
if (
localStorage.getItem('notice') &&
getToken() &&
!this.noticeDialog.outerVisible
) {
this.getHomeNoticeFun()
}
2024-07-08 16:26:03 +08:00
},
methods: {
2024-07-09 11:22:10 +08:00
// 获取通知公告的信息
2024-07-08 16:26:03 +08:00
async getHomeNoticeFun() {
const res = await getHomeNoticeApi()
if (res.code == 200) {
2024-07-09 11:22:10 +08:00
if (res.data.length > 0) {
this.noticeList = res.data
this.noticeDialog.outerVisible = true
} else {
localStorage.removeItem('notice')
}
2024-07-08 16:26:03 +08:00
}
},
2024-07-09 11:22:10 +08:00
// 关闭弹框
closeDialog(val) {
this.noticeDialog.outerVisible = val
localStorage.removeItem('notice')
},
2024-07-08 16:26:03 +08:00
},
}
2023-11-28 20:33:38 +08:00
</script>
2024-07-08 16:26:03 +08:00
<style scoped >
2023-11-28 20:33:38 +08:00
#app .theme-picker {
2024-07-08 16:26:03 +08:00
display: none;
}
</style>