From 09c6911b372db1abd1ea79b825ff8bd032c5d5fd Mon Sep 17 00:00:00 2001 From: zjlnb666 <14659021+zhangjianlong666@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 09:28:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=90=E7=BB=B4=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/routes.js | 12 + src/assets/img/img.png | Bin 0 -> 41517 bytes .../InspectionRecords.js | 9 + .../InspectionTasks.js | 8 + .../InspectionTemplate.js | 275 +++++++++++++++++- .../InspectionTemplate.less | 73 +++++ .../nav_system_content/SystemContentList.js | 12 + src/pages/serviceticket_analysis/Analysis.css | 96 ++++++ src/pages/topnavbar/TopNavBar.js | 10 + 9 files changed, 493 insertions(+), 2 deletions(-) create mode 100644 src/assets/img/img.png create mode 100644 src/pages/inspection_inspectionRecords/InspectionRecords.js create mode 100644 src/pages/inspection_inspectionTasks/InspectionTasks.js create mode 100644 src/pages/inspection_inspectionTemplate/InspectionTemplate.less create mode 100644 src/pages/serviceticket_analysis/Analysis.css diff --git a/config/routes.js b/config/routes.js index ed6422a..486a1d8 100644 --- a/config/routes.js +++ b/config/routes.js @@ -139,6 +139,18 @@ export default [ name: 'inspectionTemplate', component: './inspection_inspectionTemplate/InspectionTemplate', }, + // 巡检任务 + { + path: '/topnavbar00/business/inspection/inspectionTasks', + name: 'inspectionTasks', + component: './inspection_inspectionTasks/InspectionTasks', + }, + // 巡检记录 + { + path: '/topnavbar00/business/inspection/inspectionRecords', + name: 'inspectionRecords', + component: './inspection_inspectionRecords/InspectionRecords', + }, ] } ], diff --git a/src/assets/img/img.png b/src/assets/img/img.png new file mode 100644 index 0000000000000000000000000000000000000000..c41b5e1bcde5a23f88f77e90ed282cb50a632bc2 GIT binary patch literal 41517 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 XczBG9m;YK400000NkvXXu0mjfVxbT~ literal 0 HcmV?d00001 diff --git a/src/pages/inspection_inspectionRecords/InspectionRecords.js b/src/pages/inspection_inspectionRecords/InspectionRecords.js new file mode 100644 index 0000000..9e765d3 --- /dev/null +++ b/src/pages/inspection_inspectionRecords/InspectionRecords.js @@ -0,0 +1,9 @@ +const InspectionRecords = () => { + return ( +

+

InspectionRecords

+ +
+ ); +}; +export default InspectionRecords; diff --git a/src/pages/inspection_inspectionTasks/InspectionTasks.js b/src/pages/inspection_inspectionTasks/InspectionTasks.js new file mode 100644 index 0000000..aa26c78 --- /dev/null +++ b/src/pages/inspection_inspectionTasks/InspectionTasks.js @@ -0,0 +1,8 @@ +const InspectionTasks = () => { + return ( +
+

InspectionTasks

+
+ ); +}; +export default InspectionTasks; diff --git a/src/pages/inspection_inspectionTemplate/InspectionTemplate.js b/src/pages/inspection_inspectionTemplate/InspectionTemplate.js index 1e807bc..d005073 100644 --- a/src/pages/inspection_inspectionTemplate/InspectionTemplate.js +++ b/src/pages/inspection_inspectionTemplate/InspectionTemplate.js @@ -1,7 +1,278 @@ +import {Button, Col, Row, Select, Space} from "antd"; +import Title from '../homepage/compontent/title' +import styles from './InspectionTemplate.less' +import {PlusOutlined, SearchOutlined, SyncOutlined} from "@ant-design/icons"; +import TableWithPagination from "@/components/assetmangement/table"; const InspectionTemplate = () => { + const columns = [ + { + title: '模板 ID', + dataIndex: 'id', + key: 'id', + }, + { + title: '模板名称', + dataIndex: 'name', + key: 'name', + }, + { + title: '类型', + dataIndex: 'type', + key: 'type', + filters: [ + { text: '设备巡检', value: '设备巡检' }, + { text: '环境巡检', value: '环境巡检' }, + { text: '综合巡检', value: '综合巡检' }, + ], + onFilter: (value, record) => record.type === value, + }, + { + title: '巡检周期', + dataIndex: 'cycle', + key: 'cycle', + sorter: (a, b) => { + const order = { '实时触发': 0, '天': 1, '周': 2, '月': 3 }; + return order[a.cycle] - order[b.cycle]; + }, + }, + { + title: '触发逻辑', + dataIndex: 'triggerLogic', + key: 'triggerLogic', + ellipsis: true, + }, + { + title: '地点范围', + dataIndex: 'location', + key: 'location', + }, + { + title: 'AI推荐度', + dataIndex: 'aiRecommendation', + key: 'aiRecommendation', + render: (text) => { + const colorMap = { + '高': 'red', + '中': 'orange', + '次': 'green' + }; + return ( + + {text} + + ); + }, + // sorter: (a, b) => { + // const order = { '高': 0, '中': 1, '次': 2 }; + // return order[a.aiRecommendation] - order[b.aiRecommendation]; + // }, + }, + { + title: '操作', + key: 'action', + render: (_, record) => ( + + handleEdit(record)} style={{color:'#2C9E9D'}}>编辑 + handleDelete(record)} style={{ color: '#ff4d4f' }}>删除 + handleCopy(record)} style={{color: '#006665'}}>复制 + + ), + align: 'center', + }, + ]; + const dataSource = [ + { + key: '1', + id: 'TPL-001', + name: '核心设备日检', + type: '设备巡检', + cycle: '天', + triggerLogic: '设备在线时触发参数全检', + location: '机房 A', + aiRecommendation: '高', + }, + { + key: '2', + id: 'TPL-002', + name: '车间环境周检', + type: '环境巡检', + cycle: '周', + triggerLogic: '温湿度超阈值时触发专项巡检', + location: '车间 B', + aiRecommendation: '次', + }, + { + key: '3', + id: 'TPL-003', + name: '传感器月检', + type: '设备巡检', + cycle: '月', + triggerLogic: '设备离线时触发故障排查流程', + location: '园区传感器组', + aiRecommendation: '高', + }, + { + key: '4', + id: 'TPL-004', + name: '网关异常巡检', + type: '设备巡检', + cycle: '实时触发', + triggerLogic: '网关离线时自动触发巡检', + location: '全网关设备', + aiRecommendation: '高', + }, + { + key: '5', + id: 'TPL-005', + name: '仓库温湿度检', + type: '环境巡检', + cycle: '天', + triggerLogic: '温湿度波动>5% 时触发巡检', + location: '仓库 C', + aiRecommendation: '中', + }, + { + key: '6', + id: 'TPL-006', + name: '综合设备巡检', + type: '综合巡检', + cycle: '周', + triggerLogic: '设备状态异常时触发分级巡检', + location: '办公楼设备组', + aiRecommendation: '中', + }, + { + key: '7', + id: 'TPL-007', + name: '边缘节点巡检', + type: '设备巡检', + cycle: '天', + triggerLogic: '负载>80% 时触发性能巡检', + location: '边缘计算区', + aiRecommendation: '高', + }, + ]; + +// 操作函数示例 + const handleEdit = (record) => { + console.log('编辑:', record); + // 打开编辑弹窗 + }; + + const handleDelete = (record) => { + console.log('删除:', record); + // 确认删除逻辑 + }; + + const handleCopy = (record) => { + console.log('复制:', record); + // 复制逻辑 + }; return ( -
- 巡检模板 +
+ + +
+
+ + + + </Col> + <Col> + <Button icon={<SearchOutlined />} className={styles['search-button']} style={{marginRight:'30px'}}>查询</Button> + <Button icon={<SyncOutlined />} className={styles['reset-button']}>重置</Button> + </Col> + </Row> + <Row gutter={20} style={{marginTop:'20px'}}> + <Col> + <label htmlFor="">模板类型:</label> + <Select options={[{ + label:'全部', + value:'1' + },{ + label:'巡检模板', + value:'2' + }]} + style={{width:132}} + ></Select> + </Col> + <Col> + <label htmlFor="">AI推荐度:</label> + <Select + options={ + [ + {label:'全部', value:'1'}, + {label:'高', value:'2'}, + {label:'中', value:'3'}, + {label:'低', value:'4'} + ] + } + style={{width:132}} + ></Select> + </Col> + </Row> + </div> + <div style={{marginTop:'20px'}}> + <Title title='模板列表'/> + <Row style={{margin:'20px 0'}} justify={"space-between"}> + <Col> + <Button className={styles['search-button']} style={{marginRight:'30px'}}>模版导入</Button> + <Button className={styles['reset-button']}>模板导出</Button> + </Col> + <Col> + <Button className={styles['reset-button']} style={{marginRight:'30px'}}>AI推荐模板</Button> + <Button icon={<PlusOutlined/>} className={styles['search-button']}>新增模板</Button> + </Col> + </Row> + <TableWithPagination columns={columns} dataSource={dataSource} rowSelection={true}> + </TableWithPagination> + </div> + </div> + </Col> + <Col span={9}> + <div style={{backgroundColor:'#fff',borderRadius:'6px',padding:'20px'}}> + <Title title='逻辑配置面板'/> + <img src={require('@/assets/img/img.png')} alt="" style={{width:'100%',height:'100%'}}/> + </div> + <div style={{backgroundColor: '#fff', borderRadius: '6px', padding: 20, marginTop: 20 ,marginBottom:'50px'}}> + <Title title='AI 推荐辅助面板'/> + <div className={styles['ai-recommend-panel']}> + <div style={{display: 'flex', alignItems: 'center', marginBottom: 10, fontSize: 16}}> + <span style={{ + width: 5, + height: 5, + backgroundColor: '#006665', + borderRadius: '50%', + marginRight: 10 + }}></span><span>推荐项 1:</span> + </div> + <p>在‘核心设备日检’中增加‘硬盘使用率≥90% 时自动触发巡检’</p> + <p style={{color: '#006665'}}>理由 “历史数据中硬盘满导致的故障占比 15%”</p> + <div style={{textAlign:'right'}}> + <Button className={styles['search-button']} style={{marginRight:'30px'}}>采纳</Button> + <Button className={styles['reset-button']}>忽略</Button> + </div> + </div> + <div className={styles['ai-recommend-panel']}> + <div style={{display: 'flex', alignItems: 'center', marginBottom: 10, fontSize: 16}}> + <span style={{ + width: 5, + height: 5, + backgroundColor: '#006665', + borderRadius: '50%', + marginRight: 10 + }}></span><span>推荐项 2:</span> + </div> + <p>将‘车间环境周检’的触发条件调整为‘温湿度波动>3% 时触发</p> + <p style={{color: '#006665'}}>理由 “该条件下环境异常的识别率提升 20%”</p> + <div style={{textAlign: 'right'}}> + <Button className={styles['search-button']} style={{marginRight: '30px'}}>采纳</Button> + <Button className={styles['reset-button']}>忽略</Button> + </div> + </div> + </div> + </Col> + </Row> </div> ) } diff --git a/src/pages/inspection_inspectionTemplate/InspectionTemplate.less b/src/pages/inspection_inspectionTemplate/InspectionTemplate.less new file mode 100644 index 0000000..507cfd6 --- /dev/null +++ b/src/pages/inspection_inspectionTemplate/InspectionTemplate.less @@ -0,0 +1,73 @@ +.search-button { + background-image: url('../../assets/img/assetmangement1.png'); + background-repeat: no-repeat; + background-size: cover; + background-position: center; + color: #fff; + border-radius: 4px; + height: 36px; + border-color: #d9d9d9; + background-color: #045F5E80; +} + +.reset-button { + background-image: url('../../assets/img/assetmangement2.png'); + background-repeat: no-repeat; + background-size: cover; + background-position: center; + color: rgba(0, 102, 101, 1); + border-radius: 4px; + height: 36px; + border-color: #d9d9d9; + background-color: #B7E5D533; +} + +.del-button { + background-image: url('../../assets/img/assetmangement3.png'); + background-repeat: no-repeat; + background-size: cover; + background-position: center; + color: #000; + border-radius: 4px; + height: 36px; + width: 88px; + border-color: #d9d9d9; + background-color: #E5B7B733; +} +.ai-recommend-panel{ + /* 毛玻璃效果 - 核心! */ + backdrop-filter: blur(15px); + -webkit-backdrop-filter: blur(15px); + + /* 多层阴影 */ + box-shadow: + -2px 4px 10px 0px rgba(145, 145, 145, 0.05), + -7px 17px 18px 0px rgba(145, 145, 145, 0.04), + -15px 37px 24px 0px rgba(145, 145, 145, 0.03); + /* 渐变边框 */ + border: 1px solid; + border-image: conic-gradient( + from 102.21deg at 52.75% 38.75%, + rgba(249, 249, 249, 0.5) -32.95deg, + rgba(64, 64, 64, 0.5) 10.52deg, + rgba(64, 64, 64, 0.35) 32.12deg, + #FFFFFF 60.28deg, + rgba(255, 255, 255, 0.5) 107.79deg, + rgba(64, 64, 64, 0.35) 187.59deg, + #F9F9F9 207.58deg, + #FFFFFF 287.31deg, + rgba(249, 249, 249, 0.5) 327.05deg, + rgba(64, 64, 64, 0.5) 370.52deg + ) 1; + /* 内部背景(创建UI的渐变感) */ + background: linear-gradient( + 135deg, + rgba(255, 255, 255, 0.3), + rgba(255, 255, 255, 0.1) + ); + padding:20px; + margin-top: 20px; + p{ + font-size: 14px; + } +} diff --git a/src/pages/nav_system_content/SystemContentList.js b/src/pages/nav_system_content/SystemContentList.js index 5877823..6fa5bf9 100644 --- a/src/pages/nav_system_content/SystemContentList.js +++ b/src/pages/nav_system_content/SystemContentList.js @@ -250,6 +250,18 @@ const SystemContentList = (props) => { key: "/topnavbar00/business/inspection/inspectionTemplate", "label": "巡检模板" }, + // 巡检任务 + { + path: '/topnavbar00/business/inspection/inspectionTasks', + key: "/topnavbar00/business/inspection/inspectionTasks", + "label": "巡检任务" + }, + // 巡检记录 + { + path: '/topnavbar00/business/inspection/inspectionRecords', + key: "/topnavbar00/business/inspection/inspectionRecords", + "label": "巡检记录" + }, ] } ] diff --git a/src/pages/serviceticket_analysis/Analysis.css b/src/pages/serviceticket_analysis/Analysis.css new file mode 100644 index 0000000..f5008f0 --- /dev/null +++ b/src/pages/serviceticket_analysis/Analysis.css @@ -0,0 +1,96 @@ +.container { + padding: 20px; + background-color: #f0f2f5; + min-height: calc(100vh - 64px); +} +.header { + margin-bottom: 20px; +} +.querySection { + background: #fff; + padding: 16px 20px; + border-radius: 6px; + margin-bottom: 20px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} +.queryForm { + display: flex; + align-items: center; +} +.queryForm .ant-form-item { + margin-bottom: 0; + margin-right: 16px; +} +.statsSection { + margin-bottom: 20px; +} +.statCard { + background: #fff; + padding: 20px; + border-radius: 6px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; +} +.statCard:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); +} +.chartsSection { + margin-bottom: 20px; +} +.chartContainer { + background: #fff; + padding: 20px; + border-radius: 6px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + height: 350px; + display: flex; + flex-direction: column; +} +.chartTitle { + font-size: 16px; + font-weight: 500; + color: #333; + margin-bottom: 16px; + text-align: center; +} +.chart { + flex: 1; + width: 100%; +} +.tableSection { + background: #fff; + padding: 20px; + border-radius: 6px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} +.tableTitle { + font-size: 16px; + font-weight: 500; + color: #333; + margin-bottom: 16px; +} +/* 响应式调整 */ +@media (max-width: 768px) { + .container { + padding: 12px; + } + .queryForm { + flex-direction: column; + align-items: flex-start; + } + .queryForm .ant-form-item { + margin-right: 0; + margin-bottom: 16px; + width: 100%; + } + .queryForm .ant-form-item:last-child { + margin-bottom: 0; + } + .chartContainer { + height: 300px; + padding: 16px; + } + .statCard { + padding: 16px; + } +} diff --git a/src/pages/topnavbar/TopNavBar.js b/src/pages/topnavbar/TopNavBar.js index fdaa9b4..ce118a3 100644 --- a/src/pages/topnavbar/TopNavBar.js +++ b/src/pages/topnavbar/TopNavBar.js @@ -79,6 +79,16 @@ const menuItem = [ label: '智能巡检', key: '/topnavbar00/business/inspection/inspectionTemplate', }, + // 巡检任务 + { + label: '巡检任务', + key: '/topnavbar00/business/inspection/inspectionTasks', + }, + // 巡检记录 + { + label: '巡检记录', + key: '/topnavbar00/business/inspection/inspectionRecords', + }, ] const TopNavBar = (props) => {