|
|
@@ -105,6 +105,9 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="slide-bottom-right" v-if="!isFullscreen">
|
|
|
+ <Refresh class="tool-btn" v-tooltip="'刷新'" @click="handleRefreshPage" v-if="currentSlideHasIframe"/>
|
|
|
+ <IconEdit @click="handleHomeworkSubmit" v-if="currentSlideHasIframe && !isSubmitting" class="tool-btn" v-tooltip="'提交作业'"/>
|
|
|
+ <IconLoading v-else-if="currentSlideHasIframe" class="tool-btn loading" v-tooltip="'提交中...'"></IconLoading>
|
|
|
<IconStopwatchStart class="tool-btn" v-tooltip="'计时器'" @click="timerlVisible = !timerlVisible" v-if="(props.type == '1' && courseDetail.userid == props.userid)"/>
|
|
|
<IconWrite class="tool-btn" v-tooltip="'画笔工具'" @click="writingBoardToolVisible = true" v-if="(props.type == '1')"/>
|
|
|
<IconMagic class="tool-btn" v-tooltip="'激光笔'" :class="{ 'active': laserPen }" @click="toggleLaserPen" v-if="(props.type == '1')"/>
|
|
|
@@ -119,7 +122,7 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 作业提交按钮 - 当当前幻灯片包含iframe时显示 -->
|
|
|
- <div v-if="currentSlideHasIframe" class="homework-submit-btn" :class="{ 'submitting': isSubmitting }"
|
|
|
+ <div v-if="currentSlideHasIframe && isFullscreen" class="homework-submit-btn" :class="{ 'submitting': isSubmitting }"
|
|
|
:style="{ right: getHomeworkButtonRight() + 'px' }" @click="handleHomeworkSubmit"
|
|
|
v-tooltip="isSubmitting ? '作业提交中...' : '作业提交'">
|
|
|
<IconEdit v-if="!isSubmitting" class="tool-btn" />
|
|
|
@@ -129,7 +132,7 @@
|
|
|
|
|
|
<!-- 刷新iframe按钮 -->
|
|
|
<div class="refresh-page-btn"
|
|
|
- v-if="currentSlideHasIframe"
|
|
|
+ v-if="currentSlideHasIframe && isFullscreen"
|
|
|
:style="{ right: getRefreshButtonRight() + 'px' }"
|
|
|
@click="handleRefreshPage"
|
|
|
v-tooltip="'刷新iframe内容'">
|
|
|
@@ -1574,8 +1577,11 @@ const handleRefreshPage = () => {
|
|
|
// 仅当有src属性时刷新
|
|
|
const originalSrc = iframe.src
|
|
|
// 通过重新赋值src实现刷新,避免先清空再赋值导致的闪烁
|
|
|
- iframe.src = originalSrc
|
|
|
- console.log(`刷新iframe ${i + 1}:`, originalSrc)
|
|
|
+ iframe.src = ''
|
|
|
+ setTimeout(() => {
|
|
|
+ iframe.src = originalSrc
|
|
|
+ console.log(`刷新iframe ${i + 1}:`, originalSrc)
|
|
|
+ }, 50)
|
|
|
refreshedCount++
|
|
|
}
|
|
|
else if (iframe.srcdoc) {
|
|
|
@@ -2808,6 +2814,12 @@ const handleDisconnection = () => {
|
|
|
margin-left: 15px;
|
|
|
}
|
|
|
}
|
|
|
+ .tool-btn.loading {
|
|
|
+ animation: icon-rotate 1s linear infinite;
|
|
|
+ }
|
|
|
+ @keyframes icon-rotate {
|
|
|
+ 100% { transform: rotate(360deg); }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|