Commit 7ae0d08ab556c6e1fc7e657342b0cd223f7856c9
1 parent
a93f9961
fix: global notify has exit don not have permiseion
Showing
4 changed files
with
22 additions
and
6 deletions
... | ... | @@ -8,7 +8,6 @@ |
8 | 8 | |
9 | 9 | <script lang="ts" setup> |
10 | 10 | import { ConfigProvider } from 'ant-design-vue'; |
11 | - import { useAlarmNotify } from './views/alarm/log/hook/useAlarmNotify'; | |
12 | 11 | import { AppProvider } from '/@/components/Application'; |
13 | 12 | import { useTitle } from '/@/hooks/web/useTitle'; |
14 | 13 | import { useLocale } from '/@/locales/useLocale'; |
... | ... | @@ -16,5 +15,4 @@ |
16 | 15 | const { getAntdLocale } = useLocale(); |
17 | 16 | |
18 | 17 | useTitle(); |
19 | - useAlarmNotify(); | |
20 | 18 | </script> | ... | ... |
... | ... | @@ -29,6 +29,7 @@ |
29 | 29 | import { useLockPage } from '/@/hooks/web/useLockPage'; |
30 | 30 | |
31 | 31 | import { useAppInject } from '/@/hooks/web/useAppInject'; |
32 | + import { useAlarmNotify } from '/@/views/alarm/log/hook/useAlarmNotify'; | |
32 | 33 | |
33 | 34 | export default defineComponent({ |
34 | 35 | name: 'DefaultLayout', |
... | ... | @@ -57,7 +58,7 @@ |
57 | 58 | } |
58 | 59 | return cls; |
59 | 60 | }); |
60 | - | |
61 | + useAlarmNotify(); | |
61 | 62 | return { |
62 | 63 | getShowFullHeaderRef, |
63 | 64 | getShowSidebar, | ... | ... |
... | ... | @@ -4,6 +4,9 @@ import { notification, Button, Tag } from 'ant-design-vue'; |
4 | 4 | import { h, onMounted, onUnmounted } from 'vue'; |
5 | 5 | import { ExclamationCircleOutlined } from '@ant-design/icons-vue'; |
6 | 6 | import { alarmLevel } from '/@/views/device/list/config/detail.config'; |
7 | +import { RoleEnum } from '/@/enums/roleEnum'; | |
8 | +import { usePermission } from '/@/hooks/web/usePermission'; | |
9 | +import { useUserStore } from '/@/store/modules/user'; | |
7 | 10 | |
8 | 11 | interface UseAlarmNotifyParams { |
9 | 12 | alarmNotifyStatus?: AlarmStatus; |
... | ... | @@ -88,8 +91,22 @@ export function useAlarmNotify(params: UseAlarmNotifyParams = {}) { |
88 | 91 | }, interval); |
89 | 92 | }; |
90 | 93 | |
94 | + const { hasPermission } = usePermission(); | |
95 | + | |
91 | 96 | onMounted(() => { |
92 | - polling(); | |
97 | + const alarmPermissionKey = 'api:alarm:global:notify'; | |
98 | + const hasPermissionRole = [RoleEnum.CUSTOMER_USER, RoleEnum.TENANT_ADMIN]; | |
99 | + const userInfo = useUserStore().getUserInfo; | |
100 | + const userRoles = userInfo.roles || []; | |
101 | + | |
102 | + const getPermissionFlag = () => { | |
103 | + for (const item of userRoles) { | |
104 | + const flag = hasPermissionRole.find((each) => item === each); | |
105 | + if (flag) return true; | |
106 | + } | |
107 | + return false; | |
108 | + }; | |
109 | + if (hasPermission(alarmPermissionKey) && getPermissionFlag()) polling(); | |
93 | 110 | }); |
94 | 111 | |
95 | 112 | onUnmounted(() => { | ... | ... |
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | import { Tabs, Row, Col, Spin, Button, Pagination, Empty } from 'ant-design-vue'; |
6 | 6 | import { cameraPage } from '/@/api/camera/cameraManager'; |
7 | 7 | import { CameraRecord } from '/@/api/camera/model/cameraModel'; |
8 | - import { videoPlay as VideoPlay } from 'vue3-video-play'; // 引入组件 | |
9 | - import 'vue3-video-play/dist/style.css'; // 引入css | |
8 | + import { videoPlay as VideoPlay } from 'vue3-video-play'; | |
9 | + import 'vue3-video-play/dist/style.css'; | |
10 | 10 | import { useFullscreen } from '@vueuse/core'; |
11 | 11 | import CameraDrawer from './CameraDrawer.vue'; |
12 | 12 | import { useDrawer } from '/@/components/Drawer'; | ... | ... |