import React, { useState } from 'react'; import { Button, Checkbox, Drawer } from 'antd'; import { HolderOutlined } from '@ant-design/icons'; import { createDefaultFieldConfig, FIELD_LABELS } from './fieldConfig'; /** * 字段配置抽屉: * - 勾选控制列显隐 * - 拖动把手(整行可拖)调整列顺序,表格实时按新顺序渲染 * - 配置即改即存(localStorage),刷新后保持 */ const FieldConfigDrawer = ({ open, onClose, config, onChange, fieldLabels = FIELD_LABELS, createDefaultConfig = createDefaultFieldConfig, tip = '勾选控制列显示,拖动调整列顺序;配置自动保存在本机。', }) => { const [dragIndex, setDragIndex] = useState(null); const moveField = (from, to) => { if (from === to) return; const order = [...config.order]; const [item] = order.splice(from, 1); order.splice(to, 0, item); onChange({ ...config, order }); }; const toggleField = (key, checked) => { const hidden = checked ? config.hidden.filter((item) => item !== key) : [...config.hidden, key]; onChange({ ...config, hidden }); }; return ( )} >

{tip}

); }; export default FieldConfigDrawer;