From 8eda537f67d95d0d521cb8a123898733f2d100d3 Mon Sep 17 00:00:00 2001 From: xianyi Date: Wed, 7 Jan 2026 16:49:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=82=E8=B4=A6=E5=85=AC=E5=8F=B8=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=A8=A1=E7=B3=8A=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/exam/ExamAddonPanel.tsx | 41 +++++++++++++++++++------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/src/components/exam/ExamAddonPanel.tsx b/src/components/exam/ExamAddonPanel.tsx index 62f97b0..774c70e 100644 --- a/src/components/exam/ExamAddonPanel.tsx +++ b/src/components/exam/ExamAddonPanel.tsx @@ -51,6 +51,7 @@ export const ExamAddonPanel = ({ client }: ExamAddonPanelProps) => { // 挂账公司 const [accountCompany, setAccountCompany] = useState('圆和'); const [isAccountCompanyDropdownOpen, setIsAccountCompanyDropdownOpen] = useState(false); + const [accountCompanySearch, setAccountCompanySearch] = useState(''); const accountCompanyDropdownRef = useRef(null); // 挂账公司列表 const [accountCompanyList, setAccountCompanyList] = useState< @@ -338,6 +339,13 @@ export const ExamAddonPanel = ({ client }: ExamAddonPanelProps) => { })); }, [accountCompanyList]); + // 挂账公司模糊过滤 + const filteredAccountCompanyOptions = useMemo(() => { + const kw = accountCompanySearch.trim().toLowerCase(); + if (!kw) return accountCompanyOptions; + return accountCompanyOptions.filter((opt) => opt.label.toLowerCase().includes(kw)); + }, [accountCompanyOptions, accountCompanySearch]); + // 清理轮询定时器 useEffect(() => { return () => { @@ -805,26 +813,37 @@ export const ExamAddonPanel = ({ client }: ExamAddonPanelProps) => {
挂账公司
- +
{isAccountCompanyDropdownOpen && ( -
- {accountCompanyOptions.map((option) => ( +
+ {filteredAccountCompanyOptions.length === 0 && ( +
无匹配结果
+ )} + {filteredAccountCompanyOptions.map((option, idx) => (