|
|
@@ -7,10 +7,18 @@ import { Textarea } from '@/client/components/ui/textarea';
|
|
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/client/components/ui/select';
|
|
|
import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from '@/client/components/ui/form';
|
|
|
import { MapPin, DollarSign, Users, Car } from 'lucide-react';
|
|
|
+import { format } from 'date-fns';
|
|
|
import { createRouteSchema, updateRouteSchema } from '@/server/modules/routes/route.schema';
|
|
|
import type { CreateRouteInput, UpdateRouteInput } from '@/server/modules/routes/route.schema';
|
|
|
import { ActivitySelect } from './ActivitySelect';
|
|
|
|
|
|
+// 将ISO日期时间格式化为 datetime-local 输入框需要的格式
|
|
|
+const formatDateTimeForInput = (dateString: string): string => {
|
|
|
+ const date = new Date(dateString);
|
|
|
+ // 使用 date-fns 转换为 YYYY-MM-DDTHH:mm 格式
|
|
|
+ return format(date, "yyyy-MM-dd'T'HH:mm");
|
|
|
+};
|
|
|
+
|
|
|
interface RouteFormProps {
|
|
|
initialData?: UpdateRouteInput & { id?: number };
|
|
|
onSubmit: (data: CreateRouteInput | UpdateRouteInput) => Promise<void>;
|
|
|
@@ -35,7 +43,7 @@ export const RouteForm: React.FC<RouteFormProps> = ({
|
|
|
endPoint: initialData.endPoint || '',
|
|
|
pickupPoint: initialData.pickupPoint || '',
|
|
|
dropoffPoint: initialData.dropoffPoint || '',
|
|
|
- departureTime: initialData.departureTime || '',
|
|
|
+ departureTime: initialData.departureTime ? formatDateTimeForInput(initialData.departureTime) : '',
|
|
|
vehicleType: initialData.vehicleType || 'bus',
|
|
|
price: initialData.price || 0,
|
|
|
seatCount: initialData.seatCount || 1,
|