Explorar el Código

fix(student): 修复投屏相关显示问题并优化作业详情界面

1.  新增投屏状态变量控制作业复选框显示
2.  调整选择题详情弹窗的布局和控件位置
3.  统一代码格式和样式规范
4.  优化投屏按钮的显示逻辑
lsc hace 3 días
padre
commit
21d5f6c8f3

+ 1 - 0
src/views/Editor/Thumbnails/index2.vue

@@ -531,6 +531,7 @@ const contextmenusThumbnailItem = (): ContextmenuItem[] => {
     }
     .thumbnail {
       outline-color: $themeColor2;
+      outline-width: 6px;
     }
   }
   &.selected {

+ 119 - 123
src/views/Student/components/choiceQuestionDetailDialog.vue

@@ -13,9 +13,17 @@
         <div class="c_t45_title">
           <div class="c_title" v-if="props.showData.choiceQuestionListData[props.showData.workIndex]">
             <span>{{
-            props.showData.choiceQuestionListData[props.showData.workIndex]
-              .teststitle
-          }}</span>
+              props.showData.choiceQuestionListData[props.showData.workIndex]
+                .teststitle
+              }}</span>
+          </div>
+          <div class="c_t45_msg" v-if="props.roleType == 1">
+            <div>{{ lang.ssAnswerCount }} {{ props.workArray.length }}<span
+                v-if="props.unsubmittedStudents.length > 0">/{{ props.workArray.length +
+                  props.unsubmittedStudents.length
+                }}</span></div>
+            <span v-if="props.unsubmittedStudents.length > 0" @click.stop="viewUnsubmittedStudents()">{{
+              lang.ssViewSubmitStatus2 }}</span>
             <div class="switch_btn" v-if="props.isCreator && props.roleType == 1">
               <div class="switch">
                 <Switch :value="canValue" @update:value="handleCanChange" />
@@ -27,14 +35,6 @@
               </div> -->
             </div>
           </div>
-          <div class="c_t45_msg" v-if="props.roleType == 1">
-            <div>{{ lang.ssAnswerCount }} {{ props.workArray.length }}<span
-                v-if="props.unsubmittedStudents.length > 0">/{{ props.workArray.length +
-                  props.unsubmittedStudents.length
-                }}</span></div>
-            <span v-if="props.unsubmittedStudents.length > 0" @click.stop="viewUnsubmittedStudents()">{{
-              lang.ssViewSubmitStatus2 }}</span>
-          </div>
           <!--<span class="c_t45_t_btn" :class="{'c_t45_t_btn_noActive': props.showData.workIndex <= 0}" @click="changeWorkIndex(0)">{{ lang.ssPrevQ }}</span>-->
           <!--<span class="c_t45_t_btn" :class="{'c_t45_t_btn_noActive': props.showData.workIndex >= props.showData.choiceQuestionListData.length - 1}" @click="changeWorkIndex(1)">{{ lang.ssNextQ }}</span>-->
         </div>
@@ -118,9 +118,18 @@
         <div class="c_t45_title">
           <div class="c_title" v-if="props.showData.choiceQuestionListData[props.showData.workIndex]">
             <span>{{
-            props.showData.choiceQuestionListData[props.showData.workIndex]
-              .teststitle
-          }}</span>
+              props.showData.choiceQuestionListData[props.showData.workIndex]
+                .teststitle
+              }}</span>
+          </div>
+          <div class="c_t45_msg" v-if="props.roleType == 1">
+            <div>{{ lang.ssAnswerCount }} {{ props.workArray.length }}<span
+                v-if="props.unsubmittedStudents.length > 0">/{{ props.workArray.length +
+                  props.unsubmittedStudents.length
+                }}</span></div>
+            <span v-if="props.unsubmittedStudents.length > 0" @click.stop="viewUnsubmittedStudents()">{{
+              lang.ssViewSubmitStatus2 }}</span>
+
             <div class="switch_btn" v-if="props.isCreator && props.roleType == 1">
               <div class="switch">
                 <Switch :value="canValue" @update:value="handleCanChange" />
@@ -128,18 +137,10 @@
               </div>
               <div class="switch">
                 <Switch :value="anonymousValue" @update:value="handleAnonymousChange" />
-                <span>{{anonymousValue ? lang.ssAnonymous : lang.ssRealName}}</span>
+                <span>{{ anonymousValue ? lang.ssAnonymous : lang.ssRealName }}</span>
               </div>
             </div>
           </div>
-          <div class="c_t45_msg" v-if="props.roleType == 1">
-            <div>{{ lang.ssAnswerCount }} {{ props.workArray.length }}<span
-                v-if="props.unsubmittedStudents.length > 0">/{{ props.workArray.length +
-                  props.unsubmittedStudents.length
-                }}</span></div>
-            <span v-if="props.unsubmittedStudents.length > 0" @click.stop="viewUnsubmittedStudents()">{{
-              lang.ssViewSubmitStatus2 }}</span>
-          </div>
           <!--<span class="c_t45_t_btn" :class="{'c_t45_t_btn_noActive': props.showData.workIndex <= 0}" @click="changeWorkIndex(0)">{{ lang.ssPrevQ }}</span>-->
           <!--<span class="c_t45_t_btn" :class="{'c_t45_t_btn_noActive': props.showData.workIndex >= props.showData.choiceQuestionListData.length - 1}" @click="changeWorkIndex(1)">{{ lang.ssNextQ }}</span>-->
         </div>
@@ -224,16 +225,6 @@
         <div class="c_t15_title">
           <div class="c_title">
             <span>{{ workDetail.json.answerQ }}</span>
-            <div class="switch_btn" v-if="props.isCreator && props.roleType == 1">
-              <div class="switch">
-                <Switch :value="canValue" @update:value="handleCanChange" />
-                <span>{{ lang.ssShowResult }}</span>
-              </div>
-              <div class="switch">
-                <Switch :value="likeValue" @update:value="handleLikeChange" />
-                <span>{{ lang.ssLike }}</span>
-              </div>
-            </div>
           </div>
         </div>
         <span class="c_t15_type">{{ lang.ssQATest }}</span>
@@ -244,13 +235,24 @@
               }}</span></div>
           <span v-if="props.unsubmittedStudents.length > 0" @click.stop="viewUnsubmittedStudents()">{{
             lang.ssViewSubmitStatus2 }}</span>
+          <div class="switch_btn" v-if="props.isCreator && props.roleType == 1">
+            <div class="switch">
+              <Switch :value="canValue" @update:value="handleCanChange" />
+              <span>{{ lang.ssShowResult }}</span>
+            </div>
+            <div class="switch">
+              <Switch :value="likeValue" @update:value="handleLikeChange" />
+              <span>{{ lang.ssLike }}</span>
+            </div>
+          </div>
         </div>
         <div class="c_t15_content" v-show="!lookWorkData">
           <div class="c_t15_c_item" v-for="item in processedWorkArray" :key="item.id" @click.stop="lookWork(item.id)">
             <div class="c_t15_c_i_top">
               <span>{{ item.name.charAt(0) }}</span>
               <div>{{ item.name }}</div>
-              <div class="cast_sreen_btn" @click.stop="castScreen(item)"  v-if="props.isCreator && props.roleType == 1 && isFollowModeActive && canValue">
+              <div class="cast_sreen_btn" @click.stop="castScreen(item)"
+                v-if="props.isCreator && props.roleType == 1 && isFollowModeActive && canValue">
                 <IconCastScreen />
                 {{ lang.ssCastScreen }}
               </div>
@@ -259,7 +261,7 @@
               <span v-html="item.content.answer"></span>
             </div>
             <div class="bottom_btn" v-if="likeValue">
-              <div class="bottom_like" :class="{'active': item.isLikes}"  @click.stop="handleLikeClick(item)">
+              <div class="bottom_like" :class="{ 'active': item.isLikes }" @click.stop="handleLikeClick(item)">
                 <IconThumbsUp />
                 <span>{{ item.likesCount }}</span>
               </div>
@@ -309,10 +311,11 @@
 
         <div class="c_t15_workDetail" v-if="lookWorkData" @click.stop="clickContent(false)">
           <div class="c_t15_wd_top">
-            <img src="../../../assets/img/arrow_left.png" @click.stop="lookWork('')" v-if="!isCastScreen"/>
+            <img src="../../../assets/img/arrow_left.png" @click.stop="lookWork('')" v-if="!isCastScreen" />
             <span>{{ lookWorkData.name.charAt(0) }}</span>
             <div>{{ lookWorkData.name }}</div>
-            <div class="cast_sreen_btn" @click.stop="exitCastScreen"  v-if="(props.isCreator && props.roleType == 1 && isCastScreen) || (!isFollowModeActive && isCastScreen)">
+            <div class="cast_sreen_btn" @click.stop="exitCastScreen"
+              v-if="(props.isCreator && props.roleType == 1 && isCastScreen) || (!isFollowModeActive && isCastScreen)">
               <IconCastScreen />
               {{ lang.ssExitCastScreen }}
             </div>
@@ -332,16 +335,6 @@
         <div class="c_t15_title">
           <div class="c_title">
             <span>{{ workDetail.json.answerQ }}</span>
-            <div class="switch_btn" v-if="props.isCreator && props.roleType == 1">
-              <div class="switch">
-                <Switch :value="canValue" @update:value="handleCanChange" />
-                <span>{{ lang.ssShowResult }}</span>
-              </div>
-              <div class="switch">
-                <Switch :value="likeValue" @update:value="handleLikeChange" />
-                <span>{{ lang.ssLike }}</span>
-              </div>
-            </div>
           </div>
         </div>
         <span class="c_t15_type">{{ lang.ssPhoto }}</span>
@@ -352,8 +345,19 @@
               }}</span></div>
           <span v-if="props.unsubmittedStudents.length > 0" @click.stop="viewUnsubmittedStudents()">{{
             lang.ssViewSubmitStatus2 }}</span>
+          <div class="switch_btn" v-if="props.isCreator && props.roleType == 1">
+            <div class="switch">
+              <Switch :value="canValue" @update:value="handleCanChange" />
+              <span>{{ lang.ssShowResult }}</span>
+            </div>
+            <div class="switch">
+              <Switch :value="likeValue" @update:value="handleLikeChange" />
+              <span>{{ lang.ssLike }}</span>
+            </div>
+          </div>
         </div>
-        <div class="downloadBtn" @click.stop="downloadAll" :class="{ disabled: downloadLoading }" v-if="props.roleType == 1">
+        <div class="downloadBtn" @click.stop="downloadAll" :class="{ disabled: downloadLoading }"
+          v-if="props.roleType == 1">
           <IconDownload />
           <span>{{ downloadLoading ? lang.ssDownloadLoading : lang.ssBatchDownload }}</span>
         </div>
@@ -363,7 +367,8 @@
             <div class="c_t15_c_i_top">
               <span>{{ item.name.charAt(0) }}</span>
               <div>{{ item.name }}</div>
-              <div class="cast_sreen_btn" @click.stop="castScreen(item)"  v-if="props.isCreator && props.roleType == 1 && isFollowModeActive && canValue">
+              <div class="cast_sreen_btn" @click.stop="castScreen(item)"
+                v-if="props.isCreator && props.roleType == 1 && isFollowModeActive && canValue">
                 <IconCastScreen />
                 {{ lang.ssCastScreen }}
               </div>
@@ -375,7 +380,7 @@
               <span>{{ lang.ssNoPhoto }}</span>
             </div>
             <div class="bottom_btn" v-if="likeValue">
-              <div class="bottom_like" :class="{'active': item.isLikes}"  @click.stop="handleLikeClick(item)">
+              <div class="bottom_like" :class="{ 'active': item.isLikes }" @click.stop="handleLikeClick(item)">
                 <IconThumbsUp />
                 <span>{{ item.likesCount }}</span>
               </div>
@@ -385,10 +390,11 @@
 
         <div class="c_t79_workDetail" v-if="lookWorkData" @click.stop="clickContent(false)">
           <div class="c_t79_wd_top">
-            <img src="../../../assets/img/arrow_left.png" @click.stop="lookWork('')" v-if="!isCastScreen"/>
+            <img src="../../../assets/img/arrow_left.png" @click.stop="lookWork('')" v-if="!isCastScreen" />
             <span>{{ lookWorkData.name.charAt(0) }}</span>
             <div>{{ lookWorkData.name }}</div>
-            <div class="cast_sreen_btn" @click.stop="exitCastScreen"  v-if="(props.isCreator && props.roleType == 1 && isCastScreen) || (!isFollowModeActive && isCastScreen)">
+            <div class="cast_sreen_btn" @click.stop="exitCastScreen"
+              v-if="(props.isCreator && props.roleType == 1 && isCastScreen) || (!isFollowModeActive && isCastScreen)">
               <IconCastScreen />
               {{ lang.ssExitCastScreen }}
             </div>
@@ -427,16 +433,6 @@
         <div class="c_t72_title">
           <div class="c_title">
             <span>{{ lang.ssAiApp }}</span>
-            <div class="switch_btn" v-if="props.isCreator && props.roleType == 1">
-              <div class="switch">
-                <Switch :value="canValue" @update:value="handleCanChange" />
-                <span>{{ lang.ssShowResult }}</span>
-              </div>
-              <div class="switch">
-                <Switch :value="likeValue" @update:value="handleLikeChange" />
-                <span>{{ lang.ssLike }}</span>
-              </div>
-            </div>
           </div>
         </div>
         <span class="c_t72_type">{{ lang.ssAiApp }}</span>
@@ -447,19 +443,30 @@
               }}</span></div>
           <span v-if="props.unsubmittedStudents.length > 0" @click.stop="viewUnsubmittedStudents()">{{
             lang.ssViewSubmitStatus2 }}</span>
+          <div class="switch_btn" v-if="props.isCreator && props.roleType == 1">
+            <div class="switch">
+              <Switch :value="canValue" @update:value="handleCanChange" />
+              <span>{{ lang.ssShowResult }}</span>
+            </div>
+            <div class="switch">
+              <Switch :value="likeValue" @update:value="handleLikeChange" />
+              <span>{{ lang.ssLike }}</span>
+            </div>
+          </div>
         </div>
         <div class="c_t72_content" v-show="!lookWorkData">
           <div class="c_t72_c_item" v-for="item in processedWorkArray" :key="item.id" @click.stop="lookWork(item.id)">
             <div class="c_t72_c_i_top">
               <span>{{ item.name.charAt(0) }}</span>
               <div>{{ item.name }}</div>
-              <div class="cast_sreen_btn" @click.stop="castScreen(item)"  v-if="props.isCreator && props.roleType == 1 && isFollowModeActive && canValue">
+              <div class="cast_sreen_btn" @click.stop="castScreen(item)"
+                v-if="props.isCreator && props.roleType == 1 && isFollowModeActive && canValue">
                 <IconCastScreen />
                 {{ lang.ssCastScreen }}
               </div>
             </div>
             <div class="bottom_btn" v-if="likeValue">
-              <div class="bottom_like" :class="{'active': item.isLikes}"  @click.stop="handleLikeClick(item)">
+              <div class="bottom_like" :class="{ 'active': item.isLikes }" @click.stop="handleLikeClick(item)">
                 <IconThumbsUp />
                 <span>{{ item.likesCount }}</span>
               </div>
@@ -500,10 +507,11 @@
 
         <div class="c_t72_workDetail" v-if="lookWorkData" @click.stop="clickContent(false)">
           <div class="c_t72_wd_top">
-            <img src="../../../assets/img/arrow_left.png" @click.stop="lookWork('')" v-if="!isCastScreen"/>
+            <img src="../../../assets/img/arrow_left.png" @click.stop="lookWork('')" v-if="!isCastScreen" />
             <span>{{ lookWorkData.name.charAt(0) }}</span>
             <div>{{ lookWorkData.name }}</div>
-            <div class="cast_sreen_btn" @click.stop="exitCastScreen"  v-if="(props.isCreator && props.roleType == 1 && isCastScreen) || (!isFollowModeActive && isCastScreen)">
+            <div class="cast_sreen_btn" @click.stop="exitCastScreen"
+              v-if="(props.isCreator && props.roleType == 1 && isCastScreen) || (!isFollowModeActive && isCastScreen)">
               <IconCastScreen />
               {{ lang.ssExitCastScreen }}
             </div>
@@ -555,33 +563,35 @@
         <div class="c_t73_title">
           <div class="c_title">
             <span>{{ lang.ssPageImage }}</span>
-            <div class="switch_btn" v-if="props.isCreator && props.roleType == 1">
-              <div class="switch">
-                <Switch :value="canValue" @update:value="handleCanChange" />
-                <span>{{ lang.ssShowResult }}</span>
-              </div>
-              <div class="switch">
-                <Switch :value="likeValue" @update:value="handleLikeChange" />
-                <span>{{ lang.ssLike }}</span>
-              </div>
-            </div>
           </div>
         </div>
         <span class="c_t73_type">{{ lang.ssHPage }}</span>
         <div class="c_t73_msg" v-if="props.roleType == 1">
           <div>{{ lang.ssAnswerCount }} {{ props.workArray.length }}<span
-              v-if="props.unsubmittedStudents.length > 0">/{{ props.workArray.length +
+              v-if="props.unsubmittedStudents.length > 0">/{{
+                props.workArray.length +
                 props.unsubmittedStudents.length
               }}</span></div>
           <span v-if="props.unsubmittedStudents.length > 0" @click.stop="viewUnsubmittedStudents()">{{
             lang.ssViewSubmitStatus2 }}</span>
+          <div class="switch_btn" v-if="props.isCreator && props.roleType == 1">
+            <div class="switch">
+              <Switch :value="canValue" @update:value="handleCanChange" />
+              <span>{{ lang.ssShowResult }}</span>
+            </div>
+            <div class="switch">
+              <Switch :value="likeValue" @update:value="handleLikeChange" />
+              <span>{{ lang.ssLike }}</span>
+            </div>
+          </div>
         </div>
         <div class="c_t73_content" v-show="!lookWorkData">
           <div class="c_t73_c_item" v-for="item in processedWorkArray" :key="item.id" @click.stop="lookWork(item.id)">
             <div class="c_t73_c_i_top">
               <span>{{ item.name.charAt(0) }}</span>
               <div>{{ item.name }}</div>
-              <div class="cast_sreen_btn" @click.stop="castScreen(item)"  v-if="props.isCreator && props.roleType == 1 && isFollowModeActive && canValue">
+              <div class="cast_sreen_btn" @click.stop="castScreen(item)"
+                v-if="props.isCreator && props.roleType == 1 && isFollowModeActive && canValue">
                 <IconCastScreen />
                 {{ lang.ssCastScreen }}
               </div>
@@ -590,7 +600,7 @@
               <img :src="item.content" />
             </div>
             <div class="bottom_btn" v-if="likeValue">
-              <div class="bottom_like" :class="{'active': item.isLikes}"  @click.stop="handleLikeClick(item)">
+              <div class="bottom_like" :class="{ 'active': item.isLikes }" @click.stop="handleLikeClick(item)">
                 <IconThumbsUp />
                 <span>{{ item.likesCount }}</span>
               </div>
@@ -600,10 +610,11 @@
 
         <div class="c_t73_workDetail" v-if="lookWorkData" @click.stop="clickContent(false)">
           <div class="c_t73_wd_top">
-            <img src="../../../assets/img/arrow_left.png" @click.stop="lookWork('')" v-if="!isCastScreen"/>
+            <img src="../../../assets/img/arrow_left.png" @click.stop="lookWork('')" v-if="!isCastScreen" />
             <span>{{ lookWorkData.name.charAt(0) }}</span>
             <div>{{ lookWorkData.name }}</div>
-            <div class="cast_sreen_btn" @click.stop="exitCastScreen"  v-if="(props.isCreator && props.roleType == 1 && isCastScreen) || (!isFollowModeActive && isCastScreen)">
+            <div class="cast_sreen_btn" @click.stop="exitCastScreen"
+              v-if="(props.isCreator && props.roleType == 1 && isCastScreen) || (!isFollowModeActive && isCastScreen)">
               <IconCastScreen />
               {{ lang.ssExitCastScreen }}
             </div>
@@ -619,22 +630,13 @@
         <div class="c_t72_title">
           <div class="c_title">
             <span>{{ lang.ssKwlTitle }}</span>
-            <div class="switch_btn" v-if="props.isCreator && props.roleType == 1">
-              <div class="switch">
-                <Switch :value="canValue" @update:value="handleCanChange" />
-                <span>{{ lang.ssShowResult }}</span>
-              </div>
-              <div class="switch">
-                <Switch :value="likeValue" @update:value="handleLikeChange" />
-                <span>{{ lang.ssLike }}</span>
-              </div>
-            </div>
           </div>
         </div>
         <span class="c_t72_type">{{ lang.ssKwlTitle }}</span>
         <div class="c_t72_msg" v-if="props.roleType == 1">
           <div>{{ lang.ssAnswerCount }} {{ props.workArray.length }}<span
-              v-if="props.unsubmittedStudents.length > 0">/{{ props.workArray.length +
+              v-if="props.unsubmittedStudents.length > 0">/{{
+                props.workArray.length +
                 props.unsubmittedStudents.length
               }}</span></div>
           <span v-if="props.unsubmittedStudents.length > 0" @click.stop="viewUnsubmittedStudents()">{{
@@ -645,13 +647,14 @@
             <div class="c_t72_c_i_top">
               <span>{{ item.name.charAt(0) }}</span>
               <div>{{ item.name }}</div>
-              <div class="cast_sreen_btn" @click.stop="castScreen(item)"  v-if="props.isCreator && props.roleType == 1 && isFollowModeActive && canValue">
+              <div class="cast_sreen_btn" @click.stop="castScreen(item)"
+                v-if="props.isCreator && props.roleType == 1 && isFollowModeActive && canValue">
                 <IconCastScreen />
                 {{ lang.ssCastScreen }}
               </div>
             </div>
             <div class="bottom_btn" v-if="likeValue">
-              <div class="bottom_like" :class="{'active': item.isLikes}"  @click.stop="handleLikeClick(item)">
+              <div class="bottom_like" :class="{ 'active': item.isLikes }" @click.stop="handleLikeClick(item)">
                 <IconThumbsUp />
                 <span>{{ item.likesCount }}</span>
               </div>
@@ -661,10 +664,11 @@
 
         <div class="c_t72_workDetail" v-if="lookWorkData" @click.stop="clickContent(false)">
           <div class="c_t72_wd_top">
-            <img src="../../../assets/img/arrow_left.png" @click.stop="lookWork('')" v-if="!isCastScreen"/>
+            <img src="../../../assets/img/arrow_left.png" @click.stop="lookWork('')" v-if="!isCastScreen" />
             <span>{{ lookWorkData.name.charAt(0) }}</span>
             <div>{{ lookWorkData.name }}</div>
-            <div class="cast_sreen_btn" @click.stop="exitCastScreen"  v-if="(props.isCreator && props.roleType == 1 && isCastScreen) || (!isFollowModeActive && isCastScreen)">
+            <div class="cast_sreen_btn" @click.stop="exitCastScreen"
+              v-if="(props.isCreator && props.roleType == 1 && isCastScreen) || (!isFollowModeActive && isCastScreen)">
               <IconCastScreen />
               {{ lang.ssExitCastScreen }}
             </div>
@@ -680,11 +684,8 @@
                 </div>
                 <div class="kwl-col__body">
                   <template v-if="lookWorkData.content.know.length">
-                    <div
-                      v-for="(item, idx) in lookWorkData.content.know"
-                      :key="'k-'+idx"
-                      class="kwl-item"
-                    >{{ item }}</div>
+                    <div v-for="(item, idx) in lookWorkData.content.know" :key="'k-' + idx" class="kwl-item">{{ item }}
+                    </div>
                   </template>
                   <div v-else class="kwl-empty">{{ lang.ssNone }}</div>
                 </div>
@@ -698,11 +699,8 @@
                 </div>
                 <div class="kwl-col__body">
                   <template v-if="lookWorkData.content.want.length">
-                    <div
-                      v-for="(item, idx) in lookWorkData.content.want"
-                      :key="'w-'+idx"
-                      class="kwl-item"
-                    >{{ item }}</div>
+                    <div v-for="(item, idx) in lookWorkData.content.want" :key="'w-' + idx" class="kwl-item">{{ item }}
+                    </div>
                   </template>
                   <div v-else class="kwl-empty">{{ lang.ssNone }}</div>
                 </div>
@@ -716,11 +714,8 @@
                 </div>
                 <div class="kwl-col__body">
                   <template v-if="lookWorkData.content.learned.length">
-                    <div
-                      v-for="(item, idx) in lookWorkData.content.learned"
-                      :key="'l-'+idx"
-                      class="kwl-item"
-                    >{{ item }}</div>
+                    <div v-for="(item, idx) in lookWorkData.content.learned" :key="'l-' + idx" class="kwl-item">{{ item }}
+                    </div>
                   </template>
                   <div v-else class="kwl-empty">{{ lang.ssNone }}</div>
                 </div>
@@ -1287,7 +1282,7 @@ const setEchartsArea1 = () => {
         (option.xAxis.data as any[]).push('')
       }
       const isCorrect = i.isAnswer && answerValue.value
-      ;(option.series[0].data as any[]).push({
+        ; (option.series[0].data as any[]).push({
         value: i.user.length,
         itemStyle: {
           color: isCorrect ? '#29AE2B' : 'rgba(252, 207, 0, 1)',
@@ -1330,7 +1325,7 @@ const setEchartsArea1 = () => {
       if (selectedOption && selectUserDialogRef.value) {
         // console.log(selectedOption)
         console.log('selectedOption', selectedOption)
-        const selectedOption2 = {...selectedOption}
+        const selectedOption2 = { ...selectedOption }
         if (anonymousValue.value) {
           selectedOption2.user = selectedOption2.user.map((item: any, index: number) => lang.ssAnonymousUser + (index + 1))
         }
@@ -3553,7 +3548,7 @@ onUnmounted(() => {
   }
 }
 
-.c_title{
+.c_title {
   display: flex;
 
   &>span {
@@ -3562,25 +3557,26 @@ onUnmounted(() => {
   }
 }
 
-.switch_btn{
+.switch_btn {
   display: flex;
   align-items: center;
   gap: .5rem;
+  margin-left: auto;
 
-  &>.switch{
+  &>.switch {
     display: flex;
     align-items: center;
     gap: .5rem;
     font-size: .8rem;
     color: #141517;
 
-    +.switch{
+    +.switch {
       margin-left: .5rem;
     }
   }
 }
 
-.bottom_btn{
+.bottom_btn {
   display: flex;
   align-items: center;
   gap: 5px;
@@ -3588,21 +3584,21 @@ onUnmounted(() => {
   font-size: 14px;
   color: rgba(0, 0, 0, 0.7);
 
-  .bottom_like{
+  .bottom_like {
     margin-left: auto;
     cursor: pointer;
     display: flex;
     align-items: center;
     gap: 5px;
     color: rgba(0, 0, 0, 0.7);
-    
-    &.active{
+
+    &.active {
       color: rgba(252, 207, 0, 1);
     }
   }
 }
 
-.cast_sreen_btn{
+.cast_sreen_btn {
   display: flex;
   align-items: center;
   gap: 5px;
@@ -3618,7 +3614,7 @@ onUnmounted(() => {
   justify-content: center;
 }
 
-.downloadBtn{
+.downloadBtn {
   display: flex;
   align-items: center;
   gap: 5px;

+ 4 - 1
src/views/Student/index.vue

@@ -78,7 +78,7 @@
           left: isFullscreen ? '0' : `${(containerWidth - slideWidth * canvasScale) / 2}px`,
           top: isFullscreen ? '0' : `${(containerHeight - slideHeight * canvasScale) / 2}px`
         }" @mousemove="handleLaserMove">
-          <div class="homework-check-box" v-if="currentSlideHasIframe && !currentSlideHasBilibiliVideo && (props.type == '1' || (props.type == '2' && currentIsResultArray.can))"  v-show="currentSlideHasIframe" :style="{
+          <div class="homework-check-box" v-if="currentSlideHasIframe && !currentSlideHasBilibiliVideo && (props.type == '1' || (props.type == '2' && currentIsResultArray.can && !is_cast_screen))"  v-show="currentSlideHasIframe" :style="{
             top: isFullscreen ? '0' : `0`
           }">
             <div class="homework-check-box-item" @click="openChoiceQuestionDetail2(slideIndex)" :class="{'active': !choiceQuestionDetailDialogOpenList.includes(slideIndex)}">
@@ -3618,6 +3618,7 @@ const sendMessage = (obj: any) => {
   })
 }
 
+const is_cast_screen = ref(false)
 /**
  * 处理收到的消息
  */
@@ -3780,6 +3781,7 @@ const getMessages = (msgObj: any) => {
   if (props.type == '2' && msgObj.type === 'cast_screen' && msgObj.courseid === props.courseid) {
     openChoiceQuestionDetail3(slideIndex.value)
     setTimeout(() => {
+      is_cast_screen.value = true
       choiceQuestionDetailDialogRef.value?.castScreen?.(msgObj.workerData)
     }, 500)
   }
@@ -3788,6 +3790,7 @@ const getMessages = (msgObj: any) => {
   if (props.type == '2' && msgObj.type === 'exit_cast_screen' && msgObj.courseid === props.courseid) {
     openChoiceQuestionDetail3(slideIndex.value)
     setTimeout(() => {
+      is_cast_screen.value = false
       choiceQuestionDetailDialogRef.value?.exitCastScreen?.()
     }, 500)
   }