|
|
@@ -9,6 +9,18 @@ import type { InferResponseType } from "hono/client"
|
|
|
|
|
|
type ActivityResponse = InferResponseType<typeof activityClient.$get, 200>['data'][0]
|
|
|
|
|
|
+// 获取活动类型显示标签
|
|
|
+const getActivityTypeLabel = (type: ActivityType) => {
|
|
|
+ switch (type) {
|
|
|
+ case ActivityType.DEPARTURE:
|
|
|
+ return "去程"
|
|
|
+ case ActivityType.RETURN:
|
|
|
+ return "返程"
|
|
|
+ default:
|
|
|
+ return "未知"
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
interface ActivitySelectProps {
|
|
|
value?: number
|
|
|
onValueChange?: (value: number) => void
|
|
|
@@ -44,15 +56,6 @@ export function ActivitySelect({
|
|
|
staleTime: 5 * 60 * 1000, // 5分钟缓存
|
|
|
})
|
|
|
|
|
|
- // 防抖搜索
|
|
|
- React.useEffect(() => {
|
|
|
- const timeoutId = setTimeout(() => {
|
|
|
- setSearchKeyword(searchKeyword)
|
|
|
- }, 300)
|
|
|
-
|
|
|
- return () => clearTimeout(timeoutId)
|
|
|
- }, [searchKeyword])
|
|
|
-
|
|
|
// 将活动数据转换为 Combobox 选项
|
|
|
const activityOptions = React.useMemo(() => {
|
|
|
if (!activitiesData?.data) return []
|
|
|
@@ -63,17 +66,6 @@ export function ActivitySelect({
|
|
|
}))
|
|
|
}, [activitiesData])
|
|
|
|
|
|
- // 获取活动类型显示标签
|
|
|
- const getActivityTypeLabel = (type: ActivityType) => {
|
|
|
- switch (type) {
|
|
|
- case ActivityType.DEPARTURE:
|
|
|
- return "去程"
|
|
|
- case ActivityType.RETURN:
|
|
|
- return "返程"
|
|
|
- default:
|
|
|
- return "未知"
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
const handleValueChange = (newValue: string) => {
|
|
|
const numericValue = newValue ? parseInt(newValue, 10) : 0
|