|
|
@@ -6,11 +6,12 @@ import { Input } from '@/client/components/ui/input';
|
|
|
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 { Calendar } from 'lucide-react';
|
|
|
+import { Calendar, MapPin } from 'lucide-react';
|
|
|
import { format } from 'date-fns';
|
|
|
import { createActivitySchema, updateActivitySchema } from '@/server/modules/activities/activity.schema';
|
|
|
import type { CreateActivityInput, UpdateActivityInput } from '@/server/modules/activities/activity.schema';
|
|
|
import { ActivityType } from '@/server/modules/activities/activity.entity';
|
|
|
+import { LocationSelect } from './LocationSelect';
|
|
|
|
|
|
// 将Date对象格式化为 datetime-local 输入框需要的格式
|
|
|
const formatDateTimeForInput = (date: Date): string => {
|
|
|
@@ -168,6 +169,29 @@ export const ActivityForm: React.FC<ActivityFormProps> = ({
|
|
|
)}
|
|
|
/>
|
|
|
|
|
|
+ {/* 举办地点 */}
|
|
|
+ <FormField
|
|
|
+ control={form.control}
|
|
|
+ name="venueLocationId"
|
|
|
+ render={({ field }) => (
|
|
|
+ <FormItem>
|
|
|
+ <FormLabel>举办地点 *</FormLabel>
|
|
|
+ <FormControl>
|
|
|
+ <LocationSelect
|
|
|
+ placeholder="请选择举办地点"
|
|
|
+ value={field.value}
|
|
|
+ onValueChange={field.onChange}
|
|
|
+ data-testid="venue-location-select"
|
|
|
+ />
|
|
|
+ </FormControl>
|
|
|
+ <FormDescription>
|
|
|
+ 活动举办的具体地点
|
|
|
+ </FormDescription>
|
|
|
+ <FormMessage />
|
|
|
+ </FormItem>
|
|
|
+ )}
|
|
|
+ />
|
|
|
+
|
|
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
|
{/* 开始日期 */}
|
|
|
<FormField
|