wangxy 2 mēneši atpakaļ
vecāks
revīzija
c3044f1a5f

+ 10 - 5
pages/newEnglish/components/audioRightWrong.vue

@@ -12,7 +12,8 @@
 	} from "@dcloudio/uni-app"
 	import {
 		ref,
-		reactive
+		reactive,
+    onUnmounted
 	} from "vue"
 	import {
 		resultAudioPlayer,
@@ -31,6 +32,11 @@
 		pageInit()
 	})
 
+  onUnmounted(() =>{
+    uni.$off('result-audio-play')
+    uni.$off('result-audio-ended')
+  })
+
 	function pageInit() {
 		uni.$on('result-audio-play', (code) => {
 			const {
@@ -39,17 +45,16 @@
 			data.result = codeT;
 			data.image = resultImageList[code]
 			data.showImage = true;
-      popupRef.value.open();
+			popupRef.value.open();
 		})
-		uni.$on('result-audio-ended', (code) => {
+		uni.$on('result-audio-ended', (code,) => {
 			const {
 				codeT
 			} = code;
 			data.result = codeT;
 			data.image = resultImageList[code];
 			data.showImage = false;
-      popupRef.value.close();
-
+			popupRef.value.close();
     })
 	}
 </script>

+ 73 - 68
pages/newEnglish/components/beiPage.vue

@@ -1,64 +1,65 @@
 <!-- 单词区 && 音标区:最多15位,超过隐藏-->
 <!-- 单音节最长:swimming 多音节最长:transportation -->
 <template>
-<view class="ezy-tab-border">
-	<!-- 显示区 -->
-	<selectTypesVue activeSelect="5"></selectTypesVue>
-	<view class="ezy-border-body">
-		<view class="words-bei-box">
-			<!-- 输入区 -->
-			<input class="words-answer-box" placeholder="请输入答案" v-model.trim="data.answer" readonly :class="{'words-answer-right-box': data.result&&data.result!=null, 'words-answer-error-box': !data.result&&data.result!=null}" />
-			<!-- 清空按钮 -->
-			<view class="clean-btn" @click="handleReset('all')" v-if="data.answer.length"></view>
-			<view class="bei-body-box">
-				<!-- 解释区 -->
-				<view class="pin-words-explain-box">
-					<view class="words-explain-item" v-for="item in activeWord.jianyi" :key="item">{{item}}</view>
+	<view class="ezy-tab-border">
+		<!-- 显示区 -->
+		<selectTypesVue activeSelect="5"></selectTypesVue>
+		<view class="ezy-border-body">
+			<view class="words-bei-box">
+				<!-- 输入区 -->
+				<input class="words-answer-box" placeholder="请输入答案" v-model.trim="data.answer" readonly
+					:class="{'words-answer-right-box': data.result&&data.result!=null, 'words-answer-error-box': !data.result&&data.result!=null}" />
+				<!-- 清空按钮 -->
+				<view class="clean-btn" @click="handleReset('all')" v-if="data.answer.length"></view>
+				<view class="bei-body-box">
+					<!-- 解释区 -->
+					<view class="pin-words-explain-box">
+						<view class="words-explain-item" v-for="item in activeWord.jianyi" :key="item">{{item}}</view>
+					</view>
+					<!-- 播放和待播 -->
+					<audioOneVue :active-word="activeWord" @play-audio="handlePlay"></audioOneVue>
 				</view>
-				<!-- 播放和待播 -->
-				<audioOneVue :active-word="activeWord" @play-audio="handlePlay"></audioOneVue>
-			</view>
-			<!-- 浮层输入区 -->
-			<view class="words-keyboard-box">
-				<view class="keyboard-row">
-					<btnTxtVue @text-select="handleSelect('a')">a</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('b')">b</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('c')">c</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('d')">d</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('e')">e</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('f')">f</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('g')">g</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('h')">h</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('i')">i</btnTxtVue>
+				<!-- 浮层输入区 -->
+				<view class="words-keyboard-box">
+					<view class="keyboard-row">
+						<btnTxtVue @text-select="handleSelect('a')">a</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('b')">b</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('c')">c</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('d')">d</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('e')">e</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('f')">f</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('g')">g</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('h')">h</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('i')">i</btnTxtVue>
 
+					</view>
+					<view class="keyboard-row">
+						<btnTxtVue @text-select="handleSelect('j')">j</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('k')">k</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('l')">l</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('m')">m</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('n')">n</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('o')">o</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('p')">p</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('q')">q</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('r')">r</btnTxtVue>
+					</view>
+					<view class="keyboard-row">
+						<btnTxtVue @text-select="handleSelect('s')">s</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('t')">t</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('u')">u</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('v')">v</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('w')">w</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('x')">x</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('y')">y</btnTxtVue>
+						<btnTxtVue @text-select="handleSelect('z')">z</btnTxtVue>
+						<btnTxtVue @text-select="handleReset" class="del-btn"></btnTxtVue>
+					</view>
+					<view class="bei-confirm-btn" @click="checkIsRight"></view>
 				</view>
-				<view class="keyboard-row">
-					<btnTxtVue @text-select="handleSelect('j')">j</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('k')">k</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('l')">l</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('m')">m</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('n')">n</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('o')">o</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('p')">p</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('q')">q</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('r')">r</btnTxtVue>
-				</view>
-				<view class="keyboard-row">
-					<btnTxtVue @text-select="handleSelect('s')">s</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('t')">t</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('u')">u</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('v')">v</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('w')">w</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('x')">x</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('y')">y</btnTxtVue>
-					<btnTxtVue @text-select="handleSelect('z')">z</btnTxtVue>
-					<btnTxtVue @text-select="handleReset" class="del-btn"></btnTxtVue>
-				</view>
-				<view class="bei-confirm-btn" @click="checkIsRight"></view>
 			</view>
 		</view>
 	</view>
-</view>	
 </template>
 
 <script setup>
@@ -80,12 +81,14 @@
 		onLoad
 	} from "@dcloudio/uni-app"
 	import cacheManager from '@/utils/cacheManager';
-  import {resultAudioPlayer} from "./useAudioRightWrong"
+	import {
+		resultAudioPlayer
+	} from "./useAudioRightWrong"
 
-  const resultAudioPlayerD = new resultAudioPlayer();
+	const resultAudioPlayerD = new resultAudioPlayer();
 
 	const userCode = getUserIdentity();
-	
+
 	const emits = defineEmits(['play-audio'])
 
 	const props = defineProps({
@@ -96,7 +99,7 @@
 			type: Array
 		},
 		pageData: {
-			type:Object
+			type: Object
 		}
 	})
 
@@ -117,25 +120,25 @@
 	function checkIsRight() {
 		if (data.answer == props.activeWord.name) {
 			data.result = true;
-      resultAudioPlayerD.play('right','bei')
+			resultAudioPlayerD.play('right', 'bei')
 			noticeBackDb()
 		} else {
 			data.result = false;
-      resultAudioPlayerD.play('wrong','bei')
+			resultAudioPlayerD.play('wrong', 'bei')
 		}
 		noticeBackComplete()
 	}
-	
+
 	function noticeBackComplete() {
 		// 通知后台已学完当前单词
 		if (userCode == 'Visitor') {
 			// 游客不更新后台
 			return;
 		}
-    if (props.pageData.jieId == 0) {
-      // 已掌握不需要调用接口通知完成
-      return;
-    }
+		if (props.pageData.jieId == 0) {
+			// 已掌握不需要调用接口通知完成
+			return;
+		}
 		httpApi.getWordWancheng({
 			jieId: props.pageData.jieId,
 			wordId: props.activeWord.id
@@ -152,11 +155,13 @@
 			type: 3,
 			wordId: props.activeWord.id
 		}).then(res => {
-			const { wanchangflag } = res.data;
-      if (wanchangflag == 1) {
-        // 通知岛重新调用接口
-        cacheManager.remove('zhangInfo')
-      }
+			const {
+				wanchangflag
+			} = res.data;
+			if (wanchangflag == 1) {
+				// 通知岛重新调用接口
+				cacheManager.remove('zhangInfo')
+			}
 		})
 	}