Ver código fonte

Merge remote-tracking branch 'origin/2025鹅状元数学' into 2025鹅状元数学

wangxy 3 semanas atrás
pai
commit
1ac9e19185

+ 43 - 1
common/styles/global/components.scss

@@ -664,7 +664,16 @@ $titleBar-tabBar-page: calc(100vh - var(--status-bar-height));
 		position: relative;padding: 12rpx 0;@include single-line-ellipsis}
 	.text-item.active{color: #068aea;}
 	.text-item.active::after{content: '';width: 70%;height: 4rpx;display: block;
-	background-color:#068aea;bottom: 0rpx;left:15%;position: absolute;border-radius: 8rpx;}
+	background-color:#068aea;bottom: 0rpx;left:15%;position: absolute;border-radius: 8rpx;}
+	@include mediaSmall() {
+		.text-item{font-size: 20rpx;padding: 8rpx 0;}
+		.text-item.active::after{height: 3rpx;border-radius: 5rpx;}
+	}
+
+	@include mediaBig() {
+		.text-item{font-size: 46rpx;padding: 19rpx 0;}
+		.text-item.active::after{height: 6rpx;border-radius: 10rpx;}
+	}
 }
 
 
@@ -811,7 +820,40 @@ $titleBar-tabBar-page: calc(100vh - var(--status-bar-height));
 			icon{width: 34rpx;height: 34rpx;@include ezy-no-repeat-cover;
 			background-image: url("@/static/images/common/xbb-item-jt-white.png");}
 		}
+	@include mediaSmall() {
+		margin-bottom: 20rpx;border-radius: 9rpx;
+		.item-word{
+			margin: 10rpx 0 0 10rpx;
+			.word-text{font-size: 22rpx;}
+			.phonetic-alphabet{font-size: 18rpx;margin: 0 0 10rpx;}
+		}
+		.item-explain{
+			margin-right: 1%;
+			.item-explain-content{height: 46rpx;font-size: 14rpx;}
+			.explain-text + .explain-text{margin-top: 4rpx;}
+		}
+		.item-arrow{
+			icon{width: 20rpx;height: 20rpx;}
+		}
 	}
+	
+	@include mediaBig() {
+		margin-bottom: 38rpx;border-radius: 22rpx;
+		.item-word{
+			margin: 26rpx 0 0 26rpx;
+			.word-text{font-size: 54rpx;}
+			.phonetic-alphabet{font-size: 42rpx;margin: 0 0 26rpx;}
+		}
+		.item-explain{
+			margin-right: 3%;
+			.item-explain-content{height: 112rpx;font-size: 35rpx;}
+			.explain-text + .explain-text{margin-top: 10rpx;}
+		}
+		.item-arrow{
+			icon{width: 54rpx;height: 54rpx;}
+		}
+	}
+}
 .word-list-item.active{
 	background-color: #edf9ff;box-shadow: 0 2rpx 8rpx rgba(6, 138, 234, 0.2);
 	.item-arrow{

+ 172 - 7
common/styles/global/pages.scss

@@ -642,11 +642,36 @@
 			}
 		}
 		.xbb-item-box:active{
-			background-color: #97dbfe;color: #fff;
+			background-color: #97dbfe;
 			.arrow-icon{background-color: #43bffd;}
 		}
 	}
 	.xbb-list-no-more{width: 100%;margin-top: 10rpx;}
+	@include mediaSmall() {
+			.xbb-list-box{
+				padding: 21rpx 16rpx;
+				.xbb-item-box{
+					font-size: 20rpx;border-radius: 10rpx;margin: 8rpx 1.16%;width: 31%;
+					.xbb-item-text{padding: 16rpx 0;}
+					.arrow-icon{width: 33rpx;}
+					.arrow-icon::after{width: 22rpx;height: 22rpx;}
+				}
+			}
+			.xbb-list-no-more{margin-top: 6rpx;}
+		}
+	
+		@include mediaBig() {
+			.xbb-list-box{
+				padding: 51rpx 38rpx;
+				.xbb-item-box{
+					font-size: 46rpx;border-radius: 26rpx;margin: 24rpx 1.16%;
+					.xbb-item-text{padding: 38rpx 0;}
+					.arrow-icon{width: 80rpx;}
+					.arrow-icon::after{width: 54rpx;height: 54rpx;}
+				}
+			}
+			.xbb-list-no-more{margin-top: 16rpx;}
+		}
 }
 
 // 学习大纲
@@ -920,6 +945,7 @@
 			}
 			.completed-status{background-image: url("@/static/images/common/xuexi/xw-status.png");}
 			.xx-text-box{flex: 1;}
+			.three-text-box{@include multi-line-ellipsis(3);line-height: 1.4;}
 			.xx-item-btn,.xx-item-lock-btn{width: 77rpx;height: 77rpx;@include ezy-no-repeat-cover;}
 			.xx-item-btn{background-image: url("@/static/images/common/xuexi/xx-ml-play-icon.png");}
 			.xx-item-lock-btn{background-image: url("@/static/images/common/xuexi/xx-ml-lock-icon.png");}
@@ -2335,7 +2361,7 @@
 	.word-tab-box{
 		display: flex;align-items: center;flex-shrink: 0;width: 98%;overflow:hidden;
 		box-sizing: border-box;border-bottom: 3rpx dashed #2d9cff;padding: 0 0 16rpx;
-		margin: 0 1%;
+		margin: 0 auto;
 		.tab-item-list,.uni-scroll-view-content{flex: 1;display: flex;flex-wrap: nowrap;flex-direction: row;overflow-x: auto;}
 		// @include single-line-ellipsis
 		.tab-item{
@@ -2361,6 +2387,45 @@
 		icon{width: 10rpx;height: 32rpx;background-color:#068aea;border-radius:4rpx;margin-right: 8rpx;}
 		text{font-size: 34rpx;color: #068aea;font-weight: bold;}
 	}
+	
+	@include mediaSmall() {
+			.word-body-box{padding: 27rpx 0 0;}
+			.word-list-swiper-box{height: calc(100vh - 170rpx - var(--status-bar-height));}
+			.word-tab-box{
+				width: calc(100% - 48rpx);;border-bottom: 2rpx dashed #2d9cff;padding: 0 0 10rpx;
+				.tab-item{min-width: 135rpx;margin: 10rpx 12rpx;border-radius: 23rpx;font-size: 18rpx;padding: 12rpx 0;}
+				.word-jt{width: 33rpx;height: 52rpx;}
+				.word-jt::before{width: 21rpx;height: 21rpx;top: 16rpx;}
+				.jt-left::before{left: 0;}
+				.jt-right::before{right: 0;}
+			}
+			.word-list-body{padding: 0 24rpx;}
+			.no-word-box{font-size: 18rpx;}
+			.word-num-box{
+				padding: 16rpx 0;
+				icon{width: 6rpx;height: 21rpx;margin-right: 8rpx;}
+				text{font-size: 22rpx;}
+			}
+		}
+	
+		@include mediaBig() {
+			.word-body-box{padding: 67rpx 0 0;}
+			.word-tab-box{
+				border-bottom: 5rpx dashed #2d9cff;padding: 0 0 26rpx;
+				.tab-item{min-width: 237rpx;margin: 16rpx 10rpx;border-radius: 58rpx;font-size: 45rpx;padding: 26rpx 0;}
+				.word-jt{width: 80rpx;height: 128rpx;}
+				.word-jt::before{width: 51rpx;height: 51rpx;top: 38rpx;}
+				.jt-left::before{left: 19rpx;}
+				.jt-right::before{right: 19rpx;}
+			}
+			.word-list-body{padding: 0 46rpx;}
+			.no-word-box{font-size: 45rpx;}
+			.word-num-box{
+				padding: 32rpx 38rpx;
+				icon{width: 16rpx;height: 51rpx;margin-right: 13rpx;}
+				text{font-size: 54rpx;}
+			}
+		}
 }
 
 // 单词详情
@@ -2490,9 +2555,109 @@
 	}
 	.word-color{color: #3a7fe9;}
 	.details-cn-content{color: #666;margin: 16rpx 12rpx 24rpx;}
-}
-.word-view-page::before,.word-view-page::after{content: '';width: 29rpx;height: 42rpx;
-	// background-image: url("@/static/images/study/jt-left-icon.png");
+	
+	@include mediaSmall() {
+			.word-view-border{margin: 21rpx 16rpx 16rpx;border-radius: 10rpx;}
+			.select-words-box{
+				height: 43rpx;font-size: 20rpx;
+				.words-item{padding: 10rpx 6rpx;}
+			}
+			.select-types-box{
+				margin-top: 16rpx;padding: 0 16rpx;
+				.types-item{width: 52rpx;height: 52rpx;line-height: 52rpx;}
+				.jt-item{width: 16rpx;height: 16rpx;}
+			}
+			.word-view-bottom{
+				height: 78rpx;border-top: 5rpx solid #a2c6ff;padding: 0 16rpx;font-size: 18rpx;
+				.collect-btn{
+					icon{width: 27rpx;height: 27rpx;margin-bottom: 4rpx;}
+				}
+				.bottom-btn-box{
+					.word-view-btn{width: 133rpx;height: 50rpx;line-height: 50rpx;}
+					.word-view-btn + .word-view-btn{margin-left: 20rpx;}
+				}
+			}
+			.pin-words-explain-box{
+				margin-top: 42rpx;
+				.words-explain-item{font-size: 22rpx;padding: 0 10rpx;}
+				.words-explain-item + .words-explain-item{margin-top: 8rpx;}
+			}
+			.audio-play-btn,.audio-playing-btn{width: 72rpx;height: 72rpx;margin: 36rpx auto 0;}
+			.pin-tip{width: 364rpx;margin: 16rpx auto 0;font-size: 17rpx;padding: 6rpx 0;}
+			.clean-btn{width: 111rpx;height: 38rpx;margin: 16rpx auto 0;}
+			.yb-play-box{
+				margin: 21rpx auto 0;padding: 3rpx 16rpx 6rpx;border-radius: 20rpx;
+				text{font-size: 22rpx;}
+				text:nth-child(even){margin: 0 6rpx;}
+				icon{width: 20rpx;height: 20rpx;margin-left: 16rpx;}
+			}
+			.word-circle-box{
+				font-size: 53rpx;margin: 27rpx auto 0;
+				.word-link-box{padding: 9rpx 31rpx 23rpx;}
+				.word-link-box::before,.word-link-box::after{height: 27rpx;}
+				text:not(:first-child)::before{width: 6rpx;height: 6rpx;margin: 0 4rpx;}
+			}
+			.details-title{padding: 5rpx 8rpx;font-size: 16rpx;}
+			.details-content-box{padding: 10rpx;font-size: 17rpx;margin-bottom: 10rpx;}
+			.syky-content{margin: 10rpx 0 23rpx;}
+			.syky-content:last-child{margin: 10rpx 0;}
+			.details-en-content{margin: 10rpx 8rpx;}
+			.details-cn-content{margin: 10rpx 8rpx 16rpx;}
+		}
+	
+		@include mediaBig() {
+			.word-view-border{margin: 51rpx 38rpx 38rpx;border-radius: 26rpx;}
+			.select-words-box{
+				height: 106rpx;font-size: 46rpx;
+				.words-item{padding: 26rpx 16rpx;}
+			}
+			.select-types-box{
+				margin-top: 38rpx;padding: 0 38rpx;
+				.types-item{width: 128rpx;height: 128rpx;line-height: 128rpx;}
+				.jt-item{width: 38rpx;height: 38rpx;}
+			}
+			.word-view-bottom{
+				height: 192rpx;border-top: 13rpx solid #a2c6ff;padding: 0 38rpx;font-size: 45rpx;
+				.collect-btn{
+					icon{width: 67rpx;height: 67rpx;margin-bottom: 10rpx;}
+				}
+				.bottom-btn-box{
+					.word-view-btn{width: 326rpx;height: 123rpx;line-height: 123rpx;}
+					.word-view-btn + .word-view-btn{margin-left: 48rpx;}
+				}
+			}
+			.pin-words-explain-box{
+				margin-top: 102rpx;
+				.words-explain-item{font-size: 54rpx;padding: 0 26rpx;}
+				.words-explain-item + .words-explain-item{margin-top: 19rpx;}
+			}
+			.audio-play-btn,.audio-playing-btn{width: 176rpx;height: 176rpx;margin: 90rpx auto 0;}
+			.pin-tip{width: 896rpx;margin: 38rpx auto 0;font-size: 42rpx;padding: 16rpx 0;}
+			.clean-btn{width: 274rpx;height: 93rpx;margin: 38rpx auto 0;}
+			.yb-play-box{
+				margin: 51rpx auto 0;padding: 6rpx 38rpx 16rpx;border-radius: 48rpx;
+				text{font-size: 54rpx;}
+				text:nth-child(even){margin: 0 16rpx;}
+				icon{width: 48rpx;height: 48rpx;margin-left: 38rpx;}
+			}
+			.word-circle-box{
+				font-size: 131rpx;
+				margin: 67rpx auto 0;
+				.word-link-box{padding: 22rpx 77rpx 58rpx;}
+				.word-link-box::before,.word-link-box::after{height: 67rpx;}
+				text:not(:first-child)::before{width: 16rpx;height: 16rpx;margin: 0 10rpx;}
+			}
+			.details-title{padding: 13rpx 19rpx;font-size: 38rpx;}
+			.details-content-box{padding: 26rpx;font-size: 42rpx;margin-bottom: 26rpx;}
+			.syky-content{margin: 26rpx 0 58rpx;}
+			.syky-content:last-child{margin: 26rpx 0;}
+			.details-en-content{margin: 26rpx 19rpx;}
+			.details-cn-content{margin: 26rpx 19rpx 38rpx;}
+		}
+	}
+.word-view-page::before,.word-view-page::after{
+	content: '';width: 29rpx;height: 42rpx;z-index: 5;
+	background-image: url("@/static/images/common/wordView/jt-icon.png");
 	@include ezy-no-repeat-cover;display: block;
 	position: absolute;top: 46%;}
 .word-view-page::before{left: 60rpx;}
@@ -2545,8 +2710,8 @@
 	.xue-change-btn-box{
 		display: flex;justify-content: center;border-bottom: 1rpx dashed #8dcff1;padding: 32rpx 0 42rpx;
 		.change-btn{
-			width: 254rpx;height:77rpx;position: relative;
-			text{color: #3d7efe;position: relative;font-size: 32rpx;z-index: 2;display: inline-block;margin-top:15rpx;}
+			width: 254rpx;height:77rpx;position: relative;line-height: 75rpx;
+			text{color: #3d7efe;position: relative;font-size: 32rpx;z-index: 2;display: inline-block;}
 		}
 		.change-btn::after{
 			content: "";position: absolute;top: 0;left: 0;width: 100%;height: 100%;@include ezy-no-repeat-cover;

+ 2 - 2
pages/chanpinXuanze/cp3/banben.vue

@@ -6,8 +6,8 @@
     </view>
 	<view class="ezy-page-body">
 		<view class="ezy-text-tab-box">
-		  <view class="text-item" @click="handleSelectShangce" :class="{active: data.isShangce}">上册</view>
-		  <view class="text-item" @click="handleSelectXiace" :class="{active: !data.isShangce}">下册</view>
+		  <ezyActiveVue class="text-item" @click="handleSelectShangce" :class="{active: data.isShangce}">上册</ezyActiveVue>
+		  <ezyActiveVue class="text-item" @click="handleSelectXiace" :class="{active: !data.isShangce}">下册</ezyActiveVue>
 		</view>
 		<template v-if="data.isShangce" >
 		  <template v-if="data.banbenList.length">

+ 3 - 2
pages/chanpinneirong/chanpin1.vue

@@ -287,9 +287,10 @@
 						toast("未找到课程信息");
 						return false;
 					}
-
+			
 					const cacheData = cacheManager.get('contentInfo') || {};
-					cacheData.curDanyuanName = curJieAndDanyuan.danyuan.danyuanName;
+					//cacheData.curDanyuanName = curJieAndDanyuan.danyuan.danyuanName;
+					cacheData.curDanyuanName = curJieAndDanyuan.danyuan.danyuanIntro;
 					cacheData.curKechengName = curJieAndDanyuan.jie.jieIntro;
 					cacheData.danyuanId = curJieAndDanyuan.jie.danyuanId;
 					cacheData.curJieId = jieId;

+ 2 - 2
pages/chanpinneirong/chanpin3.vue

@@ -35,7 +35,7 @@
 						<view class="xx-item-status"
 							:class="item.wanchengFlag == 1 ? 'completed-status' : 'uncompleted-status'"></view>
 						<img :src="item.cover" />
-						<view class="xx-text-box">
+						<view class="xx-text-box three-text-box">
 							<view>{{ item.danyuanName }}</view>
 						</view>
 						<view v-if="item.lock" class="xx-item-lock-btn"></view>
@@ -271,7 +271,7 @@
 						toast("未找到课程信息");
 						return false;
 					}
-
+		
 					const cacheData = cacheManager.get('contentInfo') || {};
 					cacheData.curDanyuanName = curJieAndDanyuan.danyuan.danyuanName;
 					cacheData.danyuanId = curJieAndDanyuan.danyuan.danyuanId;

+ 2 - 2
pages/chanpinneirong/chanpin4.vue

@@ -283,9 +283,9 @@
 						toast("未找到课程信息");
 						return false;
 					}
-
+			
 					const cacheData = cacheManager.get('contentInfo') || {};
-					cacheData.curDanyuanName = curJieAndDanyuan.danyuan.danyuanName;
+					cacheData.curDanyuanName = curJieAndDanyuan.danyuan.danyuanIntro;
 					cacheData.curKechengName = curJieAndDanyuan.jie.jieIntro;
 					cacheData.danyuanId = curJieAndDanyuan.jie.danyuanId;
 					cacheData.curJieId = jieId;

+ 3 - 2
pages/chaojidanci/newEnglish/components/beiPage.vue

@@ -95,8 +95,8 @@
 				</view>
 				<view class="bei-confirm-btn-box">
 					<!-- active -->
-					<view class="big-btn" :class="{active: isDaxie}" @click="handleChangeDaxie">大写</view>
-					<view class="bei-confirm-btn" @click="checkIsRight">确定</view>
+					<ezyActiveVue class="ezy-btn-active big-btn" :class="{active: isDaxie}" @click="handleChangeDaxie">大写</ezyActiveVue>
+					<ezyActiveVue class="ezy-btn-active bei-confirm-btn" @click="checkIsRight">确定</ezyActiveVue>
 				</view>
 
 			</view>
@@ -119,6 +119,7 @@
 	import {
 		resultAudioPlayer
 	} from "./useAudioRightWrong"
+	import ezyActiveVue from "@/components/ezyActive/ezyActive.vue";
 
 	const resultAudioPlayerD = new resultAudioPlayer();
 

+ 3 - 2
pages/chaojidanci/newEnglish/components/btnTxt.vue

@@ -1,13 +1,14 @@
 <template>
-	<text class="keyboard-button" 
+	<ezyActiveVue class="ezy-btn-active keyboard-button" 
 		:class="{active: btnStatus}" 
 		@touchstart="handleTouchStart"
 		@touchend="handleTouchEnd">
 		<slot></slot>
-	</text>
+	</ezyActiveVue>
 </template>
 
 <script setup>
+	import ezyActiveVue from "@/components/ezyActive/ezyActive.vue";
 	import {
 		ref
 	} from "vue"

+ 4 - 3
pages/chaojidanci/newEnglish/components/pinPage.vue

@@ -14,7 +14,7 @@
 			</view>
 			<view class="pin-body-box">
 				<!-- 清空按钮 -->
-				<view class="clean-btn" v-if="isAlreadyAnswer" @click="handleReset"></view>
+				<ezyActiveVue class="ezy-btn-active clean-btn" v-if="isAlreadyAnswer" @click="handleReset"></ezyActiveVue>
 				<!-- 提示 -->
 				<view class="pin-tip" v-else>提示:请点击页面下方字母,选择正确答案。</view>
 				<!-- 解释区-->
@@ -25,8 +25,8 @@
 			</view>
 			<!-- 选择区 -->
 			<view class="pin-words-box pin-words-change-box" :class="{'pin-small-words-box': wordLength>6}">
-				<view class="words-item words-change-item" v-for="(item,index) in data.randomList" :key="index"
-					:class="{disabled:  isSelect(item,index)}" @click="handleSelect(item,index)">{{item}}</view>
+				<ezyActiveVue class="ezy-btn-active words-item words-change-item" v-for="(item,index) in data.randomList" :key="index"
+					:class="{disabled:  isSelect(item,index)}" @click="handleSelect(item,index)">{{item}}</ezyActiveVue>
 			</view>
 		</view>
 	</view>
@@ -44,6 +44,7 @@
 	} from "@dcloudio/uni-app"
 	import * as httpApi from "@/api/chaojidanci.js"
   import {resultAudioPlayer} from "./useAudioRightWrong"
+  import ezyActiveVue from "@/components/ezyActive/ezyActive.vue";
 
   const resultAudioPlayerD = new resultAudioPlayer();
 

+ 9 - 8
pages/chaojidanci/newEnglish/components/selectPage.vue

@@ -19,18 +19,18 @@
 			</view>
 			<!-- 选择区 -->
 			<view class="select-change-box">
-				<view class="select-item"
+				<ezyActiveVue class="ezy-list-item-active select-item"
 					:class="{active: data.answer == 'A', 'select-error': data.answer =='A' && !data.result, 'select-right':data.answer =='A' && data.result}"
-					@click="handleSelect('A')"><text>{{data.opa}}</text></view>
-				<view class="select-item"
+					@click="handleSelect('A')"><text>{{data.opa}}</text></ezyActiveVue>
+				<ezyActiveVue class="ezy-list-item-active select-item"
 					:class="{active: data.answer == 'B', 'select-error':  data.answer =='B' && !data.result, 'select-right':data.answer =='B' && data.result}"
-					@click="handleSelect('B')"><text>{{data.opb}}</text></view>
-				<view class="select-item"
+					@click="handleSelect('B')"><text>{{data.opb}}</text></ezyActiveVue>
+				<ezyActiveVue class="ezy-list-item-active select-item"
 					:class="{active: data.answer == 'C', 'select-error':  data.answer =='C' && !data.result, 'select-right':data.answer =='C' && data.result}"
-					@click="handleSelect('C')"><text>{{data.opc}}</text></view>
-				<view class="select-item"
+					@click="handleSelect('C')"><text>{{data.opc}}</text></ezyActiveVue>
+				<ezyActiveVue class="ezy-list-item-active select-item"
 					:class="{active: data.answer == 'D', 'select-error':  data.answer =='D' && !data.result, 'select-right':data.answer =='D' && data.result}"
-					@click="handleSelect('D')"><text>{{data.opd}}</text></view>
+					@click="handleSelect('D')"><text>{{data.opd}}</text></ezyActiveVue>
 			</view>
 		</view>
 	</view>
@@ -49,6 +49,7 @@
 		reactive,
 	} from 'vue';
   import {resultAudioPlayer} from "./useAudioRightWrong"
+  import ezyActiveVue from "@/components/ezyActive/ezyActive.vue";
 
   const resultAudioPlayerD = new resultAudioPlayer();
 

+ 6 - 5
pages/chaojidanci/newEnglish/components/selectTypes.vue

@@ -1,18 +1,19 @@
 <template>
 	<view class="select-types-box">
-		<view class="types-item" :class="{active: activeSelect == 1}" @click="handleClick(0)">学</view>
+		<ezyActiveVue class="ezy-btn-active types-item" :class="{active: activeSelect == 1}" @click="handleClick(0)">学</ezyActiveVue>
 		<icon class="jt-item" :class="{active: activeSelect == 1}"></icon>
-		<view class="types-item" :class="{active: activeSelect == 2}" @click="handleClick(1)">拼</view>
+		<ezyActiveVue class="ezy-btn-active types-item" :class="{active: activeSelect == 2}" @click="handleClick(1)">拼</ezyActiveVue>
 		<icon class="jt-item" :class="{active: activeSelect == 2}"></icon>
-		<view class="types-item" :class="{active: activeSelect == 3}" @click="handleClick(2)">读</view>
+		<ezyActiveVue class="ezy-btn-active types-item" :class="{active: activeSelect == 3}" @click="handleClick(2)">读</ezyActiveVue>
 		<icon class="jt-item" :class="{active: activeSelect == 3}"></icon>
-		<view class="types-item" :class="{active: activeSelect == 4}" @click="handleClick(3)">选</view>
+		<ezyActiveVue class="ezy-btn-active types-item" :class="{active: activeSelect == 4}" @click="handleClick(3)">选</ezyActiveVue>
 		<icon class="jt-item" :class="{active: activeSelect == 4}"></icon>
-		<view class="types-item" :class="{active: activeSelect == 5}" @click="handleClick(4)">背</view>
+		<ezyActiveVue class="ezy-btn-active types-item" :class="{active: activeSelect == 5}" @click="handleClick(4)">背</ezyActiveVue>
 	</view>
 </template>
 
 <script setup>
+	import ezyActiveVue from "@/components/ezyActive/ezyActive.vue";
 	defineProps({
 		activeSelect: {
 			type: [String,Number],

+ 6 - 5
pages/chaojidanci/newEnglish/components/xuePage.vue

@@ -25,7 +25,7 @@
 						<view class="words-explain-item" v-for="item in activeWord.jianyi" :key="item">{{item}}</view>
 					</view>
 					<!-- 详解触发 -->
-					<view @click="goXiangjie" class="details-btn">详解 ></view>
+					<ezyActiveVue @click="goXiangjie" class="ezy-btn-active details-btn">详解 ></ezyActiveVue>
 					<!-- 音标拆分区 -->
 					<view v-show="data.isPindu" class="word-block-box yb-block-box">
 						<!-- pindu -->
@@ -40,10 +40,10 @@
 
 					<!-- 音标按钮 -->
 					<view class="xue-change-btn-box">
-						<view class="change-btn" :class="{active: data.isPindu}" @click="handlePindu"><text>自然拼读</text>
-						</view>
-						<view class="change-btn" :class="{active: !data.isPindu}" @click="handleYinjie"><text>音节拆分</text>
-						</view>
+						<ezyActiveVue class="ezy-btn-active change-btn" :class="{active: data.isPindu}" @click="handlePindu"><text>自然拼读</text>
+						</ezyActiveVue>
+						<ezyActiveVue class="ezy-btn-active change-btn" :class="{active: !data.isPindu}" @click="handleYinjie"><text>音节拆分</text>
+						</ezyActiveVue>
 					</view>
 					<!-- 词根+实用口语 -->
 					<view v-if="activeWord.cigenzhuji.length" class="details-content-box xue-details-content-box">
@@ -85,6 +85,7 @@
 	import audioThreeVue from './audioThree.vue';
 	import audioFourVue from './audioFour.vue';
 	import yinbiaoTxtVue from "./yinbiaoTxt.vue"
+	import ezyActiveVue from "@/components/ezyActive/ezyActive.vue";
 	import {
 		reactive,
 		computed,

+ 4 - 3
pages/chaojidanci/newEnglish/index.vue

@@ -14,10 +14,10 @@
     </view>
     <view class="word-view-bottom">
       <view class="bottom-btn-box">
-        <view class="word-view-btn" @click="prevWord" v-if="!isFirst&&isLearnRecord!=0">上一词</view>
+        <ezyActiveVue class="ezy-btn-active word-view-btn" @click="prevWord" v-if="!isFirst&&isLearnRecord!=0">上一词</ezyActiveVue>
 		<view v-else></view>
-        <view class="word-view-btn" @click="nextWord" v-if="!isLast&&isLearnRecord!=0">下一词</view>
-        <view class="word-view-btn" v-if="isLast&&isLearnRecord!=0" @click="handleComplete">完成</view>
+        <ezyActiveVue class="ezy-btn-active word-view-btn" @click="nextWord" v-if="!isLast&&isLearnRecord!=0">下一词</ezyActiveVue>
+        <ezyActiveVue class="ezy-btn-active word-view-btn" v-if="isLast&&isLearnRecord!=0" @click="handleComplete">完成</ezyActiveVue>
       </view>
     </view>
   </view>
@@ -41,6 +41,7 @@ import {
   audioPlayer
 } from "./components/useAudio.js"
 import cacheManager from "@/utils/cacheManager";
+import ezyActiveVue from "@/components/ezyActive/ezyActive.vue";
 
 const {
   cacheAudio,

+ 3 - 3
pages/chaojidanci/wordList/wordList.vue

@@ -70,8 +70,8 @@
             </view>
 
             <!-- 单词 -->
-            <view
-                class="word-list-item"
+            <ezyActiveVue
+                class="ezy-list-item-active word-list-item"
                 v-for="(item, index) in citem.wordList"
                 :key="index"
                 @click="toWord(item)"
@@ -106,7 +106,7 @@
               <view class="item-arrow">
                 <icon></icon>
               </view>
-            </view>
+            </ezyActiveVue>
           </view>
           <!-- 没有单词 -->
           <view class="no-word-box" v-else> 暂无单词</view>

BIN
static/images/common/wordView/jt-icon.png


BIN
static/images/common/wordView/jt-left-icon.png


BIN
static/images/common/wordView/jt-right-icon.png