更新加项接口入参接口

This commit is contained in:
xianyi
2025-12-25 16:07:03 +08:00
parent 6b9c55c50e
commit b552ff4963
3 changed files with 59 additions and 11 deletions

View File

@@ -1,5 +1,6 @@
import { useEffect, useMemo, useState } from 'react';
import type { ExamClient } from '../../data/mockData';
import { searchPhysicalExamAddItem } from '../../api';
import { Button, Input } from '../ui';
@@ -17,7 +18,11 @@ interface AddonItem {
currentPrice?: string;
}
export const ExamAddonPanel = () => {
interface ExamAddonPanelProps {
client: ExamClient;
}
export const ExamAddonPanel = ({ client }: ExamAddonPanelProps) => {
const [addonList, setAddonList] = useState<AddonItem[]>([]);
const [addonSearch, setAddonSearch] = useState('');
const [addonLoading, setAddonLoading] = useState(false);
@@ -25,13 +30,22 @@ export const ExamAddonPanel = () => {
// 拉取加项列表
useEffect(() => {
const physical_exam_id = Number(client.id);
if (!physical_exam_id) {
setAddonError('缺少体检ID');
return;
}
const fetchList = async () => {
setAddonLoading(true);
setAddonError(null);
try {
const res = await searchPhysicalExamAddItem({ item_name: addonSearch.trim() });
if (res.Status === 200 && Array.isArray(res.Data)) {
const list: AddonItem[] = res.Data.map((item) => ({
const res = await searchPhysicalExamAddItem({
physical_exam_id,
item_name: addonSearch.trim() || null,
});
if (res.Status === 200 && res.Data?.addItemList) {
const list: AddonItem[] = res.Data.addItemList.map((item) => ({
id: item.item_id ? String(item.item_id) : `addon_${item.item_name}`,
name: item.item_name || '',
originalPrice: item.original_price !== undefined ? Number(item.original_price).toFixed(2) : '0.00',
@@ -55,7 +69,7 @@ export const ExamAddonPanel = () => {
}
};
fetchList();
}, [addonSearch]);
}, [addonSearch, client.id]);
const allAddons = useMemo(() => addonList, [addonList]);