| 
					
				 | 
			
			
				@@ -1,5 +1,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  <div class="enjoyPlayer"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    class="enjoyPlayer" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    v-click-outside="handleListOutside" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :style="{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      transform: `scale(${scaleStyle})` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div v-if="!isBase" v-show="isShowEnjoyPlayerList" class="enjoyPlayerList"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div class="titNameCon"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="titName"> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -8,6 +14,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div class="enjoyPlayerListCon"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <draggable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :forceFallback="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           :handle="'.drag-handle_enjoyPlayer'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           v-model="elementInfo.enjoyList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           itemKey="id" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -78,6 +85,7 @@ import message from "@/utils/message" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import type { PPTEnjoyElement } from "@/types/slides" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { useSlidesStore, useMainStore } from "@/store" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import draggable from "vuedraggable" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import queryParams from "@/queryParams" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const slidesStore = useSlidesStore() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const mainStore = useMainStore() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -94,6 +102,14 @@ const props = withDefaults( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     isBase: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 学生端 不是isBase预览下面的缩放比例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const scaleStyle = queryParams.fromType === "CLASS" && !props.isBase && props.isScreening ? 1.5 : 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function handleListOutside() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!props.isBase && isShowEnjoyPlayerList.value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    hanleEnjoyList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const isShowEnjoyPlayerList = ref(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -290,7 +306,7 @@ const handleError = () => message.error("音频加载失败") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const thumbMove = (e: MouseEvent | TouchEvent) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (!audioRef.value || !playBarWrap.value) return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const clientX = "clientX" in e ? e.clientX : e.changedTouches[0].clientX 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  let percentage = (clientX - getBoundingClientRectViewLeft(playBarWrap.value)) / playBarWrap.value.clientWidth / props.scale 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let percentage = (clientX - getBoundingClientRectViewLeft(playBarWrap.value)) / playBarWrap.value.clientWidth / props.scale / scaleStyle 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   percentage = Math.max(percentage, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   percentage = Math.min(percentage, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const time = percentage * duration.value 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -303,7 +319,7 @@ const thumbUp = (e: MouseEvent | TouchEvent) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (!audioRef.value || !playBarWrap.value) return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const clientX = "clientX" in e ? e.clientX : e.changedTouches[0].clientX 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  let percentage = (clientX - getBoundingClientRectViewLeft(playBarWrap.value)) / playBarWrap.value.clientWidth / props.scale 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let percentage = (clientX - getBoundingClientRectViewLeft(playBarWrap.value)) / playBarWrap.value.clientWidth / props.scale / scaleStyle 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   percentage = Math.max(percentage, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   percentage = Math.min(percentage, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const time = percentage * duration.value 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -331,7 +347,7 @@ const handleMousedownPlayBar = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <style lang="scss" scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .enjoyPlayer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  transform-origin: left top; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  transform-origin: center bottom; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   .playerCon { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     background: linear-gradient(180deg, #ffffff 0%, #dfdfdf 100%); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     box-shadow: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -474,7 +490,7 @@ const handleMousedownPlayBar = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     bottom: 51px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     box-shadow: 0px 3px 22px 0px rgba(0, 0, 0, 0.12); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     border-radius: 20px 20px 0px 0px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    background-color: rgba(255, 255, 255, 0.9); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    background-color: rgb(255, 255, 255); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     padding: 20px 0 61px 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     .titNameCon { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       padding-left: 10px; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -513,7 +529,7 @@ const handleMousedownPlayBar = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         justify-content: space-between; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         align-items: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         &.active { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          background: rgba(85, 176, 255, 0.15); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          background: #e6f3ff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           border-radius: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           .itemLeft { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             color: #198cfe; 
			 |