|
@@ -78,6 +78,16 @@
|
|
|
left: isFullscreen ? '0' : `${(containerWidth - slideWidth * canvasScale) / 2}px`,
|
|
left: isFullscreen ? '0' : `${(containerWidth - slideWidth * canvasScale) / 2}px`,
|
|
|
top: isFullscreen ? '0' : `${(containerHeight - slideHeight * canvasScale) / 2}px`
|
|
top: isFullscreen ? '0' : `${(containerHeight - slideHeight * canvasScale) / 2}px`
|
|
|
}" @mousemove="handleLaserMove">
|
|
}" @mousemove="handleLaserMove">
|
|
|
|
|
+ <div class="homework-check-box" v-if="currentSlideHasIframe && !currentSlideHasBilibiliVideo" v-show="currentSlideHasIframe" :style="{
|
|
|
|
|
+ top: isFullscreen ? '0' : `15px`
|
|
|
|
|
+ }">
|
|
|
|
|
+ <div class="homework-check-box-item" @click="openChoiceQuestionDetail2(slideIndex)" :class="{'active': !choiceQuestionDetailDialogOpenList.includes(slideIndex)}">
|
|
|
|
|
+ <div class="homework-check-box-item-title">{{ lang.ssQuestion }}</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="homework-check-box-item" @click="openChoiceQuestionDetail3(slideIndex)" :class="{'active': choiceQuestionDetailDialogOpenList.includes(slideIndex)}">
|
|
|
|
|
+ <div class="homework-check-box-item-title">{{ lang.ssAnswer }}</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
<div class="viewport" v-if="false">
|
|
<div class="viewport" v-if="false">
|
|
|
<div class="background" :style="backgroundStyle"></div>
|
|
<div class="background" :style="backgroundStyle"></div>
|
|
|
|
|
|
|
@@ -110,7 +120,8 @@
|
|
|
<IconLoading v-else-if="currentSlideHasIframe && !currentSlideHasBilibiliVideo" class="tool-btn loading" v-tooltip="lang.ssSubmitting"></IconLoading>
|
|
<IconLoading v-else-if="currentSlideHasIframe && !currentSlideHasBilibiliVideo" class="tool-btn loading" v-tooltip="lang.ssSubmitting"></IconLoading>
|
|
|
<IconStopwatchStart v-if="props.type == '1' && courseDetail.userid == props.userid && isFollowModeActive" class="tool-btn" v-tooltip="lang.ssTimer" @click="timerlVisible = !timerlVisible" />
|
|
<IconStopwatchStart v-if="props.type == '1' && courseDetail.userid == props.userid && isFollowModeActive" class="tool-btn" v-tooltip="lang.ssTimer" @click="timerlVisible = !timerlVisible" />
|
|
|
<IconWrite v-if="isFollowModeActive && props.type == '1' && courseDetail.userid == props.userid" class="tool-btn" v-tooltip="lang.ssPenTool" @click="writingBoardToolVisible = true" />
|
|
<IconWrite v-if="isFollowModeActive && props.type == '1' && courseDetail.userid == props.userid" class="tool-btn" v-tooltip="lang.ssPenTool" @click="writingBoardToolVisible = true" />
|
|
|
- <IconMagic v-if="isFollowModeActive && props.type == '1' && courseDetail.userid == props.userid" class="tool-btn" v-tooltip="lang.ssLaserPen" :class="{ 'active': laserPen }" @click="toggleLaserPen" />
|
|
|
|
|
|
|
+ <!-- <IconMagic v-if="isFollowModeActive && props.type == '1' && courseDetail.userid == props.userid" class="tool-btn" v-tooltip="lang.ssLaserPen" :class="{ 'active': laserPen }" @click="toggleLaserPen" /> -->
|
|
|
|
|
+ <IconTips v-if="props.type == '1'" class="tool-btn" v-tooltip="lang.ssAiHelper" :class="{ 'active': !workPanelCollapsed }" @click="workPanelCollapsed = !workPanelCollapsed" />
|
|
|
<IconFullScreenOne class="tool-btn" v-tooltip="lang.ssOpenFull" @click="enterFullscreen" />
|
|
<IconFullScreenOne class="tool-btn" v-tooltip="lang.ssOpenFull" @click="enterFullscreen" />
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -194,7 +205,7 @@
|
|
|
</button>
|
|
</button>
|
|
|
<!-- 标签页切换按钮 -->
|
|
<!-- 标签页切换按钮 -->
|
|
|
<div v-show="!workPanelCollapsed" class="tab-switcher">
|
|
<div v-show="!workPanelCollapsed" class="tab-switcher">
|
|
|
- <button
|
|
|
|
|
|
|
+ <!-- <button
|
|
|
v-if="currentSlideHasIframe && !currentSlideHasBilibiliVideo"
|
|
v-if="currentSlideHasIframe && !currentSlideHasBilibiliVideo"
|
|
|
v-show="currentSlideHasIframe"
|
|
v-show="currentSlideHasIframe"
|
|
|
class="tab-btn"
|
|
class="tab-btn"
|
|
@@ -203,7 +214,7 @@
|
|
|
:title="lang.ssAnswerRes"
|
|
:title="lang.ssAnswerRes"
|
|
|
>
|
|
>
|
|
|
{{ lang.ssAnswerRes }}
|
|
{{ lang.ssAnswerRes }}
|
|
|
- </button>
|
|
|
|
|
|
|
+ </button> -->
|
|
|
<button
|
|
<button
|
|
|
class="tab-btn"
|
|
class="tab-btn"
|
|
|
:class="{ active: rightPanelMode === 'dialogue' }"
|
|
:class="{ active: rightPanelMode === 'dialogue' }"
|
|
@@ -649,9 +660,9 @@ const autoSwitchToAvailablePanel = () => {
|
|
|
rightPanelMode.value = 'dialogue'
|
|
rightPanelMode.value = 'dialogue'
|
|
|
console.log('自动切换到对话面板')
|
|
console.log('自动切换到对话面板')
|
|
|
}
|
|
}
|
|
|
- else if (currentSlideHasIframe.value && rightPanelMode.value !== 'homework' && !currentSlideHasBilibiliVideo.value) {
|
|
|
|
|
- rightPanelMode.value = 'homework'
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // else if (currentSlideHasIframe.value && rightPanelMode.value !== 'homework' && !currentSlideHasBilibiliVideo.value) {
|
|
|
|
|
+ // rightPanelMode.value = 'homework'
|
|
|
|
|
+ // }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 移除定时器相关函数,改用socket监听
|
|
// 移除定时器相关函数,改用socket监听
|
|
@@ -3216,6 +3227,24 @@ const openChoiceQuestionDetail = (index:number) => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// 打开作业查看详细
|
|
|
|
|
+const openChoiceQuestionDetail2 = (index:number) => {
|
|
|
|
|
+ if (!choiceQuestionDetailDialogOpenList.value.includes(index)) {
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ choiceQuestionDetailDialogOpenList.value = choiceQuestionDetailDialogOpenList.value.filter(i => i !== index)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// 打开作业查看详细
|
|
|
|
|
+const openChoiceQuestionDetail3 = (index:number) => {
|
|
|
|
|
+ if (!choiceQuestionDetailDialogOpenList.value.includes(index)) {
|
|
|
|
|
+ choiceQuestionDetailDialogOpenList.value.push(index)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
const handlePageUnload = () => {
|
|
const handlePageUnload = () => {
|
|
|
if (isCreator.value && timerIndicator.value.visible && props.type === '1') {
|
|
if (isCreator.value && timerIndicator.value.visible && props.type === '1') {
|
|
|
sendMessage({ type: 'timer_stop', courseid: props.courseid })
|
|
sendMessage({ type: 'timer_stop', courseid: props.courseid })
|
|
@@ -5259,4 +5288,37 @@ const clearTimerState = () => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+.homework-check-box {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 15px;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ transform: translate(-50%, 0);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ box-shadow: 0px 3px 4px 3px #f2f2f2;
|
|
|
|
|
+ padding: 8px;
|
|
|
|
|
+ border-radius: 5px;
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+ z-index: 999;
|
|
|
|
|
+
|
|
|
|
|
+ .homework-check-box-item{
|
|
|
|
|
+ padding: 10px 18px;
|
|
|
|
|
+ border-radius: 5px;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: all 0.3s ease;
|
|
|
|
|
+
|
|
|
|
|
+ &.active{
|
|
|
|
|
+ background: #f6c82b;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ &:hover{
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+ color: #f6c82b;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .homework-check-box-item-title{}
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|