'use client'; import { useState, useMemo } from 'react'; import { X } from 'lucide-react'; import { useTestCaseStore } from '@/stores/useTestCaseStore'; import { useRequirementStore } from '@/stores/useRequirementStore'; import { useMemberStore } from '@/stores/useMemberStore'; import { useAuthStore } from '@/stores/useAuthStore'; import type { Priority } from '@/lib/derive'; interface Props { versionId: string; requirementIds: string[]; onClose: () => void; } export function TestCaseCreateModal({ versionId, requirementIds, onClose }: Props) { const { createTestCase } = useTestCaseStore(); const { requirements } = useRequirementStore(); const { members } = useMemberStore(); const user = useAuthStore((s) => s.user); const versionReqs = useMemo( () => requirements.filter((r) => requirementIds.includes(r.id)), [requirements, requirementIds], ); const [title, setTitle] = useState(''); const [requirementId, setRequirementId] = useState(versionReqs[0]?.id || ''); const [priority, setPriority] = useState(versionReqs[0]?.priority || 'P2'); const [assigneeId, setAssigneeId] = useState(user?.name || ''); const [description, setDescription] = useState(''); const canSubmit = title.trim(); const handleSubmit = () => { if (!canSubmit) return; createTestCase({ versionId, requirementId: requirementId || undefined, title: title.trim(), description: description.trim() || undefined, priority, assigneeId: assigneeId || undefined, createdBy: user?.name || '系统', }); onClose(); }; return (
e.stopPropagation()}>

新建测试用例

setTitle(e.target.value)} className="h-9 w-full rounded-lg border border-[var(--line)] bg-[var(--bg)] px-3 text-[13px] focus:border-[var(--accent)] focus:outline-none" placeholder="例如:正常排班" />