@sim-design/training 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +481 -15
- package/dist/{ArrowLeftOutlined-CiSQq3bL.js → ArrowLeftOutlined-BxA84GXs.js} +1 -1
- package/dist/ArrowLeftOutlined-D785XjyB.js +12 -0
- package/dist/{AssessmentPlugin-Bx4VrBdV.js → AssessmentPlugin-D_iesmyg.js} +7 -7
- package/dist/AssessmentPlugin-zRr-IsdA.js +607 -0
- package/dist/CaseAnalysisPlugin-CXuQpkPd.js +2196 -0
- package/dist/CaseAnalysisPlugin-DytlXsRD.js +2196 -0
- package/dist/CaseDetailContent-DT5nCtRT.js +28613 -0
- package/dist/CaseDetailContent-Y7Q430MG.js +28595 -0
- package/dist/{CharacterDialoguePanel-Bvdab3qj.js → CharacterDialoguePanel-CdtUl-Sv.js} +178 -139
- package/dist/CharacterDialoguePanel-D_4YNFZv.js +815 -0
- package/dist/{CheckCircleFilled-Byo8CDfW.js → CheckCircleFilled-CnslIY7j.js} +1 -1
- package/dist/CheckCircleFilled-NvZaC2sk.js +12 -0
- package/dist/DecisionMakingPlugin-B_KQUFzW.js +1385 -0
- package/dist/DecisionMakingPlugin-ILLGek3S.js +1385 -0
- package/dist/{DecisionSelectPlugin-DtQ2KV34.js → DecisionSelectPlugin-BGQiHGBK.js} +20 -11
- package/dist/DecisionSelectPlugin-Bqmh6XGh.js +872 -0
- package/dist/{DecisionShared-Dh9oeQFT.js → DecisionShared-BHq1lEqt.js} +2 -2
- package/dist/DecisionShared-Be-zKZLT.js +65 -0
- package/dist/DeleteOutlined-BvMjU7m5.js +12 -0
- package/dist/DeleteOutlined-Dqy6M2LH.js +12 -0
- package/dist/{CustomLayoutRenderer--rnQrqQ2.js → DialogueFormPlugin-BpCeFadt.js} +22724 -21631
- package/dist/DialogueFormPlugin-CXlbxX-z.js +123617 -0
- package/dist/DialoguePlugin-CO7Nzv0K.js +596 -0
- package/dist/DialoguePlugin-DDNdsylz.js +596 -0
- package/dist/DocumentReviewPlugin-2CnKQwVG.js +1967 -0
- package/dist/DocumentReviewPlugin-qYYrnjvE.js +1967 -0
- package/dist/{EyeOutlined-XvOAKlLs.js → EyeOutlined-BrKCNjui.js} +1 -1
- package/dist/EyeOutlined-CW0tYV0f.js +12 -0
- package/dist/FormFillingPlugin-C3h8ySOZ.js +969 -0
- package/dist/FormFillingPlugin-CPmd76Qr.js +969 -0
- package/dist/HolderOutlined-CH0tShWu.js +12 -0
- package/dist/HolderOutlined-Dm6TBtqf.js +12 -0
- package/dist/ModelEditor-BjEbFloQ.js +11753 -0
- package/dist/ModelEditor-CwR67DFQ.js +11753 -0
- package/dist/{ProcessOperationPlugin-IijngDlX.js → ProcessOperationPlugin-1Lz431aC.js} +12 -12
- package/dist/ProcessOperationPlugin-BkmdG3ch.js +88 -0
- package/dist/QAPlugin-0C4kpq3J.js +172 -0
- package/dist/QAPlugin-UC8uywcg.js +172 -0
- package/dist/{ReloadOutlined-Daor2m11.js → ReloadOutlined-BZ92nlYF.js} +1 -1
- package/dist/ReloadOutlined-CYoPOwLl.js +12 -0
- package/dist/{SettingOutlined-CLEOgXB-.js → SettingOutlined-F466s0Ti.js} +33 -65
- package/dist/SettingOutlined-c2hikCfN.js +60 -0
- package/dist/StarFilled-Bilmj6UK.js +28 -0
- package/dist/StarFilled-CtH30fL0.js +28 -0
- package/dist/StrategyLabPlugin-CvO07sXV.js +12445 -0
- package/dist/StrategyLabPlugin-DUqZYctQ.js +12445 -0
- package/dist/ThunderboltOutlined-BpmoCKdV.js +28 -0
- package/dist/ThunderboltOutlined-DDQFi5Cv.js +28 -0
- package/dist/TrainingModelContainer-DqCsdC7C.js +11241 -0
- package/dist/TrainingModelContainer-yi8W6KFl.js +11241 -0
- package/dist/{UndoOutlined-ChUQYUul.js → UndoOutlined-6JZVzmdX.js} +26 -42
- package/dist/UndoOutlined-Dw6_9_OL.js +68 -0
- package/dist/{WarningFilled-1Rc4hr0C.js → WarningFilled-Cy1tvuQy.js} +1 -1
- package/dist/WarningFilled-lkr453eh.js +12 -0
- package/dist/{adapters-D1FFZFoA.js → adapters-BbCnXSYo.js} +2 -2
- package/dist/{analysisTools-CXyOvSZT.js → analysisTools-Cp5-3DaU.js} +59 -12
- package/dist/creator.js +4 -2
- package/dist/designTokens-walF_QkZ.js +23 -0
- package/dist/images/healthcare/bg.jpg +0 -0
- package/dist/{index-CYjdXPgc.js → index-C71iHgSs.js} +2640 -2722
- package/dist/{index-XuBVjlmu.js → index-CBvqcbIU.js} +7214 -7643
- package/dist/index-D94YNWTb.js +433 -0
- package/dist/index-DSYmOXnQ.js +6486 -0
- package/dist/index-fP97rKeQ.js +433 -0
- package/dist/index.js +8 -6
- package/dist/judgement-xTGXlDcn.js +29 -0
- package/dist/runtime.js +1 -1
- package/dist/sortable.esm-bm_c5vmI.js +3307 -0
- package/dist/types.js +1 -1
- package/dist/useDialogueLogic-D1lkUKUZ.js +576 -0
- package/dist/useDialogueLogic-vOJ9XRNP.js +576 -0
- package/dist-types/client/src/admin/CaseDataEditor.d.ts +20 -0
- package/dist-types/client/src/admin/CaseEditor.d.ts +19 -0
- package/dist-types/client/src/admin/DialogueFormCheckRulesEditor.d.ts +11 -0
- package/dist-types/client/src/admin/DialogueFormInitDataEditor.d.ts +31 -0
- package/dist-types/client/src/admin/InitDataEditors.d.ts +7 -0
- package/dist-types/client/src/admin/ModelEditor.d.ts +11 -0
- package/dist-types/client/src/admin/ModelPreview.d.ts +13 -0
- package/dist-types/client/src/admin/OptionSelector.d.ts +32 -0
- package/dist-types/client/src/admin/StageStepEditor.d.ts +20 -0
- package/dist-types/client/src/admin/StepAnswerKeyEditor.d.ts +19 -0
- package/dist-types/client/src/admin/StepByStepCreator.d.ts +27 -0
- package/dist-types/client/src/admin/components/AbilityMapEditor.d.ts +12 -0
- package/dist-types/client/src/admin/components/CasePreview.d.ts +8 -0
- package/dist-types/client/src/admin/components/StepAbilitySelector.d.ts +9 -0
- package/dist-types/client/src/admin/constants/creatorConstants.d.ts +39 -0
- package/dist-types/client/src/admin/editors/CaseAnalysisEditor.d.ts +11 -0
- package/dist-types/client/src/admin/editors/DecisionMakingEditor.d.ts +7 -0
- package/dist-types/client/src/admin/editors/DialogueEditor.d.ts +12 -0
- package/dist-types/client/src/admin/editors/DocumentReviewEditor.d.ts +7 -0
- package/dist-types/client/src/admin/editors/DocumentReviewRuntimeRulesEditor.d.ts +15 -0
- package/dist-types/client/src/admin/editors/FormFillingEditor.d.ts +33 -0
- package/dist-types/client/src/admin/editors/ModelUIConfigEditor.d.ts +5 -0
- package/dist-types/client/src/admin/editors/QAEditor.d.ts +6 -0
- package/dist-types/client/src/admin/editors/RouterEditors.d.ts +18 -0
- package/dist-types/client/src/admin/editors/StepBriefingEditor.d.ts +14 -0
- package/dist-types/client/src/admin/editors/StrategyLabEditor.d.ts +24 -0
- package/dist-types/client/src/admin/editors/decisionEditorParts.d.ts +18 -0
- package/dist-types/client/src/admin/editors/index.d.ts +8 -0
- package/dist-types/client/src/admin/editors/shared.d.ts +17 -0
- package/dist-types/client/src/admin/hooks/useStep1Intent.d.ts +16 -0
- package/dist-types/client/src/admin/hooks/useStep2Outline.d.ts +41 -0
- package/dist-types/client/src/admin/hooks/useStep3Details.d.ts +123 -0
- package/dist-types/client/src/admin/hooks/useStep4Cases.d.ts +48 -0
- package/dist-types/client/src/admin/hooks/useStep5Validation.d.ts +16 -0
- package/dist-types/client/src/admin/landingValidation.d.ts +74 -0
- package/dist-types/client/src/admin/schemaFieldUtils.d.ts +55 -0
- package/dist-types/client/src/admin/services.d.ts +461 -0
- package/dist-types/client/src/admin/shared-editors.d.ts +31 -0
- package/dist-types/client/src/admin/types/creatorArtifacts.d.ts +140 -0
- package/dist-types/client/src/components/AbilityMapView.d.ts +15 -0
- package/dist-types/client/src/components/CaseDetail/CaseDetailContent.d.ts +12 -0
- package/dist-types/client/src/components/ConversationalDataCollector/IntentConfirmPanel.d.ts +20 -0
- package/dist-types/client/src/components/ConversationalDataCollector/index.d.ts +7 -0
- package/dist-types/client/src/components/ConversationalDataCollector/intentState.d.ts +24 -0
- package/dist-types/client/src/components/ConversationalDataCollector/types.d.ts +95 -0
- package/dist-types/client/src/components/ConversationalDataCollector/utils.d.ts +62 -0
- package/dist-types/client/src/components/CustomLayoutRenderer.d.ts +8 -0
- package/dist-types/client/src/components/MarkdownRenderer.d.ts +15 -0
- package/dist-types/client/src/components/StrategyLabScene/VisualInputComponents.d.ts +85 -0
- package/dist-types/client/src/components/StrategyLabScene/components/AdversarialView.d.ts +18 -0
- package/dist-types/client/src/components/StrategyLabScene/components/BottomBar.d.ts +22 -0
- package/dist-types/client/src/components/StrategyLabScene/components/CharacterCard.d.ts +14 -0
- package/dist-types/client/src/components/StrategyLabScene/components/CharacterDialoguePanel.d.ts +32 -0
- package/dist-types/client/src/components/StrategyLabScene/components/CollaborativeView.d.ts +20 -0
- package/dist-types/client/src/components/StrategyLabScene/components/ComparisonView.d.ts +16 -0
- package/dist-types/client/src/components/StrategyLabScene/components/DecisionInput.d.ts +27 -0
- package/dist-types/client/src/components/StrategyLabScene/components/DecisionSwitcher.d.ts +14 -0
- package/dist-types/client/src/components/StrategyLabScene/components/EvaluationReport.d.ts +13 -0
- package/dist-types/client/src/components/StrategyLabScene/components/NodeChainPanels.d.ts +32 -0
- package/dist-types/client/src/components/StrategyLabScene/components/ProgressSteps.d.ts +15 -0
- package/dist-types/client/src/components/StrategyLabScene/components/SandboxView.d.ts +19 -0
- package/dist-types/client/src/components/StrategyLabScene/components/ScenarioPanel.d.ts +17 -0
- package/dist-types/client/src/components/StrategyLabScene/components/SimulationAnimation.d.ts +13 -0
- package/dist-types/client/src/components/StrategyLabScene/components/SimulationResult.d.ts +15 -0
- package/dist-types/client/src/components/StrategyLabScene/components/StressTestView.d.ts +22 -0
- package/dist-types/client/src/components/StrategyLabScene/themeMatching.d.ts +21 -0
- package/dist-types/client/src/components/StrategyLabScene/themes/education.d.ts +45 -0
- package/dist-types/client/src/components/StrategyLabScene/themes/healthcare.d.ts +7 -0
- package/dist-types/client/src/components/StrategyLabScene/themes/index.d.ts +22 -0
- package/dist-types/client/src/components/StrategyLabScene/themes/professional.d.ts +7 -0
- package/dist-types/client/src/components/StrategyLabScene/themes/technology.d.ts +7 -0
- package/dist-types/client/src/components/StrategyLabScene/types.d.ts +82 -0
- package/dist-types/client/src/components/StrategyLabScene/views/UnifiedStrategyLabView.d.ts +72 -0
- package/dist-types/client/src/components/TrainingEngine/BriefingQAChat.d.ts +19 -0
- package/dist-types/client/src/components/TrainingEngine/CaseInfoModal.d.ts +12 -0
- package/dist-types/client/src/components/TrainingEngine/CaseSelector.d.ts +15 -0
- package/dist-types/client/src/components/TrainingEngine/ClassicView.d.ts +7 -0
- package/dist-types/client/src/components/TrainingEngine/DashboardHomePage.d.ts +7 -0
- package/dist-types/client/src/components/TrainingEngine/EnhancedStudentProfilePanel.d.ts +9 -0
- package/dist-types/client/src/components/TrainingEngine/EvaluationPanel.d.ts +8 -0
- package/dist-types/client/src/components/TrainingEngine/GlobalQAPanel.d.ts +34 -0
- package/dist-types/client/src/components/TrainingEngine/GuidanceHistoryDrawer.d.ts +7 -0
- package/dist-types/client/src/components/TrainingEngine/GuidancePanel.d.ts +3 -0
- package/dist-types/client/src/components/TrainingEngine/ImmersiveGameView.d.ts +7 -0
- package/dist-types/client/src/components/TrainingEngine/PluginRenderer.d.ts +15 -0
- package/dist-types/client/src/components/TrainingEngine/ProgressTracker.d.ts +3 -0
- package/dist-types/client/src/components/TrainingEngine/StageAssessingOverlay.d.ts +17 -0
- package/dist-types/client/src/components/TrainingEngine/StageAssessmentPanel.d.ts +10 -0
- package/dist-types/client/src/components/TrainingEngine/StepExecutor.d.ts +20 -0
- package/dist-types/client/src/components/TrainingEngine/StepNodeMap.d.ts +15 -0
- package/dist-types/client/src/components/TrainingEngine/StudentProfilePanel.d.ts +6 -0
- package/dist-types/client/src/components/TrainingEngine/ThemeContext.d.ts +8 -0
- package/dist-types/client/src/components/TrainingEngine/TrainingMaterialsSidebar.d.ts +21 -0
- package/dist-types/client/src/components/TrainingEngine/TrainingModelContainer.d.ts +42 -0
- package/dist-types/client/src/components/TrainingEngine/ViewProps.d.ts +37 -0
- package/dist-types/client/src/components/TrainingEngine/profileDataSelectors.d.ts +23 -0
- package/dist-types/client/src/components/TrainingEngine/stepInitData.d.ts +42 -0
- package/dist-types/client/src/components/TrainingEngine/targetAbilityUtils.d.ts +11 -0
- package/dist-types/client/src/components/VisualizationRenderer/ChartRenderer.d.ts +12 -0
- package/dist-types/client/src/components/VisualizationRenderer/types.d.ts +41 -0
- package/dist-types/client/src/config/appConfig.d.ts +15 -0
- package/dist-types/client/src/configs/agentConfig.d.ts +66 -0
- package/dist-types/client/src/configs/intentDiscoveryConfig.d.ts +22 -0
- package/dist-types/client/src/data/mockTrainingModel.d.ts +10 -0
- package/dist-types/client/src/hooks/useAIService.d.ts +17 -0
- package/dist-types/client/src/hooks/useDialogueLogic.d.ts +53 -0
- package/dist-types/client/src/hooks/useFormFillingLogic.d.ts +26 -0
- package/dist-types/client/src/hooks/useFormRealtimeGuidance.d.ts +45 -0
- package/dist-types/client/src/hooks/useRealtimeGuidance.d.ts +66 -0
- package/dist-types/client/src/hooks/useStageAssessment.d.ts +8 -0
- package/dist-types/client/src/hooks/useStepExecution.d.ts +14 -0
- package/dist-types/client/src/hooks/useTrainingModel.d.ts +30 -0
- package/dist-types/client/src/lib/creator.d.ts +1 -0
- package/dist-types/client/src/lib/index.d.ts +1 -0
- package/dist-types/client/src/lib/types.d.ts +113 -22
- package/dist-types/client/src/plugins/AssessmentPlugin.d.ts +8 -0
- package/dist-types/client/src/plugins/CaseAnalysisPlugin.d.ts +9 -0
- package/dist-types/client/src/plugins/CaseAnalysisPluginView.d.ts +26 -0
- package/dist-types/client/src/plugins/DecisionSelectPlugin.d.ts +8 -0
- package/dist-types/client/src/plugins/DialogueFormPlugin.d.ts +9 -0
- package/dist-types/client/src/plugins/DialogueFormPluginView.d.ts +37 -0
- package/dist-types/client/src/plugins/DialoguePlugin.d.ts +8 -0
- package/dist-types/client/src/plugins/DialoguePluginView.d.ts +44 -0
- package/dist-types/client/src/plugins/DocumentReview/DocumentCard.d.ts +47 -0
- package/dist-types/client/src/plugins/DocumentReview/LayoutComponents.d.ts +47 -0
- package/dist-types/client/src/plugins/DocumentReview/MarkListPanel.d.ts +51 -0
- package/dist-types/client/src/plugins/DocumentReview/MarkModal.d.ts +37 -0
- package/dist-types/client/src/plugins/DocumentReview/ResultPanel.d.ts +32 -0
- package/dist-types/client/src/plugins/DocumentReview/Toolbar.d.ts +31 -0
- package/dist-types/client/src/plugins/DocumentReview/designTokens.d.ts +76 -0
- package/dist-types/client/src/plugins/DocumentReviewPlugin.d.ts +14 -0
- package/dist-types/client/src/plugins/ProcessOperationPlugin.d.ts +8 -0
- package/dist-types/client/src/plugins/QAPlugin.d.ts +9 -0
- package/dist-types/client/src/plugins/StrategyLabPlugin.d.ts +7 -0
- package/dist-types/client/src/plugins/decision-making/DecisionMakingPlugin.d.ts +4 -0
- package/dist-types/client/src/plugins/decision-making/DecisionWorkspace.d.ts +23 -0
- package/dist-types/client/src/plugins/decision-making/MaterialsPanel.d.ts +18 -0
- package/dist-types/client/src/plugins/decision-making/logic.d.ts +46 -0
- package/dist-types/client/src/plugins/decision-making/scoring.d.ts +79 -0
- package/dist-types/client/src/plugins/decision-making/styles.d.ts +743 -0
- package/dist-types/client/src/plugins/decision-making/types.d.ts +179 -0
- package/dist-types/client/src/plugins/form-filling/DocumentFormLayout.d.ts +22 -0
- package/dist-types/client/src/plugins/form-filling/FormAssistPanel.d.ts +20 -0
- package/dist-types/client/src/plugins/form-filling/FormFillingPlugin.d.ts +15 -0
- package/dist-types/client/src/plugins/form-filling/forms.d.ts +28 -0
- package/dist-types/client/src/plugins/form-filling/scoring.d.ts +86 -0
- package/dist-types/client/src/plugins/form-filling/useFormFilling.d.ts +42 -0
- package/dist-types/client/src/plugins/form-filling/validationRules.d.ts +26 -0
- package/dist-types/client/src/plugins/shared/DecisionShared.d.ts +54 -0
- package/dist-types/client/src/plugins/shared/FrameworkWidget.d.ts +19 -0
- package/dist-types/client/src/plugins/shared/PluginFooter.d.ts +4 -0
- package/dist-types/client/src/plugins/shared/PluginHeader.d.ts +4 -0
- package/dist-types/client/src/plugins/shared/analysisTools.d.ts +30 -0
- package/dist-types/client/src/plugins/shared/disturbanceUtils.d.ts +5 -0
- package/dist-types/client/src/plugins/shared/index.d.ts +5 -0
- package/dist-types/client/src/plugins/shared/jsonRepair.d.ts +39 -0
- package/dist-types/client/src/plugins/shared/judgement.d.ts +46 -0
- package/dist-types/client/src/plugins/shared/nodeChain.d.ts +15 -0
- package/dist-types/client/src/plugins/shared/renderFieldGrid.d.ts +16 -0
- package/dist-types/client/src/plugins/shared/reportBlocks.d.ts +33 -0
- package/dist-types/client/src/plugins/shared/reportEvaluation.d.ts +30 -0
- package/dist-types/client/src/plugins/shared/reportExport.d.ts +12 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/BlockPropertiesPanel.d.ts +9 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/BlockToolbox.d.ts +11 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/ReportWorkbench.d.ts +20 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/SortableBlock.d.ts +15 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/factory.d.ts +14 -0
- package/dist-types/client/src/plugins/shared/reportWorkbench/outlineDraft.d.ts +7 -0
- package/dist-types/client/src/plugins/shared/simulationEngine.d.ts +112 -0
- package/dist-types/client/src/plugins/shared/simulationModes.d.ts +21 -0
- package/dist-types/client/src/plugins/shared/themes.d.ts +5 -0
- package/dist-types/client/src/plugins/shared/types.d.ts +1247 -0
- package/dist-types/client/src/services/AICommandHandler.d.ts +68 -0
- package/dist-types/client/src/services/cozeApiClient.d.ts +44 -0
- package/dist-types/client/src/services/mockApi.d.ts +48 -0
- package/dist-types/client/src/services/storageService.d.ts +88 -0
- package/dist-types/client/src/stores/abilityStore.d.ts +33 -0
- package/dist-types/client/src/stores/dialogueStore.d.ts +30 -0
- package/dist-types/client/src/stores/formRegistryStore.d.ts +45 -0
- package/dist-types/client/src/stores/guidanceStore.d.ts +17 -0
- package/dist-types/client/src/stores/stepEvidenceStore.d.ts +14 -0
- package/dist-types/client/src/stores/strategyLabStore.d.ts +46 -0
- package/dist-types/client/src/stores/trainingStore.d.ts +84 -0
- package/dist-types/client/src/types/ai-commands.d.ts +144 -0
- package/dist-types/client/src/types.d.ts +17 -0
- package/dist-types/client/src/utils/abilityMapGenerator.d.ts +27 -0
- package/dist-types/client/src/utils/formUtils.d.ts +66 -0
- package/dist-types/client/src/utils/rule-engine.d.ts +36 -0
- package/dist-types/shared/types/index.d.ts +592 -0
- package/package.json +5 -3
- package/dist/CaseAnalysisPlugin-CQvF9_zr.js +0 -416
- package/dist/DialogueFormPlugin-C9ssnVMr.js +0 -959
- package/dist/DialoguePlugin-DU00QpmQ.js +0 -416
- package/dist/DocumentReviewPlugin-HNOZY1T4.js +0 -977
- package/dist/FormFillingPlugin-DURWsioi.js +0 -445
- package/dist/ModelEditor-BPJsPR0S.js +0 -8264
- package/dist/PluginHeader-B-GESJmT.js +0 -87
- package/dist/QAPlugin-Bh_UjK1N.js +0 -184
- package/dist/RadarChart-C5ZM0kWt.js +0 -24963
- package/dist/StrategyLabPlugin-DGeZsr_7.js +0 -14361
- package/dist/ThunderboltOutlined-nH_FO_4A.js +0 -44
- package/dist/ToolOutlined-DtuNJDB2.js +0 -28
- package/dist/TrainingModelContainer-DpW-uB8O.js +0 -11883
- package/dist/WarningOutlined-5g1d66hO.js +0 -164
- package/dist/judgement-D_9i7x9S.js +0 -20
- package/dist/useDialogueLogic-IHELcN3X.js +0 -368
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
+
import type { TrainingBlueprint, StageContract, StepTaskPackage, StageAcceptanceRecord, CaseVariantPackage, ValidationReport, AssemblyDryRunResult, GenerationPhase, Phase1Artifacts } from '../admin/types/creatorArtifacts';
|
|
2
3
|
export type Domain = 'banking' | 'insurance' | 'trade';
|
|
3
4
|
export type Difficulty = 'easy' | 'medium' | 'hard';
|
|
4
5
|
export type TrainingLevel = 'undergraduate' | 'vocational' | 'technical';
|
|
@@ -29,6 +30,8 @@ export interface GlobalRules {
|
|
|
29
30
|
export interface EvaluationRules {
|
|
30
31
|
dimensions: EvaluationDimension[];
|
|
31
32
|
businessRules: string[];
|
|
33
|
+
referenceAnswer?: string;
|
|
34
|
+
requiredPoints?: string[];
|
|
32
35
|
}
|
|
33
36
|
export interface EntryAnimation {
|
|
34
37
|
type: EntryAnimationType;
|
|
@@ -41,25 +44,49 @@ export interface StepTargetAbility {
|
|
|
41
44
|
}
|
|
42
45
|
export interface Step {
|
|
43
46
|
stepId: string;
|
|
44
|
-
|
|
47
|
+
stepName: string;
|
|
45
48
|
description?: string;
|
|
46
49
|
learningObjectives?: string[];
|
|
47
50
|
pluginId: string;
|
|
48
51
|
pluginType: PluginType;
|
|
49
52
|
initData: any;
|
|
50
|
-
|
|
53
|
+
runtimeRules: any;
|
|
54
|
+
evaluationRules?: EvaluationRules;
|
|
51
55
|
jumpRules?: any;
|
|
52
56
|
entryAnimation?: EntryAnimation;
|
|
53
57
|
order: number;
|
|
54
58
|
targetAbilities?: StepTargetAbility[];
|
|
55
59
|
}
|
|
60
|
+
export interface StageAssessment {
|
|
61
|
+
consistencyChecks: Array<{
|
|
62
|
+
name: string;
|
|
63
|
+
description: string;
|
|
64
|
+
relatedSteps: string[];
|
|
65
|
+
}>;
|
|
66
|
+
deliverableChecks: Array<{
|
|
67
|
+
deliverable: string;
|
|
68
|
+
criteria: string[];
|
|
69
|
+
}>;
|
|
70
|
+
goalCriteria: string[];
|
|
71
|
+
passPolicy: {
|
|
72
|
+
stepWeights: Record<string, number>;
|
|
73
|
+
passScore?: number;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
56
76
|
export interface Stage {
|
|
57
77
|
stageId: string;
|
|
58
|
-
|
|
78
|
+
stageName: string;
|
|
59
79
|
description: string;
|
|
60
80
|
businessType: string;
|
|
61
81
|
learningObjectives?: string[];
|
|
62
|
-
|
|
82
|
+
stageGoal?: string;
|
|
83
|
+
deliverables?: string[];
|
|
84
|
+
entryCriteria?: string[];
|
|
85
|
+
completionCriteria?: string[];
|
|
86
|
+
commonMistakes?: string[];
|
|
87
|
+
stageAssessment?: StageAssessment;
|
|
88
|
+
/** @deprecated 由 step.evaluationRules 替代,环节三完成后删除 */
|
|
89
|
+
evaluationRules?: EvaluationRules;
|
|
63
90
|
steps: Step[];
|
|
64
91
|
order: number;
|
|
65
92
|
}
|
|
@@ -69,11 +96,13 @@ export interface RoleConfig {
|
|
|
69
96
|
角色类型: string;
|
|
70
97
|
[key: string]: any;
|
|
71
98
|
}
|
|
99
|
+
export type FieldUsage = 'display' | 'evaluation';
|
|
72
100
|
export interface CaseSchemaField {
|
|
73
101
|
path: string;
|
|
74
102
|
type: 'string' | 'number' | 'boolean' | 'enum' | 'date' | 'object' | 'array';
|
|
75
103
|
label: string;
|
|
76
|
-
purpose
|
|
104
|
+
purpose: string;
|
|
105
|
+
usage: FieldUsage[];
|
|
77
106
|
rule?: string;
|
|
78
107
|
enumValues?: string[];
|
|
79
108
|
maxLength?: number;
|
|
@@ -101,9 +130,9 @@ export interface Case {
|
|
|
101
130
|
scenario: string;
|
|
102
131
|
customerInfo: any;
|
|
103
132
|
businessData: any;
|
|
104
|
-
|
|
133
|
+
stepAnswers?: Record<string, any>;
|
|
105
134
|
riskPoints?: string[];
|
|
106
|
-
|
|
135
|
+
角色池: Record<string, RoleConfig>;
|
|
107
136
|
}
|
|
108
137
|
export interface AbilityNode {
|
|
109
138
|
id: string;
|
|
@@ -175,6 +204,7 @@ export interface DimensionResult {
|
|
|
175
204
|
suggestions?: string[];
|
|
176
205
|
}
|
|
177
206
|
export interface EvaluationReport {
|
|
207
|
+
stepId?: string;
|
|
178
208
|
totalScore: number;
|
|
179
209
|
dimensions: DimensionResult[];
|
|
180
210
|
highlights: string[];
|
|
@@ -182,6 +212,33 @@ export interface EvaluationReport {
|
|
|
182
212
|
nextStepAdvice: string;
|
|
183
213
|
pass: boolean;
|
|
184
214
|
}
|
|
215
|
+
export interface StageAssessmentReport {
|
|
216
|
+
stageId: string;
|
|
217
|
+
totalScore: number;
|
|
218
|
+
pass: boolean;
|
|
219
|
+
stepBreakdown: Array<{
|
|
220
|
+
stepId: string;
|
|
221
|
+
stepName: string;
|
|
222
|
+
score: number;
|
|
223
|
+
weight: number;
|
|
224
|
+
}>;
|
|
225
|
+
consistencyIssues: Array<{
|
|
226
|
+
description: string;
|
|
227
|
+
relatedSteps: string[];
|
|
228
|
+
severity: 'info' | 'warning' | 'error';
|
|
229
|
+
}>;
|
|
230
|
+
deliverableResults: Array<{
|
|
231
|
+
deliverable: string;
|
|
232
|
+
achieved: boolean;
|
|
233
|
+
comment: string;
|
|
234
|
+
}>;
|
|
235
|
+
goalAchievement: {
|
|
236
|
+
score: number;
|
|
237
|
+
comment: string;
|
|
238
|
+
};
|
|
239
|
+
highlights: string[];
|
|
240
|
+
improvements: string[];
|
|
241
|
+
}
|
|
185
242
|
export interface ScenarioDimension {
|
|
186
243
|
key: string;
|
|
187
244
|
dimensionLabel: string;
|
|
@@ -189,7 +246,20 @@ export interface ScenarioDimension {
|
|
|
189
246
|
fieldHint?: string;
|
|
190
247
|
}
|
|
191
248
|
export interface CreatorContext {
|
|
192
|
-
|
|
249
|
+
trainingBlueprint?: TrainingBlueprint;
|
|
250
|
+
stageContracts?: StageContract[];
|
|
251
|
+
stepTaskPackages?: StepTaskPackage[];
|
|
252
|
+
stageAcceptanceRecords?: StageAcceptanceRecord[];
|
|
253
|
+
/** 两段式生成的阶段状态机,用于中断后恢复到正确的生成环节 */
|
|
254
|
+
generationPhase?: GenerationPhase;
|
|
255
|
+
/** 环节一产物,用于中断后恢复并继续环节二落地(无需重生成) */
|
|
256
|
+
phase1Artifacts?: Phase1Artifacts | null;
|
|
257
|
+
caseVariantPackages?: CaseVariantPackage[];
|
|
258
|
+
validationReport?: ValidationReport;
|
|
259
|
+
assemblyDraft?: TrainingModel;
|
|
260
|
+
assemblyDryRunResult?: AssemblyDryRunResult;
|
|
261
|
+
releaseDecision?: 'pass' | 'block';
|
|
262
|
+
basicInfo?: {
|
|
193
263
|
domain: string;
|
|
194
264
|
businessType: string;
|
|
195
265
|
targetPosition: string;
|
|
@@ -202,32 +272,48 @@ export interface CreatorContext {
|
|
|
202
272
|
};
|
|
203
273
|
intentData?: any;
|
|
204
274
|
caseScenario: {
|
|
205
|
-
|
|
206
|
-
|
|
275
|
+
caseVariantPackages: Array<{
|
|
276
|
+
variantId: string;
|
|
207
277
|
label: string;
|
|
208
|
-
|
|
278
|
+
difficulty: 'easy' | 'medium' | 'hard';
|
|
279
|
+
objectProfile: Record<string, any>;
|
|
280
|
+
keyFacts: string[];
|
|
281
|
+
constraints: string[];
|
|
282
|
+
hiddenRisks: string[];
|
|
283
|
+
disturbanceEvents: string[];
|
|
284
|
+
communicationResistance: string[];
|
|
285
|
+
standardPath: string[];
|
|
286
|
+
commonErrors: string[];
|
|
209
287
|
}>;
|
|
210
|
-
|
|
211
|
-
scenarioSeeds?: Record<string, ScenarioDimension[]>;
|
|
288
|
+
selectedVariantIds: string[];
|
|
212
289
|
};
|
|
213
290
|
outline: {
|
|
291
|
+
summary: string;
|
|
214
292
|
stages: Array<{
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
293
|
+
stageId: string;
|
|
294
|
+
stageName: string;
|
|
295
|
+
stageGoal: string;
|
|
296
|
+
entryCriteria: string[];
|
|
297
|
+
deliverables: string[];
|
|
298
|
+
keyDecisions: string[];
|
|
299
|
+
completionCriteria: string[];
|
|
300
|
+
commonMistakes: string[];
|
|
219
301
|
steps: Array<{
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
302
|
+
stepId: string;
|
|
303
|
+
stepName: string;
|
|
304
|
+
purpose: string;
|
|
305
|
+
pluginType?: string;
|
|
223
306
|
}>;
|
|
224
307
|
}>;
|
|
225
|
-
summary?: string;
|
|
226
308
|
} | null;
|
|
309
|
+
abilityMap?: import('@shared/types/index.js').AbilityMap | null;
|
|
227
310
|
outlineMessages: Array<{
|
|
228
311
|
role: 'user' | 'ai';
|
|
229
312
|
content: string;
|
|
230
313
|
}>;
|
|
314
|
+
outlineConversationId?: string | null;
|
|
315
|
+
detailConversationId?: string | null;
|
|
316
|
+
/** @deprecated 仅用于恢复旧缓存,不再写入新值 */
|
|
231
317
|
designConversationId?: string | null;
|
|
232
318
|
generatedModel?: TrainingModel;
|
|
233
319
|
caseSchema?: CaseSchema;
|
|
@@ -236,7 +322,12 @@ export interface CreatorContext {
|
|
|
236
322
|
currentStep: number;
|
|
237
323
|
savedAt: number;
|
|
238
324
|
}
|
|
239
|
-
|
|
325
|
+
/**
|
|
326
|
+
* Token 提供器。
|
|
327
|
+
* @param forceRefresh 传 true 表示强制刷新(清掉缓存并重新换取),用于 token 失效自愈;
|
|
328
|
+
* 不传或 false 走正常的缓存优先逻辑。
|
|
329
|
+
*/
|
|
330
|
+
export type TokenProvider = (forceRefresh?: boolean) => string | Promise<string>;
|
|
240
331
|
export interface CreatorNotifyAdapter {
|
|
241
332
|
success(message: string): void;
|
|
242
333
|
error(message: string): void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PluginProps } from '@shared/types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* 案例分析(对外 label:方案设计)插件 · 纯逻辑层。
|
|
5
|
+
* 范式:学生用结构化组件搭建一份报告/方案文档 → AI 按整篇报告评分 + 本地完整性兜底。
|
|
6
|
+
* 命名保留 CaseAnalysis*(PluginType 值仍 'case-analysis')。
|
|
7
|
+
*/
|
|
8
|
+
declare const CaseAnalysisPlugin: React.FC<PluginProps>;
|
|
9
|
+
export default CaseAnalysisPlugin;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { CaseAnalysisUIConfig, ReportBlock, ReportBlockKind, ReferenceDoc, RecommendedOutline, EvaluationResult } from './shared/types';
|
|
3
|
+
export type { EvaluationResult } from './shared/types';
|
|
4
|
+
export interface CaseAnalysisPluginViewProps {
|
|
5
|
+
phase: 'editing' | 'evaluating' | 'feedback';
|
|
6
|
+
scenario: string;
|
|
7
|
+
background?: string;
|
|
8
|
+
referenceDocs?: ReferenceDoc[];
|
|
9
|
+
reportTitle?: string;
|
|
10
|
+
/** 中间顶栏标签来源 */
|
|
11
|
+
stepName?: string;
|
|
12
|
+
/** 「推荐示例」套用的大纲骨架 */
|
|
13
|
+
recommendedOutline?: RecommendedOutline;
|
|
14
|
+
blocks: ReportBlock[];
|
|
15
|
+
onBlocksChange: (blocks: ReportBlock[]) => void;
|
|
16
|
+
availableComponents?: ReportBlockKind[];
|
|
17
|
+
availableFrameworks?: string[];
|
|
18
|
+
evaluation: EvaluationResult | null;
|
|
19
|
+
loading: boolean;
|
|
20
|
+
uiConfig: CaseAnalysisUIConfig;
|
|
21
|
+
onSubmit: () => void;
|
|
22
|
+
onRetry: () => void;
|
|
23
|
+
onComplete: () => void;
|
|
24
|
+
}
|
|
25
|
+
declare const CaseAnalysisPluginView: React.FC<CaseAnalysisPluginViewProps>;
|
|
26
|
+
export default CaseAnalysisPluginView;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PluginProps } from '@shared/types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* 对话式表单插件
|
|
5
|
+
* 一边与AI扮演的角色聊天,一边操作表单
|
|
6
|
+
* 复用 useDialogueLogic + useFormFillingLogic
|
|
7
|
+
*/
|
|
8
|
+
declare const DialogueFormPlugin: React.FC<PluginProps>;
|
|
9
|
+
export default DialogueFormPlugin;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { DialogueFormUIConfig } from "./shared/types";
|
|
3
|
+
interface Message {
|
|
4
|
+
role: "customer" | "teller";
|
|
5
|
+
content: string;
|
|
6
|
+
timestamp: number;
|
|
7
|
+
emotion?: "neutral" | "happy" | "confused" | "angry";
|
|
8
|
+
feedback?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DialogueFormPluginViewProps {
|
|
11
|
+
messages: Message[];
|
|
12
|
+
input: string;
|
|
13
|
+
aiResponding: boolean;
|
|
14
|
+
aiError?: string | null;
|
|
15
|
+
scenario?: string;
|
|
16
|
+
objectives?: string[];
|
|
17
|
+
tellerRoleName: string;
|
|
18
|
+
customerRoleName: string;
|
|
19
|
+
formTemplate: any;
|
|
20
|
+
formData: Record<string, any>;
|
|
21
|
+
validationErrors: Record<string, string>;
|
|
22
|
+
highlightedFields: Set<string>;
|
|
23
|
+
formInstance: any;
|
|
24
|
+
uiConfig: DialogueFormUIConfig;
|
|
25
|
+
stableFormData: Record<string, any>;
|
|
26
|
+
stableOnValueChange: (field: string, value: any) => void;
|
|
27
|
+
forceRenderKey?: number;
|
|
28
|
+
onInputChange: (value: string) => void;
|
|
29
|
+
onSend: () => void;
|
|
30
|
+
onFieldChange: (fieldName: string, value: any) => void;
|
|
31
|
+
onComplete: () => void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 对话式表单插件纯 UI 组件
|
|
35
|
+
*/
|
|
36
|
+
declare const DialogueFormPluginView: React.FC<DialogueFormPluginViewProps>;
|
|
37
|
+
export default DialogueFormPluginView;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DialogueUIConfig } from './shared/types';
|
|
3
|
+
import type { DialoguePhase } from '@shared/types/index.js';
|
|
4
|
+
type Emotion = 'neutral' | 'happy' | 'confused' | 'angry';
|
|
5
|
+
type TalkQuality = 'excellent' | 'good' | 'average' | 'poor';
|
|
6
|
+
interface Message {
|
|
7
|
+
role: 'customer' | 'teller';
|
|
8
|
+
content: string;
|
|
9
|
+
timestamp: number;
|
|
10
|
+
emotion?: Emotion;
|
|
11
|
+
feedback?: string;
|
|
12
|
+
talkQuality?: TalkQuality;
|
|
13
|
+
}
|
|
14
|
+
interface RoleProfile {
|
|
15
|
+
name: string;
|
|
16
|
+
trait?: string;
|
|
17
|
+
desc?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface DialoguePluginViewProps {
|
|
20
|
+
messages: Message[];
|
|
21
|
+
input: string;
|
|
22
|
+
aiResponding: boolean;
|
|
23
|
+
aiError?: string | null;
|
|
24
|
+
dialogueLogCount: number;
|
|
25
|
+
scenario?: string;
|
|
26
|
+
dialogueGoals?: string[];
|
|
27
|
+
tellerRoleName: string;
|
|
28
|
+
customerRoleName: string;
|
|
29
|
+
customerProfile?: RoleProfile;
|
|
30
|
+
tellerProfile?: RoleProfile;
|
|
31
|
+
uiConfig: DialogueUIConfig;
|
|
32
|
+
onInputChange: (value: string) => void;
|
|
33
|
+
onSend: () => void;
|
|
34
|
+
onComplete: () => void;
|
|
35
|
+
phases?: DialoguePhase[];
|
|
36
|
+
currentPhaseId?: string | null;
|
|
37
|
+
phaseHistory?: string[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 对话插件运行时视图(双栏:左聊天区 65% + 右信息面板 35%)。
|
|
41
|
+
* 按 yyy_v2 原型 main-content 还原;顶栏与左侧实训资料栏由引擎/公共模块统一渲染,此处不重复。
|
|
42
|
+
*/
|
|
43
|
+
declare const DialoguePluginView: React.FC<DialoguePluginViewProps>;
|
|
44
|
+
export default DialoguePluginView;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ReviewDocument, ReviewField, ReferenceDiscrepancy } from '../shared/types';
|
|
3
|
+
import type { DocumentReviewScoreResult } from '../shared/judgement';
|
|
4
|
+
/**
|
|
5
|
+
* 单据审核「找茬式」核心组件
|
|
6
|
+
*
|
|
7
|
+
* 像素级复现原型 document-review2.html 的单证区:
|
|
8
|
+
* .document-card → .tab-bar/.tab-item/.tab-badge → .tab-panel
|
|
9
|
+
* → .doc-header/.doc-title/.doc-subtitle/.doc-no
|
|
10
|
+
* → .form-section/.form-section-title → .form-grid(cols-2/3/full)
|
|
11
|
+
* → .field-item(marked/marked-error/marked-correct/locate-flash)
|
|
12
|
+
*
|
|
13
|
+
* 多份单证用 Tab(每 Tab 一份),点击 field-item 触发 onFieldClick。
|
|
14
|
+
*/
|
|
15
|
+
export interface DocumentCardProps {
|
|
16
|
+
documents: ReviewDocument[];
|
|
17
|
+
/** key = field.name(全局唯一) */
|
|
18
|
+
markedFields: Map<string, {
|
|
19
|
+
typeId: string;
|
|
20
|
+
reason?: string;
|
|
21
|
+
}>;
|
|
22
|
+
onFieldClick: (docIndex: number, field: ReviewField) => void;
|
|
23
|
+
/** 当前激活 Tab(单证)变化时回调,索引为 documents 下标。用于驱动外部底栏「当前单证」等联动 */
|
|
24
|
+
onTabChange?: (index: number) => void;
|
|
25
|
+
/** 控制 Tab 上的预设错误数 badge */
|
|
26
|
+
showExpectedCount: boolean;
|
|
27
|
+
/** 各单证预设错误数(仅 showExpectedCount 为 true 时显示) */
|
|
28
|
+
expectedCountByDoc?: Record<number, number>;
|
|
29
|
+
/** 提交后:标注命中/遗漏/误标 */
|
|
30
|
+
resultMode?: boolean;
|
|
31
|
+
/** perAnswer / falseMarks */
|
|
32
|
+
scoreResult?: DocumentReviewScoreResult;
|
|
33
|
+
/** 提交后取 correctValue 展示 */
|
|
34
|
+
answers?: ReferenceDiscrepancy[];
|
|
35
|
+
/** 高亮笔圈划的字段集合(key = field.name),对齐原型 .highlight-pen */
|
|
36
|
+
highlightedFields?: Set<string>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 主插件通过 ref 调用的命令式句柄(定位/闪烁)。
|
|
40
|
+
* DocumentCard 内部自管 activeIndex(Tab),定位需切 Tab + 滚动 + 闪烁,
|
|
41
|
+
* 故由内部暴露 locate(fieldName):找到字段所在单证 → 切 Tab → 下一帧 scrollIntoView + locate-flash。
|
|
42
|
+
*/
|
|
43
|
+
export interface DocumentCardHandle {
|
|
44
|
+
locate: (fieldName: string) => void;
|
|
45
|
+
}
|
|
46
|
+
export declare const DocumentCard: React.ForwardRefExoticComponent<DocumentCardProps & React.RefAttributes<DocumentCardHandle>>;
|
|
47
|
+
export default DocumentCard;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* 单据审核「找茬式」三栏布局容器
|
|
4
|
+
*
|
|
5
|
+
* 容器内自适应 flex 布局(对齐决策判断插件 styles.root/workspace,不再用 fixed 定位):
|
|
6
|
+
* mainLayout(横向 flex,height:100% 填满父容器,溢出收敛到各栏内部)
|
|
7
|
+
* ├─ 左:参考文档侧边栏(ReferenceDocPanel,flex 子项,固定宽 330,可折叠到 0)
|
|
8
|
+
* ├─ 中:contentArea(flex:1,自身 overflowY:auto)
|
|
9
|
+
* │ 工具栏 + 单证卡片 + 结果面板 + 底部统计条(均由 children 注入)
|
|
10
|
+
* └─ 右:标记清单面板(MarkListPanel,flex 子项,固定宽 380,可折叠到 0)
|
|
11
|
+
*
|
|
12
|
+
* 关键:三栏全部相对本容器排布。因此当外层步骤弹窗缩窄(如打开案例详情侧栏)时,
|
|
13
|
+
* 中栏 flex:1 自动收缩、左右栏随容器收敛,整组三栏随弹窗自适应;
|
|
14
|
+
* 不再依赖"头部恰好 64px"的隐式契约,也不会用 fixed 越出弹窗遮挡头部。
|
|
15
|
+
* 面板折叠/展开由各自组件用 width 过渡 + absolute 浮动按钮实现(相对本容器,position:relative)。
|
|
16
|
+
*/
|
|
17
|
+
export interface DocumentReviewLayoutProps {
|
|
18
|
+
/** 左栏(可选,已弃用):参考文档移至引擎「实训资料」资料栏统一渲染,本插件不再传 */
|
|
19
|
+
left?: React.ReactNode;
|
|
20
|
+
/** 中栏:工具栏 + 单证 + 结果 + 底栏 */
|
|
21
|
+
center: React.ReactNode;
|
|
22
|
+
/** 右栏:标记清单面板(flex 子项,含自身折叠与浮动展开按钮) */
|
|
23
|
+
right: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
export declare const DocumentReviewLayout: React.FC<DocumentReviewLayoutProps>;
|
|
26
|
+
/**
|
|
27
|
+
* 底部统计条(对齐原型 .bottom-bar)
|
|
28
|
+
*
|
|
29
|
+
* 左侧:📄 单证数量 / 📍 当前单证 / ⚠️ 预设错误数(N 受 showExpectedCount 控制)
|
|
30
|
+
* 右侧:操作提示
|
|
31
|
+
*
|
|
32
|
+
* 预设错误数仅在 showExpectedCount 为真且 expectedTotal 有值时展示该项
|
|
33
|
+
* (T9 会统一复核显隐口径,此处先按入参透传)。
|
|
34
|
+
*/
|
|
35
|
+
export interface BottomBarProps {
|
|
36
|
+
/** 单证数量 */
|
|
37
|
+
documentCount: number;
|
|
38
|
+
/** 当前单证名称 */
|
|
39
|
+
currentDocName: string;
|
|
40
|
+
/** 预设错误数(仅 showExpectedCount 时展示) */
|
|
41
|
+
expectedTotal?: number;
|
|
42
|
+
showExpectedCount: boolean;
|
|
43
|
+
/** 右侧提示文案 */
|
|
44
|
+
hint?: string;
|
|
45
|
+
}
|
|
46
|
+
export declare const BottomBar: React.FC<BottomBarProps>;
|
|
47
|
+
export default DocumentReviewLayout;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ErrorTypeOption } from '../shared/types';
|
|
3
|
+
import type { DocumentReviewScoreResult } from '../shared/judgement';
|
|
4
|
+
/**
|
|
5
|
+
* 右侧「标记清单」单条数据
|
|
6
|
+
* fieldName 全局唯一,作为定位/编辑/删除的 key。
|
|
7
|
+
*/
|
|
8
|
+
export interface MarkListItem {
|
|
9
|
+
fieldName: string;
|
|
10
|
+
fieldLabel: string;
|
|
11
|
+
docName: string;
|
|
12
|
+
typeId: string;
|
|
13
|
+
reason?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 单据审核「找茬式」右侧标记清单面板
|
|
17
|
+
*
|
|
18
|
+
* 像素级复现原型 document-review2.html 的右侧面板:
|
|
19
|
+
* .mark-panel(.collapsed / .submitted-mode)
|
|
20
|
+
* → .mark-panel-header(紫色渐变 #667eea→#764ba2,含收起按钮)
|
|
21
|
+
* → .mark-panel-stats(已标记不符点 X / N 处,count-num 24px 蓝)
|
|
22
|
+
* → .mark-panel-body
|
|
23
|
+
* → .mark-list-empty(空态)
|
|
24
|
+
* → .mark-list-item ×N(.mark-list-index / .mark-list-field-name
|
|
25
|
+
* / .mark-list-tab-tag / .mark-list-type-tag / .mark-list-reason
|
|
26
|
+
* / .mark-list-actions[定位/编辑/删除])
|
|
27
|
+
* + .mark-panel-fab(收起时浮动展开按钮)
|
|
28
|
+
*
|
|
29
|
+
* submitted 只读:隐藏编辑/删除(保留定位);依据 scoreResult 给序号/类型 tag 上色
|
|
30
|
+
* - 命中(fieldName ∈ perAnswer 且 hit)→ index-correct + type-correct(绿)
|
|
31
|
+
* - 误标(fieldName ∈ falseMarks)→ index-wrong(红)
|
|
32
|
+
*/
|
|
33
|
+
export interface MarkListPanelProps {
|
|
34
|
+
marks: MarkListItem[];
|
|
35
|
+
/** 查 typeId → label */
|
|
36
|
+
errorTypes: ErrorTypeOption[];
|
|
37
|
+
collapsed: boolean;
|
|
38
|
+
onToggleCollapsed: () => void;
|
|
39
|
+
submitted: boolean;
|
|
40
|
+
/** 提交后判定每条命中/误标 */
|
|
41
|
+
scoreResult?: DocumentReviewScoreResult;
|
|
42
|
+
onLocate: (fieldName: string) => void;
|
|
43
|
+
onEdit: (fieldName: string) => void;
|
|
44
|
+
onDelete: (fieldName: string) => void;
|
|
45
|
+
/** 控制 "/ N" 显隐 */
|
|
46
|
+
showExpectedCount: boolean;
|
|
47
|
+
/** N(预设不符点总数) */
|
|
48
|
+
expectedTotal?: number;
|
|
49
|
+
}
|
|
50
|
+
export declare const MarkListPanel: React.FC<MarkListPanelProps>;
|
|
51
|
+
export default MarkListPanel;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ErrorTypeOption } from '../shared/types';
|
|
3
|
+
/**
|
|
4
|
+
* 单据审核「找茬式」标记弹窗
|
|
5
|
+
*
|
|
6
|
+
* 像素级复现原型 document-review2.html 的标记弹窗:
|
|
7
|
+
* .mark-modal-overlay(show) → .mark-modal
|
|
8
|
+
* → .mark-modal-header
|
|
9
|
+
* → .mark-field-preview(.label / .value)
|
|
10
|
+
* → .mark-modal-body(label + .mark-error-select[optgroup] + label + .mark-reason-input)
|
|
11
|
+
* → .mark-modal-footer(.btn-cancel / .btn-confirm / 红色「取消标记」)
|
|
12
|
+
*
|
|
13
|
+
* 错误类型按 errorTypes[].group 分 <optgroup>(原型 confirmMark 行为);
|
|
14
|
+
* 未选错误类型不允许确认(原型 alert「请选择错误类型」)。
|
|
15
|
+
*
|
|
16
|
+
* existing(编辑既有标记):回填 typeId/reason,额外显示红色「取消标记」(onRemove),
|
|
17
|
+
* 「确认标记」文案改为「更新标记」(原型隐藏确认仅留删除,本实现保留更新能力以便修改类型/说明)。
|
|
18
|
+
*/
|
|
19
|
+
export interface MarkModalProps {
|
|
20
|
+
open: boolean;
|
|
21
|
+
/** 字段名预览 */
|
|
22
|
+
fieldLabel: string;
|
|
23
|
+
/** 字段值预览 */
|
|
24
|
+
fieldValue: string;
|
|
25
|
+
errorTypes: ErrorTypeOption[];
|
|
26
|
+
/** 编辑既有标记时回填 */
|
|
27
|
+
existing?: {
|
|
28
|
+
typeId: string;
|
|
29
|
+
reason?: string;
|
|
30
|
+
};
|
|
31
|
+
onConfirm: (typeId: string, reason: string) => void;
|
|
32
|
+
/** 仅 existing 时显示「取消标记」 */
|
|
33
|
+
onRemove?: () => void;
|
|
34
|
+
onCancel: () => void;
|
|
35
|
+
}
|
|
36
|
+
export declare const MarkModal: React.FC<MarkModalProps>;
|
|
37
|
+
export default MarkModal;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ReviewDocument, ReferenceDiscrepancy, ErrorTypeOption } from '../shared/types';
|
|
3
|
+
import type { DocumentReviewScoreResult } from '../shared/judgement';
|
|
4
|
+
/**
|
|
5
|
+
* 单据审核「找茬式」提交后结果面板 —— 不符点清单
|
|
6
|
+
*
|
|
7
|
+
* 像素级复现原型 document-review2.html 的 .result-panel:
|
|
8
|
+
* .result-panel
|
|
9
|
+
* .result-header(黄色渐变)
|
|
10
|
+
* h3「📋 审核结果 — 不符点清单」
|
|
11
|
+
* .result-stats(.stat-item found/missed/wrong,取自 scoreResult)
|
|
12
|
+
* .result-body
|
|
13
|
+
* .discrepancy-table(状态 / 字段名称 / 所属单证 / 错误类型 / 原值→正确值)
|
|
14
|
+
* - 命中(hit):✅、原值划线 + 绿色 correctValue、explanation、学员备注(蓝)
|
|
15
|
+
* - 遗漏:❌、「【未标记】原值:X → 应为:Y」(红)、explanation
|
|
16
|
+
* - 误标(falseMarks):⚠️、「误标」、该字段无误提示 + 学员备注
|
|
17
|
+
*/
|
|
18
|
+
export interface ResultPanelProps {
|
|
19
|
+
scoreResult: DocumentReviewScoreResult;
|
|
20
|
+
answers: ReferenceDiscrepancy[];
|
|
21
|
+
/** 用于按 fieldName 查 字段label / 原值 / 所属单证名 */
|
|
22
|
+
documents: ReviewDocument[];
|
|
23
|
+
/** typeId → label */
|
|
24
|
+
errorTypes: ErrorTypeOption[];
|
|
25
|
+
/** 学员备注 reason(fieldName → { typeId, reason }) */
|
|
26
|
+
marks: Map<string, {
|
|
27
|
+
typeId: string;
|
|
28
|
+
reason?: string;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
export declare const ResultPanel: React.FC<ResultPanelProps>;
|
|
32
|
+
export default ResultPanel;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* 单据审核「找茬式」顶部工具栏
|
|
4
|
+
*
|
|
5
|
+
* 像素级复现原型 document-review2.html 的 .toolbar:
|
|
6
|
+
* .toolbar
|
|
7
|
+
* .toolbar-left
|
|
8
|
+
* .tool-btn(高亮笔,active 态由 highlightActive 控制)
|
|
9
|
+
* .tool-btn(审核提示,点击弹出 hintText)
|
|
10
|
+
* .tool-btn(清除标注)
|
|
11
|
+
* .toolbar-right
|
|
12
|
+
* .status-badge(.reviewing / .submitted)(带脉冲圆点)
|
|
13
|
+
* 已标记 X 处
|
|
14
|
+
* .submit-btn(提交审核 / 已提交禁用)
|
|
15
|
+
*
|
|
16
|
+
* 注意:高亮笔在字段上的显示,以及「点击字段切高亮 vs 开标记弹窗」的分流由
|
|
17
|
+
* 主插件 + DocumentCard 接线,本组件只负责按钮与 active 态。已砍掉放大镜。
|
|
18
|
+
*/
|
|
19
|
+
export interface ToolbarProps {
|
|
20
|
+
markedCount: number;
|
|
21
|
+
/** 高亮笔是否激活 */
|
|
22
|
+
highlightActive: boolean;
|
|
23
|
+
onToggleHighlight: () => void;
|
|
24
|
+
onClearMarks: () => void;
|
|
25
|
+
onSubmit: () => void;
|
|
26
|
+
submitted: boolean;
|
|
27
|
+
/** 审核提示文案(默认给通用操作指引) */
|
|
28
|
+
hintText?: string;
|
|
29
|
+
}
|
|
30
|
+
export declare const Toolbar: React.FC<ToolbarProps>;
|
|
31
|
+
export default Toolbar;
|