Browse Source

Merge branch 'master' of https://git.cocorobo.cn/CocoRoboLabs/pbl-teacher-table

lsc 2 years ago
parent
commit
768ae4bc35
2 changed files with 199 additions and 264 deletions
  1. 4 2
      src/components/pages/components/imgDraw/imgDraw.vue
  2. 195 262
      src/components/pages/liveRoom.vue

+ 4 - 2
src/components/pages/components/imgDraw/imgDraw.vue

@@ -499,8 +499,10 @@ export default {
         var scrollT =
           document.getElementsByClassName("d_body")[0].scrollTop ||
           document.getElementsByClassName("d_body")[0].scrollTop;
-        mx = e.clientX + scrollL;
-        my = e.clientY + scrollT;
+        // mx = e.clientX + scrollL;
+        // my = e.clientY + scrollT;
+        mx = e.clientX  - this.canvas_front.offsetLeft+ scrollL;
+        my = e.clientY - this.canvas_front.offsetTop + scrollT;
         // const cbx = this.ctx_base.getImageData(
         //   e.offsetX - this.slide / 2,
         //   e.offsetY - this.slide / 2,

+ 195 - 262
src/components/pages/liveRoom.vue

@@ -23,27 +23,17 @@
         <div class="logoLive">
           <img src="../../assets/icon/logo.png" alt />
         </div>
-        <div style="color: #fff; line-height: 45px; padding-left: 15px">
-          introduce a festival (Final)
-        </div>
+        <div style="color: #fff; line-height: 45px; padding-left: 15px">introduce a festival (Final)</div>
       </div>
     </div>
     <div class="isNoOther">
-      <div
-        class="imgMiddle"
-        :class="isBlock > 0 ? 'imghalf' : 'imgMiddle'"
-        v-show="!full"
-      >
+      <div class="imgMiddle" :class="isBlock > 0 ? 'imghalf' : 'imgMiddle'" v-show="!full">
         <!-- <img src="../../assets/icon/kc1.png" alt /> -->
         <!-- <iframe
           style="width: 100%; height: 100%; border: none"
           src="https://view.officeapps.live.com/op/view.aspx?src=https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/0701%E5%AE%9E%E6%97%B6%E8%AF%BE%E5%A0%82%E6%A8%A1%E6%8B%9F%E6%BC%94%E7%A4%BA%E8%AF%BE%E4%BB%B61656644341323.pptx"
         ></iframe>-->
-        <pdf
-          :pdfUrl="pdfUrl"
-          style="width: 100%; height: 100%"
-          :getPage="getPage"
-        ></pdf>
+        <pdf :pdfUrl="pdfUrl" style="width: 100%; height: 100%" :getPage="getPage"></pdf>
       </div>
       <div
         style="
@@ -56,14 +46,8 @@
         "
         v-if="isBlock == 1 || isBlock == 6"
       >
-        <div
-          style="background: #fff; height: 92%; width: 96%; margin: 10px auto"
-        >
-          <div
-            style="color: #bfbfbf; padding: 15px 0 20px 25px; font-size: 20px"
-          >
-            答题查看
-          </div>
+        <div style="background: #fff; height: 92%; width: 96%; margin: 10px auto">
+          <div style="color: #bfbfbf; padding: 15px 0 20px 25px; font-size: 20px">答题查看</div>
           <div class="answerBox" v-if="isBlock == 1 || isBlock == 6">
             <div class="memberBox" v-if="isBlock == 1">
               <div
@@ -71,9 +55,7 @@
                 v-for="(item, index) in studentArray"
                 @click="getOAnswer(item.answer, item.name)"
                 :key="index"
-              >
-                {{ item.name }}
-              </div>
+              >{{ item.name }}</div>
             </div>
             <div class="memberBox" v-if="isBlock == 6">
               <div
@@ -82,14 +64,12 @@
                 v-for="(item, index) in studentArray2"
                 :key="index"
                 @click="whoAnswer(item, index)"
-              >
-                {{ item.name }}
-              </div>
+              >{{ item.name }}</div>
               <div v-if="studentArray2.length == 0">暂无学生</div>
             </div>
             <!-- <div style="color: #948bdc; padding-top: 15px" v-if="isBlock == 1">
               共有四个选项,正在答题......
-            </div> -->
+            </div>-->
             <div
               class="viewSta"
               @click="isBlock = 3"
@@ -98,9 +78,7 @@
                 tools[steps].tools &&
                 tools[steps].tools.indexOf(9) != -1
               "
-            >
-              查看数据统计
-            </div>
+            >查看数据统计</div>
             <div
               class="viewSta"
               @click="isBlock = 14"
@@ -109,14 +87,8 @@
                 tools[steps].tools &&
                 tools[steps].tools.indexOf(27) != -1
               "
-            >
-              查看所有学生答题情况
-            </div>
-            <span
-              slot="footer"
-              class="dialog-footer sztFooter"
-              v-if="isBlock == 6"
-            >
+            >查看所有学生答题情况</div>
+            <span slot="footer" class="dialog-footer sztFooter" v-if="isBlock == 6">
               <el-button type="primary" @click="isBlock = 0">结束</el-button>
               <!-- <el-button type="primary" @click="isBlock = 2">返回</el-button> -->
             </span>
@@ -162,11 +134,7 @@
           </span>
         </div>
       </div>
-      <div
-        class="answerBox tools_box"
-        v-if="isBlock == 2"
-        style="padding: 10px 0 0 25px"
-      >
+      <div class="answerBox tools_box" v-if="isBlock == 2" style="padding: 10px 0 0 25px">
         <div style="color: #d1d1d1; font-size: 24px">课堂实践</div>
         <div
           style="
@@ -176,9 +144,7 @@
             text-align: center;
             padding-bottom: 3px;
           "
-        >
-          选择工具
-        </div>
+        >选择工具</div>
         <div
           style="
             display: flex;
@@ -249,10 +215,7 @@
               <div>思维网格</div>
             </div>
           </div>
-          <div
-            v-if="tools[steps].tools && tools[steps].tools.indexOf(10) != -1"
-            class="toolCss"
-          >
+          <div v-if="tools[steps].tools && tools[steps].tools.indexOf(10) != -1" class="toolCss">
             <div class="toolImg" @click="timeDialogVisible = true">
               <img src="../../assets/icon/thirdToolList/time.png" alt />
               <div>倒计时</div>
@@ -263,26 +226,14 @@
           <div class="nextStepOne" @click="isBlock = 0">关闭</div>
         </div>
       </div>
-      <div
-        class="answerBox tools_box"
-        :class="{ fullStyle: full }"
-        v-if="isBlock == 5"
-      >
+      <div class="answerBox tools_box" :class="{ fullStyle: full }" v-if="isBlock == 5">
         <div style="height: 100%; width: 100%">
           <div v-if="toolCount == 1" class="tools_child_box">
             <div class="tools_title">
               <span>电子白板</span>
               <div>
-                <img
-                  src="../../assets/full.png"
-                  class="full"
-                  @click="fullTools"
-                />
-                <img
-                  src="../../assets/close1.png"
-                  class="closeImg"
-                  @click="closeTools"
-                />
+                <img src="../../assets/full.png" class="full" @click="fullTools" />
+                <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
               </div>
             </div>
             <iframe
@@ -297,16 +248,8 @@
             <div class="tools_title">
               <span>思维导图</span>
               <div>
-                <img
-                  src="../../assets/full.png"
-                  class="full"
-                  @click="fullTools"
-                />
-                <img
-                  src="../../assets/close1.png"
-                  class="closeImg"
-                  @click="closeTools"
-                />
+                <img src="../../assets/full.png" class="full" @click="fullTools" />
+                <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
               </div>
             </div>
             <iframe
@@ -321,16 +264,8 @@
             <div class="tools_title">
               <span>翻译</span>
               <div>
-                <img
-                  src="../../assets/full.png"
-                  class="full"
-                  @click="fullTools"
-                />
-                <img
-                  src="../../assets/close1.png"
-                  class="closeImg"
-                  @click="closeTools"
-                />
+                <img src="../../assets/full.png" class="full" @click="fullTools" />
+                <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
               </div>
             </div>
             <iframe
@@ -345,16 +280,8 @@
             <div class="tools_title">
               <span>协同文档</span>
               <div>
-                <img
-                  src="../../assets/full.png"
-                  class="full"
-                  @click="fullTools"
-                />
-                <img
-                  src="../../assets/close1.png"
-                  class="closeImg"
-                  @click="closeTools"
-                />
+                <img src="../../assets/full.png" class="full" @click="fullTools" />
+                <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
               </div>
             </div>
             <iframe
@@ -369,16 +296,8 @@
             <div class="tools_title">
               <span>思维网格</span>
               <div>
-                <img
-                  src="../../assets/full.png"
-                  class="full"
-                  @click="fullTools"
-                />
-                <img
-                  src="../../assets/close1.png"
-                  class="closeImg"
-                  @click="closeTools"
-                />
+                <img src="../../assets/full.png" class="full" @click="fullTools" />
+                <img src="../../assets/close1.png" class="closeImg" @click="closeTools" />
               </div>
             </div>
             <iframe
@@ -390,9 +309,7 @@
             ></iframe>
           </div>
           <div class="nextStepBox">
-            <div class="nextStepOne" @click="(isBlock = 2), (full = false)">
-              返回
-            </div>
+            <div class="nextStepOne" @click="(isBlock = 2), (full = false)">返回</div>
           </div>
         </div>
       </div>
@@ -417,13 +334,19 @@
             height: 25px;
             line-height: 25px;
           "
-        >
-          查看作业
-        </div>
+        >查看作业</div>
         <div class="workBox">
           <div class="works" v-for="(w, wIndex) in worksList" :key="wIndex">
             <div class="workImg">
               <img
+                v-if="tools[steps].tools &&
+                tools[steps].tools.indexOf(29) != -1"
+                :src="require('../../assets/icon/stuVedio.png')"
+                @click="lookvideo(w.upload)"
+                alt
+              />
+              <img
+                v-else
                 :src="w.upload ? w.upload : mr"
                 @click="previewImg(w.upload ? w.upload : mr)"
                 alt
@@ -457,9 +380,7 @@
           margin: 10px 15px;
         "
       >
-        <div style="color: #bfbfbf; padding: 15px 0 15px 0; font-size: 20px">
-          课堂评价
-        </div>
+        <div style="color: #bfbfbf; padding: 15px 0 15px 0; font-size: 20px">课堂评价</div>
         <div>
           <div class="score_box">
             <span>自我评价</span>
@@ -496,11 +417,7 @@
         </span>
       </div>
 
-      <div
-        class="answerBox tools_box"
-        v-if="isBlock == 8"
-        style="padding: 10px 0 0 25px"
-      >
+      <div class="answerBox tools_box" v-if="isBlock == 8" style="padding: 10px 0 0 25px">
         <div style="color: #d1d1d1; font-size: 24px">课堂实践</div>
         <div
           style="
@@ -510,9 +427,7 @@
             text-align: center;
             padding-bottom: 3px;
           "
-        >
-          选择附件
-        </div>
+        >选择附件</div>
         <div
           style="
             display: flex;
@@ -523,35 +438,20 @@
             align-items: center;
           "
         >
-          <div
-            v-if="tools[steps].file && tools[steps].file.length"
-            class="fileBox"
-          >
-            <div
-              class="fileListCss"
-              v-for="(v, vIndex) in videoList"
-              :key="vIndex"
-            >
+          <div v-if="tools[steps].file && tools[steps].file.length" class="fileBox">
+            <div class="fileListCss" v-for="(v, vIndex) in videoList" :key="vIndex">
               <div class="fileCss" @click="playVideo(v.src, vIndex)">
                 <img src="../../assets/uploadMp4.png" alt />
               </div>
               <div>{{ v.name }}</div>
             </div>
-            <div
-              class="fileListCss"
-              v-for="(v, vIndex) in videoList2"
-              :key="vIndex"
-            >
+            <div class="fileListCss" v-for="(v, vIndex) in videoList2" :key="vIndex">
               <div class="fileCss" @click="playVideo2(v.src, vIndex)">
                 <img src="../../assets/uploadMp4.png" alt />
               </div>
               <div>{{ v.name }}</div>
             </div>
-            <div
-              class="fileListCss"
-              v-for="(f, fIndex) in fileList"
-              :key="fIndex"
-            >
+            <div class="fileListCss" v-for="(f, fIndex) in fileList" :key="fIndex">
               <div class="fileCss" @click="openFile(f.src)">
                 <img src="../../assets/file.png" alt />
               </div>
@@ -563,18 +463,14 @@
           <div class="nextStepOne" @click="isBlock = 0">关闭</div>
         </div>
       </div>
-      <div
-        class="answerBox tools_box"
-        :class="{ fullStyle: full }"
-        v-if="isBlock == 9"
-      >
+      <div class="answerBox tools_box" :class="{ fullStyle: full }" v-if="isBlock == 9">
         <div style="height: 70%; width: 100%">
           <div class="wheel">
             <div class="workd_media" style="height: 100%">
               <video-player
                 class="video-player vjs-custom-skin"
                 :playsinline="true"
-                :options="playerO[videoindex]"
+                :options="playerO[0]"
                 @play="onPlayerPlay($event)"
                 style="width: 90%; height: 100%; margin: 0 0 0 30px"
               ></video-player>
@@ -586,11 +482,7 @@
         </div>
       </div>
 
-      <div
-        class="answerBox tools_box"
-        :class="{ fullStyle: full }"
-        v-if="isBlock == 10"
-      >
+      <div class="answerBox tools_box" :class="{ fullStyle: full }" v-if="isBlock == 10">
         <div style="height: 70%; width: 100%">
           <div
             class="wheel"
@@ -612,18 +504,12 @@
       <div class="answerBox tools_box" v-if="isBlock == 11">
         <div style="height: 100%; width: 100%">
           <div class="wheel" style="height: 80%; width: 100%">
-            <div
-              class="memberBox"
-              style="max-height: 100%"
-              v-if="worksList.length"
-            >
+            <div class="memberBox" style="max-height: 100%" v-if="worksList.length">
               <div
                 v-for="(item, index) in worksList"
                 :key="index"
                 @click="getEv(item.upload, item.sName)"
-              >
-                {{ item.sName }}
-              </div>
+              >{{ item.sName }}</div>
             </div>
             <div v-else>暂无学生评价</div>
           </div>
@@ -671,14 +557,8 @@
                 "
               >
                 <div v-for="(tk, tIndex) in 7" :key="tIndex" class="tkCss">
-                  <div style="margin-right: 10px; font-size: 18px">
-                    {{ tIndex + 1 }}、
-                  </div>
-                  <el-select
-                    v-model="tkAnswer[tIndex]"
-                    placeholder="请选择答案"
-                    disabled
-                  >
+                  <div style="margin-right: 10px; font-size: 18px">{{ tIndex + 1 }}、</div>
+                  <el-select v-model="tkAnswer[tIndex]" placeholder="请选择答案" disabled>
                     <el-option
                       v-for="(tkA, tkAIndex) in tkAnswerBox"
                       :key="tkAIndex"
@@ -688,30 +568,18 @@
                   </el-select>
                 </div>
               </div>
-              <div
-                v-if="tools[steps].tools && tools[steps].tools.indexOf(9) != -1"
-              >
+              <div v-if="tools[steps].tools && tools[steps].tools.indexOf(9) != -1">
                 <div class="choose_style">
-                  <span :class="tkAnswer.indexOf(1) != -1 ? 'isChoose' : ''"
-                    >A</span
-                  >
-                  <span :class="tkAnswer.indexOf(2) != -1 ? 'isChoose' : ''"
-                    >B</span
-                  >
-                  <span :class="tkAnswer.indexOf(3) != -1 ? 'isChoose' : ''"
-                    >C</span
-                  >
-                  <span :class="tkAnswer.indexOf(4) != -1 ? 'isChoose' : ''"
-                    >D</span
-                  >
+                  <span :class="tkAnswer.indexOf(1) != -1 ? 'isChoose' : ''">A</span>
+                  <span :class="tkAnswer.indexOf(2) != -1 ? 'isChoose' : ''">B</span>
+                  <span :class="tkAnswer.indexOf(3) != -1 ? 'isChoose' : ''">C</span>
+                  <span :class="tkAnswer.indexOf(4) != -1 ? 'isChoose' : ''">D</span>
                 </div>
               </div>
             </div>
           </div>
           <div class="nextStepBox" style="margin-top: 5%">
-            <div class="nextStepOne" @click="selectStudentByScoolPPt(1)">
-              返回
-            </div>
+            <div class="nextStepOne" @click="selectStudentByScoolPPt(1)">返回</div>
           </div>
         </div>
       </div>
@@ -719,24 +587,17 @@
         <div style="height: 100%; width: 100%">
           <div class="wheel" style="height: 80%; width: 100%">
             <div style="height: 100%; overflow: auto">
-              <div
-                v-for="(item, index) in worksList"
-                :key="index"
-                class="fill_box"
-              >
+              <div v-for="(item, index) in worksList" :key="index" class="fill_box">
                 <span>{{ index + 1 }}、{{ item.sName }}</span>
                 <span
                   v-for="(item, index) in JSON.parse(item.upload)"
                   :key="index"
-                  >{{ index + 1 }}、{{ item }}</span
-                >
+                >{{ index + 1 }}、{{ item }}</span>
               </div>
             </div>
           </div>
           <div class="nextStepBox" style="margin-top: 5%">
-            <div class="nextStepOne" @click="selectStudentByScoolPPt(1)">
-              返回
-            </div>
+            <div class="nextStepOne" @click="selectStudentByScoolPPt(1)">返回</div>
           </div>
         </div>
       </div>
@@ -749,9 +610,7 @@
                 :src="audioUrl"
                 controls="controls"
                 ref="audio"
-              >
-                Your browser does not support the audio element.
-              </audio>
+              >Your browser does not support the audio element.</audio>
             </div>
           </div>
           <div class="nextStepBox" style="margin-top: 5%">
@@ -759,6 +618,24 @@
           </div>
         </div>
       </div>
+      <div class="answerBox tools_box" :class="{ fullStyle: full }" v-if="isBlock == 16">
+        <div style="height: 70%; width: 100%">
+          <div class="wheel">
+            <div class="workd_media" style="height: 100%">
+              <video-player
+                class="video-player vjs-custom-skin"
+                :playsinline="true"
+                :options="playerO[0]"
+                @play="onPlayerPlay($event)"
+                style="width: 90%; height: 100%; margin: 0 0 0 30px"
+              ></video-player>
+            </div>
+          </div>
+          <div class="nextStepBox" style="margin-top: 5%">
+            <div class="nextStepOne" @click="isBlock = 4">返回</div>
+          </div>
+        </div>
+      </div>
     </div>
 
     <div class="blackBottomB">
@@ -770,9 +647,7 @@
             (tools[steps].tools && tools[steps].tools.indexOf(9) != -1) ||
             (tools[steps].tools && tools[steps].tools.indexOf(27) != -1)
           "
-        >
-          查看学生答题情况
-        </div>
+        >查看学生答题情况</div>
         <div
           class="blackButton"
           @click="isBlock = 2"
@@ -784,19 +659,15 @@
             (tools[steps].tools && tools[steps].tools.indexOf(10) != -1) ||
             (tools[steps].tools && tools[steps].tools.indexOf(13) != -1)
           "
-        >
-          查看工具
-        </div>
+        >查看工具</div>
         <div
           class="blackButton"
           @click="selectStudentByScoolPPt(2)"
           v-if="tools[steps].tools && tools[steps].tools.indexOf(12) != -1"
-        >
-          选择学生回答
-        </div>
+        >选择学生回答</div>
         <div
           class="blackButton"
-          @click="selectSWork(4)"
+          @click="selectSWork2(4)"
           v-if="
             (tools[steps].tools && tools[steps].tools.indexOf(1) != -1) ||
             (tools[steps].tools && tools[steps].tools.indexOf(3) != -1) ||
@@ -804,25 +675,20 @@
             (tools[steps].tools && tools[steps].tools.indexOf(7) != -1) ||
             (tools[steps].tools && tools[steps].tools.indexOf(10) != -1) ||
             (tools[steps].tools && tools[steps].tools.indexOf(16) != -1) ||
+            (tools[steps].tools && tools[steps].tools.indexOf(29) != -1) ||
             (tools[steps].tools && tools[steps].tools.indexOf(13) != -1)
           "
-        >
-          查看作业
-        </div>
+        >查看作业</div>
         <div
           class="blackButton"
-          @click="selectSWork(6)"
+          @click="selectSWork2(6)"
           v-if="tools[steps].tools && tools[steps].tools.indexOf(14) != -1"
-        >
-          查看评价
-        </div>
+        >查看评价</div>
         <div
           class="blackButton"
           @click="selectFile"
           v-if="tools[steps].file && tools[steps].file.length"
-        >
-          查看附件
-        </div>
+        >查看附件</div>
       </div>
     </div>
     <el-dialog
@@ -833,9 +699,9 @@
       :before-close="handleClose"
       class="dialog_diy"
     >
-      <div style="text-align: center; padding: 20px 0 50px 0; font-size: 18px">
-        是否让“{{ answerStudent.name }}”同学进行单独答题?
-      </div>
+      <div
+        style="text-align: center; padding: 20px 0 50px 0; font-size: 18px"
+      >是否让“{{ answerStudent.name }}”同学进行单独答题?</div>
       <div
         style="
           width: 200px;
@@ -849,9 +715,7 @@
           cursor: pointer;
         "
         @click="pick"
-      >
-        确定
-      </div>
+      >确定</div>
     </el-dialog>
     <el-dialog
       :visible.sync="dialogVisible1"
@@ -860,9 +724,7 @@
       :before-close="handleClose"
       class="dialog_diy"
     >
-      <div style="text-align: center; padding: 20px 0 50px 0; font-size: 18px">
-        正在开发中!
-      </div>
+      <div style="text-align: center; padding: 20px 0 50px 0; font-size: 18px">正在开发中!</div>
       <div
         style="
           width: 200px;
@@ -876,9 +738,7 @@
           cursor: pointer;
         "
         @click="dialogVisible1 = false"
-      >
-        确定
-      </div>
+      >确定</div>
     </el-dialog>
     <el-dialog
       :visible.sync="dialogVisible2"
@@ -887,9 +747,7 @@
       :before-close="handleClose"
       class="dialog_diy"
     >
-      <div style="text-align: center; padding: 20px 0 50px 0; font-size: 18px">
-        课程结束后才有报告!
-      </div>
+      <div style="text-align: center; padding: 20px 0 50px 0; font-size: 18px">课程结束后才有报告!</div>
       <div
         style="
           width: 200px;
@@ -903,9 +761,7 @@
           cursor: pointer;
         "
         @click="dialogVisible2 = false"
-      >
-        确定
-      </div>
+      >确定</div>
     </el-dialog>
     <el-dialog
       title="倒计时"
@@ -993,7 +849,8 @@ export default {
           file: [
             {
               name: "视频1.mp4",
-              src: "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E5%AA%92%E4%BD%9311661413782505.mp4",
+              src:
+                "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E5%AA%92%E4%BD%9311661413782505.mp4",
             },
           ],
         },
@@ -1009,7 +866,8 @@ export default {
           file: [
             {
               name: "视频2.mp4",
-              src: "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E5%AA%92%E4%BD%9321661413797366.mp4",
+              src:
+                "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E5%AA%92%E4%BD%9321661413797366.mp4",
             },
           ],
         },
@@ -1020,7 +878,7 @@ export default {
         { tools: [14] },
         "",
         "",
-        "",
+        { tools: [29] },
         "",
         "",
         //1、电子白板 2、便签 3、思维导图 4、问卷调查 5、量规评分 6、协同文档 7、思维网格 8、素材库 9、选择题 10、倒计时 11、问答题 12、选人回答 13、分小组 14、老师对提交作业进行评价 15、问答 16、作业提交 17、学习资料 18、训练平台 19、目标管理 20、课程设计 21、编程平台 22、AI体验 23、python 24、AI平台
@@ -1079,6 +937,7 @@ export default {
       tkAnswer: [],
       Sname: "",
       audioUrl: "",
+      timerAnswer: null,
     };
   },
   methods: {
@@ -1108,14 +967,13 @@ export default {
     },
     //uuid生成
     guid() {
-      return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(
-        /[xy]/g,
-        function (c) {
-          var r = (Math.random() * 16) | 0,
-            v = c == "x" ? r : (r & 0x3) | 0x8;
-          return v.toString(16);
-        }
-      );
+      return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (
+        c
+      ) {
+        var r = (Math.random() * 16) | 0,
+          v = c == "x" ? r : (r & 0x3) | 0x8;
+        return v.toString(16);
+      });
     },
     time() {
       if (!this.now) {
@@ -1154,23 +1012,46 @@ export default {
       }
     },
     checkStudentAnswer() {
-      this.isBlock = 6;
+      // this.isBlock = 6;
       for (var i = 0; i < this.studentArray2.length; i++) {
         this.studentArray2[i].is = 1;
       }
     },
     showMember() {
+      let _type = 0;
+      if (this.tools[this.steps].tools) {
+        if (
+          this.tools[this.steps].tools.indexOf(1) != -1 ||
+          this.tools[this.steps].tools.indexOf(3) != -1 ||
+          this.tools[this.steps].tools.indexOf(6) != -1 ||
+          this.tools[this.steps].tools.indexOf(7) != -1 ||
+          this.tools[this.steps].tools.indexOf(10) != -1 ||
+          this.tools[this.steps].tools.indexOf(16) != -1 ||
+          this.tools[this.steps].tools.indexOf(13) != -1
+        ) {
+          _type = 4;
+        } else if (this.tools[this.steps].tools.indexOf(9) != -1) {
+          _type = 1;
+        } else if (this.tools[this.steps].tools.indexOf(27) != -1) {
+          _type = 5;
+        } else if (this.tools[this.steps].tools.indexOf(14) != -1) {
+          _type = 6;
+        } else if (this.tools[this.steps].tools.indexOf(29) != -1) {
+          _type = 7;
+        }
+      }
       let params = {
         uid: "",
         cid: this.cid,
         p: this.steps,
+        type: _type,
       };
       this.ajax
         .get(this.$store.state.api + "selectSWork", params)
         .then((res) => {
           let _res = res.data[0];
           let _this = this;
-          this.isBlock = 1;
+          // this.isBlock = 1;
           for (var i = 0; i < _this.studentArray.length; i++) {
             for (var j = 0; j < _res.length; j++) {
               if (_res[j].userid == _this.studentArray[i].id) {
@@ -1292,11 +1173,23 @@ export default {
               });
             }
           }
+          if (this.timerAnswer) {
+            clearInterval(this.timerAnswer);
+            this.timerAnswer;
+          }
 
           if (type == 1) {
             this.showMember();
+            this.timerAnswer = setInterval(() => {
+              this.showMember();
+            }, 5000);
+            this.isBlock = 1;
           } else if (type == 2) {
             this.checkStudentAnswer();
+            this.timerAnswer = setInterval(() => {
+              this.checkStudentAnswer();
+            }, 5000);
+            this.isBlock = 6;
           }
         })
         .catch((err) => {
@@ -1304,12 +1197,51 @@ export default {
           console.error(err);
         });
     },
+    selectSWork2(type) {
+      let _type = type;
+      if (this.timerAnswer) {
+        clearInterval(this.timerAnswer);
+        this.timerAnswer = null;
+      }
+      this.selectSWork(_type);
+      this.timerAnswer = setInterval(() => {
+        this.selectSWork(_type);
+      }, 5000);
+      if (_type == 4) {
+        this.isBlock = 4;
+      } else {
+        this.isBlock = 11;
+      }
+    },
     selectSWork(type) {
+      let _type = 0;
+      if (this.tools[this.steps].tools) {
+        if (
+          this.tools[this.steps].tools.indexOf(1) != -1 ||
+          this.tools[this.steps].tools.indexOf(3) != -1 ||
+          this.tools[this.steps].tools.indexOf(6) != -1 ||
+          this.tools[this.steps].tools.indexOf(7) != -1 ||
+          this.tools[this.steps].tools.indexOf(10) != -1 ||
+          this.tools[this.steps].tools.indexOf(16) != -1 ||
+          this.tools[this.steps].tools.indexOf(13) != -1
+        ) {
+          _type = 4;
+        } else if (this.tools[this.steps].tools.indexOf(9) != -1) {
+          _type = 1;
+        } else if (this.tools[this.steps].tools.indexOf(27) != -1) {
+          _type = 5;
+        } else if (this.tools[this.steps].tools.indexOf(14) != -1) {
+          _type = 6;
+        } else if (this.tools[this.steps].tools.indexOf(29) != -1) {
+          _type = 7;
+        }
+      }
       this.worksList = [];
       let params = {
         uid: "",
         cid: this.cid,
         p: this.steps,
+        type: _type,
       };
       this.ajax
         .get(this.$store.state.api + "selectSWork", params)
@@ -1322,11 +1254,6 @@ export default {
               time: this.worksDetail[i].time,
             });
           }
-          if (type == 4) {
-            this.isBlock = 4;
-          } else {
-            this.isBlock = 11;
-          }
         })
         .catch((err) => {
           this.$message.error("查询失败");
@@ -1373,7 +1300,6 @@ export default {
       var d = JSON.parse(JSON.stringify(this.playerOptions));
       d.sources[0].src = u;
       this.playerO[0] = d;
-      this.videoindex = i;
       this.isBlock = 9;
     },
     playVideo2(u, i) {
@@ -1388,10 +1314,10 @@ export default {
     },
     onPlayerPlay() {},
     previewImg(url) {
-      this.$hevueImgPreview(url);
       // this.$hevueImgPreview(url);
-      // this.drawShow = true;
-      // this.bg = url;
+      // this.$hevueImgPreview(url);
+      this.drawShow = true;
+      this.bg = url;
       // this.setAvatarBase64(url, (base64) => {
       //   this.$nextTick(() => {
       //     this.drawShow = true;
@@ -1399,6 +1325,12 @@ export default {
       //   });
       // });
     },
+    lookvideo(u) {
+      var d = JSON.parse(JSON.stringify(this.playerOptions));
+      d.sources[0].src = u;
+      this.playerO[0] = d;
+      this.isBlock = 16;
+    },
     closeDraw() {
       this.bg = null;
       this.drawShow = false;
@@ -1617,7 +1549,8 @@ export default {
 .workTx > img {
   width: 100%;
   height: 100%;
-  object-fit: cover;
+  /* object-fit: cover; */
+  object-fit: contain;
   cursor: pointer;
   margin: 0;
 }
@@ -1711,7 +1644,7 @@ export default {
   height: 183px;
 }
 .workImg {
-  /* width: 214px; */
+  width: 100%;
   height: 117px;
 }
 .workDetail {