index.vue 1.88 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';
  import { useI18n } from '/@/hooks/web/useI18n';

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

  const { t } = useI18n();

  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="t('edge.instance.text.thingsModel')" :key="ActiveKey.PHYSICALMODEL">
          <EdgeDevicePhysicalModel :deviceDetail="recordData" />
        </Tabs.TabPane>
        <Tabs.TabPane :tab="t('edge.instance.text.alarm')" :key="ActiveKey.ALARM">
          <EdgeDeviceAlarm :recordData="recordData" />
        </Tabs.TabPane>
        <Tabs.TabPane
          :tab="t('edge.instance.text.commonDelivery')"
          :key="ActiveKey.COMMANDISSUANCERECORD"
        >
          <EdgeDeviceCommand :recordData="recordData" />
        </Tabs.TabPane>
        <Tabs.TabPane :tab="t('edge.instance.text.eventManage')" :key="ActiveKey.EVENTMANAGEMENT">
          <EdgeDeviceEvent :recordData="recordData" />
        </Tabs.TabPane>
      </Tabs>
    </main>
  </section>
</template>

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