Browse Source

言语康复训练 - 听 - 20%

JutarryWu 1 tuần trước cách đây
mục cha
commit
16f75ceda2

BIN
public/static/image/cognitiveAbility/SpeechTraining/next.png


BIN
public/static/voice/cognitiveAbility/SpeechTraining/Auditory/1.mp3


BIN
public/static/voice/cognitiveAbility/SpeechTraining/Auditory/Recognition/1.mp3


BIN
public/static/voice/cognitiveAbility/SpeechTraining/Auditory/Recognition/狗叫.mp3


BIN
public/static/voice/cognitiveAbility/SpeechTraining/Auditory/Recognition/葡萄.mp3


BIN
public/static/voice/cognitiveAbility/SpeechTraining/Auditory/Recognition/雷声.mp3


+ 7 - 1
src/components/VoiceImp/index.vue

@@ -26,8 +26,9 @@ const VideoRef_2 = ref<HTMLVideoElement>()
 const VideoRef_3 = ref<HTMLVideoElement>()
 const VideoRef_intro = ref<HTMLVideoElement>()
 
-const videoPlay = (type: string = 'click') => {
+const videoPlay = (type: string = 'click', url: string = '') => {
   if (type === 'click') {
+    VideoRef_1.value?.load()
     VideoRef_1.value?.play()
   } else if (type === 'right') {
     VideoRef_2.value?.load()
@@ -35,6 +36,11 @@ const videoPlay = (type: string = 'click') => {
   } else if (type === 'error') {
     VideoRef_3.value?.load()
     VideoRef_3.value?.play()
+  } else if (type === 'Speech-Auditory') {
+    VoiceUrlObj.value.intro = url
+    nextTick(() => {
+      VideoRef_intro.value?.play()
+    })
   } else {
     VoiceUrlObj.value.intro = `static/voice/game/introduce/${type}.mp3`
     nextTick(() => {

+ 31 - 0
src/components/WaterTitle/index.vue

@@ -0,0 +1,31 @@
+<template>
+  <section class="water-title-container absolute top-10px left-16px text-38px text-#D3D3D3B2">
+    {{ props.title }}
+  </section>
+</template>
+
+<script setup lang="ts">
+/*
+ * 组件名: WaterTitle
+ * 组件用途: 水印标题
+ * 创建日期: 2024/11/12
+ * 编写者: JutarryWu
+ */
+const props = defineProps({
+  title: {
+    type: String,
+    default: ''
+  }
+})
+
+async function exec() {}
+
+onMounted(() => {
+  exec()
+})
+</script>
+
+<style scoped lang="scss">
+.water-title-container {
+}
+</style>

+ 1 - 0
src/store/modules/user.ts

@@ -71,6 +71,7 @@ export const useUserStore = defineStore('user', () => {
         .then(() => {
           localStorage.setItem(TOKEN_KEY, '')
           localStorage.clear()
+          sessionStorage.clear()
           location.reload() // 清空路由
           resolve()
         })

+ 207 - 191
src/types/components.d.ts

@@ -7,198 +7,214 @@ export {}
 
 declare module 'vue' {
   export interface GlobalComponents {
-    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']
-    WordWord: (typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskVisualTraining/components/wordWord/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']
+    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']
+    CATAuditoryTrainingRecognition: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskAuditoryTraining/CATAuditoryTrainingRecognition/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']
+    CognitiveAbilityTaskDemo: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTask-demo/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']
+    DiagramMap: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskVisualTraining/components/diagramMap/index.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']
+    ElCarousel: typeof import('element-plus/es')['ElCarousel']
+    ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
+    ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+    ElCol: typeof import('element-plus/es')['ElCol']
+    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']
+    ElInput: typeof import('element-plus/es')['ElInput']
+    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']
+    ElRow: typeof import('element-plus/es')['ElRow']
+    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']
+    ElTag: typeof import('element-plus/es')['ElTag']
+    ElTooltip: typeof import('element-plus/es')['ElTooltip']
+    ElWatermark: typeof import('element-plus/es')['ElWatermark']
+    EmojiSelector: typeof import('./../components/Chat/emoji-selector/index.vue')['default']
+    Essay: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskVisualTraining/components/essay/index.vue')['default']
+    Execute: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskVisualTraining/components/execute/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']
+    MapWord: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskVisualTraining/components/mapWord/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']
+    WaterTitle: typeof import('./../components/WaterTitle/index.vue')['default']
+    WordMap: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskVisualTraining/components/wordMap/index.vue')['default']
+    Words: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskVisualTraining/components/Words/index.vue')['default']
+    WordWord: typeof import('./../views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskVisualTraining/components/wordWord/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']
+    vLoading: typeof import('element-plus/es')['ElLoadingDirective']
   }
 }

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

@@ -0,0 +1,46 @@
+<template>
+  <section class="auditory-recognition-container flex-center wh-full relative">
+    <water-title title="语音辨识" />
+    <div v-if="isMainWin" class="text-[42px]">接下来会给你听一些声音,请在这些声音中选择出屏幕中呈现的词语</div>
+
+    <VoiceImp ref="VoiceImpRef" />
+  </section>
+</template>
+
+<script setup lang="ts">
+/*
+ * 组件名: CATAuditoryTrainingRecognition
+ * 组件用途: 常规听康复训练 - 语音辨识
+ * 创建日期: 2024/11/12
+ * 编写者: JutarryWu
+ */
+
+defineOptions({
+  name: 'CATAuditoryTrainingRecognition',
+  inheritAttrs: false
+})
+const props = defineProps({})
+const emits = defineEmits([])
+
+const isMainWin = ref(false)
+const VoiceImpRef = ref()
+
+async function exec() {
+  isMainWin.value = window.location.href.includes('win=main')
+  if (!isMainWin.value) {
+    VoiceImpRef.value.videoPlay(
+      'Speech-Auditory',
+      'static/voice/cognitiveAbility/SpeechTraining/Auditory/Recognition/1.mp3'
+    )
+  }
+}
+
+onMounted(() => {
+  exec()
+})
+</script>
+
+<style scoped lang="scss">
+.auditory-recognition-container {
+}
+</style>

+ 74 - 51
src/views/tester/components/RehabilitationEvaluation/CognitiveAbilityTask/CognitiveAbilityTaskAuditoryTraining/index.vue

@@ -17,50 +17,56 @@
       v-else
       class="absolute top-[50%] left-[50%] translate-[-50%] w-[1600px] h-[960px] rounded-[8px] bg-[#ffffffff] shadow-lg flex-center flex-col"
     >
-      <!--模式选择-->
-      <div v-if="modeSelect === -1" class="absolute wh-full top-0 left-0 bg-[#ffffff9f] z-3999 flex-center">
-        <div class="choice-bg w-800px h-400px flex-center flex-col">
-          <span class="inline-block text-45px text-black mb-36px mt-28px">请您选择任务模式:</span>
-          <div class="flex flex-row w-76% justify-between mt-18px">
-            <el-image
-              src="/static/image/cognitiveAbility/SpeechTraining/tips-one.png"
-              fit="contain"
-              class="w-[280px] h-[90px] cursor-pointer"
-              :class="{ 'scale-113': modeActive === 0 }"
-              @click="modeSelectFn(0, isMainWin ? 1 : 0)"
-            />
-            <el-image
-              src="/static/image/cognitiveAbility/SpeechTraining/tips-all.png"
-              fit="contain"
-              class="w-[280px] h-[90px] cursor-pointer"
-              :class="{ 'scale-113': modeActive === 1 }"
-              @click="modeSelectFn(1, isMainWin ? 1 : 0)"
-            />
+      <template v-if="taskBegin">
+        <!-- 语音辨识 -->
+        <c-a-t-auditory-training-recognition v-if="checkItems[0].active && checkItems[0].isTraining" />
+      </template>
+      <template v-else>
+        <!--模式选择-->
+        <div v-if="modeSelect === -1" class="absolute wh-full top-0 left-0 bg-[#ffffff9f] z-3999 flex-center">
+          <div class="choice-bg w-800px h-400px flex-center flex-col">
+            <span class="inline-block text-45px text-black mb-36px mt-28px">请您选择任务模式:</span>
+            <div class="flex flex-row w-76% justify-between mt-18px">
+              <el-image
+                src="/static/image/cognitiveAbility/SpeechTraining/tips-one.png"
+                fit="contain"
+                class="w-[280px] h-[90px] cursor-pointer"
+                :class="{ 'scale-113': modeActive === 0 }"
+                @click="modeSelectFn(0, isMainWin ? 1 : 0)"
+              />
+              <el-image
+                src="/static/image/cognitiveAbility/SpeechTraining/tips-all.png"
+                fit="contain"
+                class="w-[280px] h-[90px] cursor-pointer"
+                :class="{ 'scale-113': modeActive === 1 }"
+                @click="modeSelectFn(1, isMainWin ? 1 : 0)"
+              />
+            </div>
           </div>
         </div>
-      </div>
-      <el-image
-        src="/static/image/cognitiveAbility/SpeechTraining/Auditory/bg-title.png"
-        fit="contain"
-        class="w-[1120px] h-[160px]"
-      />
-      <div class="w-[1120px] mt-100px flex flex-wrap flex-row justify-between">
-        <div
-          v-for="(item, index) in checkItems"
-          :key="index"
-          class="w-[300px] h-[70px] flex-center fw-700 text-[34px] color-[#ffffff] mb-[18px] cursor-pointer hover:scale-102"
-          :class="[item.active ? 'active' : 'normal']"
-          @click="checkItemFn(item, isMainWin ? 1 : 0)"
-        >
-          {{ item.name }}
+        <el-image
+          src="/static/image/cognitiveAbility/SpeechTraining/Auditory/bg-title.png"
+          fit="contain"
+          class="w-[1120px] h-[160px]"
+        />
+        <div class="w-[1120px] mt-100px flex flex-wrap flex-row justify-between">
+          <div
+            v-for="(item, index) in checkItems"
+            :key="index"
+            class="w-[300px] h-[70px] flex-center fw-700 text-[34px] color-[#ffffff] mb-[18px] cursor-pointer hover:scale-102"
+            :class="[item.active ? 'active' : 'normal']"
+            @click="checkItemFn(item, isMainWin ? 1 : 0)"
+          >
+            {{ item.name }}
+          </div>
         </div>
-      </div>
-      <el-image
-        src="/static/image/cognitiveAbility/SpeechTraining/start-bg.png"
-        fit="contain"
-        class="w-[280px] h-[90px] mt-140px cursor-pointer hover:scale-101"
-        @click="startTask"
-      />
+        <el-image
+          src="/static/image/cognitiveAbility/SpeechTraining/start-bg.png"
+          fit="contain"
+          class="w-[280px] h-[90px] mt-140px cursor-pointer hover:scale-101"
+          @click="startTask"
+        />
+      </template>
     </div>
 
     <VoiceImp ref="VoiceImpRef" />
@@ -79,9 +85,10 @@ import { useThrottleFn } from '@vueuse/core'
 import { useUserStore } from '@/store'
 import { isJSON } from '@/utils'
 interface CheckItem {
-  key: string
+  key: number
   name: string
   active: boolean
+  isTraining: boolean
 }
 
 const isMainWin = ref(false)
@@ -102,21 +109,23 @@ const emits = defineEmits(['showResult', 'close'])
 const userStore = useUserStore()
 const showCountDown = ref(false)
 const countDownBegin = ref(false)
+const taskBegin = ref(false) // 子任务是否开始标识
 const countDownStr = ref('测试马上开始!')
 const loading = ref(false)
 const VoiceImpRef = ref()
 
 const modeSelect = ref(-1) // -1: 未选择,0: 单流程模式,1: 全流程模式
 const modeActive = ref(-1) // -1: 未选择,0: 单流程模式,1: 全流程模式
+let modeSingleIndex = -1 // 单流程模式下,选中的索引
 
 const dialogVisible = ref(false) // 学历弹窗
 const checkItems = ref<CheckItem[]>([
-  { key: '1', name: '语音辨识', active: false },
-  { key: '2', name: '词图匹配', active: false },
-  { key: '3', name: '句图匹配', active: false },
-  { key: '4', name: '是非反应', active: false },
-  { key: '5', name: '执行指令', active: false },
-  { key: '6', name: '听短文回答故事', active: false }
+  { key: 1, name: '语音辨识', active: false, isTraining: false },
+  { key: 2, name: '词图匹配', active: false, isTraining: false },
+  { key: 3, name: '句图匹配', active: false, isTraining: false },
+  { key: 4, name: '是非反应', active: false, isTraining: false },
+  { key: 5, name: '执行指令', active: false, isTraining: false },
+  { key: 6, name: '听短文回答故事', active: false, isTraining: false }
 ])
 
 const closeDialog = () => {
@@ -144,9 +153,9 @@ const checkItemFn = useThrottleFn((item: CheckItem, flag: number = 0) => {
     let tempIndex = -1
     checkItems.value.forEach((item2, index) => {
       item2.active = false
-      if (item2.key === item.key) tempIndex = index
+      if (item2.key === item.key) modeSingleIndex = index
     })
-    checkItems.value[tempIndex].active = true
+    checkItems.value[modeSingleIndex].active = true
     if (!isMainWin.value) {
       VoiceImpRef.value.videoPlay()
       localStorage.setItem('two-win-auditory-item-check', JSON.stringify(item))
@@ -177,14 +186,24 @@ const modeSelectFn = useThrottleFn((mode: number, flag: number = 0) => {
 })
 
 const startTask = useThrottleFn(() => {
+  if (modeSelect.value === 0) {
+    checkItems.value[modeSingleIndex].isTraining = true
+  } else {
+    let tempIndex = checkItems.value.findIndex((item: CheckItem) => item.active && !item.isTraining)
+    checkItems.value[tempIndex].isTraining = true
+  }
+  taskBegin.value = true
   if (!isMainWin.value) {
-    // TODO 开始任务
+    localStorage.setItem('two-win-auditory-task-begin', 'YES')
   }
 })
 
 const countDownEnd = () => {
   countDownBegin.value = false
   showCountDown.value = false
+  if (!isMainWin.value) {
+    VoiceImpRef.value.videoPlay('Speech-Auditory', 'static/voice/cognitiveAbility/SpeechTraining/Auditory/1.mp3')
+  }
 }
 
 async function exec() {
@@ -213,6 +232,10 @@ onMounted(() => {
         checkItemFn(tempVal)
         localStorage.removeItem('two-win-auditory-item-check')
       }
+      if (val.key === 'two-win-auditory-task-begin' && val.newValue === 'YES') {
+        startTask()
+        localStorage.removeItem('two-win-auditory-task-begin')
+      }
     } else {
       console.log('')
     }