"use client" import { useState } from "react" import { Brain } from 'lucide-react' import type { AnalysisTask, DatabaseInfo, ReportTemplate } from "@/types/ai-assistant" import { Button } from "@/components/ui/button" import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Textarea } from "@/components/ui/textarea" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Switch } from "@/components/ui/switch" import { sanitizeText } from "@/lib/text-sanitize" export default function CreateTaskDialog({ databases, templates, onCreate, }: { databases: DatabaseInfo[] templates: ReportTemplate[] onCreate: (task: AnalysisTask) => void }) { const [open, setOpen] = useState(false) const [name, setName] = useState("") const [database, setDatabase] = useState("") const [template, setTemplate] = useState("") const [customPrompt, setCustomPrompt] = useState("") const [includeCharts, setIncludeCharts] = useState(true) const [includeRecommendations, setIncludeRecommendations] = useState(true) function submit() { const task: AnalysisTask = { id: `task_${Date.now()}`, name: name || "未命名任务", database: database || "未选择数据库", status: "pending", progress: 0, createdAt: new Date().toISOString(), description: sanitizeText( `${customPrompt}${ includeCharts ? " | 包含图表" : "" }${includeRecommendations ? " | 包含AI建议" : ""}`, ), } onCreate(task) setOpen(false) setName("") setDatabase("") setTemplate("") setCustomPrompt("") setIncludeCharts(true) setIncludeRecommendations(true) } return ( 创建新的分析任务
setName(e.target.value)} placeholder="输入任务名称" />