Ver código fonte

言语训练基础框架搭建

JutarryWu 2 semanas atrás
pai
commit
dd5691389b

+ 192 - 148
src/types/components.d.ts

@@ -7,153 +7,197 @@ export {}
 
 declare module 'vue' {
   export interface GlobalComponents {
-    AddTester: (typeof import('./../views/tester/components/AddTester/index.vue'))['default']
-    ADLPower: (typeof import('./../views/gameCenter/components/games/ADLPower/index.vue'))['default']
-    AppLink: (typeof import('./../components/AppLink/index.vue'))['default']
-    AppMain: (typeof import('./../layout/components/AppMain/index.vue'))['default']
-    AssignTraining: (typeof import('./../views/gameCenter/components/games/AssignTraining/index.vue'))['default']
-    ATMainShow: (typeof import('./../views/gameCenter/components/games/AssignTraining/components/ATMainShow/index.vue'))['default']
-    Avatar: (typeof import('./../components/Chat/Avatar/index.vue'))['default']
-    BarChart: (typeof import('./../views/dashboard/components/BarChart.vue'))['default']
-    IndexSmallTitle: (typeof import('./../views/dashboard/components/IndexSmallTitle.vue'))['default']
-    IndexBarA: (typeof import('./../views/dashboard/components/IndexBarA.vue'))['default']
-    IndexBarS: (typeof import('./../views/dashboard/components/IndexBarS.vue'))['default']
-    IndexSmallPieS: (typeof import('./../views/dashboard/components/IndexSmallPieS.vue'))['default']
-    IndexProgressBar: (typeof import('./../views/dashboard/components/IndexProgressBar.vue'))['default']
-    IndexSmoothLineS: (typeof import('./../views/dashboard/components/IndexSmoothLineS.vue'))['default']
-    Breadcrumb: (typeof import('./../components/Breadcrumb/index.vue'))['default']
-    BreadthTraining: (typeof import('./../views/gameCenter/components/games/BreadthTraining/index.vue'))['default']
-    BTRandomPentagram: (typeof import('./../views/gameCenter/components/games/BreadthTraining/components/BTRandomPentagram/index.vue'))['default']
-    CalculationExercises: (typeof import('./../views/gameCenter/components/games/CalculationExercises/index.vue'))['default']
-    CalculationRules: (typeof import('./../views/gameCenter/components/games/CalculationRules/index.vue'))['default']
-    CaseAdd: (typeof import('./../views/tester/components/CaseInformation/CaseAdd/index.vue'))['default']
-    CaseInformation: (typeof import('./../views/tester/components/CaseInformation/index.vue'))['default']
-    CaseLog: (typeof import('./../views/tester/components/CaseInformation/CaseLog/index.vue'))['default']
-    CExercisesMainShow: (typeof import('./../views/gameCenter/components/games/CalculationExercises/components/CExercisesMainShow/index.vue'))['default']
-    CharacterMemory: (typeof import('./../views/gameCenter/components/games/CharacterMemory/index.vue'))['default']
-    CharacterMemoryChild: (typeof import('./../views/gameCenter/components/games/CharacterMemory/components/CharacterMemoryChild/index.vue'))['default']
-    ChatComponent: (typeof import('./../components/Chat/ChatComponent/index.vue'))['default']
-    CocosDialog: (typeof import('./../views/gameCenter/components/games/CocosDialog/index.vue'))['default']
-    CognitiveAbility5EC301: (typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbility5EC301/index.vue'))['default']
-    CognitiveAbilitySellingTest: (typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilitySellingTest/index.vue'))['default']
-    CognitiveAbilityStarShapedSales: (typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityStarShapedSales/index.vue'))['default']
-    CognitiveAbilityTask: (typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/index.vue'))['default']
-    CognitiveAbilityTaskBoston: (typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskBoston/index.vue'))['default']
-    CognitiveAbilityTaskDigitalMemoryTest: (typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskDigitalMemoryTest/index.vue'))['default']
-    CognitiveAbilityTaskDrawClock: (typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskDrawClock/index.vue'))['default']
-    CognitiveAbilityTaskMMSE: (typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskMMSE/index.vue'))['default']
-    CognitiveAbilityTaskMoca: (typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskMoca/index.vue'))['default']
-    CognitiveAbilityWisconsin: (typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityWisconsin/index.vue'))['default']
-    Computation: (typeof import('./../views/gameCenter/components/games/Computation/index.vue'))['default']
-    ConceptFormation: (typeof import('./../views/gameCenter/components/games/ConceptFormation/index.vue'))['default']
-    CountingDots: (typeof import('./../views/gameCenter/components/games/CountingDots/index.vue'))['default']
-    CountingDotsChild: (typeof import('./../views/gameCenter/components/games/CountingDots/components/CountingDotsChild/index.vue'))['default']
-    CRRuleShow: (typeof import('./../views/gameCenter/components/games/CalculationRules/components/CRRuleShow/index.vue'))['default']
-    CTopicShow: (typeof import('./../views/gameCenter/components/games/Computation/components/CTopicShow/index.vue'))['default']
-    DeptTree: (typeof import('./../views/system/user/components/dept-tree.vue'))['default']
-    Dictionary: (typeof import('./../components/Dictionary/index.vue'))['default']
-    DigitalUnderstanding: (typeof import('./../views/gameCenter/components/games/DigitalUnderstanding/index.vue'))['default']
-    DUMainShow: (typeof import('./../views/gameCenter/components/games/DigitalUnderstanding/components/DUMainShow/index.vue'))['default']
-    EditDiv: (typeof import('./../components/Chat/EditDiv/index.vue'))['default']
-    EmojiSelector: (typeof import('./../components/Chat/emoji-selector/index.vue'))['default']
-    FileUpload: (typeof import('./../components/Upload/FileUpload.vue'))['default']
-    FindNumberTraining: (typeof import('./../views/gameCenter/components/games/FindNumberTraining/index.vue'))['default']
-    Fish: (typeof import('./../views/gameCenter/components/games/SuppressionControlTest/components/fish/index.vue'))['default']
-    FixedTransfer: (typeof import('./../views/gameCenter/components/games/FixedTransfer/index.vue'))['default']
-    FluidDnd: (typeof import('./../views/gameCenter/components/games/DigitalUnderstanding/components/FluidDnd/index.vue'))['default']
-    FormatCountDown: (typeof import('./../components/FormatCountDown/index.vue'))['default']
-    FunnelChart: (typeof import('./../views/dashboard/components/FunnelChart.vue'))['default']
-    GithubCorner: (typeof import('./../components/GithubCorner/index.vue'))['default']
-    Hamburger: (typeof import('./../components/Hamburger/index.vue'))['default']
-    IconSelect: (typeof import('./../components/IconSelect/index.vue'))['default']
-    IndexBack: (typeof import('./../components/Chat/emoji-selector/index-back.vue'))['default']
-    InputWithBorder: (typeof import('./../components/WuInput/InputWithBorder/index.vue'))['default']
-    Introduction: (typeof import('./../views/gameCenter/components/Introduction/index.vue'))['default']
-    LangSelect: (typeof import('./../components/LangSelect/index.vue'))['default']
-    LayoutSelect: (typeof import('./../layout/components/Settings/components/LayoutSelect.vue'))['default']
-    LogicalReasoning: (typeof import('./../views/gameCenter/components/games/LogicalReasoning/index.vue'))['default']
-    NumMdel: (typeof import('./../views/gameCenter/components/games/LogicalReasoning/components/numMdel/index.vue'))['default']
-    Ability: (typeof import('@/views/gameCenter/components/games/WorkingMemory/components/ability/index.vue'))['default']
-    Blend: (typeof import('@/views/gameCenter/components/games/WorkingMemory/components/blend/index.vue'))['default']
-    Login: (typeof import('./../views/login/components/login/index.vue'))['default']
-    MessageItem: (typeof import('./../components/Chat/MessageItem/index.vue'))['default']
-    MultiUpload: (typeof import('./../components/Upload/MultiUpload.vue'))['default']
-    MyFullScreenDialog: (typeof import('./../components/MyFullScreenDialog/index.vue'))['default']
-    NavBar: (typeof import('./../layout/components/NavBar/index.vue'))['default']
-    NavbarLeft: (typeof import('./../layout/components/NavBar/components/NavbarLeft.vue'))['default']
-    NavbarRight: (typeof import('./../layout/components/NavBar/components/NavbarRight.vue'))['default']
-    ObjectRecognition: (typeof import('./../views/gameCenter/components/games/ObjectRecognition/index.vue'))['default']
-    PageContent: (typeof import('./../components/CURD/PageContent.vue'))['default']
-    PageForm: (typeof import('./../components/CURD/PageForm.vue'))['default']
-    PageModal: (typeof import('./../components/CURD/PageModal.vue'))['default']
-    PageSearch: (typeof import('./../components/CURD/PageSearch.vue'))['default']
-    Pagination: (typeof import('./../components/Pagination/index.vue'))['default']
-    PicturePuzzle: (typeof import('./../views/gameCenter/components/games/PicturePuzzle/index.vue'))['default']
-    PicturePuzzleChild: (typeof import('./../views/gameCenter/components/games/PicturePuzzle/components/PicturePuzzleChild/index.vue'))['default']
-    PieChart: (typeof import('./../views/dashboard/components/PieChart.vue'))['default']
-    RadarChart: (typeof import('./../views/dashboard/components/RadarChart.vue'))['default']
-    Register: (typeof import('./../views/login/components/register/index.vue'))['default']
-    RehabilitationEvaluationLog: (typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationLog/index.vue'))['default']
-    RehabilitationEvaluationLogDetail: (typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationLogDetail/index.vue'))['default']
-    RehabilitationEvaluationLogIntro: (typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationLogIntro/index.vue'))['default']
-    RehabilitationEvaluationMgr: (typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationMgr/index.vue'))['default']
-    RehabilitationEvaluationMgrCognition: (typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationMgr/components/RehabilitationEvaluationMgrCognition/index.vue'))['default']
-    RehabilitationEvaluationMgrScale: (typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationMgr/components/RehabilitationEvaluationMgrScale/index.vue'))['default']
-    RehabilitationEvaluationReport: (typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationReport/index.vue'))['default']
-    RehabilitationEvaluationReportLog: (typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationReportLog/index.vue'))['default']
-    RehabilitationEvaluationResultDetail: (typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationResultDetail/index.vue'))['default']
-    RehabilitationEvaluationResultList: (typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationResultList/index.vue'))['default']
-    RehabilitationEvaluationScaleTestPage: (typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationScaleTestPage/index.vue'))['default']
-    RehabilitationGoals: (typeof import('./../views/tester/components/RehabilitationGoals/index.vue'))['default']
-    RehabilitationTrainingAchievement: (typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingAchievement/index.vue'))['default']
-    RehabilitationTrainingAdd: (typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingAdd/index.vue'))['default']
-    RehabilitationTrainingAddTestItem: (typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingAdd/components/RehabilitationTrainingAddTestItem/index.vue'))['default']
-    RehabilitationTrainingDetailAnalysis: (typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingAchievement/components/RehabilitationTrainingDetailAnalysis/index.vue'))['default']
-    RehabilitationTrainingList: (typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingList/index.vue'))['default']
-    RehabilitationTrainingTestItem: (typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingList/components/RehabilitationTrainingTestItem/index.vue'))['default']
-    ResetPsw: (typeof import('./../views/login/components/resetPsw/index.vue'))['default']
-    ResidualDialog: (typeof import('./../components/ResidualDialog/index.vue'))['default']
-    ResidueRecognition: (typeof import('./../views/gameCenter/components/games/ResidueRecognition/index.vue'))['default']
-    RightToLeftDiv: (typeof import('./../components/MoveDiv/RightToLeftDiv/index.vue'))['default']
-    RouterLink: (typeof import('vue-router'))['RouterLink']
-    RouterView: (typeof import('vue-router'))['RouterView']
-    SeriesInference: (typeof import('./../views/gameCenter/components/games/SeriesInference/index.vue'))['default']
-    SeriesInferenceChild: (typeof import('./../views/gameCenter/components/games/SeriesInference/components/SeriesInferenceChild/index.vue'))['default']
-    Settings: (typeof import('./../layout/components/Settings/index.vue'))['default']
-    SetTransferTest: (typeof import('./../views/gameCenter/components/games/SetTransferTest/index.vue'))['default']
-    Sidebar: (typeof import('./../layout/components/Sidebar/index.vue'))['default']
-    SidebarLogo: (typeof import('./../layout/components/Sidebar/components/SidebarLogo.vue'))['default']
-    SidebarMenu: (typeof import('./../layout/components/Sidebar/components/SidebarMenu.vue'))['default']
-    SidebarMenuItem: (typeof import('./../layout/components/Sidebar/components/SidebarMenuItem.vue'))['default']
-    SidebarMenuItemTitle: (typeof import('./../layout/components/Sidebar/components/SidebarMenuItemTitle.vue'))['default']
-    SidebarMixTopMenu: (typeof import('./../layout/components/Sidebar/components/SidebarMixTopMenu.vue'))['default']
-    SimpleTitle: (typeof import('./../components/SimpleTitle/index.vue'))['default']
-    SingleUpload: (typeof import('./../components/Upload/SingleUpload.vue'))['default']
-    SizeSelect: (typeof import('./../components/SizeSelect/index.vue'))['default']
-    SpatialPositioning: (typeof import('./../views/gameCenter/components/games/SpatialPositioning/index.vue'))['default']
-    SuppressionControlTest: (typeof import('./../views/gameCenter/components/games/SuppressionControlTest/index.vue'))['default']
-    SvgIcon: (typeof import('./../components/SvgIcon/index.vue'))['default']
-    TableHeaderDiv: (typeof import('./../views/tester/manage/manage/components/TableHeaderDiv/index.vue'))['default']
-    TableInfoItem: (typeof import('./../views/tester/manage/manage/components/TableInfoItem/index.vue'))['default']
-    TableInfoLine: (typeof import('./../views/tester/manage/manage/components/TableInfoLine/index.vue'))['default']
-    TableSelect: (typeof import('./../components/TableSelect/index.vue'))['default']
-    TagsView: (typeof import('./../layout/components/TagsView/index.vue'))['default']
-    TesterManageTableButtons: (typeof import('./../views/tester/manage/manage/components/TesterManageTableButtons/index.vue'))['default']
-    TesterPersonalInfo: (typeof import('./../views/tester/components/TesterPersonalInfo/index.vue'))['default']
-    ThemeColorPicker: (typeof import('./../layout/components/Settings/components/ThemeColorPicker.vue'))['default']
-    TopRightClose: (typeof import('./../components/Close/TopRightClose/index.vue'))['default']
-    TotalScore: (typeof import('./../components/TotalScore/index.vue'))['default']
-    TransferTraining: (typeof import('./../views/gameCenter/components/games/TransferTraining/index.vue'))['default']
-    TTimerBtn: (typeof import('./../components/Button/TTimerBtn/index.vue'))['default']
-    TTShapeShow: (typeof import('./../views/gameCenter/components/games/TransferTraining/components/TTShapeShow/index.vue'))['default']
-    UserImport: (typeof import('./../views/system/user/components/user-import.vue'))['default']
-    VerbalMemory: (typeof import('./../views/gameCenter/components/games/VerbalMemory/index.vue'))['default']
-    VideoTemp: (typeof import('./../components/VideoTemp/index.vue'))['default']
-    VirtualKeyboardNumberInput: (typeof import('./../views/gameCenter/components/games/AssignTraining/components/VirtualKeyboardNumberInput/index.vue'))['default']
-    VoiceImp: (typeof import('./../components/VoiceImp/index.vue'))['default']
-    WangEditor: (typeof import('./../components/WangEditor/index.vue'))['default']
-    WorkingMemory: (typeof import('./../views/gameCenter/components/games/WorkingMemory/index.vue'))['default']
-    WuCountDown: (typeof import('./../components/WuCountDown/index.vue'))['default']
-    WuIsCorrect: (typeof import('./../components/WuIsCorrect/index.vue'))['default']
+    Ability: typeof import('./../views/gameCenter/components/games/WorkingMemory/components/ability/index.vue')['default']
+    AddTester: typeof import('./../views/tester/components/AddTester/index.vue')['default']
+    ADLPower: typeof import('./../views/gameCenter/components/games/ADLPower/index.vue')['default']
+    AppLink: typeof import('./../components/AppLink/index.vue')['default']
+    AppMain: typeof import('./../layout/components/AppMain/index.vue')['default']
+    AssignTraining: typeof import('./../views/gameCenter/components/games/AssignTraining/index.vue')['default']
+    ATMainShow: typeof import('./../views/gameCenter/components/games/AssignTraining/components/ATMainShow/index.vue')['default']
+    Avatar: typeof import('./../components/Chat/Avatar/index.vue')['default']
+    BarChart: typeof import('./../views/dashboard/components/BarChart.vue')['default']
+    Blend: typeof import('./../views/gameCenter/components/games/WorkingMemory/components/blend/index.vue')['default']
+    Breadcrumb: typeof import('./../components/Breadcrumb/index.vue')['default']
+    BreadthTraining: typeof import('./../views/gameCenter/components/games/BreadthTraining/index.vue')['default']
+    BTRandomPentagram: typeof import('./../views/gameCenter/components/games/BreadthTraining/components/BTRandomPentagram/index.vue')['default']
+    CalculationExercises: typeof import('./../views/gameCenter/components/games/CalculationExercises/index.vue')['default']
+    CalculationRules: typeof import('./../views/gameCenter/components/games/CalculationRules/index.vue')['default']
+    CaseAdd: typeof import('./../views/tester/components/CaseInformation/CaseAdd/index.vue')['default']
+    CaseInformation: typeof import('./../views/tester/components/CaseInformation/index.vue')['default']
+    CaseLog: typeof import('./../views/tester/components/CaseInformation/CaseLog/index.vue')['default']
+    CExercisesMainShow: typeof import('./../views/gameCenter/components/games/CalculationExercises/components/CExercisesMainShow/index.vue')['default']
+    CharacterMemory: typeof import('./../views/gameCenter/components/games/CharacterMemory/index.vue')['default']
+    CharacterMemoryChild: typeof import('./../views/gameCenter/components/games/CharacterMemory/components/CharacterMemoryChild/index.vue')['default']
+    ChatComponent: typeof import('./../components/Chat/ChatComponent/index.vue')['default']
+    CocosDialog: typeof import('./../views/gameCenter/components/games/CocosDialog/index.vue')['default']
+    CognitiveAbility5EC301: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbility5EC301/index.vue')['default']
+    CognitiveAbilitySellingTest: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilitySellingTest/index.vue')['default']
+    CognitiveAbilityStarShapedSales: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityStarShapedSales/index.vue')['default']
+    CognitiveAbilityTask: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/index.vue')['default']
+    CognitiveAbilityTaskAuditoryTraining: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskAuditoryTraining/index.vue')['default']
+    CognitiveAbilityTaskBoston: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskBoston/index.vue')['default']
+    CognitiveAbilityTaskDigitalMemoryTest: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskDigitalMemoryTest/index.vue')['default']
+    CognitiveAbilityTaskDrawClock: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskDrawClock/index.vue')['default']
+    CognitiveAbilityTaskMMSE: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskMMSE/index.vue')['default']
+    CognitiveAbilityTaskMoca: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskMoca/index.vue')['default']
+    CognitiveAbilityTaskOralExpression: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskOralExpression/index.vue')['default']
+    CognitiveAbilityTaskVisualTraining: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskVisualTraining/index.vue')['default']
+    CognitiveAbilityWisconsin: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityWisconsin/index.vue')['default']
+    Computation: typeof import('./../views/gameCenter/components/games/Computation/index.vue')['default']
+    ConceptFormation: typeof import('./../views/gameCenter/components/games/ConceptFormation/index.vue')['default']
+    CountingDots: typeof import('./../views/gameCenter/components/games/CountingDots/index.vue')['default']
+    CountingDotsChild: typeof import('./../views/gameCenter/components/games/CountingDots/components/CountingDotsChild/index.vue')['default']
+    CRRuleShow: typeof import('./../views/gameCenter/components/games/CalculationRules/components/CRRuleShow/index.vue')['default']
+    CTopicShow: typeof import('./../views/gameCenter/components/games/Computation/components/CTopicShow/index.vue')['default']
+    DeptTree: typeof import('./../views/system/user/components/dept-tree.vue')['default']
+    Dictionary: typeof import('./../components/Dictionary/index.vue')['default']
+    DigitalUnderstanding: typeof import('./../views/gameCenter/components/games/DigitalUnderstanding/index.vue')['default']
+    DUMainShow: typeof import('./../views/gameCenter/components/games/DigitalUnderstanding/components/DUMainShow/index.vue')['default']
+    EditDiv: typeof import('./../components/Chat/EditDiv/index.vue')['default']
+    ElBacktop: typeof import('element-plus/es')['ElBacktop']
+    ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
+    ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
+    ElButton: typeof import('element-plus/es')['ElButton']
+    ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
+    ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
+    ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
+    ElDialog: typeof import('element-plus/es')['ElDialog']
+    ElDivider: typeof import('element-plus/es')['ElDivider']
+    ElDrawer: typeof import('element-plus/es')['ElDrawer']
+    ElDropdown: typeof import('element-plus/es')['ElDropdown']
+    ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
+    ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
+    ElForm: typeof import('element-plus/es')['ElForm']
+    ElFormItem: typeof import('element-plus/es')['ElFormItem']
+    ElIcon: typeof import('element-plus/es')['ElIcon']
+    ElImage: typeof import('element-plus/es')['ElImage']
+    ElMenu: typeof import('element-plus/es')['ElMenu']
+    ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
+    ElOption: typeof import('element-plus/es')['ElOption']
+    ElPageHeader: typeof import('element-plus/es')['ElPageHeader']
+    ElPagination: typeof import('element-plus/es')['ElPagination']
+    ElProgress: typeof import('element-plus/es')['ElProgress']
+    ElRadio: typeof import('element-plus/es')['ElRadio']
+    ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
+    ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
+    ElSelect: typeof import('element-plus/es')['ElSelect']
+    ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
+    ElSwitch: typeof import('element-plus/es')['ElSwitch']
+    ElTooltip: typeof import('element-plus/es')['ElTooltip']
+    ElWatermark: typeof import('element-plus/es')['ElWatermark']
+    EmojiSelector: typeof import('./../components/Chat/emoji-selector/index.vue')['default']
+    FileUpload: typeof import('./../components/Upload/FileUpload.vue')['default']
+    FindNumberTraining: typeof import('./../views/gameCenter/components/games/FindNumberTraining/index.vue')['default']
+    Fish: typeof import('./../views/gameCenter/components/games/SuppressionControlTest/components/fish/index.vue')['default']
+    FixedTransfer: typeof import('./../views/gameCenter/components/games/FixedTransfer/index.vue')['default']
+    FluidDnd: typeof import('./../views/gameCenter/components/games/DigitalUnderstanding/components/FluidDnd/index.vue')['default']
+    FormatCountDown: typeof import('./../components/FormatCountDown/index.vue')['default']
+    FunnelChart: typeof import('./../views/dashboard/components/FunnelChart.vue')['default']
+    GithubCorner: typeof import('./../components/GithubCorner/index.vue')['default']
+    Hamburger: typeof import('./../components/Hamburger/index.vue')['default']
+    IconSelect: typeof import('./../components/IconSelect/index.vue')['default']
+    IEpArrowLeft: typeof import('~icons/ep/arrow-left')['default']
+    IEpArrowRight: typeof import('~icons/ep/arrow-right')['default']
+    IEpClose: typeof import('~icons/ep/close')['default']
+    IEpRefresh: typeof import('~icons/ep/refresh')['default']
+    IEpSearch: typeof import('~icons/ep/search')['default']
+    IEpTimer: typeof import('~icons/ep/timer')['default']
+    IEpUpload: typeof import('~icons/ep/upload')['default']
+    IndexBack: typeof import('./../components/Chat/emoji-selector/index-back.vue')['default']
+    IndexBarA: typeof import('./../views/dashboard/components/IndexBarA.vue')['default']
+    IndexBarS: typeof import('./../views/dashboard/components/IndexBarS.vue')['default']
+    IndexProgressBar: typeof import('./../views/dashboard/components/IndexProgressBar.vue')['default']
+    IndexSmallPieS: typeof import('./../views/dashboard/components/IndexSmallPieS.vue')['default']
+    IndexSmallTitle: typeof import('./../views/dashboard/components/IndexSmallTitle.vue')['default']
+    IndexSmoothLineS: typeof import('./../views/dashboard/components/IndexSmoothLineS.vue')['default']
+    InputWithBorder: typeof import('./../components/WuInput/InputWithBorder/index.vue')['default']
+    Introduction: typeof import('./../views/gameCenter/components/Introduction/index.vue')['default']
+    LangSelect: typeof import('./../components/LangSelect/index.vue')['default']
+    LayoutSelect: typeof import('./../layout/components/Settings/components/LayoutSelect.vue')['default']
+    LogicalReasoning: typeof import('./../views/gameCenter/components/games/LogicalReasoning/index.vue')['default']
+    Login: typeof import('./../views/login/components/login/index.vue')['default']
+    MessageItem: typeof import('./../components/Chat/MessageItem/index.vue')['default']
+    MultiUpload: typeof import('./../components/Upload/MultiUpload.vue')['default']
+    MyFullScreenDialog: typeof import('./../components/MyFullScreenDialog/index.vue')['default']
+    NavBar: typeof import('./../layout/components/NavBar/index.vue')['default']
+    NavbarLeft: typeof import('./../layout/components/NavBar/components/NavbarLeft.vue')['default']
+    NavbarRight: typeof import('./../layout/components/NavBar/components/NavbarRight.vue')['default']
+    NumMdel: typeof import('./../views/gameCenter/components/games/LogicalReasoning/components/numMdel/index.vue')['default']
+    ObjectRecognition: typeof import('./../views/gameCenter/components/games/ObjectRecognition/index.vue')['default']
+    PageContent: typeof import('./../components/CURD/PageContent.vue')['default']
+    PageForm: typeof import('./../components/CURD/PageForm.vue')['default']
+    PageModal: typeof import('./../components/CURD/PageModal.vue')['default']
+    PageSearch: typeof import('./../components/CURD/PageSearch.vue')['default']
+    Pagination: typeof import('./../components/Pagination/index.vue')['default']
+    PicturePuzzle: typeof import('./../views/gameCenter/components/games/PicturePuzzle/index.vue')['default']
+    PicturePuzzleChild: typeof import('./../views/gameCenter/components/games/PicturePuzzle/components/PicturePuzzleChild/index.vue')['default']
+    PieChart: typeof import('./../views/dashboard/components/PieChart.vue')['default']
+    RadarChart: typeof import('./../views/dashboard/components/RadarChart.vue')['default']
+    Register: typeof import('./../views/login/components/register/index.vue')['default']
+    RehabilitationEvaluationLog: typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationLog/index.vue')['default']
+    RehabilitationEvaluationLogDetail: typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationLogDetail/index.vue')['default']
+    RehabilitationEvaluationLogIntro: typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationLogIntro/index.vue')['default']
+    RehabilitationEvaluationMgr: typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationMgr/index.vue')['default']
+    RehabilitationEvaluationMgrCognition: typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationMgr/components/RehabilitationEvaluationMgrCognition/index.vue')['default']
+    RehabilitationEvaluationMgrScale: typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationMgr/components/RehabilitationEvaluationMgrScale/index.vue')['default']
+    RehabilitationEvaluationReport: typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationReport/index.vue')['default']
+    RehabilitationEvaluationReportLog: typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationReportLog/index.vue')['default']
+    RehabilitationEvaluationResultDetail: typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationResultDetail/index.vue')['default']
+    RehabilitationEvaluationResultList: typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationResultList/index.vue')['default']
+    RehabilitationEvaluationScaleTestPage: typeof import('./../views/tester/components/RehabilitationEvaluation/RehabilitationEvaluationScaleTestPage/index.vue')['default']
+    RehabilitationGoals: typeof import('./../views/tester/components/RehabilitationGoals/index.vue')['default']
+    RehabilitationTrainingAchievement: typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingAchievement/index.vue')['default']
+    RehabilitationTrainingAdd: typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingAdd/index.vue')['default']
+    RehabilitationTrainingAddTestItem: typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingAdd/components/RehabilitationTrainingAddTestItem/index.vue')['default']
+    RehabilitationTrainingDetailAnalysis: typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingAchievement/components/RehabilitationTrainingDetailAnalysis/index.vue')['default']
+    RehabilitationTrainingList: typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingList/index.vue')['default']
+    RehabilitationTrainingTestItem: typeof import('./../views/tester/components/RehabilitationTraining/RehabilitationTrainingList/components/RehabilitationTrainingTestItem/index.vue')['default']
+    ResetPsw: typeof import('./../views/login/components/resetPsw/index.vue')['default']
+    ResidualDialog: typeof import('./../components/ResidualDialog/index.vue')['default']
+    ResidueRecognition: typeof import('./../views/gameCenter/components/games/ResidueRecognition/index.vue')['default']
+    RightToLeftDiv: typeof import('./../components/MoveDiv/RightToLeftDiv/index.vue')['default']
+    RouterLink: typeof import('vue-router')['RouterLink']
+    RouterView: typeof import('vue-router')['RouterView']
+    SeriesInference: typeof import('./../views/gameCenter/components/games/SeriesInference/index.vue')['default']
+    SeriesInferenceChild: typeof import('./../views/gameCenter/components/games/SeriesInference/components/SeriesInferenceChild/index.vue')['default']
+    Settings: typeof import('./../layout/components/Settings/index.vue')['default']
+    SetTransferTest: typeof import('./../views/gameCenter/components/games/SetTransferTest/index.vue')['default']
+    Sidebar: typeof import('./../layout/components/Sidebar/index.vue')['default']
+    SidebarLogo: typeof import('./../layout/components/Sidebar/components/SidebarLogo.vue')['default']
+    SidebarMenu: typeof import('./../layout/components/Sidebar/components/SidebarMenu.vue')['default']
+    SidebarMenuItem: typeof import('./../layout/components/Sidebar/components/SidebarMenuItem.vue')['default']
+    SidebarMenuItemTitle: typeof import('./../layout/components/Sidebar/components/SidebarMenuItemTitle.vue')['default']
+    SidebarMixTopMenu: typeof import('./../layout/components/Sidebar/components/SidebarMixTopMenu.vue')['default']
+    SimpleTitle: typeof import('./../components/SimpleTitle/index.vue')['default']
+    SingleUpload: typeof import('./../components/Upload/SingleUpload.vue')['default']
+    SizeSelect: typeof import('./../components/SizeSelect/index.vue')['default']
+    SpatialPositioning: typeof import('./../views/gameCenter/components/games/SpatialPositioning/index.vue')['default']
+    SuppressionControlTest: typeof import('./../views/gameCenter/components/games/SuppressionControlTest/index.vue')['default']
+    SvgIcon: typeof import('./../components/SvgIcon/index.vue')['default']
+    TableHeaderDiv: typeof import('./../views/tester/manage/manage/components/TableHeaderDiv/index.vue')['default']
+    TableInfoItem: typeof import('./../views/tester/manage/manage/components/TableInfoItem/index.vue')['default']
+    TableInfoLine: typeof import('./../views/tester/manage/manage/components/TableInfoLine/index.vue')['default']
+    TableSelect: typeof import('./../components/TableSelect/index.vue')['default']
+    TagsView: typeof import('./../layout/components/TagsView/index.vue')['default']
+    TesterManageTableButtons: typeof import('./../views/tester/manage/manage/components/TesterManageTableButtons/index.vue')['default']
+    TesterPersonalInfo: typeof import('./../views/tester/components/TesterPersonalInfo/index.vue')['default']
+    ThemeColorPicker: typeof import('./../layout/components/Settings/components/ThemeColorPicker.vue')['default']
+    TopRightClose: typeof import('./../components/Close/TopRightClose/index.vue')['default']
+    TotalScore: typeof import('./../components/TotalScore/index.vue')['default']
+    TransferTraining: typeof import('./../views/gameCenter/components/games/TransferTraining/index.vue')['default']
+    TTimerBtn: typeof import('./../components/Button/TTimerBtn/index.vue')['default']
+    TTShapeShow: typeof import('./../views/gameCenter/components/games/TransferTraining/components/TTShapeShow/index.vue')['default']
+    UserImport: typeof import('./../views/system/user/components/user-import.vue')['default']
+    VerbalMemory: typeof import('./../views/gameCenter/components/games/VerbalMemory/index.vue')['default']
+    VideoTemp: typeof import('./../components/VideoTemp/index.vue')['default']
+    VirtualKeyboardNumberInput: typeof import('./../views/gameCenter/components/games/AssignTraining/components/VirtualKeyboardNumberInput/index.vue')['default']
+    VoiceImp: typeof import('./../components/VoiceImp/index.vue')['default']
+    WangEditor: typeof import('./../components/WangEditor/index.vue')['default']
+    WorkingMemory: typeof import('./../views/gameCenter/components/games/WorkingMemory/index.vue')['default']
+    WuCountDown: typeof import('./../components/WuCountDown/index.vue')['default']
+    WuIsCorrect: typeof import('./../components/WuIsCorrect/index.vue')['default']
+  }
+  export interface ComponentCustomProperties {
+    vLoading: typeof import('element-plus/es')['ElLoadingDirective']
   }
 }

+ 112 - 0
src/views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTask-demo/index.vue

@@ -0,0 +1,112 @@
+<template>
+  <section class="boston-container wh-full overflow-hidden relative">
+    <div v-if="showCountDown" class="absolute top-[50%] left-[50%] translate-[-50%] w-[400px] h-[200px] flex-center">
+      <div class="w-[120px] h-[120px] relative">
+        <wu-count-down :begin="countDownBegin" :num="5" @count-down-end="countDownEnd" />
+      </div>
+      <span v-if="!countDownBegin" class="font-600 text-[36px] text-[#089BAB]">{{ countDownStr }}</span>
+    </div>
+    <div
+      v-else
+      class="absolute top-[50%] left-[50%] translate-[-50%] w-[1100px] h-[640px] rounded-[8px] bg-[#ffffffff] shadow-lg flex flex-row items-center justify-around"
+    ></div>
+  </section>
+</template>
+
+<script setup lang="ts">
+/*
+ * 组件名: CognitiveAbilityTask-demo
+ * 组件用途: 认知任务-模板
+ * 创建日期: 2024/7/16
+ * 编写者: JutarryWu
+ */
+import EvaluationSTRecordInfoAPI from '@/api/tester/evaluation/stRecord'
+import { useUserStore } from '@/store'
+
+const isMainWin = ref(false)
+
+defineOptions({
+  name: 'CognitiveAbilityTask-demo',
+  inheritAttrs: false
+})
+
+const props = defineProps({
+  parentId: {
+    type: String,
+    default: ''
+  }
+})
+
+const emits = defineEmits(['showResult', 'close'])
+const userStore = useUserStore()
+const showCountDown = ref(true)
+const countDownBegin = ref(false)
+const countDownStr = ref('测试马上开始!')
+const loading = ref(false)
+const dialogVisible = ref(false) // 学历弹窗
+
+const closeDialog = () => {
+  dialogVisible.value = false
+  localStorage.setItem('tow-win-draw-clock-show-dialog', 'NO')
+}
+
+/**
+ * 提交操作
+ */
+const handleSubmit = () => {}
+
+const countDownEnd = () => {
+  countDownBegin.value = false
+  showCountDown.value = false
+  setTimeout(() => {
+    console.log('')
+  }, 1000)
+}
+
+async function exec() {
+  isMainWin.value = window.location.href.includes('win=main')
+  if (isMainWin.value) {
+    countDownEnd()
+  } else {
+    setTimeout(() => {
+      countDownBegin.value = true
+    }, 2300)
+  }
+}
+
+onMounted(() => {
+  exec()
+
+  window.addEventListener('storage', (val) => {
+    if (isMainWin.value) {
+      console.log('')
+    } else {
+      console.log('')
+    }
+  })
+})
+</script>
+
+<style scoped lang="scss">
+.boston-container {
+  background: url('/static/image/user/bg-evaluate.png') no-repeat 0 0 / 100% 100% border-box border-box fixed;
+
+  .el-button + .el-button {
+    margin-left: 0;
+  }
+
+  .shadow {
+    scale: 1.37;
+    box-shadow:
+      0 0 0 2px #fdfdfd inset,
+      0 0 0 0 rgba(0, 0, 0, 0);
+  }
+}
+
+:deep(h3) {
+  margin-top: 18px !important;
+  margin-bottom: 5px !important;
+  margin-block-end: 5px !important;
+  margin-block-start: 18px !important;
+}
+</style>

+ 112 - 0
src/views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskAuditoryTraining/index.vue

@@ -0,0 +1,112 @@
+<template>
+  <section class="boston-container wh-full overflow-hidden relative">
+    <div v-if="showCountDown" class="absolute top-[50%] left-[50%] translate-[-50%] w-[400px] h-[200px] flex-center">
+      <div class="w-[120px] h-[120px] relative">
+        <wu-count-down :begin="countDownBegin" :num="5" @count-down-end="countDownEnd" />
+      </div>
+      <span v-if="!countDownBegin" class="font-600 text-[36px] text-[#089BAB]">{{ countDownStr }}</span>
+    </div>
+    <div
+      v-else
+      class="absolute top-[50%] left-[50%] translate-[-50%] w-[1100px] h-[640px] rounded-[8px] bg-[#ffffffff] shadow-lg flex flex-row items-center justify-around"
+    ></div>
+  </section>
+</template>
+
+<script setup lang="ts">
+/*
+ * 组件名: CognitiveAbilityTaskAuditoryTraining
+ * 组件用途: 常规听康复训练
+ * 创建日期: 2024/7/16
+ * 编写者: JutarryWu
+ */
+import EvaluationSTRecordInfoAPI from '@/api/tester/evaluation/stRecord'
+import { useUserStore } from '@/store'
+
+const isMainWin = ref(false)
+
+defineOptions({
+  name: 'CognitiveAbilityTaskAuditoryTraining',
+  inheritAttrs: false
+})
+
+const props = defineProps({
+  parentId: {
+    type: String,
+    default: ''
+  }
+})
+
+const emits = defineEmits(['showResult', 'close'])
+const userStore = useUserStore()
+const showCountDown = ref(true)
+const countDownBegin = ref(false)
+const countDownStr = ref('测试马上开始!')
+const loading = ref(false)
+const dialogVisible = ref(false) // 学历弹窗
+
+const closeDialog = () => {
+  dialogVisible.value = false
+  localStorage.setItem('tow-win-draw-clock-show-dialog', 'NO')
+}
+
+/**
+ * 提交操作
+ */
+const handleSubmit = () => {}
+
+const countDownEnd = () => {
+  countDownBegin.value = false
+  showCountDown.value = false
+  setTimeout(() => {
+    console.log('')
+  }, 1000)
+}
+
+async function exec() {
+  isMainWin.value = window.location.href.includes('win=main')
+  if (isMainWin.value) {
+    countDownEnd()
+  } else {
+    setTimeout(() => {
+      countDownBegin.value = true
+    }, 2300)
+  }
+}
+
+onMounted(() => {
+  exec()
+
+  window.addEventListener('storage', (val) => {
+    if (isMainWin.value) {
+      console.log('')
+    } else {
+      console.log('')
+    }
+  })
+})
+</script>
+
+<style scoped lang="scss">
+.boston-container {
+  background: url('/static/image/user/bg-evaluate.png') no-repeat 0 0 / 100% 100% border-box border-box fixed;
+
+  .el-button + .el-button {
+    margin-left: 0;
+  }
+
+  .shadow {
+    scale: 1.37;
+    box-shadow:
+      0 0 0 2px #fdfdfd inset,
+      0 0 0 0 rgba(0, 0, 0, 0);
+  }
+}
+
+:deep(h3) {
+  margin-top: 18px !important;
+  margin-bottom: 5px !important;
+  margin-block-end: 5px !important;
+  margin-block-start: 18px !important;
+}
+</style>

+ 112 - 0
src/views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskOralExpression/index.vue

@@ -0,0 +1,112 @@
+<template>
+  <section class="boston-container wh-full overflow-hidden relative">
+    <div v-if="showCountDown" class="absolute top-[50%] left-[50%] translate-[-50%] w-[400px] h-[200px] flex-center">
+      <div class="w-[120px] h-[120px] relative">
+        <wu-count-down :begin="countDownBegin" :num="5" @count-down-end="countDownEnd" />
+      </div>
+      <span v-if="!countDownBegin" class="font-600 text-[36px] text-[#089BAB]">{{ countDownStr }}</span>
+    </div>
+    <div
+      v-else
+      class="absolute top-[50%] left-[50%] translate-[-50%] w-[1100px] h-[640px] rounded-[8px] bg-[#ffffffff] shadow-lg flex flex-row items-center justify-around"
+    ></div>
+  </section>
+</template>
+
+<script setup lang="ts">
+/*
+ * 组件名: CognitiveAbilityTaskOralExpression
+ * 组件用途: 常规康复训练 - 口语表达
+ * 创建日期: 2024/7/16
+ * 编写者: JutarryWu
+ */
+import EvaluationSTRecordInfoAPI from '@/api/tester/evaluation/stRecord'
+import { useUserStore } from '@/store'
+
+const isMainWin = ref(false)
+
+defineOptions({
+  name: 'CognitiveAbilityTaskOralExpression',
+  inheritAttrs: false
+})
+
+const props = defineProps({
+  parentId: {
+    type: String,
+    default: ''
+  }
+})
+
+const emits = defineEmits(['showResult', 'close'])
+const userStore = useUserStore()
+const showCountDown = ref(true)
+const countDownBegin = ref(false)
+const countDownStr = ref('测试马上开始!')
+const loading = ref(false)
+const dialogVisible = ref(false) // 学历弹窗
+
+const closeDialog = () => {
+  dialogVisible.value = false
+  localStorage.setItem('tow-win-draw-clock-show-dialog', 'NO')
+}
+
+/**
+ * 提交操作
+ */
+const handleSubmit = () => {}
+
+const countDownEnd = () => {
+  countDownBegin.value = false
+  showCountDown.value = false
+  setTimeout(() => {
+    console.log('')
+  }, 1000)
+}
+
+async function exec() {
+  isMainWin.value = window.location.href.includes('win=main')
+  if (isMainWin.value) {
+    countDownEnd()
+  } else {
+    setTimeout(() => {
+      countDownBegin.value = true
+    }, 2300)
+  }
+}
+
+onMounted(() => {
+  exec()
+
+  window.addEventListener('storage', (val) => {
+    if (isMainWin.value) {
+      console.log('')
+    } else {
+      console.log('')
+    }
+  })
+})
+</script>
+
+<style scoped lang="scss">
+.boston-container {
+  background: url('/static/image/user/bg-evaluate.png') no-repeat 0 0 / 100% 100% border-box border-box fixed;
+
+  .el-button + .el-button {
+    margin-left: 0;
+  }
+
+  .shadow {
+    scale: 1.37;
+    box-shadow:
+      0 0 0 2px #fdfdfd inset,
+      0 0 0 0 rgba(0, 0, 0, 0);
+  }
+}
+
+:deep(h3) {
+  margin-top: 18px !important;
+  margin-bottom: 5px !important;
+  margin-block-end: 5px !important;
+  margin-block-start: 18px !important;
+}
+</style>

+ 112 - 0
src/views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskVisualTraining/index.vue

@@ -0,0 +1,112 @@
+<template>
+  <section class="boston-container wh-full overflow-hidden relative">
+    <div v-if="showCountDown" class="absolute top-[50%] left-[50%] translate-[-50%] w-[400px] h-[200px] flex-center">
+      <div class="w-[120px] h-[120px] relative">
+        <wu-count-down :begin="countDownBegin" :num="5" @count-down-end="countDownEnd" />
+      </div>
+      <span v-if="!countDownBegin" class="font-600 text-[36px] text-[#089BAB]">{{ countDownStr }}</span>
+    </div>
+    <div
+      v-else
+      class="absolute top-[50%] left-[50%] translate-[-50%] w-[1100px] h-[640px] rounded-[8px] bg-[#ffffffff] shadow-lg flex flex-row items-center justify-around"
+    ></div>
+  </section>
+</template>
+
+<script setup lang="ts">
+/*
+ * 组件名: CognitiveAbilityTaskVisualTraining
+ * 组件用途: 常规视康复训练
+ * 创建日期: 2024/7/16
+ * 编写者: JutarryWu
+ */
+import EvaluationSTRecordInfoAPI from '@/api/tester/evaluation/stRecord'
+import { useUserStore } from '@/store'
+
+const isMainWin = ref(false)
+
+defineOptions({
+  name: 'CognitiveAbilityTaskVisualTraining',
+  inheritAttrs: false
+})
+
+const props = defineProps({
+  parentId: {
+    type: String,
+    default: ''
+  }
+})
+
+const emits = defineEmits(['showResult', 'close'])
+const userStore = useUserStore()
+const showCountDown = ref(true)
+const countDownBegin = ref(false)
+const countDownStr = ref('测试马上开始!')
+const loading = ref(false)
+const dialogVisible = ref(false) // 学历弹窗
+
+const closeDialog = () => {
+  dialogVisible.value = false
+  localStorage.setItem('tow-win-draw-clock-show-dialog', 'NO')
+}
+
+/**
+ * 提交操作
+ */
+const handleSubmit = () => {}
+
+const countDownEnd = () => {
+  countDownBegin.value = false
+  showCountDown.value = false
+  setTimeout(() => {
+    console.log('')
+  }, 1000)
+}
+
+async function exec() {
+  isMainWin.value = window.location.href.includes('win=main')
+  if (isMainWin.value) {
+    countDownEnd()
+  } else {
+    setTimeout(() => {
+      countDownBegin.value = true
+    }, 2300)
+  }
+}
+
+onMounted(() => {
+  exec()
+
+  window.addEventListener('storage', (val) => {
+    if (isMainWin.value) {
+      console.log('')
+    } else {
+      console.log('')
+    }
+  })
+})
+</script>
+
+<style scoped lang="scss">
+.boston-container {
+  background: url('/static/image/user/bg-evaluate.png') no-repeat 0 0 / 100% 100% border-box border-box fixed;
+
+  .el-button + .el-button {
+    margin-left: 0;
+  }
+
+  .shadow {
+    scale: 1.37;
+    box-shadow:
+      0 0 0 2px #fdfdfd inset,
+      0 0 0 0 rgba(0, 0, 0, 0);
+  }
+}
+
+:deep(h3) {
+  margin-top: 18px !important;
+  margin-bottom: 5px !important;
+  margin-block-end: 5px !important;
+  margin-block-start: 18px !important;
+}
+</style>

+ 21 - 0
src/views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/index.vue

@@ -68,6 +68,27 @@
       @show-result="showResult"
       @close="handleClose"
     />
+    <!-- 常规视康复训练 -->
+    <cognitive-ability-task-visual-training
+      v-if="props.cognitionId === '98' && taskBegin"
+      :parent-id="props.parentId"
+      @show-result="showResult"
+      @close="handleClose"
+    />
+    <!-- 常规听康复训练 -->
+    <cognitive-ability-task-auditory-training
+      v-if="props.cognitionId === '99' && taskBegin"
+      :parent-id="props.parentId"
+      @show-result="showResult"
+      @close="handleClose"
+    />
+    <!-- 口语表达 -->
+    <cognitive-ability-task-oral-expression
+      v-if="props.cognitionId === '100' && taskBegin"
+      :parent-id="props.parentId"
+      @show-result="showResult"
+      @close="handleClose"
+    />
 
     <el-drawer v-model="detailVisible" :with-header="false" append-to-body destroy-on-close size="84%">
       <rehabilitation-evaluation-result-detail v-if="detailVisible" :id="resultId" @close="closeDrawer" />