diff --git a/config/routes.js b/config/routes.js index b7fb9a4..3bffe82 100644 --- a/config/routes.js +++ b/config/routes.js @@ -26,15 +26,20 @@ export default [ routes: [ //巡检任务 { - path: '/topnavbar00/business/inspectiontasks', - name: 'inspectiontasks', - component: './inspectiontasks/InspectionTasks', - }, - { - path: '/topnavbar00/business/inspectionmanagement', - name: 'inspectionmanagement', - component: './inspectionmanagement/InspectionManagement', - }, + path: '/topnavbar00/business/inspectiontasks', + name: 'inspectiontasks', + component: './inspectiontasks/InspectionTasks', + }, + { + path: '/topnavbar00/business/inspectionmanagement', + name: 'inspectionmanagement', + component: './inspectionmanagement/InspectionManagement', + }, + { + path: '/topnavbar00/business/smartinspection', + name: 'smartinspection', + component: './smartinspection/SmartInspection', + }, ], }, ], diff --git a/src/assets/img/03ba6681098742e33bea38c40e3c23f16847dc1f.png b/src/assets/img/03ba6681098742e33bea38c40e3c23f16847dc1f.png new file mode 100644 index 0000000..5e818b9 Binary files /dev/null and b/src/assets/img/03ba6681098742e33bea38c40e3c23f16847dc1f.png differ diff --git a/src/assets/img/3de08b72a292633bddad28950ba6c6d7fa084a23.png b/src/assets/img/3de08b72a292633bddad28950ba6c6d7fa084a23.png new file mode 100644 index 0000000..60ae476 Binary files /dev/null and b/src/assets/img/3de08b72a292633bddad28950ba6c6d7fa084a23.png differ diff --git a/src/assets/img/90501c706560228b7b68e4c8f4c9924c490578ad.png b/src/assets/img/90501c706560228b7b68e4c8f4c9924c490578ad.png new file mode 100644 index 0000000..67f5ce8 Binary files /dev/null and b/src/assets/img/90501c706560228b7b68e4c8f4c9924c490578ad.png differ diff --git a/src/assets/img/Group 2895.svg b/src/assets/img/Group 2895.svg new file mode 100644 index 0000000..e312bf9 --- /dev/null +++ b/src/assets/img/Group 2895.svg @@ -0,0 +1,50 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/assets/img/Group 2896.svg b/src/assets/img/Group 2896.svg new file mode 100644 index 0000000..da30646 --- /dev/null +++ b/src/assets/img/Group 2896.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/Rectangle 34624130.svg b/src/assets/img/Rectangle 34624130.svg new file mode 100644 index 0000000..5c78992 --- /dev/null +++ b/src/assets/img/Rectangle 34624130.svg @@ -0,0 +1,49 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/assets/img/a4a0367e2a7e14611cc75be2e1a2d51127a4d390.png b/src/assets/img/a4a0367e2a7e14611cc75be2e1a2d51127a4d390.png new file mode 100644 index 0000000..15a4f91 Binary files /dev/null and b/src/assets/img/a4a0367e2a7e14611cc75be2e1a2d51127a4d390.png differ diff --git a/src/assets/img/d368476fbf3b6a5e808b0274d96e1809d945da24.png b/src/assets/img/d368476fbf3b6a5e808b0274d96e1809d945da24.png new file mode 100644 index 0000000..d5a2d5f Binary files /dev/null and b/src/assets/img/d368476fbf3b6a5e808b0274d96e1809d945da24.png differ diff --git a/src/assets/img/de55b2b9c8dab34462ff1b044a5a5c9668b11aa4.png b/src/assets/img/de55b2b9c8dab34462ff1b044a5a5c9668b11aa4.png new file mode 100644 index 0000000..46f623c Binary files /dev/null and b/src/assets/img/de55b2b9c8dab34462ff1b044a5a5c9668b11aa4.png differ diff --git a/src/assets/img/f729103541513c2e864c1f8a710db1d80125f3e7.png b/src/assets/img/f729103541513c2e864c1f8a710db1d80125f3e7.png new file mode 100644 index 0000000..bc06292 Binary files /dev/null and b/src/assets/img/f729103541513c2e864c1f8a710db1d80125f3e7.png differ diff --git a/src/assets/img/image 674 1.svg b/src/assets/img/image 674 1.svg new file mode 100644 index 0000000..f6068f3 --- /dev/null +++ b/src/assets/img/image 674 1.svg @@ -0,0 +1,49 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/assets/img/smartinspection.svg b/src/assets/img/smartinspection.svg new file mode 100644 index 0000000..fd8e2fd --- /dev/null +++ b/src/assets/img/smartinspection.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/img/smartinspection1.svg b/src/assets/img/smartinspection1.svg new file mode 100644 index 0000000..22f2cc5 --- /dev/null +++ b/src/assets/img/smartinspection1.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/locales/zh-CN/menu.js b/src/locales/zh-CN/menu.js index 770da9b..e15b642 100644 --- a/src/locales/zh-CN/menu.js +++ b/src/locales/zh-CN/menu.js @@ -87,4 +87,6 @@ export default { 'menu.topnavbar00.pocmodel.performancereview.performancerelease': '绩效发布日志管理', 'menu.topnavbar00.pocmodel.performancereview.performanceIncentives': '绩效奖励统计分析', + // 智能巡检菜单 + 'menu.topnavbar00.business.smartinspection': '智能巡检' } diff --git a/src/pages/inspectiontasks/components/Inspectiontaskplan/InspectionTaskPlan.js b/src/pages/inspectiontasks/components/Inspectiontaskplan/InspectionTaskPlan.js index 9f4ab9a..6042b39 100644 --- a/src/pages/inspectiontasks/components/Inspectiontaskplan/InspectionTaskPlan.js +++ b/src/pages/inspectiontasks/components/Inspectiontaskplan/InspectionTaskPlan.js @@ -1,7 +1,7 @@ -import {Button, Col, Drawer, Form, Input, Menu, Pagination, Row, Select, Space, Switch, Table, Tag, Tree} from "antd"; -import {useEffect, useRef, useState} from "react"; +import { Button, Col, Drawer, Form, Input, Menu, Pagination, Row, Select, Space, Switch, Table, Tag, Tree } from "antd"; +import { useEffect, useRef, useState } from "react"; import styles from './InspectionTaskPlan.less' -import {Title} from "@/pages/inspectiontasks/InspectionTasks"; +import { Title } from "@/pages/inspectiontasks/InspectionTasks"; import btnImg1 from '@/assets/img/planBtn1.png' import btnImg2 from '@/assets/img/planBtn2.png' import btnImg3 from '@/assets/img/planBtn3.png' @@ -15,33 +15,33 @@ import { PlusOutlined, RedoOutlined } from "@ant-design/icons"; -const {Search}=Input -export const MenuBg=(props)=>{ +const { Search } = Input +export const MenuBg = (props) => { return (
{props.text} - {props.icon} + {props.icon}
) } //抽屉 -const Drawers=(props)=>{ +const Drawers = (props) => { - return ( + return ( -
+
- + - + 所属班次 {props.row?.shifts} @@ -51,7 +51,7 @@ const Drawers=(props)=>{ - + 所属专业 {props.row?.affiliation} @@ -71,19 +71,19 @@ const Drawers=(props)=>{ 1#冷干机
- + 发电机 - +
  • 外观检查:有无破损、油污
  • 温度检测:轴承温度≤70℃,定子温度≤105℃
- + 1#增压风机变频器 - +
+
+ 共 85 条 +
+ 10 / page + + + ... + + + + + + ... + + +
+
+ + + + + ); + case '温湿度检测': + // 创建一个React兼容的ECharts组件 + const EChartsGauge = ({ id, option, height, width }) => { + const chartRef = useRef(null); + const chartInstanceRef = useRef(null); + + useEffect(() => { + // 确保在浏览器环境中运行 + if (typeof window !== 'undefined' && chartRef.current) { + const echarts = require('echarts'); + + // 初始化图表 + if (!chartInstanceRef.current) { + chartInstanceRef.current = echarts.init(chartRef.current); + } + + // 设置配置 + chartInstanceRef.current.setOption(option); + + // 响应窗口大小变化 + const handleResize = () => { + if (chartInstanceRef.current) { + chartInstanceRef.current.resize(); + } + }; + + window.addEventListener('resize', handleResize); + + // 清理函数 + return () => { + window.removeEventListener('resize', handleResize); + if (chartInstanceRef.current) { + chartInstanceRef.current.dispose(); + chartInstanceRef.current = null; + } + }; + } + }, [option]); + + return ( +
+ ); + }; + + // 温度仪表盘配置 + const temperatureOption = { + series: [ + { + type: 'gauge', + startAngle: 180, + endAngle: 0, + min: 0, + max: 120, + splitNumber: 6, + itemStyle: { + color: 'rgba(4, 95, 94, 0.5)', + shadowColor: 'rgba(4, 95, 94, 0.7)', + shadowBlur: 10, + shadowOffsetX: 2, + shadowOffsetY: 2 + }, + progress: { + show: true, + roundCap: true, + width: 18, + itemStyle: { + color: 'rgba(4, 95, 94, 0.5)' + } + }, + pointer: { + icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z', + length: '75%', + width: 16, + offsetCenter: [0, '5%'], + itemStyle: { + color: 'rgba(4, 95, 94, 1)' + } + }, + axisLine: { + roundCap: true, + lineStyle: { + width: 18, + color: [ + [1, 'rgba(4, 95, 94, 0.5)'] + ] + } + }, + axisTick: { + splitNumber: 2, + lineStyle: { + width: 2, + color: '#999' + } + }, + splitLine: { + length: 12, + lineStyle: { + width: 3, + color: 'rgba(4, 95, 94, 0.8)' + } + }, + axisLabel: { + distance: 30, + color: 'rgba(4, 95, 94, 0.8)', + fontSize: 20 + }, + title: { + show: true, + offsetCenter: [0, '10%'], + fontSize: 18, + color: 'rgba(4, 95, 94, 0.8)' + }, + detail: { + // backgroundColor: 'rgba(4, 95, 94, 0.2)', + // borderColor: 'rgba(4, 95, 94, 0.5)', + // borderWidth: 2, + width: '60%', + lineHeight: 40, + height: 40, + borderRadius: 8, + offsetCenter: [0, '35%'], + valueAnimation: true, + formatter: function (value) { + return '{value|温度:' + value.toFixed(0) + '℃}'; + // return '{value|温度:' + value.toFixed(0) + '℃}{unit|°C}'; + }, + rich: { + value: { + fontSize: 20, + fontWeight: '400', + color: 'rgba(4, 95, 94, 1)' + }, + unit: { + fontSize: 20, + color: 'rgba(4, 95, 94, 0.8)', + padding: [0, 0, -20, 10] + } + } + }, + data: [ + { + value: 28, + name: '' + } + ] + } + ] + }; + + // 湿度仪表盘配置 + const humidityOption = { + series: [ + { + type: 'gauge', + startAngle: 180, + endAngle: 0, + min: 0, + max: 120, + splitNumber: 6, + itemStyle: { + color: 'rgba(4, 95, 94, 0.5)', + shadowColor: 'rgba(4, 95, 94, 0.7)', + shadowBlur: 10, + shadowOffsetX: 2, + shadowOffsetY: 2 + }, + progress: { + show: true, + roundCap: true, + width: 18, + itemStyle: { + color: 'rgba(4, 95, 94, 0.5)' + } + }, + pointer: { + icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z', + length: '75%', + width: 16, + offsetCenter: [0, '5%'], + itemStyle: { + color: 'rgba(4, 95, 94, 1)' + } + }, + axisLine: { + roundCap: true, + lineStyle: { + width: 18, + color: [ + [1, 'rgba(4, 95, 94, 0.5)'] + ] + } + }, + axisTick: { + splitNumber: 2, + lineStyle: { + width: 2, + color: '#999' + } + }, + splitLine: { + length: 12, + lineStyle: { + width: 3, + color: 'rgba(4, 95, 94, 0.8)' + } + }, + axisLabel: { + distance: 30, + color: 'rgba(4, 95, 94, 0.8)', + fontSize: 20 + }, + title: { + show: true, + offsetCenter: [0, '10%'], + fontSize: 18, + color: 'rgba(4, 95, 94, 0.8)' + }, + detail: { + // backgroundColor: 'rgba(4, 95, 94, 0.2)', + // borderColor: 'rgba(4, 95, 94, 0.5)', + // borderWidth: 2, + width: '60%', + lineHeight: 40, + height: 40, + borderRadius: 8, + offsetCenter: [0, '35%'], + valueAnimation: true, + formatter: function (value) { + // return '{value|' + value.toFixed(0) + '}{unit|%}'; + return '{value|湿度:' + value.toFixed(0) + '%}'; + }, + rich: { + value: { + fontSize: 20, + fontWeight: '400', + color: 'rgba(4, 95, 94, 1)' + }, + unit: { + fontSize: 20, + color: 'rgba(4, 95, 94, 0.8)', + padding: [0, 0, -20, 10] + } + } + }, + data: [ + { + value: 55, + name: '' + } + ] + } + ] + }; + + return ( +
+
+

| 温湿度检测

+
+ +
+
+
+

实时仪表盘

+ {/* 温度仪表盘 - 使用React兼容的ECharts组件 */} +
+
+ +
+ + {/* 湿度仪表盘 - 使用React兼容的ECharts组件 */} +
+ +
+
+
+ +
+
+

阈值配置区

+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ +
+
+

历史趋势图

+
+
+
+ + 温度(°C) +
+
+ + 湿度(%RH) +
+
+
+ {/* 模拟趋势图 */} + + {/* 网格线 */} + {[0, 25, 50, 75, 100].map((val, index) => ( + + + + {val} + + + ))} + {/* 时间标签 */} + {['00:00', '03:00', '06:00', '09:00', '12:00', '15:00', '18:00', '21:00', '24:00'].map((time, index) => ( + + {time} + + ))} + {/* 温度曲线 */} + + {/* 温度数据点 */} + {[50, 140, 230, 320, 410, 500, 590, 680, 750].map((x, index) => ( + + ))} + {/* 湿度曲线 */} + + {/* 湿度数据点 */} + {[50, 140, 230, 320, 410, 500, 590, 680, 750].map((x, index) => ( + + ))} + +
+
+
+
+
+
+ ); + case '跑冒滴漏检测': + case '仪器仪表采集': + case '环境监测': + return ( +
+

该模块正在开发中...

+
+ ); + default: + return null; + } + }; + + return ( +
+
+
+ | 智能巡检内容监控中心 +
+
+ + + +
+
+ +
+
+ +
+ +
+ {renderContent()} +
+
+
+ ); +}; + +// 任务规划与执行流程组件 +const TaskPlanningFlow = () => { + return ( +
+ {/* 顶部标题 */} +
+
+ 接班班组签到 +
+
当前多机协作任务完成时间较单机缩短 62%
+
+ {/* 顶部控制区域 */} + + {/* 左侧任务状态选择框 */} + +
+ 任务状态: +