import { DeleteOutlined, SearchOutlined } from "@ant-design/icons"; import { Button, Input, Form, Popconfirm } from "antd"; import React, { useState } from "react"; import CustomColorPicker from "@/components/CustomColorPicker"; import { useModel } from "umi"; import noData from "@/assets/no-data.png"; export default function RemarkPanel() { const { project, addRemark, deleteRemark, updateRemark } = useModel("erModel"); const { remarks = [] } = project; const [search, setSearch] = React.useState(""); const [activeKey, setActiveKey] = React.useState(""); const list = React.useMemo(() => { return remarks.filter((item) => item.name.includes(search)); }, [search, remarks]); const handleChange = (index: number, key: string, value: any) => { const data = remarks[index]; updateRemark({ ...data, [key]: value, }); }; return (
} value={search} onChange={(e) => setSearch(e.target.value)} />
{list.map((item, index) => { return (
setActiveKey(activeKey === item.id ? "" : item.id)} >
{item.name}
handleChange(index, "name", e.target.value) } />
handleChange(index, "text", e.target.value) } />
{ handleChange(index, "style", { ...item.style, background: color, }); }} >
deleteRemark(item.id)} >
); })} {list.length === 0 && (
暂无数据
添加额外注释内容!
)}
); }