diff --git a/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/DeviceDistribution/index.less b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/DeviceDistribution/index.less new file mode 100644 index 0000000000000000000000000000000000000000..aef2224de3bafc3b84ca9e6ea4e4bc0ae549f3b0 --- /dev/null +++ b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/DeviceDistribution/index.less @@ -0,0 +1,92 @@ +.deviceSection { + width: 641px; + height: 522px; + background: rgba(57, 122, 183, 0.2); + border-radius: 20px; + padding: 20px; + + .header { + display: flex; + justify-content: space-between; + margin-bottom: 12px; + color: #BCCEE9; + font-size: 16px; + padding: 0 20px; + + .type { + width: 200px; + } + .count { + width: 80px; + text-align: center; + } + .rate { + width: 100px; + text-align: center; + } + .percentage { + width: 80px; + text-align: center; + } + .warning { + width: 80px; + text-align: center; + } + } + + .deviceList { + height: 370px; + overflow-y: auto; + } + + .deviceItem { + height: 50px; + padding: 0 20px 0 30px; + background: rgba(57, 122, 183, 0.2); + border-radius: 16px; + margin-bottom: 10px; + color: #FFFFFF; + font-size: 20px; + font-weight: 700; + + .type { + width: 200px; + } + + .count { + width: 80px; + } + + .progress { + width: 100px; + } + + .rate { + width: 80px; + color: #55D355; + text-align: center; + } + + .warning { + width: 80px; + color: #FFB05A; + text-align: center; + } + } + + .remark { + color: #BCCEE9; + font-size: 16px; + margin-top: 10px; + padding: 0 20px; + } +} + +.title { + color: rgb(203, 237, 255); + font-family: 'DingTalk JinBuTi'; + font-size: 22px; + font-weight: 400; + line-height: 26px; + margin-bottom: 20px; +} \ No newline at end of file diff --git a/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/DeviceDistribution/index.tsx b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/DeviceDistribution/index.tsx new file mode 100644 index 0000000000000000000000000000000000000000..6c2f5d3b48198a60bf1755f4c23b968ecf24e0d8 --- /dev/null +++ b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/DeviceDistribution/index.tsx @@ -0,0 +1,60 @@ +import React from 'react'; +import { Flex, Progress } from 'antd'; +import styles from './index.less'; + +const DeviceDistribution: React.FC = () => { + let isUsingValue = true; + + const deviceTypeList = isUsingValue ? [ + {type: '集中控制器', count: 156, rate: 49.56}, + {type: '单灯控制器', count: 156, rate: 59.56}, + {type: '自然光及雨量监测', count: 156, rate: 69.56}, + {type: '固定光照度监测', count: 156, rate: 79.56}, + {type: '水浸传感器', count: 156, rate: 19.56}, + {type: '固定光照度监测', count: 156, rate: 29.56}, + {type: '水浸传感器', count: 156, rate: 39.56}, + ] : [ + {type: '--', count: '--', rate: '--'}, + {type: '--', count: '--', rate: '--'}, + {type: '--', count: '--', rate: '--'}, + {type: '--', count: '--', rate: '--'}, + {type: '--', count: '--', rate: '--'}, + {type: '--', count: '--', rate: '--'}, + {type: '--', count: '--', rate: '--'}, + {type: '--', count: '--', rate: '--'}, + ]; + + return ( +
+
各设备类型分布
+
+ 感知设备类型 + 设备总数 + + 设备在线率 +
+
+ {deviceTypeList.map(item => ( + + {item.type} + {item.count} + + {item.rate}% + + ))} +
+
+ 备注:单灯控制器与固定光照度监测关灯后不监测,在线率会变为0 +
+
+ ); +}; + +export default DeviceDistribution; \ No newline at end of file diff --git a/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/MonitorTable/index.less b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/MonitorTable/index.less new file mode 100644 index 0000000000000000000000000000000000000000..19657b97b7800c70267818481dceb797d1728470 --- /dev/null +++ b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/MonitorTable/index.less @@ -0,0 +1,59 @@ +.tableSection { + width: 1243px; + height: 723px; + background: rgba(57, 122, 183, 0.2); + border-radius: 20px; + padding: 20px; +} + +.title { + color: rgb(203, 237, 255); + font-family: 'DingTalk JinBuTi'; + font-size: 22px; + font-weight: 400; + line-height: 26px; + margin-bottom: 20px; +} + +.tabs { + display: flex; + margin-bottom: 10px; +} + +.tab { + padding: 8px 20px; + color: #8CC0DC; + font-family: 'DingTalk JinBuTi'; + font-size: 22px; + font-weight: 400; + line-height: 26px; + cursor: pointer; +// border-radius: 4px; + transition: all 0.3s; + + &:hover { + color: #fff; + } + + &.active { + color: #fff; + } +} + +.tableCell { + color: #FFFFFF !important; + font-size: 20px !important; + font-weight: 700 !important; + line-height: 29px !important; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.onlineStatus { + color: #4AE896; +} + +.offlineStatus { + color: #B0B0B0; +} diff --git a/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/MonitorTable/index.tsx b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/MonitorTable/index.tsx new file mode 100644 index 0000000000000000000000000000000000000000..7878fee0bf1ee75a4d3b1ee5dad5434764ee6f4e --- /dev/null +++ b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/MonitorTable/index.tsx @@ -0,0 +1,117 @@ +import React, { useState } from 'react'; +import { Flex, Progress, Select } from 'antd'; +import styles from './index.less'; +import BlueTable from '@/components/BlueTable'; +import type { ColumnsType } from 'antd/es/table'; + +interface DataType { + deviceName: string; + deviceStatus: string; + lightIntensity: string; + rainfall: string; + windDirection: string; + windSpeed: string; +} + +const MonitorTable: React.FC = () => { + const [activeTab, setActiveTab] = useState('tab1'); + let isUsingValue = true; + + const columns: ColumnsType = [ + { + title: '设备名称', + dataIndex: 'deviceName', + key: 'deviceName', + width: 200, + className: styles.tableCell + }, + { + title: '设备状态', + dataIndex: 'deviceStatus', + key: 'deviceStatus', + width: 120, + className: styles.tableCell, + render: (text) => ( + + {text} + + ) + }, + { + title: '光照度(Lux)', + dataIndex: 'lightIntensity', + key: 'lightIntensity', + width: 150, + className: styles.tableCell + }, + { + title: '雨量(毫米)', + dataIndex: 'rainfall', + key: 'rainfall', + width: 150, + className: styles.tableCell + }, + { + title: '风向(°)', + dataIndex: 'windDirection', + key: 'windDirection', + width: 120, + className: styles.tableCell + }, + { + title: '风速(m/s)', + dataIndex: 'windSpeed', + key: 'windSpeed', + width: 120, + className: styles.tableCell + } + ]; + + const mockData: DataType[] = isUsingValue + ? Array.from({ length: 10 }, () => ({ + deviceName: 'XXXXXXXX', + deviceStatus: Math.random() > 0.5 ? '在线' : '离线', + lightIntensity: 'XXXXX', + rainfall: 'XXXXX', + windDirection: 'XXXXXXXXXX', + windSpeed: 'XXXXXXX', + })) + : []; + + return ( +
+ {/*
感知设备实时监测信息
*/} +
+
setActiveTab('tab1')} + > + 自然光及风雨量监测列表 +
+
setActiveTab('tab2')} + > + 水浸实时监测列表 +
+
setActiveTab('tab3')} + > + 固定光照度监测表 +
+
+ +
+ ); +}; + +export default MonitorTable; \ No newline at end of file diff --git a/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/StatsOverview/index.less b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/StatsOverview/index.less new file mode 100644 index 0000000000000000000000000000000000000000..ffabe989e0b01fc3f2b46ccf13b48e4d4b5651b5 --- /dev/null +++ b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/StatsOverview/index.less @@ -0,0 +1,16 @@ +.statsSection { + width: 640px; + height: 176px; + background: rgba(57, 122, 183, 0.2); + border-radius: 20px; + padding: 20px; +} + +.title { + color: rgb(203, 237, 255); + font-family: 'DingTalk JinBuTi'; + font-size: 22px; + font-weight: 400; + line-height: 26px; + margin-bottom: 20px; +} \ No newline at end of file diff --git a/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/StatsOverview/index.tsx b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/StatsOverview/index.tsx new file mode 100644 index 0000000000000000000000000000000000000000..90429d18f41dc305aea971fd742183465d1cc12e --- /dev/null +++ b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/components/StatsOverview/index.tsx @@ -0,0 +1,63 @@ +import React from 'react'; +import { Flex } from 'antd'; +import styles from './index.less'; +import DescriptionItem from '@/components/DescriptionItem'; + +const StatsOverview: React.FC = () => { + let isUsingValue = true; + + const commonValueStyle = { + fontFamily: 'D-DIN Exp', + fontSize: '36px', + fontWeight: '700', + background: 'linear-gradient(180deg, #9CF8F7 0%, #25BBFF 100%)', + WebkitBackgroundClip: 'text', + WebkitTextFillColor: 'transparent', + }; + + const commonLabelStyle = { + color: '#BCCEE9', + fontSize: '20px', + marginTop: '-4px' + }; + + const commonUnitStyle = { + color: '#BCCEE9', + fontSize: '20px', + }; + + return ( +
+
感知设备概况
+ + + + + +
+ ); +}; + +export default StatsOverview; \ No newline at end of file diff --git a/src/pages/GlobalModalServices/modals/LightingDeviceStatus/index.less b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/index.less new file mode 100644 index 0000000000000000000000000000000000000000..c2c0dd682484d763014c581c1e9b2e0aa515fa16 --- /dev/null +++ b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/index.less @@ -0,0 +1,12 @@ +.container { + width: 2006px; + height: 858px; + display: flex; + gap: 20px; +} + +.leftContent { + display: flex; + flex-direction: column; + gap: 20px; +} \ No newline at end of file diff --git a/src/pages/GlobalModalServices/modals/LightingDeviceStatus/index.tsx b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/index.tsx new file mode 100644 index 0000000000000000000000000000000000000000..a8304b52eef0c274769ffd136cecee83c942f2df --- /dev/null +++ b/src/pages/GlobalModalServices/modals/LightingDeviceStatus/index.tsx @@ -0,0 +1,23 @@ +import React, { useState } from 'react'; +import { Flex } from 'antd'; +import styles from './index.less'; +import StatsOverview from './components/StatsOverview'; +import DeviceDistribution from './components/DeviceDistribution'; +import MonitorTable from './components/MonitorTable'; + +const LightingDeviceStatus: React.FC = () => { + return ( +
+
+ {/* 左上统计概览 */} + + {/* 左下设备分布 */} + +
+ {/* 右侧监测表格 */} + +
+ ); +}; + +export default LightingDeviceStatus; \ No newline at end of file diff --git a/src/pages/GlobalModalServices/modals/PipelineMonitor/index.less b/src/pages/GlobalModalServices/modals/PipelineMonitor/index.less new file mode 100644 index 0000000000000000000000000000000000000000..4f8d0f5283c6c0b7983cbb68b39eaa6432b43d8a --- /dev/null +++ b/src/pages/GlobalModalServices/modals/PipelineMonitor/index.less @@ -0,0 +1,179 @@ +.container { + width: 2035px; + height: 858px; +// width: 100%; +// height: 100%; + display: flex; + gap: 20px; +} + +.leftContent { + display: flex; + flex-direction: column; + gap: 20px; +} + +.title { + color: rgb(203, 237, 255); + font-family: 'DingTalk JinBuTi'; + font-size: 22px; + font-weight: 400; + line-height: 26px; + margin-bottom: 20px; +} + +// 顶部统计区域 +.statsSection { + width: 716px; + height: 176px; + background: rgba(57, 122, 183, 0.2); + border-radius: 20px; + padding: 20px; +} + +// 设备类型分布区域 +.deviceSection { + width: 716px; + height: 522px; + background: rgba(57, 122, 183, 0.2); + border-radius: 20px; + padding: 20px; + + .header { + display: flex; + justify-content: space-between; + margin-bottom: 12px; + color: #BCCEE9; + font-size: 16px; + padding: 0 20px; + + .type { + width: 200px; + } + .count { + width: 80px; + text-align: center; + } + .rate { + width: 100px; + text-align: center; + } + .percentage { + width: 80px; + text-align: center; + } + .warning { + width: 80px; + text-align: center; + } + } + + .deviceList { + height: 410px; + overflow-y: auto; + } + + .deviceItem { + height: 50px; + padding: 0 20px 0 30px; + background: rgba(57, 122, 183, 0.2); + border-radius: 16px; + margin-bottom: 10px; + color: #FFFFFF; + font-size: 20px; + font-weight: 700; + + .type { + width: 200px; + } + + .count { + width: 80px; + } + + .progress { + width: 100px; + } + + .rate { + width: 80px; + color: #55D355; + text-align: center; + } + + .warning { + width: 80px; + color: #FFB05A; + text-align: center; + } + } +} + +// 表格单元格样式 +.tableCell { + color: #FFFFFF !important; + font-size: 20px !important; + font-weight: 700 !important; + line-height: 29px !important; + // Start Generation Here + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +// 监测结果状态样式 +.normalStatus { + color: #4AE896 !important; + font-family: 思源黑体 !important; + font-size: 20px !important; + font-weight: 700 !important; + line-height: 29px !important; +} + +.warningStatus { + color: #FFB72D !important; + font-family: 思源黑体 !important; + font-size: 20px !important; + font-weight: 700 !important; + line-height: 29px !important; +} + +// 表格区域 +.tableSection { + width: 1243px; + height: 723px; + background: rgba(57, 122, 183, 0.2); + border-radius: 20px; + padding: 20px; + + .filters { + margin-bottom: 20px; + } + + .select { + width: 170px; + height: 40px; + background: rgb(50, 111, 167); + border-radius: 25px; + border: none; + + :global { + .ant-select-selector { + background: transparent !important; + border: none !important; + height: 40px !important; + padding: 0 20px !important; + + .ant-select-selection-item { + line-height: 24px !important; + color: #fff; + font-size: 18px; + } + } + + .ant-select-arrow { + color: #fff; + } + } + } +} \ No newline at end of file diff --git a/src/pages/GlobalModalServices/modals/PipelineMonitor/index.tsx b/src/pages/GlobalModalServices/modals/PipelineMonitor/index.tsx new file mode 100644 index 0000000000000000000000000000000000000000..48d6bda3940d9824418a066f73c0085caeb57700 --- /dev/null +++ b/src/pages/GlobalModalServices/modals/PipelineMonitor/index.tsx @@ -0,0 +1,345 @@ +import React, { useState } from 'react'; +import { Flex, Progress, Select } from 'antd'; +import styles from './index.less'; +import DescriptionItem from '@/components/DescriptionItem'; +import BlueTable from '@/components/BlueTable'; +import type { ColumnsType } from 'antd/es/table'; + +interface DataType { + monitorTime: string; + deviceName: string; + deviceCode: string; + deviceType: string; + onlineStatus: string; + pipelineName: string; + monitorValue: string; + monitorResult: string; +} + +const PipelineMonitor: React.FC = () => { + const [deviceType, setDeviceType] = useState('all'); + const [monitorResult, setMonitorResult] = useState('all'); + + let isUsingValue = false; + + const columns: ColumnsType = [ + { + title: '监测时间', + dataIndex: 'monitorTime', + key: 'monitorTime', + width: 200, + className: styles.tableCell + }, + { + title: '设备名称', + dataIndex: 'deviceName', + key: 'deviceName', + width: 180, + className: styles.tableCell + }, + { + title: '设备编码', + dataIndex: 'deviceCode', + key: 'deviceCode', + width: 120, + className: styles.tableCell + }, + { + title: '设备类型', + dataIndex: 'deviceType', + key: 'deviceType', + width: 160, + className: styles.tableCell + }, + { + title: '在线状态', + dataIndex: 'onlineStatus', + key: 'onlineStatus', + width: 120, + className: styles.tableCell + }, + { + title: '管廊名称', + dataIndex: 'pipelineName', + key: 'pipelineName', + width: 170, + className: styles.tableCell + }, + { + title: '监测数据值', + dataIndex: 'monitorValue', + key: 'monitorValue', + width: 130, + className: styles.tableCell + }, + { + title: '监测结果', + dataIndex: 'monitorResult', + key: 'monitorResult', + width: 100, + render: (text) => ( + + {text} + + ) + } + ]; + + const mockData: DataType[] = isUsingValue ? [ + { + monitorTime: '2024-10-21 10:20:20', + deviceName: '氧气浓度传感器01', + deviceCode: 'YQ001', + deviceType: '氧气浓度传感器', + onlineStatus: '在线', + pipelineName: '天府大道管廊A段', + monitorValue: '25% VOL', + monitorResult: '预警' + }, + { + monitorTime: '2024-10-21 10:20:20', + deviceName: '一氧化碳传感器02', + deviceCode: 'CO002', + deviceType: '一氧化碳气体传感器', + onlineStatus: '在线', + pipelineName: '天府大道管廊B段', + monitorValue: '25% VOL', + monitorResult: '正常' + }, + { + monitorTime: '2024-10-21 10:20:20', + deviceName: '甲烷传感器03', + deviceCode: 'JW003', + deviceType: '甲烷气体传感器', + onlineStatus: '在线', + pipelineName: '天府大道管廊C段', + monitorValue: '25% VOL', + monitorResult: '正常' + }, + { + monitorTime: '2024-10-21 10:20:20', + deviceName: '硫化氢传感器04', + deviceCode: 'LH004', + deviceType: '硫化氢气体传感器', + onlineStatus: '在线', + pipelineName: '天府大道管廊D段', + monitorValue: '25% VOL', + monitorResult: '正常' + }, + { + monitorTime: '2024-10-21 10:20:20', + deviceName: '温度传感器05', + deviceCode: 'WD005', + deviceType: '温度传感器', + onlineStatus: '在线', + pipelineName: '天府大道管廊E段', + monitorValue: '25% VOL', + monitorResult: '正常' + }, + { + monitorTime: '2024-10-21 10:20:20', + deviceName: '温度传感器06', + deviceCode: 'WD006', + deviceType: '温度传感器', + onlineStatus: '在线', + pipelineName: '天府大道管廊F段', + monitorValue: '25% VOL', + monitorResult: '正常' + }, + { + monitorTime: '2024-10-21 10:20:20', + deviceName: '液位监测传感器07', + deviceCode: 'YW007', + deviceType: '液位监测传感器', + onlineStatus: '在线', + pipelineName: '天府大道管廊G段', + monitorValue: '25% VOL', + monitorResult: '正常' + }, + { + monitorTime: '2024-10-21 10:20:20', + deviceName: '氧气浓度传感器08', + deviceCode: 'YQ008', + deviceType: '氧气浓度传感器', + onlineStatus: '在线', + pipelineName: '天府大道管廊H段', + monitorValue: '25% VOL', + monitorResult: '正常' + }, + { + monitorTime: '2024-10-21 10:20:20', + deviceName: '一氧化碳传感器09', + deviceCode: 'CO009', + deviceType: '一氧化碳气体传感器', + onlineStatus: '在线', + pipelineName: '天府大道管廊I段', + monitorValue: '25% VOL', + monitorResult: '正常' + }, + { + monitorTime: '2024-10-21 10:20:20', + deviceName: '甲烷传感器10', + deviceCode: 'JW010', + deviceType: '甲烷气体传感器', + onlineStatus: '在线', + pipelineName: '天府大道管廊J段', + monitorValue: '25% VOL', + monitorResult: '正常' + } + ] : []; + + const deviceTypeList = isUsingValue ? [ + {type: '氧气浓度传感器', count: 156, rate: 49.56, warning: 12}, + {type: '一氧化碳气体传感器', count: 156, rate: 59.56, warning: 12}, + {type: '甲烷气体传感器', count: 156, rate: 69.56, warning: 12}, + {type: '硫化氢气体传感器', count: 156, rate: 79.56, warning: 12}, + {type: '温度传感器', count: 156, rate: 19.56, warning: 12}, + {type: '温度传感器', count: 156, rate: 49.56, warning: 12}, + {type: '液位监测传感器', count: 156, rate: 89.56, warning: 12}, + {type: '液位监测传感器', count: 156, rate: 99.56, warning: 12}, + ] : [ + {type: '--', count: '--', rate: '--', warning: '--'}, + {type: '--', count: '--', rate: '--', warning: '--'}, + {type: '--', count: '--', rate: '--', warning: '--'}, + {type: '--', count: '--', rate: '--', warning: '--'}, + {type: '--', count: '--', rate: '--', warning: '--'}, + {type: '--', count: '--', rate: '--', warning: '--'}, + {type: '--', count: '--', rate: '--', warning: '--'}, + {type: '--', count: '--', rate: '--', warning: '--'}, + ]; + + const commonValueStyle = { + fontFamily: 'D-DIN Exp', + fontSize: '36px', + fontWeight: '700', + background: 'linear-gradient(180deg, #9CF8F7 0%, #25BBFF 100%)', + WebkitBackgroundClip: 'text', + WebkitTextFillColor: 'transparent', + }; + + const commonLabelStyle = { + color: '#BCCEE9', + fontSize: '20px', + marginTop: '-4px' + }; + + const commonUnitStyle = { + color: '#BCCEE9', + fontSize: '20px', + }; + + return ( +
+
+ {/* 顶部统计区域 */} +
+
感知设备概况
+ + + + + + +
+ + {/* 设备类型分布区域 */} +
+
各设备类型分布
+
+ 感知设备类型 + 设备总数 + 设备在线率 + + 预警数 +
+
+ {/* 设备类型列表项 */} + {deviceTypeList.map(item => ( + + {item.type} + {item.count} + + {item.rate}% + {item.warning} + + ))} +
+
+
+ + {/* 表格筛选和数据区域 */} +
+
感知设备实时监测信息
+ + + + +
+
+ ); +}; + +export default PipelineMonitor; \ No newline at end of file diff --git a/src/pages/GlobalModalServices/modals/PipelinePassage/Overview/index.tsx b/src/pages/GlobalModalServices/modals/PipelinePassage/Overview/index.tsx index 20ff27131d93a33089232d5958802d36e480733f..681e71da742a51184efe565c03ee51f14a5fa95a 100644 --- a/src/pages/GlobalModalServices/modals/PipelinePassage/Overview/index.tsx +++ b/src/pages/GlobalModalServices/modals/PipelinePassage/Overview/index.tsx @@ -15,6 +15,8 @@ const Overview: React.FC = memo(() => { const { dispatch } = useGlobalModalServices(); const [activeTab, setActiveTab] = useState('1'); + let isTrigger = false; + const [pieData, setPieData] = useState( // [...Array(4)].map((_, i) => { // return { @@ -152,11 +154,13 @@ const Overview: React.FC = memo(() => { name={item.name} key={item.name} decimals={Number.isInteger(item.value) ? 0 : 2} - // onClick={() => { - // dispatch.push('PipeGalleryDetail', { - // title: `${item.name}综合管廊`, - // }); - // }} + onClick={() => { + if (isTrigger) { + dispatch.push('PipeGalleryDetail', { + title: `${item.name}综合管廊`, + }); + } + }} /> ); })} diff --git a/src/pages/GlobalModalServices/modals/PipelinePassage/PipeCorridorSensesTheSituation/index.tsx b/src/pages/GlobalModalServices/modals/PipelinePassage/PipeCorridorSensesTheSituation/index.tsx index 0265045cebca9597cc4f4cd4a1ebc56bbda76cc4..7746fa38454f9502be60706facd75e8ab45975b8 100644 --- a/src/pages/GlobalModalServices/modals/PipelinePassage/PipeCorridorSensesTheSituation/index.tsx +++ b/src/pages/GlobalModalServices/modals/PipelinePassage/PipeCorridorSensesTheSituation/index.tsx @@ -7,11 +7,15 @@ import React, { useLayoutEffect, useMemo, useRef, useState } from 'react'; import BaseCard from '../../../components/BaseCard'; import styles from './index.less'; import option from './option'; +import { useGlobalModalServices } from '@/pages/GlobalModalServices/provider'; /** @name 管廊感知态势 */ const PipeCorridorSensesTheSituation: React.FC = () => { const chartRef = useRef(); const [activeTab, setActiveTab] = useState('1'); + const { dispatch } = useGlobalModalServices(); + + let isTrigger = true; const tabItems = useMemo( () => [ @@ -106,6 +110,13 @@ const PipeCorridorSensesTheSituation: React.FC = () => { }} name={item.name} key={item.name} + onClick={() => { + if (isTrigger) { + dispatch.push('PipelineMonitor', { + // title: `${item.name}综合管廊`, + }); + } + }} /> ); })} diff --git a/src/pages/GlobalModalServices/modals/UrbanLighting/SensingDevice/index.tsx b/src/pages/GlobalModalServices/modals/UrbanLighting/SensingDevice/index.tsx index 79165086c937eb7308500160621e7bcd7f5bf4ec..afafda9b9a14601399afa3576994534ac1e63f41 100644 --- a/src/pages/GlobalModalServices/modals/UrbanLighting/SensingDevice/index.tsx +++ b/src/pages/GlobalModalServices/modals/UrbanLighting/SensingDevice/index.tsx @@ -8,9 +8,11 @@ import React, { useEffect, useLayoutEffect, useMemo, useRef } from 'react'; import BaseCard from '../../../components/BaseCard'; import styles from './index.less'; import option from './option'; +import { useGlobalModalServices } from '@/pages/GlobalModalServices/provider'; /** @name 感知设备 */ const SensingDevice: React.FC = () => { const chartRef = useRef(); + const { dispatch } = useGlobalModalServices(); const [dataSource, setDataSource] = useSetState<{ total?: string; @@ -84,7 +86,15 @@ const SensingDevice: React.FC = () => { return ( - + { + if (false) { + dispatch.push('LightingDeviceStatus', { + title: `感知设备运行态势`, + }); + } + }} + >