index.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <div class="settings-container">
  3. <el-tabs v-model="activeName" class="demo-tabs">
  4. <el-tab-pane v-if="isTabVisible('Alarm_Settings', 'Motion_Detection')" label="Motion Detection" name="first">
  5. <MotionDetection/>
  6. </el-tab-pane>
  7. <el-tab-pane v-if="isTabVisible('Alarm_Settings', 'Human_Detection')" label="Human Detection" name="second">
  8. <HumanDetection/>
  9. </el-tab-pane>
  10. <el-tab-pane v-if="isTabVisible('Alarm_Settings', 'Intrusion_Detection')" label="Intrusion Detection" name="third">
  11. <IntrusionDetection/>
  12. </el-tab-pane>
  13. <el-tab-pane v-if="isTabVisible('Alarm_Settings', 'Line_Crossing_Detection')" label="Line Crossing Detection" name="fourth">
  14. <LineCrossingDetection/>
  15. </el-tab-pane>
  16. <!-- <el-tab-pane label="Video Tampering" name="fifth">
  17. <VideoTampering />
  18. </el-tab-pane> -->
  19. <el-tab-pane v-if="isTabVisible('Alarm_Settings', 'Manual_Alarm')" label="Manual Alarm" name="sixth">
  20. <ManualAlarm/>
  21. </el-tab-pane>
  22. </el-tabs>
  23. </div>
  24. </template>
  25. <script setup lang="ts">
  26. import {ref} from "vue";
  27. import MotionDetection from './components/motionDetection/index.vue'
  28. import HumanDetection from './components/humanDetection/index.vue'
  29. import IntrusionDetection from './components/intrusionDetection/index.vue'
  30. import LineCrossingDetection from './components/lineCrossingDetection/index.vue'
  31. // import VideoTampering from './components/videoTampering/index.vue'
  32. import ManualAlarm from './components/manualAlarm/index.vue'
  33. import { usePermissionStore } from '@/stores/modules/permission'
  34. const { isTabVisible } = usePermissionStore()
  35. const tabOrder = [
  36. { name: 'first', key: 'Motion_Detection' },
  37. { name: 'second', key: 'Human_Detection' },
  38. { name: 'third', key: 'Intrusion_Detection' },
  39. { name: 'fourth', key: 'Line_Crossing_Detection' },
  40. { name: 'sixth', key: 'Manual_Alarm' },
  41. ]
  42. const firstVisible = tabOrder.find(t => isTabVisible('Alarm_Settings', t.key))
  43. const activeName = ref(firstVisible?.name || 'first')
  44. </script>
  45. <style scoped lang="scss">
  46. .settings-container {
  47. display: flex;
  48. flex-direction: column;
  49. padding: 20px;
  50. }
  51. </style>