index.vue 1.68 KB
<script lang="ts" setup>
  import { Tabs } from 'ant-design-vue';
  import { ref } from 'vue';
  import type { PropType } from 'vue';
  import { EdgeDevicePhysicalModel } from '../EdgeDevicePhysicalModel';
  import { EdgeDeviceAlarm } from '../EdgeDeviceAlarm';
  import { EdgeDeviceEvent } from '../EdgeDeviceEvent';
  import { EdgeDeviceCommand } from '../EdgeDeviceCommand';
  import { EdgeDeviceItemType } from '/@/api/edgeManage/model/edgeInstance';

  defineProps({
    recordData: {
      type: Object as PropType<EdgeDeviceItemType>,
      default: () => {},
    },
  });

  enum ActiveKey {
    PHYSICALMODEL = 'PhysicalModel',
    ALARM = 'Alarm',
    COMMANDISSUANCERECORD = 'CommandIssuanceRecord',
    EVENTMANAGEMENT = 'EventManagement',
  }

  const activeKey = ref(ActiveKey.PHYSICALMODEL);
</script>

<template>
  <section class="w-full h-full p-1">
    <main>
      <Tabs
        v-model:activeKey="activeKey"
        type="card"
        class="w-full h-full bg-light-50 !p-4 dark:bg-dark-900"
      >
        <Tabs.TabPane tab="物模型" :key="ActiveKey.PHYSICALMODEL">
          <EdgeDevicePhysicalModel :deviceDetail="recordData" />
        </Tabs.TabPane>
        <Tabs.TabPane tab="告警" :key="ActiveKey.ALARM">
          <EdgeDeviceAlarm :recordData="recordData" />
        </Tabs.TabPane>
        <Tabs.TabPane tab="命令下发" :key="ActiveKey.COMMANDISSUANCERECORD">
          <EdgeDeviceCommand :recordData="recordData" />
        </Tabs.TabPane>
        <Tabs.TabPane tab="事件管理" :key="ActiveKey.EVENTMANAGEMENT">
          <EdgeDeviceEvent :recordData="recordData" />
        </Tabs.TabPane>
      </Tabs>
    </main>
  </section>
</template>

<style lang="less" scoped></style>