|
|
@@ -1,16 +1,19 @@
|
|
|
import { PermissionButton } from '@/components';
|
|
|
import useHistory from '@/hooks/route/useHistory';
|
|
|
import { getMenuPathByCode, MENUS_CODE } from '@/utils/menu';
|
|
|
-import { Col, message, Row } from 'antd';
|
|
|
+import { Col, message, Row, Tooltip } from 'antd';
|
|
|
import Body from '../components/Body';
|
|
|
import Guide from '../components/Guide';
|
|
|
import Statistics from '../components/Statistics';
|
|
|
-// import Steps from '../components/Steps';
|
|
|
+import Steps from '../components/Steps';
|
|
|
import { service } from '..';
|
|
|
import { useEffect, useState } from 'react';
|
|
|
import useSendWebsocketMessage from '@/hooks/websocket/useSendWebsocketMessage';
|
|
|
import { map } from 'rxjs';
|
|
|
import Pie from '../components/Pie';
|
|
|
+import { QuestionCircleOutlined } from '@ant-design/icons';
|
|
|
+import ProductChoose from '../components/ProductChoose';
|
|
|
+import DeviceChoose from '../components/DeviceChoose';
|
|
|
|
|
|
const Comprehensive = () => {
|
|
|
const [subscribeTopic] = useSendWebsocketMessage();
|
|
|
@@ -25,6 +28,8 @@ const Comprehensive = () => {
|
|
|
const [deviceCount, setDeviceCount] = useState<number>(0);
|
|
|
const [cpuValue, setCpuValue] = useState<number>(0);
|
|
|
const [jvmValue, setJvmValue] = useState<number>(0);
|
|
|
+ const [productVisible, setProductVisible] = useState<boolean>(false);
|
|
|
+ const [deviceVisible, setDeviceVisible] = useState<boolean>(false);
|
|
|
|
|
|
const getProductCount = async () => {
|
|
|
const resp = await service.productCount({});
|
|
|
@@ -222,12 +227,131 @@ const Comprehensive = () => {
|
|
|
<Col span={24}>
|
|
|
<Body title={'平台架构图'} english={'PLATFORM ARCHITECTURE DIAGRAM'} />
|
|
|
</Col>
|
|
|
- {/* <Col span={24}>
|
|
|
- <Steps />
|
|
|
+ <Col span={24}>
|
|
|
+ <Steps
|
|
|
+ title={
|
|
|
+ <span>
|
|
|
+ 设备接入推荐步骤
|
|
|
+ <Tooltip title={'不同的设备因为通信协议的不用,存在接入步骤的差异'}>
|
|
|
+ <QuestionCircleOutlined style={{ paddingLeft: 12 }} />
|
|
|
+ </Tooltip>
|
|
|
+ </span>
|
|
|
+ }
|
|
|
+ data={[
|
|
|
+ {
|
|
|
+ title: '创建产品',
|
|
|
+ content:
|
|
|
+ '产品是设备的集合,通常指一组具有相同功能的设备。物联设备必须通过产品进行接入方式配置。',
|
|
|
+ onClick: () => {
|
|
|
+ const path = getMenuPathByCode('device/Product');
|
|
|
+ if (path && !!productPermission.add) {
|
|
|
+ history.push(`${path}`, {
|
|
|
+ save: true,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ message.warning('暂无权限,请联系管理员');
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '配置产品接入方式',
|
|
|
+ content:
|
|
|
+ '通过产品对同一类型的所有设备进行统一的接入方式配置。请参照设备铭牌说明选择匹配的接入方式。',
|
|
|
+ onClick: () => {
|
|
|
+ setProductVisible(true);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '添加测试设备',
|
|
|
+ content: '添加单个设备,用于验证产品模型是否配置正确。',
|
|
|
+ onClick: () => {
|
|
|
+ const path = getMenuPathByCode('device/Instance');
|
|
|
+ if (path && !!devicePermission.add) {
|
|
|
+ history.push(`${path}`, {
|
|
|
+ save: true,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ message.warning('暂无权限,请联系管理员');
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '功能调试',
|
|
|
+ content: '对添加的测试设备进行功能调试,验证能否连接到平台,设备功能是否配置正确。',
|
|
|
+ onClick: () => {
|
|
|
+ setDeviceVisible(true);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '批量添加设备',
|
|
|
+ content: '批量添加同一产品下的设备',
|
|
|
+ onClick: () => {
|
|
|
+ const path = getMenuPathByCode('device/Instance');
|
|
|
+ if (path && !!devicePermission.import) {
|
|
|
+ history.push(`${path}`, {
|
|
|
+ import: true,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ message.warning('暂无权限,请联系管理员');
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ />
|
|
|
</Col>
|
|
|
<Col span={24}>
|
|
|
- <Steps />
|
|
|
- </Col> */}
|
|
|
+ <Steps
|
|
|
+ title={
|
|
|
+ <span>
|
|
|
+ 设备接入推荐步骤
|
|
|
+ <Tooltip title={'不同的设备因为通信协议的不用,存在接入步骤的差异'}>
|
|
|
+ <QuestionCircleOutlined style={{ paddingLeft: 12 }} />
|
|
|
+ </Tooltip>
|
|
|
+ </span>
|
|
|
+ }
|
|
|
+ data={[
|
|
|
+ {
|
|
|
+ title: '创建产品',
|
|
|
+ content:
|
|
|
+ '产品是设备的集合,通常指一组具有相同功能的设备。物联设备必须通过产品进行接入方式配置。',
|
|
|
+ onClick: () => {},
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '配置产品接入方式',
|
|
|
+ content:
|
|
|
+ '通过产品对同一类型的所有设备进行统一的接入方式配置。请参照设备铭牌说明选择匹配的接入方式。',
|
|
|
+ onClick: () => {},
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '添加测试设备',
|
|
|
+ content: '添加单个设备,用于验证产品模型是否配置正确。',
|
|
|
+ onClick: () => {},
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '功能调试',
|
|
|
+ content: '对添加的测试设备进行功能调试,验证能否连接到平台,设备功能是否配置正确。',
|
|
|
+ onClick: () => {},
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '批量添加设备',
|
|
|
+ content: '批量添加同一产品下的设备',
|
|
|
+ onClick: () => {},
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ />
|
|
|
+ </Col>
|
|
|
+ <ProductChoose
|
|
|
+ visible={productVisible}
|
|
|
+ close={() => {
|
|
|
+ setProductVisible(false);
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ <DeviceChoose
|
|
|
+ visible={deviceVisible}
|
|
|
+ onCancel={() => {
|
|
|
+ setDeviceVisible(false);
|
|
|
+ }}
|
|
|
+ />
|
|
|
</Row>
|
|
|
);
|
|
|
};
|