lsc há 2 anos atrás
pai
commit
35bf783e5e
3 ficheiros alterados com 159 adições e 180 exclusões
  1. 1 1
      src/common/jietu.js
  2. 8 0
      src/components/components/pdf.vue
  3. 150 179
      src/components/liveProjectDetail.vue

+ 1 - 1
src/common/jietu.js

@@ -95,7 +95,7 @@ function addSWork_shishi(uid, cid, a, page, type) {
       for (var i = 0; i < _a.length; i++) {
         _a[i].removeAttribute("crossorigin")
       }
-      top.document.getElementById("shishi_loading").style.display = "none"
+      parent.document.getElementById("shishi_loading").style.display = "none"
       let _div = document.createElement('div')
       _div.style = "width:100%;height:100%;background:#0000008f;position:fixed;top:0;left:0;z-index:99999999999999;display: flex;justify-content: center;align-items: center;"
       let _inner = document.createElement('div')

+ 8 - 0
src/components/components/pdf.vue

@@ -88,9 +88,17 @@ export default {
     let _this = this;
     this.$refs.pdf.$el.style.width =
       document.getElementsByClassName("pdf")[0].offsetHeight * 1.77 + "px";
+    this.$emit(
+      "getWidth",
+      document.getElementsByClassName("pdf")[0].offsetHeight * 1.77 + "px"
+    );
     window.addEventListener("resize", () => {
       this.$refs.pdf.$el.style.width =
         document.getElementsByClassName("pdf")[0].offsetHeight * 1.77 + "px";
+      this.$emit(
+        "getWidth",
+        document.getElementsByClassName("pdf")[0].offsetHeight * 1.77 + "px"
+      );
     });
   },
   methods: {

+ 150 - 179
src/components/liveProjectDetail.vue

@@ -37,7 +37,22 @@
           style="width: 100%; height: 100%"
           :ppage="ppage"
           @getPageTotal="getPageTotal"
+          @getWidth="getWidth"
         ></pdf>
+        <div
+          class="workd_media"
+          style="height: 100%"
+          v-if="videoBlock == 6"
+          :style="{ width: Vwidth + 'px' }"
+        >
+          <video-player
+            class="video-player vjs-custom-skin"
+            :playsinline="true"
+            :options="playerO[0]"
+            @play="onPlayerPlay($event)"
+            style="width: 100%; height: 100%"
+          ></video-player>
+        </div>
       </div>
       <div
         style="
@@ -153,10 +168,7 @@
               "
             >
               <div
-                v-if="
-                  tools[ppage - 1].tools &&
-                  tools[ppage - 1].tools.indexOf(1) != -1
-                "
+                v-if="tools[ppage - 1].tools && tools[ppage - 1].tools.indexOf(1) != -1"
                 @click="checkTools(1)"
                 class="toolCss"
               >
@@ -166,26 +178,17 @@
                 </div>
               </div>
               <div
-                v-if="
-                  tools[ppage - 1].tools &&
-                  tools[ppage - 1].tools.indexOf(3) != -1
-                "
+                v-if="tools[ppage - 1].tools && tools[ppage - 1].tools.indexOf(3) != -1"
                 @click="checkTools(3)"
                 class="toolCss"
               >
                 <div class="toolImg">
-                  <img
-                    src="../assets/icon/secondToolList/mindMapping.png"
-                    alt
-                  />
+                  <img src="../assets/icon/secondToolList/mindMapping.png" alt />
                   <div>思维导图</div>
                 </div>
               </div>
               <div
-                v-if="
-                  tools[ppage - 1].tools &&
-                  tools[ppage - 1].tools.indexOf(28) != -1
-                "
+                v-if="tools[ppage - 1].tools && tools[ppage - 1].tools.indexOf(28) != -1"
                 @click="checkTools(28)"
                 class="toolCss"
               >
@@ -195,10 +198,7 @@
                 </div>
               </div>
               <div
-                v-if="
-                  tools[ppage - 1].tools &&
-                  tools[ppage - 1].tools.indexOf(4) != -1
-                "
+                v-if="tools[ppage - 1].tools && tools[ppage - 1].tools.indexOf(4) != -1"
                 @click="checkTools(4)"
                 class="toolCss"
               >
@@ -208,10 +208,7 @@
                 </div>
               </div>
               <div
-                v-if="
-                  tools[ppage - 1].tools &&
-                  tools[ppage - 1].tools.indexOf(6) != -1
-                "
+                v-if="tools[ppage - 1].tools && tools[ppage - 1].tools.indexOf(6) != -1"
                 @click="checkTools(6)"
                 class="toolCss"
               >
@@ -221,18 +218,12 @@
                 </div>
               </div>
               <div
-                v-if="
-                  tools[ppage - 1].tools &&
-                  tools[ppage - 1].tools.indexOf(7) != -1
-                "
+                v-if="tools[ppage - 1].tools && tools[ppage - 1].tools.indexOf(7) != -1"
                 @click="checkTools(7)"
                 class="toolCss"
               >
                 <div class="toolImg">
-                  <img
-                    src="../assets/icon/secondToolList/mindNetwork.png"
-                    alt
-                  />
+                  <img src="../assets/icon/secondToolList/mindNetwork.png" alt />
                   <div>思维网格</div>
                 </div>
               </div>
@@ -249,11 +240,7 @@
                 <div class="tools_title">
                   <span>电子白板</span>
                   <div>
-                    <img
-                      src="../assets/full.png"
-                      class="full"
-                      @click="fullTools"
-                    />
+                    <img src="../assets/full.png" class="full" @click="fullTools" />
                   </div>
                 </div>
                 <iframe
@@ -266,11 +253,7 @@
                 <div class="tools_title">
                   <span>思维导图</span>
                   <div>
-                    <img
-                      src="../assets/full.png"
-                      class="full"
-                      @click="fullTools"
-                    />
+                    <img src="../assets/full.png" class="full" @click="fullTools" />
                   </div>
                 </div>
                 <iframe
@@ -283,11 +266,7 @@
                 <div class="tools_title">
                   <span>翻译</span>
                   <div>
-                    <img
-                      src="../assets/full.png"
-                      class="full"
-                      @click="fullTools"
-                    />
+                    <img src="../assets/full.png" class="full" @click="fullTools" />
                   </div>
                 </div>
                 <iframe
@@ -300,11 +279,7 @@
                 <div class="tools_title">
                   <span>协同文档</span>
                   <div>
-                    <img
-                      src="../assets/full.png"
-                      class="full"
-                      @click="fullTools"
-                    />
+                    <img src="../assets/full.png" class="full" @click="fullTools" />
                   </div>
                 </div>
                 <iframe
@@ -316,11 +291,7 @@
                 <div class="tools_title">
                   <span>思维网格</span>
                   <div>
-                    <img
-                      src="../assets/full.png"
-                      class="full"
-                      @click="fullTools"
-                    />
+                    <img src="../assets/full.png" class="full" @click="fullTools" />
                   </div>
                 </div>
                 <iframe
@@ -364,9 +335,7 @@
                 </div>
               </div>
               <div class="nextStepBox">
-                <div class="nextStepOne" @click="(isBlock = 4), (full = false)">
-                  返回
-                </div>
+                <div class="nextStepOne" @click="(isBlock = 4), (full = false)">返回</div>
               </div>
               <div
                 class="nextStepOne"
@@ -389,7 +358,7 @@
                   style="display: none"
                   @change="beforeUpload1($event, 1)"
                 />
-              </div> -->
+              </div>-->
             </div>
           </div>
           <div
@@ -434,12 +403,7 @@
             <span
               slot="footer"
               class="dialog-footer sztFooter"
-              style="
-                padding: 0 0 30px 0px;
-                position: absolute;
-                right: 20px;
-                bottom: 0;
-              "
+              style="padding: 0 0 30px 0px; position: absolute; right: 20px; bottom: 0"
             >
               <!-- <el-button @click="isBlock = 0">取消</el-button> -->
               <el-button type="primary" @click="addWork(6)">确定</el-button>
@@ -456,9 +420,7 @@
           >
             <div>
               <div v-for="(tk, tIndex) in 7" :key="tIndex" class="tkCss">
-                <div style="margin-right: 10px; font-size: 18px">
-                  {{ tIndex + 1 }}、
-                </div>
+                <div style="margin-right: 10px; font-size: 18px">{{ tIndex + 1 }}、</div>
                 <el-select v-model="tkAnswer[tIndex]" placeholder="请选择答案">
                   <el-option
                     v-for="(tkA, tkAIndex) in tkAnswerBox"
@@ -472,22 +434,13 @@
             <span
               slot="footer"
               class="dialog-footer sztFooter"
-              style="
-                padding: 0 0 30px 0px;
-                position: absolute;
-                right: 20px;
-                bottom: 0;
-              "
+              style="padding: 0 0 30px 0px; position: absolute; right: 20px; bottom: 0"
             >
               <el-button @click="isBlock = 0">取消</el-button>
               <el-button type="primary" @click="addWork(5)">提交</el-button>
             </span>
           </div>
-          <div
-            class="answerBox"
-            v-if="isBlock == 5"
-            style="padding: 10px 0 0 25px"
-          >
+          <div class="answerBox" v-if="isBlock == 5" style="padding: 10px 0 0 25px">
             <div style="color: #d1d1d1; font-size: 24px">课堂实践</div>
             <div
               style="
@@ -514,21 +467,13 @@
                 v-if="tools[ppage - 1].file && tools[ppage - 1].file.length"
                 class="fileBox"
               >
-                <div
-                  class="fileListCss"
-                  v-for="(v, vIndex) in videoList"
-                  :key="vIndex"
-                >
+                <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="(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>
@@ -538,30 +483,23 @@
             </div>
             <!-- <div class="nextStepBox">
               <div class="nextStepOne" @click="isBlock = 0">关闭</div>
-            </div> -->
+            </div>-->
           </div>
-          <div
-            class="answerBox"
-            :class="{ fullStyle: full }"
-            v-if="isBlock == 6"
-          >
+          <!-- <div class="answerBox" :class="{ fullStyle: full }" v-if="isBlock == 6">
             <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]"
-                    @play="onPlayerPlay($event)"
-                    style="width: 90%; height: 100%; margin: 0 0 0 30px"
-                  ></video-player>
-                </div>
+                     <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 = 0">关闭</div>
-              </div> -->
             </div>
-          </div>
+          </div>-->
           <div
             class="answerBox"
             style="height: 100%"
@@ -580,11 +518,7 @@
               </div>
             </div>
           </div>
-          <div
-            class="answerBox"
-            :class="{ fullStyle: full }"
-            v-if="isBlock == 9"
-          >
+          <div class="answerBox" :class="{ fullStyle: full }" v-if="isBlock == 9">
             <div style="height: 70%; width: 100%">
               <div class="wheel">
                 <div class="workd_media" style="height: 100%">
@@ -600,7 +534,7 @@
               </div>
               <!-- <div class="nextStepBox" style="margin-top: 5%">
                 <div class="nextStepOne" @click="isBlock = 0">关闭</div>
-              </div> -->
+              </div>-->
             </div>
           </div>
         </div>
@@ -612,9 +546,7 @@
         class="nextStepOne"
         style="float: right"
         @click="addImg($event)"
-        v-if="
-          tools[ppage - 1].tools && tools[ppage - 1].tools.indexOf(16) != -1
-        "
+        v-if="tools[ppage - 1].tools && tools[ppage - 1].tools.indexOf(16) != -1"
       >
         上传文件
         <input
@@ -624,12 +556,24 @@
           @change="beforeUpload1($event, 1)"
         />
       </div>
+      <div
+        class="nextStepOne"
+        style="float: right"
+        @click="addImg($event)"
+        v-if="tools[ppage - 1].tools && tools[ppage - 1].tools.indexOf(29) != -1"
+      >
+        上传视频
+        <input
+          type="file"
+          accept="video/mp4, video/quicktime, video/x-msvideo"
+          style="display: none"
+          @change="beforeUpload1($event, 2)"
+        />
+      </div>
     </div>
     <div v-if="proVisible" class="mask">
       <div class="progressBox">
-        <div class="lbox">
-          <img src="../assets/loading.gif" />上传中,请稍后
-        </div>
+        <div class="lbox"><img src="../assets/loading.gif" />上传中,请稍后</div>
         <el-progress
           :text-inside="true"
           :stroke-width="20"
@@ -760,7 +704,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",
             },
           ],
         },
@@ -776,7 +721,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",
             },
           ],
         },
@@ -787,7 +733,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平台
@@ -844,6 +790,8 @@ export default {
       },
       playerO: {},
       videoindex: 0,
+      videoBlock: 0,
+      Vwidth: 0,
     };
   },
   methods: {
@@ -879,14 +827,11 @@ 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) {
@@ -950,7 +895,8 @@ export default {
       if (type == 1) {
         var _tmp = this.upload[0].url;
       } else if (type == 2) {
-        var _tmp = this.upload[0].upVedio;
+        // var _tmp = this.upload[0].upVedio;
+        var _tmp = this.upload[0].url;
       } else if (type == 100) {
         var _tmp = this.imgFileUp;
       }
@@ -967,10 +913,10 @@ export default {
 
       var bucket = new window.AWS.S3({ params: { Bucket: "ccrb" } }); //选择桶
       var _this = this;
-      _this.progress = 0;
-      _this.proVisible = true;
 
       if (file) {
+        _this.progress = 0;
+        _this.proVisible = true;
         var params = {
           Key:
             file.name.split(".")[0] +
@@ -1010,12 +956,9 @@ export default {
                 _this.imgChange(null, null, type);
                 _this.addWork(4);
               } else if (type == 2) {
-                _this.upload[0].upVedio.push({
-                  name: file.name,
-                  url: data.Location,
-                  uid: file.uid,
-                });
+                _this.upload[0].url = data.Location;
                 _this.imgChange(null, null, type);
+                _this.addWork(7);
               }
               console.log(data.Location);
             }
@@ -1095,7 +1038,7 @@ export default {
           .catch(() => {});
       } else {
         this.getImg();
-        this.addSWork(type);
+        // this.addSWork(type);
       }
     },
     addWork(type) {
@@ -1136,7 +1079,7 @@ export default {
     },
     addSWork(type) {
       var a;
-      if (type == 4) {
+      if (type == 4 || type == 7) {
         a = this.upload[0].url;
       } else if (type == 6) {
         a = JSON.stringify(this.rateList);
@@ -1171,12 +1114,35 @@ export default {
         });
     },
     selectSWork() {
+      let _type = 0;
+      if (this.tools[this.ppage - 1].tools) {
+        if (
+          this.tools[this.ppage - 1].tools.indexOf(1) != -1 ||
+          this.tools[this.ppage - 1].tools.indexOf(3) != -1 ||
+          this.tools[this.ppage - 1].tools.indexOf(6) != -1 ||
+          this.tools[this.ppage - 1].tools.indexOf(7) != -1 ||
+          this.tools[this.ppage - 1].tools.indexOf(10) != -1 ||
+          this.tools[this.ppage - 1].tools.indexOf(16) != -1 ||
+          this.tools[this.ppage - 1].tools.indexOf(13) != -1
+        ) {
+          _type = 4;
+        } else if (this.tools[this.ppage - 1].tools.indexOf(9) != -1) {
+          _type = 1;
+        } else if (this.tools[this.ppage - 1].tools.indexOf(27) != -1) {
+          _type = 5;
+        } else if (this.tools[this.ppage - 1].tools.indexOf(14) != -1) {
+          _type = 6;
+        } else if (this.tools[this.ppage - 1].tools.indexOf(29) != -1) {
+          _type = 7;
+        }
+      }
       this.isAnswer = false;
       this.isNoHomeWork = false;
       let params = {
         uid: this.userid,
         cid: this.cid,
         p: this.ppage - 1,
+        type: _type,
       };
       this.ajax
         .get(this.$store.state.api + "selectSWork", params)
@@ -1188,7 +1154,7 @@ export default {
             } else if (res.data[0][0].type == 5) {
               this.isNoHomeWork = true;
               this.tkAnswer = JSON.parse(res.data[0][0].upload);
-            } else if (res.data[0][0].type == 4) {
+            } else if (res.data[0][0].type == 4 || res.data[0][0].type == 7) {
               this.isNoHomeWork = true;
               this.upload[0].url = res.data[0][0].upload;
             } else if (res.data[0][0].type == 6) {
@@ -1299,16 +1265,12 @@ export default {
       for (var i = 0; i < b.length; i++) {
         if (
           a.indexOf(
-            b[i].src
-              .split(".")
-              [b[i].src.split(".").length - 1].toLocaleUpperCase()
+            b[i].src.split(".")[b[i].src.split(".").length - 1].toLocaleUpperCase()
           ) != -1
         ) {
           this.fileList.push(b[i]);
         } else if (
-          b[i].src
-            .split(".")
-            [b[i].src.split(".").length - 1].toLocaleUpperCase() == "MP3"
+          b[i].src.split(".")[b[i].src.split(".").length - 1].toLocaleUpperCase() == "MP3"
         ) {
           this.videoList2.push(b[i]);
         } else {
@@ -1319,6 +1281,8 @@ export default {
         this.playVideo();
       } else if (this.videoList2.length) {
         this.playVideo2();
+      } else {
+        this.videoBlock = 0;
       }
     },
     openFile(u) {
@@ -1327,12 +1291,13 @@ export default {
     },
     playVideo() {
       var d = JSON.parse(JSON.stringify(this.playerOptions));
-      for (var i = 0; i < this.videoList.length; i++) {
-        d.sources[0].src = this.videoList[i].src;
-        this.playerO[0] = d;
-        this.videoindex = i;
-      }
-      this.isBlock = 6;
+      // for (var i = 0; i < this.videoList.length; i++) {
+      d.sources[0].src = this.videoList[0].src;
+      this.playerO[0] = d;
+      // this.videoindex = i;
+      // }
+      // this.isBlock = 6;
+      this.videoBlock = 6;
     },
     playVideo2() {
       this.audioUrl = this.videoList2[0].src;
@@ -1353,10 +1318,7 @@ export default {
         // this.isBlock = 3;
       } else {
         this.isBlock = 0;
-        if (
-          this.tools[page - 1].tools &&
-          this.tools[page - 1].tools.indexOf(9) != -1
-        ) {
+        if (this.tools[page - 1].tools && this.tools[page - 1].tools.indexOf(9) != -1) {
           this.isBlock = 1;
         }
         // if (this.ppage > 3) {
@@ -1367,8 +1329,7 @@ export default {
         this.toolCount = 0;
         if (
           this.tools[page - 1].tools &&
-          (this.tools[page - 1].tools[0] == 14 ||
-            this.tools[page - 1].tools[0] == 12)
+          (this.tools[page - 1].tools[0] == 14 || this.tools[page - 1].tools[0] == 12)
         ) {
           this.isBlock = 0;
         }
@@ -1380,10 +1341,7 @@ export default {
         ) {
           this.isBlock = 4;
         }
-        if (
-          this.tools[page - 1].tools &&
-          this.tools[page - 1].tools.length > 1
-        ) {
+        if (this.tools[page - 1].tools && this.tools[page - 1].tools.length > 1) {
           this.isBlock = 4;
         }
         if (this.tools[page - 1].tools && !this.tools[page - 1].tools.length) {
@@ -1465,6 +1423,16 @@ export default {
     getPageTotal(total) {
       this.pageTotal = total;
     },
+    getWidth(total) {
+      this.Vwidth = total;
+      if (this.videoBlock == 6) {
+        this.videoBlock = 0;
+
+        setTimeout(() => {
+          this.videoBlock = 6;
+        }, 1000);
+      }
+    },
     fullTools() {
       this.full = !this.full;
     },
@@ -1484,25 +1452,17 @@ export default {
             "https://pbl.cocorobo.cn/pbl-student-table/dist/js/aws-sdk-2.235.1.min.js";
           const script3 = document.createElement("script");
           script3.type = "text/javascript";
-          script3.src =
-            "https://html2canvas.hertzen.com/dist/js/html2canvas.min.js";
+          script3.src = "https://html2canvas.hertzen.com/dist/js/html2canvas.min.js";
           const script4 = document.createElement("script");
           script4.type = "text/javascript";
-          script4.src =
-            "https://pbl.cocorobo.cn/pbl-student-table/dist/js/jietu.js";
+          script4.src = "https://pbl.cocorobo.cn/pbl-student-table/dist/js/jietu.js";
 
           if (_this.toolCount == 1) {
             _this.$refs.whiteBoard.onload = () => {
-              _this.$refs.whiteBoard.contentWindow.document.body.appendChild(
-                script1
-              );
-              _this.$refs.whiteBoard.contentWindow.document.body.appendChild(
-                script2
-              );
+              _this.$refs.whiteBoard.contentWindow.document.body.appendChild(script1);
+              _this.$refs.whiteBoard.contentWindow.document.body.appendChild(script2);
               // _this.$refs.whiteBoard.contentWindow.document.body.appendChild(script3);
-              _this.$refs.whiteBoard.contentWindow.document.body.appendChild(
-                script4
-              );
+              _this.$refs.whiteBoard.contentWindow.document.body.appendChild(script4);
             };
           } else if (_this.toolCount == 3) {
             _this.$refs.mind.onload = () => {
@@ -1575,6 +1535,8 @@ export default {
 
 .imgMiddle {
   width: 100%;
+  position: relative;
+  height: 100%;
 }
 
 .imgMiddle > img,
@@ -2030,4 +1992,13 @@ img {
   flex-wrap: nowrap;
   margin-bottom: 15px;
 }
+.workd_media {
+  /* width: 1497.42px; */
+  /* width: auto; */
+  height: 100%;
+  position: absolute;
+  top: 0;
+  left: 50%;
+  transform: translateX(-50%);
+}
 </style>