From bc76de40c59dacdaffe87921f0f5b554e7f0bc7d Mon Sep 17 00:00:00 2001 From: xianyi Date: Thu, 4 Dec 2025 17:24:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E9=A1=B9=E6=90=9C=E7=B4=A2&=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/exam/ExamModal.tsx | 30 +++++++++++++++++++++++------ src/components/home/HomeSection.tsx | 2 +- src/components/layout/TopBar.tsx | 2 +- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/components/exam/ExamModal.tsx b/src/components/exam/ExamModal.tsx index 1b2f73d..91425d1 100644 --- a/src/components/exam/ExamModal.tsx +++ b/src/components/exam/ExamModal.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; import type { ExamClient, ExamModalTab } from '../../data/mockData'; -import { Badge, Button } from '../ui'; +import { Badge, Button, Input } from '../ui'; interface ExamModalProps { client: ExamClient; @@ -143,10 +143,10 @@ const ExamSignPanel = () => (
体检知情同意书
点击后弹出知情同意书全文及签名区域,签署完成后回到签到页面。
-
+ {/*
阅读记录 签名图片 -
+
*/}
@@ -191,6 +191,14 @@ const ExamAddonPanel = ({ client }: { client: ExamClient }) => { const maxSelect = 15; const selectedCount = selectedIds.size; + const [addonSearch, setAddonSearch] = useState(''); + + const filteredAddons = addonSearch.trim() + ? allAddons.filter(item => + item.name.toLowerCase().includes(addonSearch.toLowerCase()) + ) + : allAddons; + const toggleSelect = (id: string) => { if (selectedIds.has(id)) { setSelectedIds(prev => { @@ -247,7 +255,17 @@ const ExamAddonPanel = ({ client }: { client: ExamClient }) => {
{/* 标题和说明 */}
-

体检套餐加项选择

+
+

体检套餐加项选择

+
+ setAddonSearch(e.target.value)} + className='text-sm' + /> +
+
最多可选 {maxSelect} 项 · 一排 5 个
已勾选 {selectedCount} 项,自费加项费用按渠道折扣价结算。
@@ -255,8 +273,8 @@ const ExamAddonPanel = ({ client }: { client: ExamClient }) => {
{/* 加项网格 */} -
- {allAddons.map((item) => { +
+ {filteredAddons.map((item) => { const id = item.id || item.name; const isSelected = selectedIds.has(id); const origPrice = parseFloat(item.originalPrice || '0'); diff --git a/src/components/home/HomeSection.tsx b/src/components/home/HomeSection.tsx index e2d53d9..9f29008 100644 --- a/src/components/home/HomeSection.tsx +++ b/src/components/home/HomeSection.tsx @@ -15,7 +15,7 @@ export const HomeSection = () => ( - 营收数据统计 + 今日营收数据统计
{REVENUE_STATS.map(([label, value]) => ( diff --git a/src/components/layout/TopBar.tsx b/src/components/layout/TopBar.tsx index 2a7bcc3..7d88ab9 100644 --- a/src/components/layout/TopBar.tsx +++ b/src/components/layout/TopBar.tsx @@ -14,7 +14,7 @@ export const TopBar = ({ search, onSearch, enableSearch = true, operatorName, on {enableSearch ? (
onSearch(e.target.value)} className='text-sm'