import { useState } from 'react' import { Button, Divider, Input, Popover, Space, Tag, Typography } from 'antd' import { CheckOutlined, CloseCircleOutlined, DeleteOutlined, EditOutlined, ExclamationCircleOutlined, StopOutlined, } from '@ant-design/icons' import type { RockTokenItem } from '../../api' const { Text } = Typography export interface TokenRemarkCellProps { record: RockTokenItem onUpdateRemark: (id: number, remark: string, status?: string) => void onMarkAbnormal: (id: number, remark?: string) => void } export function TokenRemarkCell({ record, onUpdateRemark, onMarkAbnormal }: TokenRemarkCellProps) { const [open, setOpen] = useState(false) const [inputValue, setInputValue] = useState(record.remark || '') const handleQuickMarkAbnormal = (reason: string) => { onMarkAbnormal(record.id, reason) setOpen(false) } const handleQuickUpdate = (remarkText: string) => { onUpdateRemark(record.id, remarkText) setOpen(false) } const handleSaveCustom = () => { onUpdateRemark(record.id, inputValue.trim()) setOpen(false) } const handleClear = () => { onUpdateRemark(record.id, '') setInputValue('') setOpen(false) } const content = (
快速设置备注 #{record.upstream_token_id || record.id}
快捷选择(点击直接生效):
自定义备注内容:
setInputValue(e.target.value)} onPressEnter={handleSaveCustom} />
{record.remark ? (
) : null}
) const isAbnormalOrReported = record.status === 'abnormal' || (record.remark && record.remark.includes('上报')) if (!record.remark) { return ( { setOpen(v) if (v) setInputValue('') }} placement="bottomLeft" > 添加备注 ) } return ( { setOpen(v) if (v) setInputValue(record.remark || '') }} placement="bottomLeft" >
: } > {record.remark}
) }