|
@@ -5,14 +5,9 @@ import { useRoute, useRouter } from 'vue-router';
|
|
import DeviceWorkStatus from '@/views/device-work-status/DeviceWorkStatus.vue';
|
|
import DeviceWorkStatus from '@/views/device-work-status/DeviceWorkStatus.vue';
|
|
import RealTimeMonitor from '@/views/real-time-monitor/RealTimeMonitor.vue';
|
|
import RealTimeMonitor from '@/views/real-time-monitor/RealTimeMonitor.vue';
|
|
import { useRefreshView } from '@/hooks/refresh-view';
|
|
import { useRefreshView } from '@/hooks/refresh-view';
|
|
-import { translateNavigation } from '@/utils';
|
|
|
|
|
|
+import { t } from '@/i18n';
|
|
|
|
|
|
-import type { Component } from 'vue';
|
|
|
|
-
|
|
|
|
-interface TabComponent {
|
|
|
|
- name: string;
|
|
|
|
- component: Component;
|
|
|
|
-}
|
|
|
|
|
|
+import type { TabComponent } from '@/types';
|
|
|
|
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
const route = useRoute();
|
|
const route = useRoute();
|
|
@@ -23,23 +18,27 @@ const deviceGroupId = computed(() => {
|
|
return route.params.id as string;
|
|
return route.params.id as string;
|
|
});
|
|
});
|
|
|
|
|
|
-const aiSmartCtrlTabs: TabComponent[] = [
|
|
|
|
- {
|
|
|
|
- name: 'realTimeMonitor',
|
|
|
|
- component: RealTimeMonitor,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- name: 'deviceWorkStatus',
|
|
|
|
- component: DeviceWorkStatus,
|
|
|
|
- },
|
|
|
|
-];
|
|
|
|
|
|
+const aiSmartCtrlTabs = computed<TabComponent[]>(() => {
|
|
|
|
+ return [
|
|
|
|
+ {
|
|
|
|
+ key: 'realTimeMonitor',
|
|
|
|
+ name: t('navigation.realTimeMonitor'),
|
|
|
|
+ component: RealTimeMonitor,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ key: 'deviceWorkStatus',
|
|
|
|
+ name: t('navigation.deviceWorkStatus'),
|
|
|
|
+ component: DeviceWorkStatus,
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+});
|
|
|
|
|
|
watch(deviceGroupId, () => {
|
|
watch(deviceGroupId, () => {
|
|
refreshView();
|
|
refreshView();
|
|
});
|
|
});
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
- activeKey.value = (route.query.tab as string) ?? aiSmartCtrlTabs[0].name;
|
|
|
|
|
|
+ activeKey.value = (route.query.tab as string) ?? aiSmartCtrlTabs.value[0].key;
|
|
refreshView();
|
|
refreshView();
|
|
});
|
|
});
|
|
|
|
|
|
@@ -59,7 +58,7 @@ const handleTabClick = (activeKey: string | number) => {
|
|
<template>
|
|
<template>
|
|
<div class="device-group-container">
|
|
<div class="device-group-container">
|
|
<ATabs class="device-group-tab" v-model:active-key="activeKey" @tab-click="handleTabClick">
|
|
<ATabs class="device-group-tab" v-model:active-key="activeKey" @tab-click="handleTabClick">
|
|
- <ATabPane v-for="item in aiSmartCtrlTabs" :key="item.name" :tab="translateNavigation(item.name)">
|
|
|
|
|
|
+ <ATabPane v-for="item in aiSmartCtrlTabs" :key="item.key" :tab="item.name">
|
|
<component v-if="renderView" :is="item.component" :device-group-id="Number(deviceGroupId)" />
|
|
<component v-if="renderView" :is="item.component" :device-group-id="Number(deviceGroupId)" />
|
|
</ATabPane>
|
|
</ATabPane>
|
|
</ATabs>
|
|
</ATabs>
|