|
@@ -1,10 +1,10 @@
|
|
|
-import {PageContainer} from '@ant-design/pro-layout';
|
|
|
|
|
-import {InstanceModel, service} from '@/pages/device/Instance';
|
|
|
|
|
-import {history, useParams} from 'umi';
|
|
|
|
|
-import {Badge, Card, Descriptions, Divider, message} from 'antd';
|
|
|
|
|
-import type {ReactNode} from 'react';
|
|
|
|
|
-import {useEffect, useState} from 'react';
|
|
|
|
|
-import {observer} from '@formily/react';
|
|
|
|
|
|
|
+import { PageContainer } from '@ant-design/pro-layout';
|
|
|
|
|
+import { InstanceModel, service } from '@/pages/device/Instance';
|
|
|
|
|
+import { history, useParams } from 'umi';
|
|
|
|
|
+import { Badge, Card, Descriptions, Divider, message, Tooltip } from 'antd';
|
|
|
|
|
+import type { ReactNode } from 'react';
|
|
|
|
|
+import { useEffect, useState } from 'react';
|
|
|
|
|
+import { observer } from '@formily/react';
|
|
|
import Log from '@/pages/device/Instance/Detail/Log';
|
|
import Log from '@/pages/device/Instance/Detail/Log';
|
|
|
// import Alarm from '@/pages/device/components/Alarm';
|
|
// import Alarm from '@/pages/device/components/Alarm';
|
|
|
import Info from '@/pages/device/Instance/Detail/Info';
|
|
import Info from '@/pages/device/Instance/Detail/Info';
|
|
@@ -13,15 +13,16 @@ import Running from '@/pages/device/Instance/Detail/Running';
|
|
|
import ChildDevice from '@/pages/device/Instance/Detail/ChildDevice';
|
|
import ChildDevice from '@/pages/device/Instance/Detail/ChildDevice';
|
|
|
import Diagnose from '@/pages/device/Instance/Detail/Diagnose';
|
|
import Diagnose from '@/pages/device/Instance/Detail/Diagnose';
|
|
|
import MetadataMap from '@/pages/device/Instance/Detail/MetadataMap';
|
|
import MetadataMap from '@/pages/device/Instance/Detail/MetadataMap';
|
|
|
-import {useIntl} from '@@/plugin-locale/localeExports';
|
|
|
|
|
|
|
+import { useIntl } from '@@/plugin-locale/localeExports';
|
|
|
import Metadata from '../../components/Metadata';
|
|
import Metadata from '../../components/Metadata';
|
|
|
-import type {DeviceMetadata} from '@/pages/device/Product/typings';
|
|
|
|
|
|
|
+import type { DeviceMetadata } from '@/pages/device/Product/typings';
|
|
|
import MetadataAction from '@/pages/device/components/Metadata/DataBaseAction';
|
|
import MetadataAction from '@/pages/device/components/Metadata/DataBaseAction';
|
|
|
-import {Store} from 'jetlinks-store';
|
|
|
|
|
|
|
+import { Store } from 'jetlinks-store';
|
|
|
import SystemConst from '@/utils/const';
|
|
import SystemConst from '@/utils/const';
|
|
|
-import {getMenuPathByCode, getMenuPathByParams, MENUS_CODE} from '@/utils/menu';
|
|
|
|
|
|
|
+import { getMenuPathByCode, getMenuPathByParams, MENUS_CODE } from '@/utils/menu';
|
|
|
import useSendWebsocketMessage from '@/hooks/websocket/useSendWebsocketMessage';
|
|
import useSendWebsocketMessage from '@/hooks/websocket/useSendWebsocketMessage';
|
|
|
-import {PermissionButton} from '@/components';
|
|
|
|
|
|
|
+import { PermissionButton } from '@/components';
|
|
|
|
|
+import { QuestionCircleOutlined } from '@ant-design/icons';
|
|
|
|
|
|
|
|
export const deviceStatus = new Map();
|
|
export const deviceStatus = new Map();
|
|
|
deviceStatus.set('online', <Badge status="success" text={'在线'} />);
|
|
deviceStatus.set('online', <Badge status="success" text={'在线'} />);
|
|
@@ -63,10 +64,37 @@ const InstanceDetail = observer(() => {
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
key: 'metadata',
|
|
key: 'metadata',
|
|
|
- tab: intl.formatMessage({
|
|
|
|
|
- id: 'pages.device.instanceDetail.metadata',
|
|
|
|
|
- defaultMessage: '物模型',
|
|
|
|
|
- }),
|
|
|
|
|
|
|
+ tab: (
|
|
|
|
|
+ <>
|
|
|
|
|
+ {intl.formatMessage({
|
|
|
|
|
+ id: 'pages.device.instanceDetail.metadata',
|
|
|
|
|
+ defaultMessage: '物模型',
|
|
|
|
|
+ })}
|
|
|
|
|
+ <Tooltip
|
|
|
|
|
+ title={
|
|
|
|
|
+ <>
|
|
|
|
|
+ 属性:
|
|
|
|
|
+ <br />
|
|
|
|
|
+ 用于描述设备运行时具体信息和状态。
|
|
|
|
|
+ <br />
|
|
|
|
|
+ 功能:
|
|
|
|
|
+ <br />
|
|
|
|
|
+ 指设备可供外部调用的指令或方法。
|
|
|
|
|
+ <br />
|
|
|
|
|
+ 事件:
|
|
|
|
|
+ <br />
|
|
|
|
|
+ 设备运行时,主动上报给云端的信息。
|
|
|
|
|
+ <br />
|
|
|
|
|
+ 标签:
|
|
|
|
|
+ <br />
|
|
|
|
|
+ 统一为设备添加拓展字段,添加后将在设备信息页显示。
|
|
|
|
|
+ </>
|
|
|
|
|
+ }
|
|
|
|
|
+ >
|
|
|
|
|
+ <QuestionCircleOutlined style={{ marginLeft: 5 }} />
|
|
|
|
|
+ </Tooltip>
|
|
|
|
|
+ </>
|
|
|
|
|
+ ),
|
|
|
component: (
|
|
component: (
|
|
|
<Card>
|
|
<Card>
|
|
|
<Metadata
|
|
<Metadata
|
|
@@ -118,7 +146,8 @@ const InstanceDetail = observer(() => {
|
|
|
component: <MetadataMap type="device" />,
|
|
component: <MetadataMap type="device" />,
|
|
|
},
|
|
},
|
|
|
];
|
|
];
|
|
|
- const [list, setList] = useState<{ key: string; tab: string; component: ReactNode }[]>(baseList);
|
|
|
|
|
|
|
+ const [list, setList] =
|
|
|
|
|
+ useState<{ key: string; tab: string | ReactNode; component: ReactNode }[]>(baseList);
|
|
|
|
|
|
|
|
const getDetail = (id: string) => {
|
|
const getDetail = (id: string) => {
|
|
|
service.detail(id).then((response) => {
|
|
service.detail(id).then((response) => {
|