feat(ai-analysis): 添加详情页智能分析入口
Some checks failed
Deploy Production / Build, push, deploy, verify (push) Has been cancelled
Some checks failed
Deploy Production / Build, push, deploy, verify (push) Has been cancelled
This commit is contained in:
@@ -17,6 +17,8 @@ import { PlanTab } from '@/components/version/PlanTab';
|
||||
import { DevTaskTab } from '@/components/dev-task/DevTaskTab';
|
||||
import { TestCaseTab } from '@/components/test-case/TestCaseTab';
|
||||
import { BugTab } from '@/components/bug/BugTab';
|
||||
import { AnalysisContextDrawer } from '@/components/analysis/AnalysisContextDrawer';
|
||||
import { AnalysisEntryButton } from '@/components/analysis/AnalysisEntryButton';
|
||||
import { useVersionPlanStore } from '@/stores/useVersionPlanStore';
|
||||
import { useDevTaskStore } from '@/stores/useDevTaskStore';
|
||||
import { useTestCaseStore } from '@/stores/useTestCaseStore';
|
||||
@@ -135,6 +137,7 @@ export default function VersionDetailPage() {
|
||||
const { departments, members: allMembers, roles, fetchMembers } = useMemberStore();
|
||||
const { categories: taskCategories, fetchCategories } = useTaskCategoryStore();
|
||||
const currentRole = useMemo(() => roles.find((r) => r.id === user?.roleId), [roles, user?.roleId]);
|
||||
const currentPermissions = currentRole?.permissions ?? [];
|
||||
const memberCandidates = useMemo(
|
||||
() => allMembers.map((member) => ({
|
||||
id: member.id,
|
||||
@@ -157,6 +160,7 @@ export default function VersionDetailPage() {
|
||||
const [showRecommendModal, setShowRecommendModal] = useState(false);
|
||||
const [showEditModal, setShowEditModal] = useState(false);
|
||||
const [showReleaseModal, setShowReleaseModal] = useState(false);
|
||||
const [showAnalysisDrawer, setShowAnalysisDrawer] = useState(false);
|
||||
const [recommendationDataReady, setRecommendationDataReady] = useState(false);
|
||||
const [v22Scope, setV22Scope] = useState<VersionDataScope | null>(null);
|
||||
|
||||
@@ -432,7 +436,10 @@ export default function VersionDetailPage() {
|
||||
<span className="ml-1.5 text-[var(--ink-muted)]">/</span>
|
||||
<span className="ml-1.5 text-[15px] font-semibold text-[var(--ink)]">{version.name}</span>
|
||||
</div>
|
||||
<div className="flex items-center gap-2">{renderActions()}</div>
|
||||
<div className="flex items-center gap-2">
|
||||
<AnalysisEntryButton onClick={() => setShowAnalysisDrawer(true)} />
|
||||
{renderActions()}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{/* Tab bar */}
|
||||
@@ -1184,6 +1191,13 @@ export default function VersionDetailPage() {
|
||||
onClose={() => setShowMemberModal(false)}
|
||||
/>
|
||||
)}
|
||||
<AnalysisContextDrawer
|
||||
open={showAnalysisDrawer}
|
||||
title={`版本智能分析 · ${version.name}`}
|
||||
context={{ surface: 'version_detail', versionId: version.id }}
|
||||
permissions={currentPermissions}
|
||||
onClose={() => setShowAnalysisDrawer(false)}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user