import { IconSearch } from '@douyinfe/semi-icons'; import { TextArea } from '@douyinfe/semi-ui'; import { useMemo, useState } from 'react'; import { MAX_MONITOR_SEARCH_TERMS, parseMonitorSearchTerms } from '../hooks/useMonitorData'; import { WorkspaceSideSheet } from '../shared/WorkspaceSideSheet'; export default function BatchVehicleSearchDialog({ initialValue, mobile, onApply, onClose }: { initialValue: string; mobile: boolean; onApply: (value: string) => void; onClose: () => void; }) { const [draft, setDraft] = useState(initialValue); const terms = useMemo(() => parseMonitorSearchTerms(draft), [draft]); return } badge={`${terms.length} 辆`} badgeColor={terms.length ? 'blue' : 'grey'} summaryItems={[ { label: '已识别', value: terms.length.toLocaleString('zh-CN'), detail: '可直接应用到监控筛选', tone: terms.length ? 'primary' : 'neutral' }, { label: '重复处理', value: '自动去重', detail: '相同车牌只保留一次', tone: 'success' }, { label: '单次上限', value: `${MAX_MONITOR_SEARCH_TERMS} 辆`, detail: '超出部分不会进入查询' } ]} footerNote="支持换行、空格、逗号或分号分隔。" secondaryActions={[{ label: '取消', onClick: onClose }]} primaryAction={{ label: `应用搜索(${terms.length})`, ariaLabel: `应用搜索(${terms.length})`, disabled: !terms.length, icon: , onClick: () => onApply(terms.join(',')) }} onCancel={onClose} >