瀏覽代碼

Merge branch 'beta' into HK

lsc 1 年之前
父節點
當前提交
34bcc0317e

+ 4 - 0
dist/index.html

@@ -18,7 +18,11 @@
       border-radius: 10px;
       -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
       background-color: rgba(0, 0, 0, 0.1);
+<<<<<<< HEAD
     }</style><link href=./static/css/app.83d104f2ca00ed6b3342a6445b3122fe.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.bff2d2510dce71ef7550.js></script><script type=text/javascript src=./static/js/app.6dea7685ed7a249f011d.js></script></body></html><script>function stopSafari() {
+=======
+    }</style><link href=./static/css/app.a59dc0df398b6c5873c1c9a0dbacf3a6.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.9f9462b1514225eea48e.js></script><script type=text/javascript src=./static/js/app.d6f9ce2736371061b464.js></script></body></html><script>function stopSafari() {
+>>>>>>> beta
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/app.a59dc0df398b6c5873c1c9a0dbacf3a6.css


文件差異過大導致無法顯示
+ 0 - 0
dist/static/css/app.a59dc0df398b6c5873c1c9a0dbacf3a6.css.map


二進制
dist/static/img/evaEnglish.3321c22.png


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/app.6dea7685ed7a249f011d.js.map


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/app.d6f9ce2736371061b464.js


文件差異過大導致無法顯示
+ 1 - 0
dist/static/js/app.d6f9ce2736371061b464.js.map


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/vendor.9f9462b1514225eea48e.js


文件差異過大導致無法顯示
+ 1 - 0
dist/static/js/vendor.9f9462b1514225eea48e.js.map


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/vendor.bff2d2510dce71ef7550.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/vendor.bff2d2510dce71ef7550.js.map


+ 3 - 0
src/App.vue

@@ -456,4 +456,7 @@ html::-webkit-scrollbar-thumb {
   display: flex;
   align-items: center;
 }
+.text_tooltip {
+  max-width: 350px;
+}
 </style>

二進制
src/assets/evaEnglish.png


+ 23 - 5
src/components/components/askStatic.vue

@@ -16,7 +16,13 @@
               :content="item.askstitle"
               placement="top"
             > -->
-              <span
+            <el-tooltip
+              effect="light"
+              :content="index + 1 + '、' + item.askstitle"
+              placement="top"
+              popper-class="text_tooltip"
+            >
+              <div
                 style="
                   width: auto;
                   display: block;
@@ -24,9 +30,12 @@
                   overflow: hidden;
                   text-overflow: ellipsis;
                   word-break: break-word;
+                  cursor: pointer;
                 "
-                >{{ index + 1 + "、" + item.askstitle }}</span
               >
+                {{ index + 1 + "、" + item.askstitle }}
+              </div>
+            </el-tooltip>
             <!-- </el-tooltip> -->
           </div>
           <el-button
@@ -52,7 +61,13 @@
                     :content="item.checkList[checkIndex]"
                     placement="top"
                   > -->
-                    <span
+                  <el-tooltip
+                    effect="light"
+                    :content="item.checkList[checkIndex]"
+                    placement="top"
+                    popper-class="text_tooltip"
+                  >
+                    <div
                       style="
                         max-width: calc(100% - 40px);
                         white-space: nowrap;
@@ -61,9 +76,12 @@
                         word-break: break-word;
                         width: auto;
                         display: block;
+                        cursor: pointer;
                       "
-                      v-html="item.checkList[checkIndex]"
-                    ></span>
+                    >
+                      {{ item.checkList[checkIndex] }}
+                    </div>
+                  </el-tooltip>
                   <!-- </el-tooltip> -->
                 </span>
                 <span>{{

+ 32 - 14
src/components/components/askStatic2.vue

@@ -16,7 +16,13 @@
               :content="item.teststitle"
               placement="top"
             > -->
-              <span
+            <el-tooltip
+              effect="light"
+              :content="index + 1 + '、' + item.teststitle"
+              placement="top"
+              popper-class="text_tooltip"
+            >
+              <div
                 style="
                   width: auto;
                   display: block;
@@ -24,9 +30,12 @@
                   overflow: hidden;
                   text-overflow: ellipsis;
                   word-break: break-word;
+                  cursor: pointer;
                 "
-                >{{ index + 1 + "、" + item.teststitle }}</span
               >
+                {{ index + 1 + "、" + item.teststitle }}
+              </div>
+            </el-tooltip>
             <!-- </el-tooltip> -->
             <div
               class="timuImgBox"
@@ -85,19 +94,28 @@
                       <img :src="item.checkList[checkIndex].src" alt="" />
                     </div>
                   </div>
-                  <span
+                  <el-tooltip
+                    effect="light"
+                    :content="item.checkList[checkIndex]"
+                    placement="top"
+                    popper-class="text_tooltip"
                     v-else
-                    style="
-                      max-width: calc(100% - 40px);
-                      white-space: nowrap;
-                      overflow: hidden;
-                      text-overflow: ellipsis;
-                      word-break: break-word;
-                      width: auto;
-                      display: block;
-                    "
-                    v-html="item.checkList[checkIndex]"
-                  ></span>
+                  >
+                    <div
+                      style="
+                        max-width: calc(100% - 40px);
+                        white-space: nowrap;
+                        overflow: hidden;
+                        text-overflow: ellipsis;
+                        word-break: break-word;
+                        width: auto;
+                        display: block;
+                        cursor: pointer;
+                      "
+                    >
+                      {{ item.checkList[checkIndex] }}
+                    </div>
+                  </el-tooltip>
                 </span>
                 <span>{{
                   checkJson[index].checkCount[checkIndex]

+ 363 - 0
src/components/components/englishEva.vue

@@ -0,0 +1,363 @@
+<template>
+  <el-dialog
+    title="英语写作"
+    :visible.sync="engEvaDialogVisible"
+    :append-to-body="true"
+    width="800px"
+    :before-close="handleClose"
+    class="dialog_diy fullStyle"
+  >
+    <div class="engUpBox">
+      <div class="engUpTop">
+        <div class="engTitle">
+          <div>作文题目:</div>
+          <div>{{ evaEngJson.teacherJson.engTitle }}</div>
+        </div>
+        <div class="engText">
+          <div>作文题目:</div>
+          <div
+            class="cont"
+            v-html="evaEngJson.teacherJson.englishText"
+            @click="checkImg(getImgList(evaEngJson.teacherJson.englishText))"
+          ></div>
+        </div>
+      </div>
+      <div
+        class="correctBox"
+        :style="{ height: `calc(100% - ${topHeight}px)` }"
+      >
+        <div class="oldBox">
+          <div class="oldMes">原文( 作者:{{ evaEngJson.username }} )</div>
+          <div class="oldText">
+            <div class="detailBox">
+              <div class="oldDetail">
+                <div>标题:</div>
+                <div>{{ evaEngJson.studentJson.engTitle }}</div>
+              </div>
+              <div class="oldDetail1">
+                <div>正文:</div>
+                <div v-html="evaEngJson.studentJson.engText"></div>
+              </div>
+              <div
+                class="oldDetail"
+                v-if="
+                  evaEngJson.studentJson.imgList &&
+                  evaEngJson.studentJson.imgList.length > 0
+                "
+              >
+                <div>图片:</div>
+                <div class="oldImg">
+                  <img :src="evaEngJson.studentJson.imgList[0].url" alt="" />
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="oldBox" style="position: relative">
+          <div
+            class="oldMes"
+            style="
+              background: rgb(224 236 255);
+              display: flex;
+              flex-direction: row;
+              flex-wrap: nowrap;
+              align-items: center;
+            "
+          >
+            <div
+              class="allName"
+              :style="{ background: type == 0 ? '#aacaff' : '' }"
+              @click="setType(0)"
+            >
+              AI评价
+            </div>
+            <div
+              class="allName"
+              :style="{ background: type == 1 ? '#aacaff' : '' }"
+              @click="setType(1)"
+            >
+              教师评价
+            </div>
+          </div>
+          <div v-if="type == 0">
+            <el-button
+              type="primary"
+              @click="isPj = true"
+              v-if="!isPj"
+              style="margin: 10px 0 0 0"
+              >AI评价</el-button
+            >
+            <div class="oldText" style="margin-top: 10px" v-else>
+              <div class="detailBox" style="min-width: 300px">
+                <div class="oldDetail" style="min-width: 300px">
+                  <div>作业批改:</div>
+                  <el-input
+                    type="textarea"
+                    :rows="10"
+                    resize="none"
+                    v-model="aiList.engTitle"
+                    disabled
+                  />
+                </div>
+                <div class="oldDetail" style="min-width: 300px">
+                  <div>作业评价:</div>
+                  <el-input
+                    type="textarea"
+                    :rows="10"
+                    resize="none"
+                    v-model="aiList.engText"
+                    disabled
+                  />
+                </div>
+              </div>
+            </div>
+            <el-button
+              type="primary"
+              @click="isPj = false"
+              v-if="isPj"
+              style="position: absolute; top: 50px; right: 20px"
+              >返回评价</el-button
+            >
+          </div>
+          <div v-if="type == 1" style="margin: 10px 0 0 0">
+            <div class="oldText" style="margin-top: 10px">
+              <div class="detailBox" style="min-width: 300px">
+                <div class="oldDetail" style="min-width: 300px">
+                  <div>作业批改:</div>
+                  <el-input
+                    type="textarea"
+                    :rows="10"
+                    resize="none"
+                    v-model="teacherList.engTitle"
+                  />
+                </div>
+                <div class="oldDetail" style="min-width: 300px">
+                  <div>作业评价:</div>
+                  <el-input
+                    type="textarea"
+                    :rows="10"
+                    resize="none"
+                    v-model="teacherList.engText"
+                  />
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <span slot="footer" class="dialog-footer" style="z-index: 999;position: relative;">
+      <el-button @click="close()">取 消</el-button>
+      <el-button type="primary">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+export default {
+  props: ["engEvaDialogVisible","evaEngJson"],
+  data() {
+    return {
+      topHeight: 0,
+      type: 0,
+      isPj: false,
+      aiList: {
+        engTitle: "这是题目",
+        engText: "这是内容",
+      },
+      teacherList: {
+        engTitle: "",
+        engText: "",
+      },
+    };
+  },
+  methods: {
+    handleClose(done) {
+      this.close()
+      done();
+    },
+    close(){
+      this.$emit("update:engEvaDialogVisible",false)
+    },
+    checkImg(list) {
+      if (!list.length) {
+        return;
+      }
+      this.$hevueImgPreview({
+        multiple: true, // 开启多图预览模式
+        imgList: list, // 需要预览的多图数组
+      });
+    },
+    getImgList() {
+      return function (val) {
+        let srcList = []; // 定义一个数组用来接收后面的img地址
+
+        val.replace(
+          /<img [^>]*src=['"]([^'"]+)[^>]*>/g,
+          function (match, capture) {
+            // 查找匹配的元素   match为整个img标签  capture为src中的内容
+            srcList.push(capture);
+          }
+        );
+        return srcList;
+      };
+    },
+    setType(i) {
+      this.type = i;
+      this.$forceUpdate();
+    },
+  },
+  mounted() {
+    this.topHeight = document.querySelectorAll(".engUpTop")[0].offsetHeight;
+  },
+};
+</script>
+
+<style scoped>
+.dialog_diy >>> .el-dialog__header {
+  background: #454545 !important;
+  padding: 15px 20px;
+}
+
+.dialog_diy >>> .el-dialog__title {
+  color: #fff;
+}
+
+.dialog_diy >>> .el-dialog__headerbtn {
+  top: 19px;
+}
+
+.dialog_diy >>> .el-dialog__headerbtn .el-dialog__close {
+  color: #fff;
+}
+
+.dialog_diy >>> .el-dialog__headerbtn .el-dialog__close:hover {
+  color: #fff;
+}
+.dialog_diy >>> .el-dialog__body,
+.dialog_diy >>> .el-dialog__footer {
+  background: #fafafa;
+}
+
+.fullStyle>>>.el-dialog__body {
+  height: calc(100% - 125px) !important;
+  box-sizing: border-box;
+  padding: 30px 0 !important;
+  background: #fff !important;
+}
+
+.fullStyle>>>.el-dialog {
+  width: 100% !important;
+  max-width: 100% !important;
+  height: 100% !important;
+  margin: 0 !important;
+}
+
+.fullStyle {
+  width: 100% !important;
+  max-width: 100% !important;
+  height: 100% !important;
+  margin: 0 auto !important;
+}
+
+.fullStyle>>>.el-dialog__footer{
+  background: #fff !important;
+}
+.engUpBox {
+  width: 100%;
+  height: 100%;
+}
+
+.engTitle,
+.engText {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  align-items: flex-start;
+  padding: 0 20px 20px 20px;
+  box-sizing: border-box;
+}
+
+.engTitle > .div:first-child,
+.engText > div:first-child {
+  min-width: 75px;
+}
+
+.correctBox {
+  width: 100%;
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  align-items: flex-start;
+}
+
+.oldBox {
+  width: 50%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  flex-wrap: nowrap;
+  align-items: center;
+  border-top: 1px solid #d9d9d9;
+  border-left: 1px solid #d9d9d9;
+  border-right: 1px solid #d9d9d9;
+}
+.oldBox > div:first-child {
+  width: 100%;
+  text-align: center;
+  background: #d9d9d9;
+  height: 35px;
+  line-height: 35px;
+  font-weight: bold;
+}
+
+.oldText {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  flex-wrap: nowrap;
+  align-content: center;
+  justify-content: center;
+  align-items: center;
+}
+
+.detailBox {
+  width: 50%;
+  padding: 10px;
+  background: #f6f6f6;
+  border-radius: 5px;
+}
+
+.oldDetail,
+.oldDetail1 {
+  padding-bottom: 30px;
+}
+
+.oldDetail1 > div:last-child {
+  max-height: 200px;
+  overflow: auto;
+}
+
+.oldImg {
+  width: 30px;
+  height: 30px;
+}
+
+.oldImg > img {
+  width: 100%;
+  height: 100%;
+}
+
+.allName {
+  min-width: 50%;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  word-break: break-word;
+  cursor: pointer;
+  text-align: center;
+  border: 1px solid #bcc2cc;
+  box-sizing: border-box;
+}
+</style>

+ 3 - 2
src/components/courseDetail.vue

@@ -1935,8 +1935,9 @@ export default {
                   ) !== -1 &&
                   _chapterData[k].url.indexOf("img") === -1
                 ) {
+                  let _point = _chapterData[k].url.split(".")[_chapterData[k].url.split(".").length - 1]
                   url.push({
-                    name: _chapterData[k].name,
+                    name: _chapterData[k].name.indexOf(_point) == -1 ? (_chapterData[k].name + '.' + _point) : _chapterData[k].name,
                     url: _chapterData[k].url,
                   });
                 }
@@ -2059,7 +2060,7 @@ export default {
 .right_box_title {
   font-size: 20px;
   font-weight: bold;
-  max-width: calc(100% - 190px);
+  max-width: calc(100% - 250px);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;

+ 119 - 46
src/components/easy2/studyStudent.vue

@@ -3441,11 +3441,27 @@
                       v-for="(item, index) in tool.askJson"
                       :key="index"
                     >
-                      <div>
-                        <span
-                          style="word-break: break-all; white-space: normal"
-                          >{{ index + 1 + "、" + item.askstitle }}</span
+                      <div style="width: calc(100% - 30px);">
+                        <el-tooltip
+                          effect="light"
+                          :content="index + 1 + '、' + item.askstitle"
+                          placement="top"
+                          popper-class="text_tooltip"
                         >
+                          <div
+                            style="
+                              width: calc(100% - 130px);
+                              display: block;
+                              white-space: nowrap;
+                              overflow: hidden;
+                              text-overflow: ellipsis;
+                              word-break: break-word;
+                              cursor: pointer;
+                            "
+                          >
+                            {{ index + 1 + "、" + item.askstitle }}
+                          </div>
+                        </el-tooltip>
                       </div>
                       <div class="right_box_xuan">
                         <span>正确率</span>
@@ -3617,11 +3633,27 @@
                             : 0) + "%"
                         }}</span>
                       </div>
-                      <div>
-                        <span
-                          style="word-break: break-all; white-space: normal"
-                          >{{ index + 1 + "、" + item.teststitle }}</span
+                      <div style="width: calc(100% - 30px);">
+                        <el-tooltip
+                          effect="light"
+                          :content="index + 1 + '、' + item.teststitle"
+                          placement="top"
+                          popper-class="text_tooltip"
                         >
+                          <div
+                            style="
+                              width: calc(100% - 130px);
+                              display: block;
+                              white-space: nowrap;
+                              overflow: hidden;
+                              text-overflow: ellipsis;
+                              word-break: break-word;
+                              cursor: pointer;
+                            "
+                          >
+                            {{ index + 1 + "、" + item.teststitle }}
+                          </div>
+                        </el-tooltip>
                       </div>
                     </div>
                   </div>
@@ -3794,6 +3826,7 @@
                             : worksStudent[toolIndex].slice(0, 6)"
                           :key="wIndex"
                           class="isWorksName2"
+                          style="width: 150px;height: 50px;line-height: 50px;"
                           @click="
                             openTools(
                               69,
@@ -3806,6 +3839,13 @@
                           "
                         >
                           {{ w.sName }}
+                          <img
+                            v-show="false"
+                            class="deleteImg1"
+                            src="../../assets/evaEnglish.png"
+                            @click.stop="openEnglishEva(w.wid,toolIndex)"
+                            alt
+                          />
                           <img
                             class="deleteImg deleteImg2"
                             src="../../assets/deleteworks.png"
@@ -11268,7 +11308,7 @@
           </div>
           <div class="engText">
             <div>作文题目:</div>
-            <div v-html="englishList1.englishText"></div>
+            <div class="cont" v-html="englishList1.englishText" @click="checkImg(getImgList(englishList1.englishText))"></div>
           </div>
         </div>
         <div class="correctBox" :style="{height: `calc(100% - ${topHeight}px)` }">
@@ -11280,10 +11320,14 @@
                   <div>标题:</div>
                   <div>{{ oldEnglishJson.engTitle }} </div>
                 </div>
-                <div class="oldDetail">
+                <div class="oldDetail1">
                   <div>正文:</div>
                   <div v-html="oldEnglishJson.engText"></div>
                 </div>
+                <div class="oldDetail" v-if="oldEnglishJson.imgList && oldEnglishJson.imgList.length > 0">
+                  <div>图片:</div>
+                  <div class="oldImg"><img :src="oldEnglishJson.imgList[0].url" alt="" /></div>
+                </div>
               </div>
             </div>
           </div>
@@ -11362,6 +11406,7 @@
         <el-button type="primary" @click="addCorrect">确 定</el-button>
       </span>
     </el-dialog>
+    <englishEva :evaEngJson="evaEngJson" :engEvaDialogVisible.sync="engEvaDialogVisible"></englishEva>
     <interVideo
       :dialogVisibleVideo.sync="dialogVisibleVideo"
       :videoJson="videoJson"
@@ -11431,6 +11476,7 @@ import axios from "axios";
 import JSZip from "jszip";
 import FileSaver from "file-saver";
 import onlineWrite from "./commpont/onlineWrite";
+import englishEva from "../components/englishEva";
 
 const getFile = (url) => {
   return new Promise((resolve, reject) => {
@@ -11467,6 +11513,7 @@ export default {
     UpdateMore,
     wordCloud,
     onlineWrite,
+    englishEva,
   },
   data() {
     return {
@@ -11502,6 +11549,12 @@ export default {
       dialogVisiblePickPeople: false,
       engDialogVisible: false,
       engUpdateDialogVisible:false,
+      engEvaDialogVisible: false,
+      evaEngJson: {
+        username: "",
+        teacherJson: {},
+        studentJson: {},
+      },
       isNoUserid:false,
       engListLength:0,
       engWid:"",
@@ -13531,6 +13584,23 @@ export default {
         ].toolChoose[toolindex].rateJson;
       this.studentEvalDialogVisible = true;
     },
+    openEnglishEva(id,i){
+      let params = {
+        wid: id
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectEngWork", params)
+        .then((res) => {
+          this.evaEngJson.studentJson = JSON.parse(res.data[0][0].content);
+          this.evaEngJson.username = res.data[0][0].username;
+          this.evaEngJson.teacherJson = this.chapInfoList[this.courseType].chapterInfo[0].taskJson[this.taskCount]
+              .toolChoose[i].englishList;
+          this.engEvaDialogVisible = true;
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
     deleteWorks(id) {
       this.$confirm("确定删除此作业吗?", "提示", {
         confirmButtonText: "确定",
@@ -18728,11 +18798,18 @@ export default {
           }else{
             var a = res.data[0];
             if(this.userMes[0].type == 2){
+              var snum = 0;
               for(var i = 0;i<a.length;i++){
                 if(this.userMes[0].userid == a[i].correct){
                   this.newEnglishList = JSON.parse(a[i].cWork);
+                  snum = 1;
                 }
               }
+              if(snum == 0){
+                this.newEnglishList = { engTitle:"",engText:"" };
+                this.newEnglishList.engTitle = z.engTitle;
+                this.newEnglishList.engText = z.engText;
+              }
             }else if(this.userMes[0].type == 1){
               var num = 0;
               for(var w= 0;w<a.length;w++){
@@ -18992,13 +19069,6 @@ export default {
     width: 100% !important;
     min-width: unset !important;
   }
-
-  /* .textTitle >>> .el-form-item__label {
-    width: 150px !important;
-  } */
-  /* .stageItemTitle > div:last-child{
-    max-width: 50px;
-  } */
 }
 
 .evaCssMax {
@@ -22008,7 +22078,7 @@ ol {
   margin-top: 10px;
 }
 
-.deleteImg {
+.deleteImg,.deleteImg1 {
   width: 25px !important;
   height: 25px !important;
   cursor: pointer;
@@ -22018,12 +22088,19 @@ ol {
 }
 
 .deleteImg2 {
-  width: 15px !important;
-  height: 15px !important;
+  width: 23px !important;
+  height: 23px !important;
   top: 5px;
   right: 5px;
 }
 
+.deleteImg1{
+  width: 23px !important;
+  height: 23px !important;
+  top: 5px !important;
+  right: 30px !important;
+}
+
 .rightW {
   right: 40px;
 }
@@ -22725,30 +22802,6 @@ ol {
   color: #fff;
   border-radius: 8px;
 }
-
-.stageItemTitle {
-  display: flex;
-  flex-direction: row;
-  flex-wrap: nowrap;
-  align-items: center;
-  margin-left: 15px;
-  width: calc(100% - 50px);
-}
-.stageItemTitle > div:first-child {
-  font-size: 16px;
-  font-weight: bold;
-  min-width: 55px;
-}
-.stageItemTitle > div:last-child {
-  font-size: 15px;
-  font-weight: 600;
-  max-width: 242px;
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  word-break: break-word;
-  width: calc(100% - 55px);
-}
 .closeTri,
 .closeTri1 {
   min-width: 15px;
@@ -22821,7 +22874,7 @@ ol {
   background: #ffffff;
   border-radius: 4px;
   width: 100%;
-  margin: 10px auto 0;
+  margin: 10px auto;
   position: relative;
   height: 40px;
   display: flex;
@@ -23225,10 +23278,25 @@ ol {
   border-radius: 5px;
 }
 
-.oldDetail{
+.oldDetail,.oldDetail1{
   padding-bottom: 30px;
 }
 
+.oldDetail1>div:last-child{
+  max-height: 200px;
+  overflow: auto;
+}
+
+.oldImg{
+  width:30px;
+  height: 30px;
+}
+
+.oldImg>img{
+  width: 100%;
+  height: 100%;
+}
+
 .allName{
   min-width: 200px;
   white-space: nowrap;
@@ -23240,4 +23308,9 @@ ol {
   border: 1px solid #bcc2cc;
   box-sizing: border-box;
 }
+
+.engUpTop{
+  max-height: 300px;
+  overflow: auto;
+}
 </style>

+ 119 - 46
src/components/easy3/studyStudent.vue

@@ -3428,11 +3428,27 @@
                       v-for="(item, index) in tool.askJson"
                       :key="index"
                     >
-                      <div>
-                        <span
-                          style="word-break: break-all; white-space: normal"
-                          >{{ index + 1 + "、" + item.askstitle }}</span
+                      <div style="width: calc(100% - 30px);">
+                        <el-tooltip
+                          effect="light"
+                          :content="index + 1 + '、' + item.askstitle"
+                          placement="top"
+                          popper-class="text_tooltip"
                         >
+                          <div
+                            style="
+                              width: calc(100% - 130px);
+                              display: block;
+                              white-space: nowrap;
+                              overflow: hidden;
+                              text-overflow: ellipsis;
+                              word-break: break-word;
+                              cursor: pointer;
+                            "
+                          >
+                            {{ index + 1 + "、" + item.askstitle }}
+                          </div>
+                        </el-tooltip>
                       </div>
                       <div class="right_box_xuan">
                         <span>正确率</span>
@@ -3604,11 +3620,27 @@
                             : 0) + "%"
                         }}</span>
                       </div>
-                      <div>
-                        <span
-                          style="word-break: break-all; white-space: normal"
-                          >{{ index + 1 + "、" + item.teststitle }}</span
+                      <div style="width: calc(100% - 30px);">
+                        <el-tooltip
+                          effect="light"
+                          :content="index + 1 + '、' + item.teststitle"
+                          placement="top"
+                          popper-class="text_tooltip"
                         >
+                          <div
+                            style="
+                              width: calc(100% - 130px);
+                              display: block;
+                              white-space: nowrap;
+                              overflow: hidden;
+                              text-overflow: ellipsis;
+                              word-break: break-word;
+                              cursor: pointer;
+                            "
+                          >
+                            {{ index + 1 + "、" + item.teststitle }}
+                          </div>
+                        </el-tooltip>
                       </div>
                     </div>
                   </div>
@@ -3781,6 +3813,7 @@
                             : worksStudent[toolIndex].slice(0, 6)"
                           :key="wIndex"
                           class="isWorksName2"
+                          style="width: 150px;height: 50px;line-height: 50px;"
                           @click="
                             openTools(
                               69,
@@ -3793,6 +3826,13 @@
                           "
                         >
                           {{ w.sName }}
+                          <img
+                            v-show="false"
+                            class="deleteImg1"
+                            src="../../assets/evaEnglish.png"
+                            @click.stop="openEnglishEva(w.wid,toolIndex)"
+                            alt
+                          />
                           <img
                             class="deleteImg deleteImg2"
                             src="../../assets/deleteworks.png"
@@ -11255,7 +11295,7 @@
           </div>
           <div class="engText">
             <div>作文题目:</div>
-            <div v-html="englishList1.englishText"></div>
+            <div class="cont" v-html="englishList1.englishText" @click="checkImg(getImgList(englishList1.englishText))"></div>
           </div>
         </div>
         <div class="correctBox" :style="{height: `calc(100% - ${topHeight}px)` }">
@@ -11267,10 +11307,14 @@
                   <div>标题:</div>
                   <div>{{ oldEnglishJson.engTitle }} </div>
                 </div>
-                <div class="oldDetail">
+                <div class="oldDetail1">
                   <div>正文:</div>
                   <div v-html="oldEnglishJson.engText"></div>
                 </div>
+                <div class="oldDetail" v-if="oldEnglishJson.imgList && oldEnglishJson.imgList.length > 0">
+                  <div>图片:</div>
+                  <div class="oldImg"><img :src="oldEnglishJson.imgList[0].url" alt="" /></div>
+                </div>
               </div>
             </div>
           </div>
@@ -11349,6 +11393,7 @@
         <el-button type="primary" @click="addCorrect">确 定</el-button>
       </span>
     </el-dialog>
+    <englishEva :evaEngJson="evaEngJson" :engEvaDialogVisible.sync="engEvaDialogVisible"></englishEva>
     <interVideo
       :dialogVisibleVideo.sync="dialogVisibleVideo"
       :videoJson="videoJson"
@@ -11418,6 +11463,7 @@ import axios from "axios";
 import JSZip from "jszip";
 import FileSaver from "file-saver";
 import onlineWrite from "./commpont/onlineWrite";
+import englishEva from "../components/englishEva";
 
 const getFile = (url) => {
   return new Promise((resolve, reject) => {
@@ -11454,6 +11500,7 @@ export default {
     UpdateMore,
     wordCloud,
     onlineWrite,
+    englishEva,
   },
   data() {
     return {
@@ -11674,6 +11721,12 @@ export default {
       toolDialogVisible: false,
       engDialogVisible: false,
       engUpdateDialogVisible:false,
+      engEvaDialogVisible: false,
+      evaEngJson: {
+        username: "",
+        teacherJson: {},
+        studentJson: {},
+      },
       isNoUserid:false,
       engListLength:0,
       engWid:"",
@@ -13520,6 +13573,23 @@ export default {
         ].toolChoose[toolindex].rateJson;
       this.studentEvalDialogVisible = true;
     },
+    openEnglishEva(id,i){
+      let params = {
+        wid: id
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectEngWork", params)
+        .then((res) => {
+          this.evaEngJson.studentJson = JSON.parse(res.data[0][0].content);
+          this.evaEngJson.username = res.data[0][0].username;
+          this.evaEngJson.teacherJson = this.chapInfoList[this.courseType].chapterInfo[0].taskJson[this.taskCount]
+              .toolChoose[i].englishList;
+          this.engEvaDialogVisible = true;
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
     deleteWorks(id) {
       this.$confirm("确定删除此作业吗?", "提示", {
         confirmButtonText: "确定",
@@ -18717,11 +18787,18 @@ export default {
           }else{
             var a = res.data[0];
             if(this.userMes[0].type == 2){
+              var snum = 0;
               for(var i = 0;i<a.length;i++){
                 if(this.userMes[0].userid == a[i].correct){
                   this.newEnglishList = JSON.parse(a[i].cWork);
+                  snum = 1;
                 }
               }
+              if(snum == 0){
+                this.newEnglishList = { engTitle:"",engText:"" };
+                this.newEnglishList.engTitle = z.engTitle;
+                this.newEnglishList.engText = z.engText;
+              }
             }else if(this.userMes[0].type == 1){
               var num = 0;
               for(var w= 0;w<a.length;w++){
@@ -18981,13 +19058,6 @@ export default {
     width: 100% !important;
     min-width: unset !important;
   }
-
-  /* .textTitle >>> .el-form-item__label {
-    width: 150px !important;
-  } */
-  /* .stageItemTitle > div:last-child{
-    max-width: 50px;
-  } */
 }
 
 .evaCssMax {
@@ -21997,7 +22067,7 @@ ol {
   margin-top: 10px;
 }
 
-.deleteImg {
+.deleteImg,.deleteImg1 {
   width: 25px !important;
   height: 25px !important;
   cursor: pointer;
@@ -22007,12 +22077,19 @@ ol {
 }
 
 .deleteImg2 {
-  width: 15px !important;
-  height: 15px !important;
+  width: 23px !important;
+  height: 23px !important;
   top: 5px;
   right: 5px;
 }
 
+.deleteImg1{
+  width: 23px !important;
+  height: 23px !important;
+  top: 5px !important;
+  right: 30px !important;
+}
+
 .rightW {
   right: 40px;
 }
@@ -22714,30 +22791,6 @@ ol {
   color: #fff;
   border-radius: 8px;
 }
-
-.stageItemTitle {
-  display: flex;
-  flex-direction: row;
-  flex-wrap: nowrap;
-  align-items: center;
-  margin-left: 15px;
-  width: calc(100% - 50px);
-}
-.stageItemTitle > div:first-child {
-  font-size: 16px;
-  font-weight: bold;
-  min-width: 55px;
-}
-.stageItemTitle > div:last-child {
-  font-size: 15px;
-  font-weight: 600;
-  max-width: 242px;
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  word-break: break-word;
-  width: calc(100% - 55px);
-}
 .closeTri,
 .closeTri1 {
   min-width: 15px;
@@ -22810,7 +22863,7 @@ ol {
   background: #ffffff;
   border-radius: 4px;
   width: 100%;
-  margin: 10px auto 0;
+  margin: 10px auto;
   position: relative;
   height: 40px;
   display: flex;
@@ -23214,10 +23267,25 @@ ol {
   border-radius: 5px;
 }
 
-.oldDetail{
+.oldDetail,.oldDetail1{
   padding-bottom: 30px;
 }
 
+.oldDetail1>div:last-child{
+  max-height: 200px;
+  overflow: auto;
+}
+
+.oldImg{
+  width:30px;
+  height: 30px;
+}
+
+.oldImg>img{
+  width: 100%;
+  height: 100%;
+}
+
 .allName{
   min-width: 200px;
   white-space: nowrap;
@@ -23229,4 +23297,9 @@ ol {
   border: 1px solid #bcc2cc;
   box-sizing: border-box;
 }
+
+.engUpTop{
+  max-height: 300px;
+  overflow: auto;
+}
 </style>

+ 124 - 28
src/components/studyStudent.vue

@@ -88,7 +88,7 @@
               @click="get(stageIndex)"
               :class="{ stageBoxIsCss: item.isOpen }"
             >
-              <div class="stageItemTitle">
+              <div class="stageItemTitle" :class="{ stageNav: item.isOpen }">
                 <div>阶段{{ stageIndex + 1 }}</div>
                 <el-tooltip
                   effect="light"
@@ -3435,11 +3435,27 @@
                       v-for="(item, index) in tool.askJson"
                       :key="index"
                     >
-                      <div>
-                        <span
-                          style="word-break: break-all; white-space: normal"
-                          >{{ index + 1 + "、" + item.askstitle }}</span
+                      <div style="width: calc(100% - 30px);">
+                        <el-tooltip
+                          effect="light"
+                          :content="index + 1 + '、' + item.askstitle"
+                          placement="top"
+                          popper-class="text_tooltip"
                         >
+                          <div
+                            style="
+                              width: calc(100% - 130px);
+                              display: block;
+                              white-space: nowrap;
+                              overflow: hidden;
+                              text-overflow: ellipsis;
+                              word-break: break-word;
+                              cursor: pointer;
+                            "
+                          >
+                            {{ index + 1 + "、" + item.askstitle }}
+                          </div>
+                        </el-tooltip>
                       </div>
                       <div class="right_box_xuan">
                         <span>正确率</span>
@@ -3611,11 +3627,27 @@
                             : 0) + "%"
                         }}</span>
                       </div>
-                      <div>
-                        <span
-                          style="word-break: break-all; white-space: normal"
-                          >{{ index + 1 + "、" + item.teststitle }}</span
+                      <div style="width: calc(100% - 30px);">
+                        <el-tooltip
+                          effect="light"
+                          :content="index + 1 + '、' + item.teststitle"
+                          placement="top"
+                          popper-class="text_tooltip"
                         >
+                          <div
+                            style="
+                              width: calc(100% - 130px);
+                              display: block;
+                              white-space: nowrap;
+                              overflow: hidden;
+                              text-overflow: ellipsis;
+                              word-break: break-word;
+                              cursor: pointer;
+                            "
+                          >
+                            {{ index + 1 + "、" + item.teststitle }}
+                          </div>
+                        </el-tooltip>
                       </div>
                     </div>
                   </div>
@@ -3788,6 +3820,7 @@
                             : worksStudent[toolIndex].slice(0, 6)"
                           :key="wIndex"
                           class="isWorksName2"
+                          style="width: 150px;height: 50px;line-height: 50px;"
                           @click="
                             openTools(
                               69,
@@ -3800,6 +3833,13 @@
                           "
                         >
                           {{ w.sName }}
+                          <img
+                            v-show="false"
+                            class="deleteImg1"
+                            src="../assets/evaEnglish.png"
+                            @click.stop="openEnglishEva(w.wid,toolIndex)"
+                            alt
+                          />
                           <img
                             class="deleteImg deleteImg2"
                             src="../assets/deleteworks.png"
@@ -11238,7 +11278,7 @@
           </div>
           <div class="engText">
             <div>作文题目:</div>
-            <div v-html="englishList1.englishText"></div>
+            <div class="cont" v-html="englishList1.englishText" @click="checkImg(getImgList(englishList1.englishText))"></div>
           </div>
         </div>
         <div class="correctBox" :style="{height: `calc(100% - ${topHeight}px)` }">
@@ -11250,10 +11290,14 @@
                   <div>标题:</div>
                   <div>{{ oldEnglishJson.engTitle }} </div>
                 </div>
-                <div class="oldDetail">
+                <div class="oldDetail1">
                   <div>正文:</div>
                   <div v-html="oldEnglishJson.engText"></div>
                 </div>
+                <div class="oldDetail" v-if="oldEnglishJson.imgList && oldEnglishJson.imgList.length > 0">
+                  <div>图片:</div>
+                  <div class="oldImg"><img :src="oldEnglishJson.imgList[0].url" alt="" /></div>
+                </div>
               </div>
             </div>
           </div>
@@ -11332,6 +11376,7 @@
         <el-button type="primary" @click="addCorrect">确 定</el-button>
       </span>
     </el-dialog>
+    <englishEva :evaEngJson="evaEngJson" :engEvaDialogVisible.sync="engEvaDialogVisible"></englishEva>
     <interVideo
       :dialogVisibleVideo.sync="dialogVisibleVideo"
       :videoJson="videoJson"
@@ -11401,6 +11446,7 @@ import axios from "axios";
 import JSZip from "jszip";
 import FileSaver from "file-saver";
 import onlineWrite from "./components/onlineWrite";
+import englishEva from "./components/englishEva";
 
 const getFile = (url) => {
   return new Promise((resolve, reject) => {
@@ -11437,6 +11483,7 @@ export default {
     UpdateMore,
     wordCloud,
     onlineWrite,
+    englishEva,
   },
   data() {
     return {
@@ -11471,7 +11518,13 @@ export default {
       dialogVisibleVideo: false,
       dialogVisiblePickPeople: false,
       engDialogVisible: false,
-      engUpdateDialogVisible:false,
+      engUpdateDialogVisible: false,
+      engEvaDialogVisible: false,
+      evaEngJson: {
+        username: "",
+        teacherJson: {},
+        studentJson: {},
+      },
       isNoUserid:false,
       engListLength:0,
       engWid:"",
@@ -13499,6 +13552,23 @@ export default {
         ].toolChoose[toolindex].rateJson;
       this.studentEvalDialogVisible = true;
     },
+    openEnglishEva(id,i){
+      let params = {
+        wid: id
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectEngWork", params)
+        .then((res) => {
+          this.evaEngJson.studentJson = JSON.parse(res.data[0][0].content);
+          this.evaEngJson.username = res.data[0][0].username;
+          this.evaEngJson.teacherJson = this.chapInfoList[this.courseType].chapterInfo[0].taskJson[this.taskCount]
+              .toolChoose[i].englishList;
+          this.engEvaDialogVisible = true;
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
     deleteWorks(id) {
       this.$confirm("确定删除此作业吗?", "提示", {
         confirmButtonText: "确定",
@@ -18692,11 +18762,18 @@ export default {
           }else{
             var a = res.data[0];
             if(this.userMes[0].type == 2){
+              var snum = 0;
               for(var i = 0;i<a.length;i++){
                 if(this.userMes[0].userid == a[i].correct){
                   this.newEnglishList = JSON.parse(a[i].cWork);
+                  snum = 1;
                 }
               }
+              if(snum == 0){
+                this.newEnglishList = { engTitle:"",engText:"" };
+                this.newEnglishList.engTitle = z.engTitle;
+                this.newEnglishList.engText = z.engText;
+              }
             }else if(this.userMes[0].type == 1){
               var num = 0;
               for(var w= 0;w<a.length;w++){
@@ -18953,13 +19030,6 @@ export default {
     width: 100% !important;
     min-width: unset !important;
   }
-
-  /* .textTitle >>> .el-form-item__label {
-    width: 150px !important;
-  } */
-  /* .stageItemTitle > div:last-child{
-    max-width: 50px;
-  } */
 }
 
 .evaCssMax {
@@ -21969,7 +22039,7 @@ ol {
   margin-top: 10px;
 }
 
-.deleteImg {
+.deleteImg,.deleteImg1 {
   width: 25px !important;
   height: 25px !important;
   cursor: pointer;
@@ -21979,12 +22049,19 @@ ol {
 }
 
 .deleteImg2 {
-  width: 15px !important;
-  height: 15px !important;
+  width: 23px !important;
+  height: 23px !important;
   top: 5px;
   right: 5px;
 }
 
+.deleteImg1{
+  width: 23px !important;
+  height: 23px !important;
+  top: 5px !important;
+  right: 30px !important;
+}
+
 .rightW {
   right: 40px;
 }
@@ -22695,14 +22772,13 @@ ol {
   margin-left: 15px;
   width: calc(100% - 50px);
 }
+.stageNav{
+  /* font-weight: bold; */
+}
 .stageItemTitle > div:first-child {
-  font-size: 16px;
-  font-weight: bold;
   min-width: 55px;
 }
 .stageItemTitle > div:last-child {
-  font-size: 15px;
-  font-weight: 600;
   max-width: 242px;
   white-space: nowrap;
   overflow: hidden;
@@ -22782,7 +22858,7 @@ ol {
   background: #ffffff;
   border-radius: 4px;
   width: 100%;
-  margin: 10px auto 0;
+  margin: 10px auto;
   position: relative;
   height: 40px;
   display: flex;
@@ -23186,10 +23262,25 @@ ol {
   border-radius: 5px;
 }
 
-.oldDetail{
+.oldDetail,.oldDetail1{
   padding-bottom: 30px;
 }
 
+.oldDetail1>div:last-child{
+  max-height: 200px;
+  overflow: auto;
+}
+
+.oldImg{
+  width:30px;
+  height: 30px;
+}
+
+.oldImg>img{
+  width: 100%;
+  height: 100%;
+}
+
 .allName{
   min-width: 200px;
   white-space: nowrap;
@@ -23201,4 +23292,9 @@ ol {
   border: 1px solid #bcc2cc;
   box-sizing: border-box;
 }
+
+.engUpTop{
+  max-height: 300px;
+  overflow: auto;
+}
 </style>

部分文件因文件數量過多而無法顯示