feat(ai): 优化拆解重跑与结果展示
This commit is contained in:
@@ -1,4 +1,40 @@
|
||||
export type PlanTaskStatus = 'pending' | 'in_progress' | 'completed';
|
||||
export type ProductPlanKind = 'design' | 'review';
|
||||
export type ProductPlanReviewResult = 'passed' | 'failed';
|
||||
export type ProductPlanReviewFailureType =
|
||||
| 'requirement_mismatch'
|
||||
| 'information_architecture'
|
||||
| 'interaction_flow'
|
||||
| 'state_coverage'
|
||||
| 'edge_case_missing'
|
||||
| 'business_rule_gap'
|
||||
| 'role_permission_gap'
|
||||
| 'data_rule_gap'
|
||||
| 'copywriting_ambiguity'
|
||||
| 'risk_dependency';
|
||||
|
||||
export const PRODUCT_PLAN_KIND_LABEL: Record<ProductPlanKind, string> = {
|
||||
design: '设计方案',
|
||||
review: '方案评审',
|
||||
};
|
||||
|
||||
export const PRODUCT_PLAN_REVIEW_RESULT_LABEL: Record<ProductPlanReviewResult, string> = {
|
||||
passed: '评审通过',
|
||||
failed: '评审不通过',
|
||||
};
|
||||
|
||||
export const PRODUCT_PLAN_REVIEW_FAILURE_OPTIONS: { value: ProductPlanReviewFailureType; label: string }[] = [
|
||||
{ value: 'requirement_mismatch', label: '需求覆盖不完整/偏离需求' },
|
||||
{ value: 'information_architecture', label: '信息架构或页面层级不清晰' },
|
||||
{ value: 'interaction_flow', label: '关键交互流程不闭环' },
|
||||
{ value: 'state_coverage', label: '缺少状态、异常或空数据场景' },
|
||||
{ value: 'edge_case_missing', label: '边界场景考虑不足' },
|
||||
{ value: 'business_rule_gap', label: '业务规则、审批或口径缺失' },
|
||||
{ value: 'role_permission_gap', label: '角色权限与可见范围不明确' },
|
||||
{ value: 'data_rule_gap', label: '字段、数据来源或计算逻辑不清楚' },
|
||||
{ value: 'copywriting_ambiguity', label: '文案表达有歧义或误导' },
|
||||
{ value: 'risk_dependency', label: '依赖、风险或上线影响未说明' },
|
||||
];
|
||||
|
||||
export interface PlanTask {
|
||||
id: string;
|
||||
@@ -18,11 +54,16 @@ export interface VersionPlan {
|
||||
tasks?: PlanTask[];
|
||||
completedRequirementIds?: string[];
|
||||
linkedRequirementIds?: string[];
|
||||
productPlanKind?: ProductPlanKind;
|
||||
resultType?: 'link' | 'file';
|
||||
resultTitle?: string;
|
||||
resultUrl?: string;
|
||||
resultFileName?: string;
|
||||
resultFileData?: string;
|
||||
prototypeReviewConfirmed?: boolean;
|
||||
reviewResult?: ProductPlanReviewResult;
|
||||
reviewFailureTypes?: ProductPlanReviewFailureType[];
|
||||
reviewFailureReason?: string;
|
||||
remark?: string;
|
||||
overdueReason?: string;
|
||||
actualStartAt?: string;
|
||||
|
||||
Reference in New Issue
Block a user