import { useMemo, useState } from 'react'; import styles from './index.less'; import { Input, Select } from 'antd'; import { DeleteOutlined } from '@ant-design/icons'; const TableRender = ({ value, onChange, onlyShow = false }) => { const defaultItem = { type: '', scale: '' }; const options = ['UF', 'RO', 'NF', 'MF', 'MBR']; const list = useMemo(() => { return value ? JSON.parse(value) : [defaultItem]; }, [value]); const handleChange = (idx, item) => { const newList = JSON.parse(JSON.stringify(list)); newList[idx] = item; const result = JSON.stringify(newList); onChange(result); }; const handleAddClick = () => { const result = JSON.stringify([...list, defaultItem]); onChange(result); }; const handleDelClick = idx => { const newList = JSON.parse(JSON.stringify(list)); newList.splice(idx, 1); const result = JSON.stringify(newList); onChange(result); }; const renderItems = (item, idx) => { const { type, scale } = item; return (
handleChange(idx, { ...item, scale: e.target.value })} /> handleDelClick(idx)} />
); }; const renderOnlyShowItems = (item, idx) => { const { type, scale } = item; return (
{type}
{scale}
); }; return (
{onlyShow ? (
{list.map((item, idx) => renderOnlyShowItems(item, idx))}
) : ( <>
工艺技术
项目规模
{list.map((item, idx) => renderItems(item, idx))}
+ 添加
)}
); }; export default TableRender;