diff --git a/package.json b/package.json index 52c1208..fb6b564 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ }, "dependencies": { "@ant-design/icons": "^4.8.0", + "@antv/g6": "4.8.0", "@umijs/max": "^4.0.70", "antd": "5.6.0", "braft-editor": "^2.3.9", @@ -24,9 +25,9 @@ "moment": "^2.29.1", "nvm": "^0.0.4", "qs": "^6.11.0", - "react": "^18.2.0", + "react": "^19.2.0", "react-contexify": "^5.0.0", - "react-dom": "^18.2.0", + "react-dom": "^19.2.0", "react-split-pane": "^0.1.92" }, "devDependencies": { diff --git a/src/assets/img/cloud.png b/src/assets/img/cloud.png new file mode 100644 index 0000000..1b41e80 Binary files /dev/null and b/src/assets/img/cloud.png differ diff --git a/src/pages/hrefficiency_hiddentrouble/HiddenTrouble.less b/src/pages/hrefficiency_hiddentrouble/HiddenTrouble.less index 56d8636..6f5bd68 100644 --- a/src/pages/hrefficiency_hiddentrouble/HiddenTrouble.less +++ b/src/pages/hrefficiency_hiddentrouble/HiddenTrouble.less @@ -1,11 +1,11 @@ /* 移除下滑线 */ -.custom-tabs .ant-tabs-ink-bar { +.custom-tabs :global(.ant-tabs-ink-bar) { display: none !important; } /* 未选中状态 */ .custom-tabs { - .ant-tabs-tab { + :global(.ant-tabs-tab) { background: #f0f0f0 !important; border: none !important; border-radius: 6px !important; @@ -29,15 +29,15 @@ } /* 移除底部边框 */ -.custom-tabs .ant-tabs-nav::before { +.custom-tabs :global(.ant-tabs-nav)::before { border-bottom: none !important; } /* 悬停效果 */ -.custom-tabs .ant-tabs-tab:hover { +.custom-tabs :global(.ant-tabs-tab):hover { background: #e6e6e6 !important; } -.custom-tabs .ant-tabs-tab-active:hover { +.custom-tabs :global(.ant-tabs-tab-active):hover { background: #40a9ff !important; } diff --git a/src/pages/hrefficiency_hiddentrouble/component/MyCard.js b/src/pages/hrefficiency_hiddentrouble/component/MyCard.js index 568de6f..91b63cb 100644 --- a/src/pages/hrefficiency_hiddentrouble/component/MyCard.js +++ b/src/pages/hrefficiency_hiddentrouble/component/MyCard.js @@ -320,6 +320,11 @@ export const MyTable=(props)=>{ ) } - +export const Tips=(props)=>{ + return
+ + {props.title} +
+} export default MyCard; diff --git a/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerCount/hiddenDangerCount.js b/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerCount/hiddenDangerCount.js index 0b7cf1d..92eb8f0 100644 --- a/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerCount/hiddenDangerCount.js +++ b/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerCount/hiddenDangerCount.js @@ -1,76 +1,489 @@ -import {Col, List, Row} from "antd"; -import MyCard from "@/pages/hrefficiency_hiddentrouble/component/MyCard"; +import {Col, List, Pagination, Row, Table, Layout, Select, Typography, Tag} from "antd"; +import MyCard, {Tips} from "@/pages/hrefficiency_hiddentrouble/component/MyCard"; +import {useEffect, useRef, useState} from "react"; +import * as echarts from 'echarts'; +import {DownOutlined} from "@ant-design/icons"; +import G6 from '@antv/g6'; +import cloud from '../../../../assets/img/cloud.png' +const {Title}=Typography +const {Content}=Layout +const GetBarChart=()=>{ + const chartRef=useRef(null) + const chartInstance = useRef(null); + useEffect(()=>{ + chartInstance.current=echarts.init(chartRef.current) + const months = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']; + const data={ + '设备故障类':[100, 150, 300, 400, 350, 250, 200, 220, 200, 150, 80, 50], + '安全防护类': [200, 250, 300, 250, 200, 150, 200, 250, 300, 350, 250, 180], + '电气隐患类': [450, 400, 300, 200, 350, 550, 450, 350, 400, 500, 400, 350], + '操作规范类': [300, 200, 150, 200, 300, 400, 450, 480, 450, 400, 300, 200] + }; + const option={ + //图例 + legend:{ + data:['设备故障类', '安全防护类', '电气隐患类', '操作规范类'], + top:0 + }, + grid:{ + left:'3%', + right: '4%', + bottom: '0%', + containLabel: true + }, + xAxis: { + type: 'category', + boundaryGap: false, + data: months + }, + yAxis: { + type: 'value', + name: '数量(个)', + min: 0, + max: 600, + interval: 100 + }, + series:[ + { + type:'line', + name:'设备故障类', + data:data['设备故障类'], + symbol:'circle', + smooth:true, + symbolSize:0, + lineStyle:{ + width:2, + color:'#f56c6c', -const headerList=[ - { - title:'总隐患数', - num:'1489', - data:'12', - flag:1, - grow:1, - backgroundColor:'#E5EEFE', - color:'#1269FF', - }, - { - title:'已整改隐患', - num:'986', - data:'12', - flag:1, - grow:1, - backgroundColor:'#D9F8E8', - color:'#1DCE74', - }, - { - title:'整改率', - num:'86%', - data:'8', - flag:2, - grow:0, - backgroundColor:'#FFF3E9', - color:'orange', - }, - { - title:'按期整改率', - num:'89%', - data:'2', - flag:3, - grow:0, - backgroundColor:'#FFE6E8', - color:'#FF3E48', - } -] -const data=[ - {name:'Q3设备故障类隐患',tip:'占比最高',num:'45%'}, - {name:'Q2安全防护隐患',tip:'显著下降',num:'32%'}, - {name:'Q4电器隐患',tip:'持续改善',num:'28%'}, - {name:'全年平均整改周期',tip:'同比缩短',num:'7天'}, -] + }, + itemStyle:{ + color:'#f56c6c', + + + }, + areaStyle:{ + color:new echarts.graphic.LinearGradient(0,0,0,1,[ + { offset: 0, color: 'rgba(245, 108, 108, 0.3)' }, + { offset: 1, color: 'rgba(245, 108, 108, 0)' } + ]) + } + }, + { + name: '安全防护类', + type: 'line', + data: data['安全防护类'], + symbol: 'circle', + smooth:true, + symbolSize: 0, + lineStyle: { + width: 2, + color: '#e6a23c' // 橙色系 + }, + itemStyle: { + color: '#e6a23c' + }, + areaStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: 'rgba(230, 162, 60, 0.3)' }, + { offset: 1, color: 'rgba(230, 162, 60, 0)' } + ]) + } + }, + { + name: '电气隐患类', + type: 'line', + data: data['电气隐患类'], + symbol: 'circle', + smooth:true, + symbolSize: 0, + lineStyle: { + width: 2, + color: '#409eff' // 蓝色系 + }, + itemStyle: { + color: '#409eff' + }, + areaStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: 'rgba(64, 158, 255, 0.3)' }, + { offset: 1, color: 'rgba(64, 158, 255, 0)' } + ]) + } + }, + { + name: '操作规范类', + type: 'line', + data: data['操作规范类'], + symbol: 'circle', + smooth:true, + symbolSize: 0, + lineStyle: { + width: 2, + color: '#67c23a' // 绿色系 + }, + itemStyle: { + color: '#67c23a' + }, + areaStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: 'rgba(103, 194, 58, 0.3)' }, + { offset: 1, color: 'rgba(103, 194, 58, 0)' } + ]) + } + } + ] + } + chartInstance.current.setOption(option); + const handleResize=()=>{ + chartInstance.current.resize() + } + window.addEventListener('resize',handleResize) + + return () => { + window.removeEventListener('resize', handleResize); + + chartInstance.current.dispose(); + chartInstance.current = null; + + }; + + },[]) + return
+
+
+} +const DepartmentRateChart=()=>{ + const chartRef=useRef(null) + const chartInstance=useRef(null) + useEffect(()=>{ + chartInstance.current=echarts.init(chartRef.current) + const departmentsData = { + 'departments': ['生产部', '设备部', '安全部', '后勤部', '质检部'], + '整改率': [55, 45, 65, 42, 58], // 蓝色柱子数据 + '按期完成率': [35, 25, 45, 55, 52] // 绿色柱子数据 + }; + const option={ + legend: { + data: ['整改率', '按期完成率'], + top: 0, + left: 'center' + }, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true, + top: 40 // 给图例留出空间 + }, + xAxis: { + type: 'category', + data: departmentsData.departments, + axisLabel: { + interval: 0 // 确保所有标签都显示 + } + }, + yAxis: { + type: 'value', + name: '百分比(%)', + min: 0, + max: 70, + interval: 10, + axisLabel: { + formatter: '{value}%' + } + }, + series: [ + { + name: '整改率', + type: 'bar', + data: departmentsData['整改率'], + itemStyle: { + color: '#409eff' // 蓝色 + }, + barWidth: 30 // 柱子宽度 + }, + { + name: '按期完成率', + type: 'bar', + data: departmentsData['按期完成率'], + itemStyle: { + color: '#67c23a' // 绿色 + }, + barWidth: 30 // 柱子宽度 + } + ] + } + chartInstance.current.setOption(option); + const handleResize = () => { + chartInstance.current?.resize(); + }; + window.addEventListener('resize', handleResize); + return () => { + window.removeEventListener('resize', handleResize); + if (chartInstance.current) { + chartInstance.current.dispose(); + chartInstance.current = null; + } + }; + },[]) + return
+ +
+
+} const TrendAnalysis=()=>{ + const data=[ + {name:'Q3设备故障类隐患',tip:'占比最高',num:'45%',background: '#FFF1F2',border: '1px solid #FFD2D1',color:'#FF2526'}, + {name:'Q2安全防护隐患',tip:'显著下降',num:'32%',background: '#FFF7F0',border: '1px solid #FFD7BB',color:'#FF8800'}, + {name:'Q4电器隐患',tip:'持续改善',num:'28%',background: '#FFFAEA',border: '1px solid #F8EFD0',color: '#FFC403'}, + {name:'全年平均整改周期',tip:'同比缩短',num:'7天',background: '#EBFCEE',border:' 1px solid #C3F6CC',color:'#44BB5F'}, + ] + return(
- 1 - + + + + + {data.map((item,index)=>{ return( -
+
{item.name}
{item.tip}
-
+
{item.num}
) })} +
) } +const DepartmentRankingTable=()=>{ + const [sortType, setSortType] = useState('整改率'); // 排序类型 + const [currentPage, setCurrentPage] = useState(3); // 当前页码 + const totalItems = 48; // 总条数 + const pageSize = 4; // 每页条数 + + const mockData = [ + { + '排名': 1, + '部门': '安全部', + '隐患总数': 135, + '已整改': 156, + '整改率': '97.6%', + '按期完成率': '87%', + '状态': '优秀' + }, + { + '排名': 2, + '部门': '设备部', + '隐患总数': 135, + '已整改': 156, + '整改率': '97.6%', + '按期完成率': '87%', + '状态': '良好' + }, + { + '排名': 3, + '部门': '生产部', + '隐患总数': 135, + '已整改': 156, + '整改率': '97.6%', + '按期完成率': '87%', + '状态': '一般' + }, + { + '排名': 4, + '部门': '行政部', + '隐患总数': 135, + '已整改': 156, + '整改率': '97.6%', + '按期完成率': '87%', + '状态': '预警' + }, + // 可以继续添加更多数据... + ]; + + // 状态标签颜色映射 + const statusColorMap = { + '优秀': 'green', + '良好': 'orange', + '一般': 'gold', + '预警': 'red' + }; + // 表格列配置 + const columns = [ + { + title: '排名', + dataIndex: '排名', + key: '排名', + width: 80, + align:'center', + render: (text) => ( +
{text}
+ ) + }, + { + title: '部门', + dataIndex: '部门', + key: '部门', + width: 120, + align:'center', + }, + { + title: '隐患总数', + dataIndex: '隐患总数', + key: '隐患总数', + width: 100, + align:'center', + }, + { + title: '已整改', + dataIndex: '已整改', + key: '已整改', + width: 100, + align:'center', + }, + { + title: '整改率', + dataIndex: '整改率', + key: '整改率', + width: 100, + align:'center', + render:(text)=>{ + return {text} + } + }, + { + title: '按期完成率', + dataIndex: '按期完成率', + key: '按期完成率', + width: 120, + align:'center', + render:(text)=>{ + return {text} + } + }, + { + title: '状态', + dataIndex: '状态', + key: '状态', + width: 100, + align:'center', + render: (status) => ( + + {status} + + ) + } + ]; + // 排序变更处理 + const handleSortChange = (value) => { + setSortType(value); + // 实际项目中这里可以添加排序逻辑 + }; + + // 分页变更处理 + const handlePageChange = (page) => { + setCurrentPage(page); + // 实际项目中这里可以添加分页数据请求逻辑 + }; + return
+ +
+ + +
+ + + +
+ 共 {totalItems} 条 + `共 ${total} 条`} + /> +
+ + +} +const HiddenDangerCloud=()=>{ + return
+ +
+
-const HiddenDangerCount=()=>{ +
+
+
+} +const HiddenDangerCount = () => { + const headerList = [ + { + title: '总隐患数', + num: '1489', + data: '12', + flag: 1, + grow: 1, + backgroundColor:'#E5EEFE', + color:'#1269FF', + }, + { + title:'已整改隐患', + num:'986', + data:'12', + flag:1, + grow:1, + backgroundColor:'#D9F8E8', + color:'#1DCE74', + }, + { + title:'整改率', + num:'86%', + data:'8', + flag:2, + grow:0, + backgroundColor:'#FFF3E9', + color:'orange', + }, + { + title:'按期整改率', + num:'89%', + data:'2', + flag:3, + grow:0, + backgroundColor:'#FFE6E8', + color:'#FF3E48', + } + ] return ( <>
@@ -85,13 +498,15 @@ const HiddenDangerCount=()=>{
- 1 + + +
-
2 - 2 + + diff --git a/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerInspection/hiddenDangerInspection.js b/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerInspection/hiddenDangerInspection.js index e063985..8ffaa1a 100644 --- a/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerInspection/hiddenDangerInspection.js +++ b/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerInspection/hiddenDangerInspection.js @@ -120,26 +120,6 @@ const dataSource=[ {key:3,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'极高隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, {key:4,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, {key:5,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:6,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:7,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:8,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:9,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:10,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:11,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:12,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:13,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:14,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:15,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:16,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:17,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:18,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:19,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:20,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:21,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:21,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:21,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:21,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, - {key:21,inspectionItems:'设备运行温度',name:'D10精馏车间',level:'一般隐患',createTime:'2025-03-01',source:'日常排查',description:'隐患描述',type:'限期整改',deadline:'2025-09-03',head:'张小龙',state:'已验收',acceptanceTime:'2025-09-03'}, ] diff --git a/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerRighted/hiddenDangerRighted.js b/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerRighted/hiddenDangerRighted.js index ed468c6..8abf2dd 100644 --- a/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerRighted/hiddenDangerRighted.js +++ b/src/pages/hrefficiency_hiddentrouble/component/hiddenDangerRighted/hiddenDangerRighted.js @@ -5,14 +5,14 @@ import img1 from '../../../../assets/img/stepOne.png' import img2 from '../../../../assets/img/stepTwo.png' import img3 from '../../../../assets/img/stepThree.png' import img4 from '../../../../assets/img/stepFour.png' +import * as echarts from 'echarts'; -import echarts from "echarts/lib/echarts"; import { Export, Import, levelList, Select1, Select2 } from "@/pages/hrefficiency_hiddentrouble/component/hiddenDangerInspection/hiddenDangerInspection"; -import './hiddenDangerRighted.less' +import styles from './hiddenDangerRighted.less' const { Search } = Input; const dataList=[ { @@ -110,7 +110,7 @@ const dataSource=[ const Qiu=(props)=>{ return( -
+
{props.num}
) @@ -246,7 +246,7 @@ const Workflow=()=>{ {items.map((item,index)=>{ return (
-
+
{
-
- - - +