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'; | ... | ... |