Compare commits
	
		
			No commits in common. 'b26199632856fc3887ea0bddb6c82db25debe08b' and 'cd4a3e2854f48925e52b9e54aa15bf6a3cf465e4' have entirely different histories. 
		
	
	
		
			b261996328
			...
			cd4a3e2854
		
	
		
	| @ -1,194 +0,0 @@ | |||||||
| import React, { useState, useEffect } from 'react'; |  | ||||||
| import { Input, Button, Select, message, Modal, Form } from 'antd'; |  | ||||||
| import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; |  | ||||||
| import StandardTable from '@/components/StandardTable'; |  | ||||||
| import styles from './HazardousChemicals.less'; |  | ||||||
| 
 |  | ||||||
| const { Option } = Select; |  | ||||||
| 
 |  | ||||||
| const HazardousChemicals = () => { |  | ||||||
|     const [loading, setLoading] = useState(false); |  | ||||||
|     const [selectedRowKeys, setSelectedRowKeys] = useState([]); |  | ||||||
|     const [searchValue, setSearchValue] = useState(''); |  | ||||||
|     const [pagination, setPagination] = useState({ |  | ||||||
|         current: 1, |  | ||||||
|         pageSize: 10, |  | ||||||
|         total: 48, |  | ||||||
|         showSizeChanger: true, |  | ||||||
|         showQuickJumper: true, |  | ||||||
|         showTotal: (total, range) => `共${total}条`, |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     // 模拟数据
 |  | ||||||
|     const [dataSource, setDataSource] = useState([ |  | ||||||
|         { |  | ||||||
|             key: '1', |  | ||||||
|             name: '浓硫酸', |  | ||||||
|             type: '化学品', |  | ||||||
|             info: '浓硫酸是一种在工业和实验室中不可或缺的基础化学品,但它同时具有极强腐蚀性...', |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|             key: '2', |  | ||||||
|             name: '二氧化碳', |  | ||||||
|             type: '有毒品', |  | ||||||
|             info: '二氧化碳是碳酸盐分解(如汽油、木材、煤炭)在不完全燃烧时产生的气体...', |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|             key: '3', |  | ||||||
|             name: '氯氧化钠', |  | ||||||
|             type: '有毒品', |  | ||||||
|             info: '氯氧化钠是一种强氧化剂,俗称“漂粉精”、“火碱”或“烧碱”,它在工业上具有多种用途...', |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|             key: '4', |  | ||||||
|             name: '硫酸', |  | ||||||
|             type: '腐蚀品', |  | ||||||
|             info: '硫酸是一种在工业和实验室中不可或缺的基础化学品,但它同时具有极强腐蚀性...', |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|             key: '5', |  | ||||||
|             name: '二氧甲烷', |  | ||||||
|             type: '有毒品', |  | ||||||
|             info: '二氧甲烷一种不可燃、易爆易溶的气体或液体,因此对水的溶解能力和活性...', |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|             key: '6', |  | ||||||
|             name: '次氯酸钠', |  | ||||||
|             type: '有毒品', |  | ||||||
|             info: '次氯酸钠是一种强氧化剂,具有高效的消毒、漂白和杀菌能力和活性...', |  | ||||||
|         }, |  | ||||||
|     ]); |  | ||||||
| 
 |  | ||||||
|     // 表格列配置
 |  | ||||||
|     const columns = [ |  | ||||||
|         { |  | ||||||
|             title: '危化品名称', |  | ||||||
|             dataIndex: 'name', |  | ||||||
|             key: 'name', |  | ||||||
|             width: 200, |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|             title: '危化品类型', |  | ||||||
|             dataIndex: 'type', |  | ||||||
|             key: 'type', |  | ||||||
|             width: 120, |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|             title: '危化品信息', |  | ||||||
|             dataIndex: 'info', |  | ||||||
|             key: 'info', |  | ||||||
|             width: 500, |  | ||||||
|         }, |  | ||||||
|     ]; |  | ||||||
| 
 |  | ||||||
|     // 搜索处理
 |  | ||||||
|     const handleSearch = () => { |  | ||||||
|         setLoading(true); |  | ||||||
|         // 模拟搜索请求
 |  | ||||||
|         setTimeout(() => { |  | ||||||
|             setLoading(false); |  | ||||||
|             message.success('查询完成'); |  | ||||||
|         }, 1000); |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     // 新增处理
 |  | ||||||
|     const handleAdd = () => { |  | ||||||
|         message.info('新增功能待实现'); |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     // 批量删除处理
 |  | ||||||
|     const handleBatchDelete = () => { |  | ||||||
|         if (selectedRowKeys.length === 0) { |  | ||||||
|             message.warning('请选择要删除的数据'); |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         Modal.confirm({ |  | ||||||
|             title: '确认删除', |  | ||||||
|             content: `确定要删除选中的 ${selectedRowKeys.length} 条数据吗?`, |  | ||||||
|             onOk() { |  | ||||||
|                 setDataSource(dataSource.filter(item => !selectedRowKeys.includes(item.key))); |  | ||||||
|                 setSelectedRowKeys([]); |  | ||||||
|                 message.success('删除成功'); |  | ||||||
|             }, |  | ||||||
|         }); |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     // 编辑处理
 |  | ||||||
|     const handleEdit = (record) => { |  | ||||||
|         message.info(`编辑 ${record.name} 的信息`); |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     // 删除处理
 |  | ||||||
|     const handleDelete = (record) => { |  | ||||||
|         Modal.confirm({ |  | ||||||
|             title: '确认删除', |  | ||||||
|             content: `确定要删除 ${record.name} 吗?`, |  | ||||||
|             onOk() { |  | ||||||
|                 setDataSource(dataSource.filter(item => item.key !== record.key)); |  | ||||||
|                 message.success('删除成功'); |  | ||||||
|             }, |  | ||||||
|         }); |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     // 分页处理
 |  | ||||||
|     const handleTableChange = (pagination) => { |  | ||||||
|         setPagination(pagination); |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     return ( |  | ||||||
|         <div className={styles.container}> |  | ||||||
|             {/* 页面标题 */} |  | ||||||
|             <div className={styles.header}> |  | ||||||
|                 <div className={styles.titleBar}></div> |  | ||||||
|                 <h2 className={styles.title}>危化品</h2> |  | ||||||
|             </div> |  | ||||||
| 
 |  | ||||||
|             {/* 搜索和操作区域 */} |  | ||||||
|             <Form |  | ||||||
|                 layout="inline" |  | ||||||
|                 className={styles.searchBar} |  | ||||||
|                 onFinish={handleSearch} |  | ||||||
|             > |  | ||||||
|                 <Form.Item label="" name="searchValue"> |  | ||||||
|                     <Input |  | ||||||
|                         placeholder='请输入危化品名称' |  | ||||||
|                         style={{ width: 200 }} |  | ||||||
|                         value={searchValue} |  | ||||||
|                         onChange={(e) => setSearchValue(e.target.value)} |  | ||||||
|                         allowClear |  | ||||||
|                         className={styles.searchInput} |  | ||||||
|                     /> |  | ||||||
|                 </Form.Item> |  | ||||||
|                 <Form.Item> |  | ||||||
|                     <Button  |  | ||||||
|                         type="primary"  |  | ||||||
|                         icon={<SearchOutlined />} |  | ||||||
|                         htmlType="submit" |  | ||||||
|                         loading={loading} |  | ||||||
|                         className={styles.searchButton} |  | ||||||
|                     > |  | ||||||
|                         查询 |  | ||||||
|                     </Button> |  | ||||||
|                 </Form.Item> |  | ||||||
|             </Form> |  | ||||||
| 
 |  | ||||||
|             {/* 数据表格 */} |  | ||||||
|             <div className={styles.tableContainer}> |  | ||||||
|                 <StandardTable |  | ||||||
|                     columns={columns} |  | ||||||
|                     data={{ |  | ||||||
|                         list: dataSource, |  | ||||||
|                         pagination: pagination |  | ||||||
|                     }} |  | ||||||
|                     rowKey="key" |  | ||||||
|                     selectedRows={selectedRowKeys} |  | ||||||
|                     onSelectRow={setSelectedRowKeys} |  | ||||||
|                     onChange={handleTableChange} |  | ||||||
|                     loading={loading} |  | ||||||
|                 /> |  | ||||||
|             </div> |  | ||||||
|         </div> |  | ||||||
|     ); |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| export default HazardousChemicals; |  | ||||||
| @ -1,111 +0,0 @@ | |||||||
| .container { |  | ||||||
|     padding: 20px; |  | ||||||
|     background: #fff; |  | ||||||
|     height: 100vh; |  | ||||||
|     width: 100%; |  | ||||||
|     box-sizing: border-box; |  | ||||||
|     margin: 0; |  | ||||||
|     max-width: none; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .header { |  | ||||||
|     display: flex; |  | ||||||
|     align-items: center; |  | ||||||
|     margin-bottom: 15px; |  | ||||||
| 
 |  | ||||||
|     .titleBar { |  | ||||||
|         width: 3px; |  | ||||||
|         height: 16px; |  | ||||||
|         background: #2E4CD4; |  | ||||||
|         margin-right: 12px; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     .title { |  | ||||||
|         margin: 0; |  | ||||||
|         font-size: 14px; |  | ||||||
|         font-weight: 500; |  | ||||||
|         color: #333; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .searchBar { |  | ||||||
|     margin-bottom: 10px; |  | ||||||
|     padding: 5px; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     .searchInput { |  | ||||||
|         border-radius: 4px !important; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     .searchButton { |  | ||||||
|         background-color: #2E4CD4 !important; |  | ||||||
|         border-color: #2E4CD4 !important; |  | ||||||
|         border-radius: 4px !important; |  | ||||||
| 
 |  | ||||||
|         &:hover { |  | ||||||
|             background-color: #1e3bb8 !important; |  | ||||||
|             border-color: #1e3bb8 !important; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .tableContainer { |  | ||||||
|     background: #fff; |  | ||||||
|     border-radius: 0px; |  | ||||||
|     overflow: hidden; |  | ||||||
| 
 |  | ||||||
|     .actionButtons { |  | ||||||
|         display: flex; |  | ||||||
|         gap: 8px; |  | ||||||
|         font-size: 10px; |  | ||||||
|         justify-content: center; |  | ||||||
| 
 |  | ||||||
|         .ant-btn-link { |  | ||||||
|             padding: 0; |  | ||||||
|             height: auto; |  | ||||||
|             font-size: 10px; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // 表格样式优化 |  | ||||||
| .tableContainer { |  | ||||||
|     :global { |  | ||||||
|         .ant-table-thead>tr>th { |  | ||||||
|             background: #F5F5FA; |  | ||||||
|             font-weight: 500; |  | ||||||
|             color: #333333; |  | ||||||
|             font-size: 14px; |  | ||||||
|             text-align: center; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         .ant-table-tbody>tr>td { |  | ||||||
|             color: #666666; |  | ||||||
|             font-size: 13px; |  | ||||||
|             text-align: center; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         .ant-table-tbody>tr:hover>td { |  | ||||||
|             background: #f5f5f5; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         .ant-pagination { |  | ||||||
|             margin-top: 10px; |  | ||||||
|             text-align: right; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         // 覆盖操作列按钮样式 |  | ||||||
|         .ant-btn.ant-btn-sm { |  | ||||||
|             font-size: 13px !important; |  | ||||||
|             height: 20px !important; |  | ||||||
|             padding: 0px 4px !important; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         .ant-btn-link.ant-btn-sm { |  | ||||||
|             font-size: 13px !important; |  | ||||||
|             height: auto !important; |  | ||||||
|             padding: 0 !important; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @ -0,0 +1,15 @@ | |||||||
|  | import React from 'react'; | ||||||
|  | import styles from './whp.less'; | ||||||
|  | 
 | ||||||
|  | const Whp = () => { | ||||||
|  |     return ( | ||||||
|  |         <div className={styles.container}> | ||||||
|  |             <div className={styles.content}> | ||||||
|  |                 <h3>危化品</h3> | ||||||
|  |                 <p>内容待开发</p> | ||||||
|  |             </div> | ||||||
|  |         </div> | ||||||
|  |     ); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | export default Whp; | ||||||
| @ -0,0 +1,21 @@ | |||||||
|  | .container { | ||||||
|  |     padding: 20px; | ||||||
|  |      | ||||||
|  |     .content { | ||||||
|  |         background: #fff; | ||||||
|  |         border-radius: 8px; | ||||||
|  |         padding: 20px; | ||||||
|  |         box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); | ||||||
|  |          | ||||||
|  |         h3 { | ||||||
|  |             margin-bottom: 16px; | ||||||
|  |             color: #333; | ||||||
|  |             font-size: 18px; | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         p { | ||||||
|  |             color: #666; | ||||||
|  |             font-size: 14px; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
					Loading…
					
					
				
		Reference in New Issue