黄琪勇 преди 4 месеца
родител
ревизия
0ea86a8ae9
променени са 1 файла, в които са добавени 14 реда и са изтрити 4 реда
  1. 14 4
      src/views/components/element/enjoyElement/enjoyPlayer.vue

+ 14 - 4
src/views/components/element/enjoyElement/enjoyPlayer.vue

@@ -1,5 +1,11 @@
 <template>
-  <div class="enjoyPlayer" v-click-outside="handleListOutside">
+  <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,8 @@ 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) {
@@ -296,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
@@ -309,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
@@ -337,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: