Browse Source

点赞评论及支持视频

zengyicheng 2 years ago
parent
commit
c1041f7a3f
2 changed files with 1271 additions and 63 deletions
  1. 675 34
      src/components/study.vue
  2. 596 29
      src/components/studyStudent.vue

File diff suppressed because it is too large
+ 675 - 34
src/components/study.vue


+ 596 - 29
src/components/studyStudent.vue

@@ -875,7 +875,7 @@
                     >
                       <div
                         class="works"
-                        style="width: 200px; height: 140px; padding-top: 25px"
+                        style="width: 200px; height: 140px; padding: 25px 0"
                         v-for="(w, wIndex) in workStudent[toolIndex]"
                         :key="wIndex"
                       >
@@ -893,6 +893,14 @@
                             alt
                           />
                         </div>
+                        <div class="workImg" v-if="w.type == 3">
+                          <img
+                            style="cursor: pointer"
+                            src="../assets/icon/works/noImg.png"
+                            @click="openVideo(w.works)"
+                            alt
+                          />
+                        </div>
                         <div class="worksName">
                           <div>{{ w.sName }}</div>
                         </div>
@@ -1006,7 +1014,7 @@
                     >
                       <div
                         class="works"
-                        style="width: 200px; height: 140px; padding-top: 25px"
+                        style="width: 200px; height: 140px; padding: 25px 0"
                         v-for="(w, wIndex) in workStudent[toolIndex]"
                         :key="wIndex"
                       >
@@ -1039,7 +1047,7 @@
                     >
                       <div
                         class="works"
-                        style="width: 200px; height: 140px; padding-top: 25px"
+                        style="width: 200px; height: 140px; padding: 25px 0"
                         v-for="(w, wIndex) in workStudent[toolIndex]"
                         :key="wIndex"
                       >
@@ -1072,7 +1080,7 @@
                     >
                       <div
                         class="works"
-                        style="width: 200px; height: 140px; padding-top: 25px"
+                        style="width: 200px; height: 140px; padding: 25px 0"
                         v-for="(w, wIndex) in workStudent[toolIndex]"
                         :key="wIndex"
                       >
@@ -1105,7 +1113,7 @@
                     >
                       <div
                         class="works"
-                        style="width: 200px; height: 140px; padding-top: 25px"
+                        style="width: 200px; height: 140px; padding: 25px 0"
                         v-for="(w, wIndex) in workStudent[toolIndex]"
                         :key="wIndex"
                       >
@@ -1138,7 +1146,7 @@
                     >
                       <div
                         class="works"
-                        style="width: 200px; height: 140px; padding-top: 25px"
+                        style="width: 200px; height: 140px; padding: 25px 0"
                         v-for="(w, wIndex) in workStudent[toolIndex]"
                         :key="wIndex"
                       >
@@ -1181,7 +1189,7 @@
                     >
                       <div
                         class="works"
-                        style="width: 200px; height: 140px; padding-top: 25px"
+                        style="width: 200px; height: 140px; padding: 25px 0"
                         v-for="(w, wIndex) in worksStudent[toolIndex]"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
@@ -1200,8 +1208,44 @@
                             alt
                           />
                         </div>
-                        <div class="worksName">
-                          <div>{{ w.sName }}</div>
+                        <div class="workImg" v-if="w.type == 3">
+                          <img
+                            style="cursor: pointer"
+                            src="../assets/icon/works/noImg.png"
+                            @click="openVideo(w.works)"
+                            alt
+                          />
+                        </div>
+
+                        <div class="comment" style="min-width: 200px">
+                          <div class="worksName">
+                            <div>{{ w.sName }}</div>
+                          </div>
+                          <div class="commentList">
+                            <div class="commentList">
+                              <div
+                                class="commentImg"
+                                @click="
+                                  isLikes(w.wid, userid, 1, null, w.isLikes)
+                                "
+                              >
+                                <img
+                                  :src="w.isLikes == true ? likes : noLikes"
+                                  alt=""
+                                />
+                              </div>
+                              <div>{{ w.likesCount }}</div>
+                            </div>
+                            <div class="commentList">
+                              <div class="commentImg" @click="commentOther(w)">
+                                <img
+                                  src="../assets/icon/comment/comment.png"
+                                  alt=""
+                                />
+                              </div>
+                              <div>{{ w.commentCount }}</div>
+                            </div>
+                          </div>
                         </div>
                       </div>
                     </div>
@@ -1369,15 +1413,15 @@
                               </div>
                               <div>{{ w.likesCount }}</div>
                             </div>
-                            <!-- <div class="commentList">
-                              <div class="commentImg">
+                            <div class="commentList">
+                              <div class="commentImg" @click="commentOther(w)">
                                 <img
                                   src="../assets/icon/comment/comment.png"
                                   alt=""
                                 />
                               </div>
                               <div>{{ w.commentCount }}</div>
-                            </div> -->
+                            </div>
                           </div>
                         </div>
                       </div>
@@ -1419,7 +1463,7 @@
                     >
                       <div
                         class="works"
-                        style="width: 200px; height: 140px; padding-top: 25px"
+                        style="width: 200px; height: 140px; padding: 25px 0"
                         v-for="(w, wIndex) in worksStudent[toolIndex]"
                         :key="wIndex"
                       >
@@ -1431,8 +1475,35 @@
                             alt
                           />
                         </div>
-                        <div class="worksName">
-                          <div>{{ w.sName }}</div>
+                        <div class="comment" style="min-width: 200px">
+                          <div class="worksName">
+                            <div>{{ w.sName }}</div>
+                          </div>
+                          <div class="commentList">
+                            <div class="commentList">
+                              <div
+                                class="commentImg"
+                                @click="
+                                  isLikes(w.wid, userid, 1, null, w.isLikes)
+                                "
+                              >
+                                <img
+                                  :src="w.isLikes == true ? likes : noLikes"
+                                  alt=""
+                                />
+                              </div>
+                              <div>{{ w.likesCount }}</div>
+                            </div>
+                            <div class="commentList">
+                              <div class="commentImg" @click="commentOther(w)">
+                                <img
+                                  src="../assets/icon/comment/comment.png"
+                                  alt=""
+                                />
+                              </div>
+                              <div>{{ w.commentCount }}</div>
+                            </div>
+                          </div>
                         </div>
                       </div>
                     </div>
@@ -1473,7 +1544,7 @@
                     >
                       <div
                         class="works"
-                        style="width: 200px; height: 140px; padding-top: 25px"
+                        style="width: 200px; height: 140px; padding: 25px 0"
                         v-for="(w, wIndex) in worksStudent[toolIndex]"
                         :key="wIndex"
                       >
@@ -1488,6 +1559,36 @@
                         <div class="worksName">
                           <div>{{ w.sName }}</div>
                         </div>
+                        <div class="comment" style="min-width: 200px">
+                          <div class="worksName">
+                            <div>{{ w.sName }}</div>
+                          </div>
+                          <div class="commentList">
+                            <div class="commentList">
+                              <div
+                                class="commentImg"
+                                @click="
+                                  isLikes(w.wid, userid, 1, null, w.isLikes)
+                                "
+                              >
+                                <img
+                                  :src="w.isLikes == true ? likes : noLikes"
+                                  alt=""
+                                />
+                              </div>
+                              <div>{{ w.likesCount }}</div>
+                            </div>
+                            <div class="commentList">
+                              <div class="commentImg" @click="commentOther(w)">
+                                <img
+                                  src="../assets/icon/comment/comment.png"
+                                  alt=""
+                                />
+                              </div>
+                              <div>{{ w.commentCount }}</div>
+                            </div>
+                          </div>
+                        </div>
                       </div>
                     </div>
                     <div style="padding-top: 15px; font-size: 18px">未提交</div>
@@ -1527,7 +1628,7 @@
                     >
                       <div
                         class="works"
-                        style="width: 200px; height: 140px; padding-top: 25px"
+                        style="width: 200px; height: 140px; padding: 25px 0"
                         v-for="(w, wIndex) in worksStudent[toolIndex]"
                         :key="wIndex"
                       >
@@ -1539,8 +1640,35 @@
                             alt
                           />
                         </div>
-                        <div class="worksName">
-                          <div>{{ w.sName }}</div>
+                        <div class="comment" style="min-width: 200px">
+                          <div class="worksName">
+                            <div>{{ w.sName }}</div>
+                          </div>
+                          <div class="commentList">
+                            <div class="commentList">
+                              <div
+                                class="commentImg"
+                                @click="
+                                  isLikes(w.wid, userid, 1, null, w.isLikes)
+                                "
+                              >
+                                <img
+                                  :src="w.isLikes == true ? likes : noLikes"
+                                  alt=""
+                                />
+                              </div>
+                              <div>{{ w.likesCount }}</div>
+                            </div>
+                            <div class="commentList">
+                              <div class="commentImg" @click="commentOther(w)">
+                                <img
+                                  src="../assets/icon/comment/comment.png"
+                                  alt=""
+                                />
+                              </div>
+                              <div>{{ w.commentCount }}</div>
+                            </div>
+                          </div>
                         </div>
                       </div>
                     </div>
@@ -1581,7 +1709,7 @@
                     >
                       <div
                         class="works"
-                        style="width: 200px; height: 140px; padding-top: 25px"
+                        style="width: 200px; height: 140px; padding: 25px 0"
                         v-for="(w, wIndex) in worksStudent[toolIndex]"
                         :key="wIndex"
                       >
@@ -1593,8 +1721,35 @@
                             alt
                           />
                         </div>
-                        <div class="worksName">
-                          <div>{{ w.sName }}</div>
+                        <div class="comment" style="min-width: 200px">
+                          <div class="worksName">
+                            <div>{{ w.sName }}</div>
+                          </div>
+                          <div class="commentList">
+                            <div class="commentList">
+                              <div
+                                class="commentImg"
+                                @click="
+                                  isLikes(w.wid, userid, 1, null, w.isLikes)
+                                "
+                              >
+                                <img
+                                  :src="w.isLikes == true ? likes : noLikes"
+                                  alt=""
+                                />
+                              </div>
+                              <div>{{ w.likesCount }}</div>
+                            </div>
+                            <div class="commentList">
+                              <div class="commentImg" @click="commentOther(w)">
+                                <img
+                                  src="../assets/icon/comment/comment.png"
+                                  alt=""
+                                />
+                              </div>
+                              <div>{{ w.commentCount }}</div>
+                            </div>
+                          </div>
                         </div>
                       </div>
                     </div>
@@ -1896,7 +2051,7 @@
               </div>
               <input
                 type="file"
-                accept="application/pdf, application/.ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, image/*"
+                accept="video/mp4, video/quicktime, video/x-msvideo,application/pdf, application/.ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, image/*"
                 capture="camera"
                 style="display: none"
                 @change="beforeUpload1($event, 1)"
@@ -1927,6 +2082,7 @@
                   alt
                   v-if="fileType == 0"
                 />
+                <img :src="word" alt v-else-if="fileType == 1" />
                 <img :src="word" alt v-else />
                 <span class="picName">{{ studyJuri[0].cover[0].name }}</span>
 
@@ -2298,6 +2454,171 @@
         >
       </div>
     </el-dialog>
+    <el-dialog
+      title="查看视频"
+      :visible.sync="videoVisible"
+      :append-to-body="true"
+      width="600px"
+      :before-close="handleClose"
+      class="dialog_diy"
+    >
+      <div class="workd_media" style="height: 100%" v-if="videoDetail.sources">
+        <video-player
+          class="video-player vjs-custom-skin"
+          :playsinline="true"
+          :options="videoDetail"
+          @play="onPlayerPlay($event)"
+          style="width: 90%; height: 100%; margin: 0 0 0 30px"
+        ></video-player>
+      </div>
+      <div slot="footer">
+        <el-button
+          style="background: #409efe; color: #fff"
+          @click="videoVisible = false"
+          >关 闭</el-button
+        >
+      </div>
+    </el-dialog>
+    <el-dialog
+      title="查看详情"
+      :visible.sync="commentDialogVisible"
+      :append-to-body="true"
+      width="400px"
+      :before-close="handleClose"
+      class="dialog_diy"
+    >
+      <div class="commentTop">
+        <div class="studentDetail">
+          <div class="tx"><img src="../assets/avatar.png" alt="" /></div>
+          <div class="nameAndTime">
+            <div style="margin-bottom: 5px">{{ commentDetail.sName }}</div>
+            <div>{{ commentDetail.time }}</div>
+          </div>
+        </div>
+        <div
+          class="worksAnswer"
+          v-if="commentDetail.works && commentDetail.type == 2"
+        >
+          {{ JSON.parse(commentDetail.works)[0].answer }}
+        </div>
+        <div
+          class="worksAnswer"
+          v-if="commentDetail.works && commentDetail.type == 1"
+        >
+          <pdf
+            v-if="showPDF"
+            :pdfUrl="pptImgUrl"
+            style="width: 100%; height: 520px; overflow: auto"
+            :class="{ fullStyle: full }"
+          ></pdf>
+          <iframe
+            v-else
+            :src="pptImgUrl"
+            frameborder="0"
+            width="100%"
+            height="600"
+            :class="{ fullStyle: full }"
+          ></iframe>
+        </div>
+        <div
+          class="worksAnswer"
+          v-if="commentDetail.works && commentDetail.type == 0"
+        >
+          <img
+            :src="commentDetail.works"
+            alt=""
+            @click="previewImg(commentDetail.works)"
+          />
+        </div>
+        <div
+          class="worksAnswer"
+          v-if="commentDetail.works && commentDetail.type == 3"
+        >
+          <video-player
+            class="video-player vjs-custom-skin"
+            :playsinline="true"
+            :options="videoDetail"
+            @play="onPlayerPlay($event)"
+            style="width: 90%; height: 100%; margin: 0 0 0 30px"
+          ></video-player>
+        </div>
+        <div class="comment">
+          <div class="commentList">
+            <div class="commentImg">
+              <img
+                :src="commentDetail.isLikes == true ? likes : noLikes"
+                alt=""
+              />
+            </div>
+            <div>{{ commentDetail.likesCount }}</div>
+          </div>
+          <div class="commentList">
+            <div class="commentImg">
+              <img src="../assets/icon/comment/comment.png" alt="" />
+            </div>
+            <div>{{ commentDetail.commentCount }}</div>
+          </div>
+        </div>
+      </div>
+      <div class="commentBox">
+        <div class="pl">评论:</div>
+        <div style="height: 200px; overflow: auto">
+          <div v-if="commentDetail.commentJson" style="padding: 10px 0 0 0">
+            <div
+              class="studentDetail"
+              style="padding-top: 10px"
+              v-for="(co, coIndex) in commentDetail.commentJson"
+              :key="coIndex"
+            >
+              <div class="tx" style="width: 40px">
+                <img src="../assets/avatar.png" alt="" />
+              </div>
+              <div class="plPerson">
+                <div class="plName">
+                  <div>{{ co.commentPeople }}</div>
+                  <div style="margin-left: 5px">
+                    {{ co.commentTime }}
+                  </div>
+                </div>
+                <div class="plContent">{{ co.commentText }}</div>
+              </div>
+            </div>
+          </div>
+          <div v-else style="padding: 10px 0 0 0">暂无评论</div>
+        </div>
+      </div>
+      <div>
+        <div
+          style="
+            color: #556db4;
+            font-size: 14px;
+            font-weight: bold;
+            padding-bottom: 10px;
+          "
+        >
+          评价
+        </div>
+        <div>
+          <textarea
+            rows="3"
+            class="pj"
+            style="padding: 10px 5px"
+            cols
+            v-model="commentText"
+            placeholder="请输入对该学生的评价"
+          ></textarea>
+        </div>
+      </div>
+
+      <div slot="footer">
+        <el-button @click="commentDialogVisible = false">取 消</el-button>
+        <el-button
+          type="primary"
+          @click="addComment(commentDetail.wid, userid, 2)"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
     <el-dialog
       title="查看文档"
       :visible.sync="fullDialogVisible"
@@ -2381,6 +2702,10 @@ export default {
   data() {
     return {
       dialogVisible: false,
+      commentDialogVisible: false,
+      videoVisible: false,
+      commentDetail: [],
+      videoDetail: {},
       id: this.$route.query.courseId,
       userid: this.$route.query.userid,
       classId: this.$route.query.cid,
@@ -2392,6 +2717,7 @@ export default {
       screenType: this.$route.query.screenType,
       pptImgUrl: "",
       pptImgUrl1: "",
+      commentText: "",
       full: false,
       sIsOpen: false,
       type: 1,
@@ -2455,6 +2781,31 @@ export default {
           fullscreenToggle: true, //全屏按钮
         },
       },
+      playerOptions1: {
+        playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
+        autoplay: false, //如果true,浏览器准备好时开始回放。
+        muted: false, // 默认情况下将会消除任何音频。
+        loop: false, // 导致视频一结束就重新开始。
+        preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
+        language: "zh-CN",
+        aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
+        fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
+        sources: [
+          {
+            type: "video/mp4", //这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目   || "video/ogg"|| "video/webm"
+            src: "", //url地址require("../../assets/media/aaa.mp4")
+          },
+        ],
+        // poster: require("../../assets/tu31.png"), //你的封面地址
+        // poster: dataRes.imgUrl, //你的封面地址
+        notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
+        controlBar: {
+          timeDivider: true, //当前时间和持续时间的分隔符
+          durationDisplay: true, //显示持续时间
+          remainingTimeDisplay: false, //是否显示剩余时间功能
+          fullscreenToggle: true, //全屏按钮
+        },
+      },
       playerO: {},
       noneBtnImg: false,
       proVisible: false,
@@ -2585,8 +2936,10 @@ export default {
       var typesql;
       if (this.fileType === 0) {
         typesql = 1;
-      } else {
+      } else if (this.fileType === 1) {
         typesql = 4;
+      } else {
+        typesql = 5;
       }
       if (this.workTypeA == true) {
         this.$confirm(
@@ -2761,6 +3114,12 @@ export default {
           console.error(err);
         });
     },
+    openVideo(w) {
+      this.videoDetail = {};
+      this.playerOptions1.sources[0].src = w;
+      this.videoDetail = this.playerOptions1;
+      this.videoVisible = true;
+    },
     isLikes(wid, uid, t, c, isLikes) {
       if (isLikes == false) {
         let params = [
@@ -2788,7 +3147,7 @@ export default {
         let params = {
           wid: wid,
           lid: uid,
-          type: 1,
+          type: t,
         };
         this.ajax
           .get(this.$store.state.api + "deleteComment", params)
@@ -2804,6 +3163,64 @@ export default {
           });
       }
     },
+    commentOther(w) {
+      this.commentDetail = [];
+      this.commentDialogVisible = true;
+      this.commentDetail = w;
+      if (w.works && w.type == 1) {
+        this.pptImgUrl = "";
+        var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
+        if (
+          a.indexOf(
+            w.works
+              .split(".")
+              [w.works.split(".").length - 1].toLocaleUpperCase()
+          ) != -1
+        ) {
+          this.pptImgUrl =
+            "https://view.officeapps.live.com/op/view.aspx?src=" + w.works;
+          this.showPDF = false;
+        } else if (
+          w.works
+            .split(".")
+            [w.works.split(".").length - 1].toLocaleUpperCase() == "PDF"
+        ) {
+          this.pptImgUrl = w.works;
+          this.showPDF = true;
+        }
+      } else if (w.works && w.type == 3) {
+        this.videoDetail = {};
+        this.playerOptions1.sources[0].src = w.works;
+        this.videoDetail = this.playerOptions1;
+        this.videoVisible = true;
+      }
+    },
+    addComment(wid, uid, t) {
+      let params = [
+        {
+          wid: wid,
+          lid: uid,
+          t: t,
+          c: this.commentText,
+        },
+      ];
+      this.ajax
+        .post(this.$store.state.api + "insertComment", params)
+        .then((res) => {
+          this.$message({
+            message: "评论成功",
+            type: "success",
+          });
+          this.commentText = "";
+          this.commentDialogVisible = false;
+          this.selectSWorks();
+        })
+        .catch((err) => {
+          this.$message.error("评论失败");
+          console.error(err);
+        });
+    },
+
     selectSWorks() {
       //教师查看全部作业
       let params = {
@@ -2820,6 +3237,38 @@ export default {
             ].toolChoose;
           var b = res.data[0];
           var c = ["PDF", "DOC", "DOCX", "PPT", "PPTX", "XLSX", "XLS"];
+          var y = [
+            "AVI",
+            "NAVI",
+            "MPEG",
+            "ASF",
+            "MOV",
+            "WMV",
+            "3GP",
+            "RM",
+            "RMVB",
+            "FLV",
+            "F4V",
+            "H.264",
+            "H.265",
+            "REAL VIDEO",
+            "MKV",
+            "WebM",
+            "HDDVD",
+            "MP4",
+            "MPG",
+            "M4V",
+            "MGV",
+            "OGV",
+            "QTM",
+            "STR",
+            "AMC",
+            "DVX",
+            "EVO",
+            "DAT",
+            "OGG",
+            "OGM",
+          ];
           var d = res.data[1];
           var e = res.data[2];
 
@@ -2831,6 +3280,7 @@ export default {
               var likesCount = 0;
               var commentCount = 0;
               var isLikes = false;
+              var commentJson = [];
               var data = b[j];
               if (i == b[j].tool) {
                 if (data.type == 2 && a[i].tool[0] == 4) {
@@ -2866,12 +3316,19 @@ export default {
                 }
                 for (var l = 0; l < e.length; l++) {
                   //评论
-                  if (d[k].workId == b[j].id) {
+                  if (e[l].workId == b[j].id) {
                     commentCount++;
+                    if (e[l].comment != "") {
+                      commentJson.push({
+                        commentText: e[l].comment,
+                        commentTime: e[l].commentTime,
+                        commentPeople: e[l].commentPeople,
+                      });
+                    }
                   }
                 }
                 if (
-                  (b[j].type == 1 || b[j].type == 4) &&
+                  (b[j].type == 1 || b[j].type == 4 || b[j].type == 5) &&
                   a[i].tool[0] != 15 &&
                   a[i].tool[0] != 4
                 ) {
@@ -2891,6 +3348,25 @@ export default {
                       likesCount: likesCount,
                       commentCount: commentCount,
                       isLikes: isLikes,
+                      commentJson: commentJson,
+                    });
+                  } else if (
+                    y.indexOf(
+                      b[j].content
+                        .split(".")
+                        [b[j].content.split(".").length - 1].toLocaleUpperCase()
+                    ) != -1
+                  ) {
+                    this.worksStudent[i].push({
+                      wid: b[j].id,
+                      works: b[j].content,
+                      sName: b[j].name,
+                      type: 3,
+                      time: b[j].time,
+                      likesCount: likesCount,
+                      commentCount: commentCount,
+                      isLikes: isLikes,
+                      commentJson: commentJson,
                     });
                   } else {
                     this.worksStudent[i].push({
@@ -2902,6 +3378,7 @@ export default {
                       likesCount: likesCount,
                       commentCount: commentCount,
                       isLikes: isLikes,
+                      commentJson: commentJson,
                     });
                   }
                 } else if (b[j].type == 3 && a[i].tool[0] == 15) {
@@ -2914,6 +3391,7 @@ export default {
                     likesCount: likesCount,
                     commentCount: commentCount,
                     isLikes: isLikes,
+                    commentJson: commentJson,
                   });
                 } else if (b[j].type == 2 && a[i].tool[0] == 4) {
                   this.worksStudent[i].push({
@@ -2925,6 +3403,7 @@ export default {
                     likesCount: likesCount,
                     commentCount: commentCount,
                     isLikes: isLikes,
+                    commentJson: commentJson,
                   });
                 }
 
@@ -3059,7 +3538,49 @@ export default {
                   uid: file.uid,
                 });
                 var b = ["PDF", "DOC", "DOCX", "PPT", "PPTX", "XLSX", "XLS"];
+                var c = [
+                  "AVI",
+                  "NAVI",
+                  "MPEG",
+                  "ASF",
+                  "MOV",
+                  "WMV",
+                  "3GP",
+                  "RM",
+                  "RMVB",
+                  "FLV",
+                  "F4V",
+                  "H.264",
+                  "H.265",
+                  "REAL VIDEO",
+                  "MKV",
+                  "WebM",
+                  "HDDVD",
+                  "MP4",
+                  "MPG",
+                  "M4V",
+                  "MGV",
+                  "OGV",
+                  "QTM",
+                  "STR",
+                  "AMC",
+                  "DVX",
+                  "EVO",
+                  "DAT",
+                  "OGG",
+                  "OGM",
+                ];
                 if (
+                  c.indexOf(
+                    _this.studyJuri[0].cover[0].url
+                      .split(".")
+                      [
+                        _this.studyJuri[0].cover[0].url.split(".").length - 1
+                      ].toLocaleUpperCase()
+                  ) != -1
+                ) {
+                  _this.fileType = 2;
+                } else if (
                   b.indexOf(
                     _this.studyJuri[0].cover[0].url
                       .split(".")
@@ -5011,7 +5532,8 @@ export default {
   bottom: 0;
 }
 
-.binfo_input {
+.binfo_input,
+.pj {
   font: inherit;
   color: currentColor;
   width: 100%;
@@ -5833,7 +6355,6 @@ export default {
   align-items: center;
   justify-content: flex-end;
   height: 35px;
-  padding-right: 15px;
 }
 .commentList {
   display: flex;
@@ -5844,4 +6365,50 @@ export default {
   align-content: center;
   margin-left: 15px;
 }
+.studentDetail {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  align-items: center;
+}
+.tx {
+  width: 50px;
+}
+.tx > img {
+  width: 100%;
+  height: 100%;
+}
+.nameAndTime {
+  display: flex;
+  flex-direction: column;
+  flex-wrap: nowrap;
+  align-items: flex-start;
+  margin-left: 10px;
+}
+.worksAnswer {
+  color: #91b7a2;
+  margin: 10px 0;
+  font-size: 16px;
+}
+.worksAnswer > img {
+  width: 100%;
+  height: 100%;
+}
+.commentTop {
+  border-bottom: 1px solid #eaeaea;
+  padding-bottom: 10px;
+}
+.commentBox {
+  padding-top: 15px;
+}
+.pl {
+  font-size: 18px;
+}
+.plName {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  align-items: baseline;
+  color: #78787a;
+}
 </style>

Some files were not shown because too many files changed in this diff