Jelajahi Sumber

Merge branch 'beta' into HK

lsc 1 tahun lalu
induk
melakukan
425b5fc7df
36 mengubah file dengan 1246 tambahan dan 564 penghapusan
  1. 4 0
      dist/index.html
  2. 0 0
      dist/static/css/app.2ed4beb2e0bae311a4bf2111269ab975.css
  3. 0 0
      dist/static/css/app.2ed4beb2e0bae311a4bf2111269ab975.css.map
  4. TEMPAT SAMPAH
      dist/static/img/bDown.b7b5d90.png
  5. 0 0
      dist/static/js/app.7014b4696746a02dbbbf.js.map
  6. 0 0
      dist/static/js/app.fcc8cbd8dcfdb4147392.js
  7. 1 0
      dist/static/js/app.fcc8cbd8dcfdb4147392.js.map
  8. 0 0
      dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map
  9. 0 0
      dist/static/js/vendor.2a024f32d91003b329ae.js
  10. 0 0
      dist/static/js/vendor.2a024f32d91003b329ae.js.map
  11. 0 0
      dist/static/js/vendor.dec56539cbda05d478b6.js
  12. 1 0
      dist/static/js/vendor.dec56539cbda05d478b6.js.map
  13. 9 4
      package-lock.json
  14. 1 0
      package.json
  15. 11 4
      src/App.vue
  16. TEMPAT SAMPAH
      src/assets/icon/newIcon/icon-slide.png
  17. TEMPAT SAMPAH
      src/assets/icon/newIcons/bDown2.png
  18. 33 33
      src/components/GM/studyStudentGM.vue
  19. 1 1
      src/components/GM/worksGM.vue
  20. 27 5
      src/components/components/askStatic.vue
  21. 28 7
      src/components/components/askStatic2.vue
  22. 247 37
      src/components/components/englishEva.vue
  23. 1 1
      src/components/components/vpdf.vue
  24. 1 1
      src/components/components/worksDetail2.vue
  25. 51 17
      src/components/courseDetail.vue
  26. 6 6
      src/components/easy/studyStudent.vue
  27. 8 8
      src/components/easy2/studyStudent jiu.vue
  28. 268 144
      src/components/easy2/studyStudent.vue
  29. 269 144
      src/components/easy3/studyStudent.vue
  30. 1 1
      src/components/liveProjectDetail.vue
  31. 1 1
      src/components/liveProjectDetailKH.vue
  32. 2 2
      src/components/student/studyStudent.vue
  33. 2 2
      src/components/studio/studyStudent.vue
  34. 4 4
      src/components/study.vue
  35. 268 141
      src/components/studyStudent.vue
  36. 1 1
      src/components/works.vue

+ 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.dc838947ea3fa50142af8037ced9e2ef.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.2a024f32d91003b329ae.js></script><script type=text/javascript src=./static/js/app.7014b4696746a02dbbbf.js></script></body></html><script>function stopSafari() {
+=======
+    }</style><link href=./static/css/app.2ed4beb2e0bae311a4bf2111269ab975.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.dec56539cbda05d478b6.js></script><script type=text/javascript src=./static/js/app.fcc8cbd8dcfdb4147392.js></script></body></html><script>function stopSafari() {
+>>>>>>> beta
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

File diff ditekan karena terlalu besar
+ 0 - 0
dist/static/css/app.2ed4beb2e0bae311a4bf2111269ab975.css


File diff ditekan karena terlalu besar
+ 0 - 0
dist/static/css/app.2ed4beb2e0bae311a4bf2111269ab975.css.map


TEMPAT SAMPAH
dist/static/img/bDown.b7b5d90.png


File diff ditekan karena terlalu besar
+ 0 - 0
dist/static/js/app.7014b4696746a02dbbbf.js.map


File diff ditekan karena terlalu besar
+ 0 - 0
dist/static/js/app.fcc8cbd8dcfdb4147392.js


File diff ditekan karena terlalu besar
+ 1 - 0
dist/static/js/app.fcc8cbd8dcfdb4147392.js.map


File diff ditekan karena terlalu besar
+ 0 - 0
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map


File diff ditekan karena terlalu besar
+ 0 - 0
dist/static/js/vendor.2a024f32d91003b329ae.js


File diff ditekan karena terlalu besar
+ 0 - 0
dist/static/js/vendor.2a024f32d91003b329ae.js.map


File diff ditekan karena terlalu besar
+ 0 - 0
dist/static/js/vendor.dec56539cbda05d478b6.js


File diff ditekan karena terlalu besar
+ 1 - 0
dist/static/js/vendor.dec56539cbda05d478b6.js.map


+ 9 - 4
package-lock.json

@@ -32764,10 +32764,9 @@
       "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
     },
     "diff": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npm.taobao.org/diff/download/diff-1.4.0.tgz?cache=0&sync_timestamp=1604803664325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff%2Fdownload%2Fdiff-1.4.0.tgz",
-      "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
-      "dev": true
+      "version": "5.1.0",
+      "resolved": "https://registry.npmmirror.com/diff/-/diff-5.1.0.tgz",
+      "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw=="
     },
     "diffie-hellman": {
       "version": "5.0.3",
@@ -36606,6 +36605,12 @@
             "ms": "0.7.1"
           }
         },
+        "diff": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmmirror.com/diff/-/diff-1.4.0.tgz",
+          "integrity": "sha512-VzVc42hMZbYU9Sx/ltb7KYuQ6pqAw+cbFWVy4XKdkuEL2CFaRLGEnISPs7YdzaUGpi+CpIqvRmu7hPQ4T7EQ5w==",
+          "dev": true
+        },
         "glob": {
           "version": "7.0.5",
           "resolved": "https://registry.npmmirror.com/glob/download/glob-7.0.5.tgz?cache=0&sync_timestamp=1632353796482&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob%2Fdownload%2Fglob-7.0.5.tgz",

+ 1 - 0
package.json

@@ -15,6 +15,7 @@
     "axios": "^0.21.3",
     "big.js": "^6.2.1",
     "dayjs": "^1.11.7",
+    "diff": "^5.1.0",
     "echarts": "^5.2.2",
     "element-ui": "^2.15.6",
     "file-saver": "^2.0.5",

+ 11 - 4
src/App.vue

@@ -459,13 +459,20 @@ html::-webkit-scrollbar-thumb {
 .text_tooltip {
   max-width: 350px;
 }
-
-.el-pagination.is-background .el-pager li:not(.disabled).active {
-    background-color: #0061FF !important;
-    color: #FFF;
+.el-pagination.is-background .el-pager li:not(.disabled).active{
+  background-color: #0061FF !important;
+  color: #FFF !important;
 }
 
+
+
 .el-pagination.is-background .el-pager li:not(.disabled):hover {
     color: #0061FF !important;
 }
+
+.el-pagination.is-background .el-pager li:not(.disabled).active {
+    background-color: #0061FF !important;
+    color: #FFF !important;
+}
+
 </style>

TEMPAT SAMPAH
src/assets/icon/newIcon/icon-slide.png


TEMPAT SAMPAH
src/assets/icon/newIcons/bDown2.png


+ 33 - 33
src/components/GM/studyStudentGM.vue

@@ -3003,7 +3003,7 @@ export default {
   },
   methods: {
     jump() {
-      window.opener.postMessage({ tools: "43" }, "*");
+      window.parent.postMessage({ tools: "43" }, "*");
     },
     previewImg(url) {
       this.$hevueImgPreview(url);
@@ -3476,7 +3476,7 @@ export default {
           ) != -1
         ) {
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + w.works;
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
           this.showPDF = false;
         } else if (
           w.works
@@ -3518,7 +3518,7 @@ export default {
           ) != -1
         ) {
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + w.works;
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
           this.showPDF = false;
         } else if (
           w.works
@@ -4396,7 +4396,7 @@ export default {
       }
     },
     allScrell() {
-      window.opener.postMessage({ allScreen: this.screenType }, "*");
+      window.parent.postMessage({ allScreen: this.screenType }, "*");
     },
     nextOrpreSteps(t) {
       var b = this.chapInfoList.length - 1;
@@ -5275,7 +5275,7 @@ export default {
         -1
       ) {
         this.pptImgUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + f;
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f);
         this.showPDF = false;
         this.dialogVisible3 = true;
       } else if (
@@ -5306,7 +5306,7 @@ export default {
         ) != -1
       ) {
         this.pptImgUrl1 =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + f.url;
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f.url);
         // this.dialogVisible3 = true;
         this.showType = 2;
       } else if (
@@ -5606,7 +5606,7 @@ export default {
           a = this.wbCount;
           this.toolsCount(a, t);
         }
-        window.opener.postMessage(
+        window.parent.postMessage(
           {
             tools: "1",
             cid: this.id,
@@ -5624,7 +5624,7 @@ export default {
           a = this.wordCount;
           this.toolsCount(a, t);
         }
-        window.opener.postMessage({ tools: "2" }, "*");
+        window.parent.postMessage({ tools: "2" }, "*");
       } else if (t == 3) {
         if (this.mindCount > 0) {
           this.updateCount(this.mindCount, t);
@@ -5633,7 +5633,7 @@ export default {
           a = this.mindCount;
           this.toolsCount(a, t);
         }
-        window.opener.postMessage(
+        window.parent.postMessage(
           {
             tools: "3",
             cid: this.id,
@@ -5674,7 +5674,7 @@ export default {
         }
         this.dialogVisible5 = true;
 
-        // window.opener.postMessage({ tools: "4" }, "*");
+        // window.parent.postMessage({ tools: "4" }, "*");
       } else if (t == 45) {
         this.noteName = "";
         this.radio = [];
@@ -5700,7 +5700,7 @@ export default {
 
         this.dialogVisibleChoice = true;
 
-        // window.opener.postMessage({ tools: "4" }, "*");
+        // window.parent.postMessage({ tools: "4" }, "*");
       } else if (t == 5) {
         if (this.scoreCount > 0) {
           this.updateCount(this.scoreCount, t);
@@ -5710,7 +5710,7 @@ export default {
           this.toolsCount(a, t);
         }
         this.dialogVisible4 = true;
-        // window.opener.postMessage({ tools: "5" }, "*");
+        // window.parent.postMessage({ tools: "5" }, "*");
       } else if (t == 6) {
         if (this.noteCount > 0) {
           this.updateCount(this.noteCount, t);
@@ -5719,7 +5719,7 @@ export default {
           a = this.noteCount;
           this.toolsCount(a, t);
         }
-        window.opener.postMessage(
+        window.parent.postMessage(
           {
             tools: "6",
             cid: this.id,
@@ -5737,7 +5737,7 @@ export default {
           a = this.mindNetWorkCount;
           this.toolsCount(a, t);
         }
-        window.opener.postMessage(
+        window.parent.postMessage(
           {
             tools: "7",
             cid: this.id,
@@ -5764,7 +5764,7 @@ export default {
           a = this.libraryCount;
           this.toolsCount(a, t);
         }
-        window.opener.postMessage({ tools: "8" }, "*");
+        window.parent.postMessage({ tools: "8" }, "*");
       } else if (t == 17) {
         if (this.libraryCount > 0) {
           this.updateCount(this.libraryCount, t);
@@ -5773,7 +5773,7 @@ export default {
           a = this.libraryCount;
           this.toolsCount(a, t);
         }
-        window.opener.postMessage({ tools: "17" }, "*");
+        window.parent.postMessage({ tools: "17" }, "*");
       } else if (t == 18) {
         if (this.trainCount > 0) {
           this.updateCount(this.trainCount, t);
@@ -5782,7 +5782,7 @@ export default {
           a = this.trainCount;
           this.toolsCount(a, t);
         }
-        window.opener.postMessage({ tools: "18" }, "*");
+        window.parent.postMessage({ tools: "18" }, "*");
       } else if (t == 10) {
         if (this.timeCount > 0) {
           this.updateCount(this.timeCount, t);
@@ -5809,29 +5809,29 @@ export default {
           : "";
         this.answerDialogVisible = true;
       } else if (t == 21) {
-        window.opener.postMessage({ tools: "21" }, "*");
+        window.parent.postMessage({ tools: "21" }, "*");
       } else if (t == 22) {
-        window.opener.postMessage({ tools: "22" }, "*");
+        window.parent.postMessage({ tools: "22" }, "*");
       } else if (t == 23) {
-        window.opener.postMessage({ tools: "23" }, "*");
+        window.parent.postMessage({ tools: "23" }, "*");
       } else if (t == 24) {
-        window.opener.postMessage({ tools: "24" }, "*");
+        window.parent.postMessage({ tools: "24" }, "*");
       } else if (t == 25) {
-        window.opener.postMessage({ tools: "25" }, "*");
+        window.parent.postMessage({ tools: "25" }, "*");
       } else if (t == 31) {
-        window.opener.postMessage({ tools: "31" }, "*");
+        window.parent.postMessage({ tools: "31" }, "*");
       } else if (t == 28) {
-        window.opener.postMessage({ tools: "28" }, "*");
+        window.parent.postMessage({ tools: "28" }, "*");
       } else if (t == 37) {
-        window.opener.postMessage({ tools: "37" }, "*");
+        window.parent.postMessage({ tools: "37" }, "*");
       } else if (t == 38) {
-        window.opener.postMessage({ tools: "38" }, "*");
+        window.parent.postMessage({ tools: "38" }, "*");
       } else if (t == 39) {
-        window.opener.postMessage({ tools: "39" }, "*");
+        window.parent.postMessage({ tools: "39" }, "*");
       } else if (t == 32) {
-        window.opener.postMessage({ tools: "32" }, "*");
+        window.parent.postMessage({ tools: "32" }, "*");
       } else if (t == 26) {
-        window.opener.postMessage(
+        window.parent.postMessage(
           {
             tools: "26",
             cid: this.id,
@@ -5908,7 +5908,7 @@ export default {
         this.isSelect = false;
         this.dialogVisibleSelect = true;
       } else if (t == 44) {
-        window.opener.postMessage({ tools: "44" }, "*");
+        window.parent.postMessage({ tools: "44" }, "*");
       }
     },
     toolsCount(a, t) {
@@ -6329,11 +6329,11 @@ export default {
   },
   created() {
     if (this.screenType == 2) {
-      window.opener.postMessage({ allScreen: 4 }, "*");
+      window.parent.postMessage({ allScreen: 4 }, "*");
     } else if (this.screenType == 3) {
-      window.opener.postMessage({ allScreen: "5gm" }, "*");
+      window.parent.postMessage({ allScreen: "5gm" }, "*");
     } else if (this.screenType == 1) {
-      window.opener.postMessage({ allScreen: 6 }, "*");
+      window.parent.postMessage({ allScreen: 6 }, "*");
     }
     this.selectEva();
     this.getCourseDetail();

+ 1 - 1
src/components/GM/worksGM.vue

@@ -946,7 +946,7 @@ export default {
                 ) {
                   var a =
                     "https://view.officeapps.live.com/op/view.aspx?src=" +
-                    pptInfo[i].content;
+                    encodeURIComponent(pptInfo[i].content);
                   workJson[k].wpptInfo.push(a);
                   this.showPDF = false;
                 } else if (

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

@@ -68,18 +68,15 @@
                     popper-class="text_tooltip"
                   >
                     <div
+                      class="dot"
                       style="
                         max-width: calc(100% - 40px);
-                        white-space: nowrap;
                         overflow: hidden;
-                        text-overflow: ellipsis;
-                        word-break: break-word;
                         width: auto;
-                        display: block;
                         cursor: pointer;
                       "
                     >
-                      选项{{checkIndex+1}}:{{ item.checkList[checkIndex] }}
+                      <span>{{ item.checkList[checkIndex] }}</span>
                     </div>
                   </el-tooltip>
                   <!-- </el-tooltip> -->
@@ -403,4 +400,29 @@ export default {
   margin-bottom: 10px;
   border-bottom: 1px solid #d8d8d8;
 }
+
+.dot{
+  display:flex;
+  align-items: center;
+}
+
+.dot > span{
+  display:block;
+  max-width: calc(100% - 20px) !important;
+  width:auto !important;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  word-break: break-word;
+  overflow: hidden;
+}
+.dot::before{
+  content:'';
+  min-width: 10px;
+  width: 10px;
+  height: 10px;
+  background: #0061ff;
+  border-radius: 50%;
+  margin-right: 10px;
+  display: block;
+}
 </style>

+ 28 - 7
src/components/components/askStatic2.vue

@@ -80,14 +80,15 @@
                   }"
                 >
                   <div
-                    style="margin-right: 10px;display:flex;align-items: center;"
+                    class="dot"
+                    style="margin-right: 10px;"
                     v-if="
                       item.checkList[checkIndex] &&
                       item.checkList[checkIndex].imgType &&
                       item.checkList[checkIndex].imgType == 1
                     "
                   >
-                    <div>选项{{checkIndex+1}}:</div>
+                    <!-- <div>选项{{checkIndex+1}}:</div> -->
                     <div
                       class="inImg"
                       @click.stop="previewImg(item.checkList[checkIndex].src)"
@@ -103,18 +104,15 @@
                     v-else
                   >
                     <div
+                      class="dot"
                       style="
                         max-width: calc(100% - 40px);
-                        white-space: nowrap;
                         overflow: hidden;
-                        text-overflow: ellipsis;
-                        word-break: break-word;
                         width: auto;
-                        display: block;
                         cursor: pointer;
                       "
                     >
-                      选项{{checkIndex+1}}、{{ item.checkList[checkIndex] }}
+                      <span>{{ item.checkList[checkIndex] }}</span>
                     </div>
                   </el-tooltip>
                 </span>
@@ -475,4 +473,27 @@ export default {
   height: 100%;
   object-fit: cover;
 }
+.dot{
+  display:flex;
+  align-items: center;
+}
+.dot > span{
+  display:block;
+  max-width: calc(100% - 20px) !important;
+  width:auto !important;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  word-break: break-word;
+  overflow: hidden;
+}
+.dot::before{
+  content:'';
+  min-width: 10px;
+  width: 10px;
+  height: 10px;
+  background: #0061ff;
+  border-radius: 50%;
+  margin-right: 10px;
+  display: block;
+}
 </style>

+ 247 - 37
src/components/components/englishEva.vue

@@ -21,12 +21,22 @@
             @click="checkImg(getImgList(evaEngJson.teacherJson.englishText))"
           ></div>
         </div>
+        <div class="tcNewButton" @click="setType(1)">
+          {{
+            courseDetail &&
+            (courseDetail.userid == uid ||
+              (courseDetail.course_teacher &&
+                courseDetail.course_teacher.indexOf(uid) != -1))
+              ? "教师评价"
+              : "查看教师评价"
+          }}
+        </div>
       </div>
       <div
         class="correctBox"
         :style="{ height: `calc(100% - ${topHeight}px)` }"
       >
-        <div class="oldBox">
+        <div :class="type == 0 ? 'oldBox' : 'halfOldBox'">
           <div class="oldMes">
             原文( 作者:{{ evaEngJson.message.username }} )
           </div>
@@ -55,7 +65,114 @@
             </div>
           </div>
         </div>
-        <div class="oldBox" style="position: relative">
+        <div v-if="type == 1" class="halfOldBox loadingText">
+          <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: #aacaff; min-width: 100%; width: 100%"
+            >
+              教师评价
+            </div>
+          </div>
+          <div class="oldText" style="margin-top: 10px">
+            <div class="detailBox" style="position: relative">
+              <div
+                class="addEva"
+                v-if="
+                  evaEngJson.teacherJson.textJson &&
+                  evaEngJson.teacherJson.textJson.startJson.length > 0
+                "
+              >
+                <!-- <el-rate
+                  v-model="evaEngJson.teacherJson.textJson.score"
+                  class="engRate"
+                ></el-rate> -->
+                <div>评分标准:</div>
+                <div class="setEngEva">
+                  <div
+                    v-for="(item, index) in evaEngJson.teacherJson.textJson
+                      .startJson"
+                    :key="index"
+                    class="engStartBox"
+                  >
+                    <div class="scoreItem">
+                      <div>{{ item.title }}</div>
+                      <div>
+                        <el-rate
+                          v-model="startList.scoreList[index]"
+                          :disabled="
+                            !(
+                              courseDetail &&
+                              (courseDetail.userid == uid ||
+                                (courseDetail.course_teacher &&
+                                  courseDetail.course_teacher.indexOf(uid) !=
+                                    -1))
+                            )
+                          "
+                        ></el-rate>
+                      </div>
+                    </div>
+                    <div>{{ item.detile }}</div>
+                  </div>
+                </div>
+              </div>
+              <div v-else>
+                <div>评分:</div>
+                <div>
+                  <el-input
+                    v-model="startList.score"
+                    @change="isNumber($event)"
+                  ></el-input>
+                </div>
+              </div>
+              <div class="oldDetail">
+                <div>作业评价:</div>
+                <el-input
+                  type="textarea"
+                  :rows="10"
+                  resize="none"
+                  v-model="teacherList.engText"
+                  v-if="
+                    courseDetail &&
+                    (courseDetail.userid == uid ||
+                      (courseDetail.course_teacher &&
+                        courseDetail.course_teacher.indexOf(uid) != -1))
+                  "
+                />
+                <el-input
+                  type="textarea"
+                  :rows="10"
+                  resize="none"
+                  v-model="teacherList.engText"
+                  disabled
+                  v-else
+                />
+              </div>
+              <el-button
+                type="primary"
+                @click="getAiPj"
+                style="position: absolute; bottom: -50px; right: 0"
+                v-if="
+                  courseDetail &&
+                  (courseDetail.userid == uid ||
+                    (courseDetail.course_teacher &&
+                      courseDetail.course_teacher.indexOf(uid) != -1))
+                "
+                >AI评价</el-button
+              >
+            </div>
+          </div>
+        </div>
+        <!-- <div class="oldBox" style="position: relative">
           <div
             class="oldMes"
             style="
@@ -89,37 +206,16 @@
               overflow: auto;
             "
           >
-            <!-- <el-button
-              type="primary"
-              @click="getAiPj"
-              v-if="!isPj"
-              style="margin: 10px 0 0 0"
-              >AI评价</el-button
-            > -->
             <div class="oldText loadingText" style="margin-top: 10px">
               <div class="detailBox" style="min-width: 300px">
                 <div class="oldDetail" style="min-width: 300px">
                   <div>作业原文:</div>
                   <div v-html="evaEngJson.studentJson.engText"></div>
-                  <!-- <el-input
-                    type="textarea"
-                    :rows="10"
-                    resize="none"
-                    v-model="aiList.engTitle"
-                    disabled
-                  /> -->
                 </div>
                 <div class="oldDetail" style="min-width: 300px">
                   <div>作业评价:</div>
                   <div v-if="!aiList.engText">暂无AI评价</div>
                   <div v-else v-html="html"></div>
-                  <!-- <el-input
-                    type="textarea"
-                    :rows="10"
-                    resize="none"
-                    v-model="aiList.engText"
-                    disabled
-                  /> -->
                 </div>
               </div>
             </div>
@@ -147,7 +243,7 @@
               </div>
             </div>
           </div>
-        </div>
+        </div> -->
       </div>
     </div>
     <span
@@ -164,7 +260,7 @@
 <script>
 import MarkdownIt from "markdown-it";
 export default {
-  props: ["engEvaDialogVisible", "evaEngJson", "uid"],
+  props: ["engEvaDialogVisible", "evaEngJson", "uid", "tType", "courseDetail"],
   data() {
     return {
       topHeight: 0,
@@ -179,11 +275,17 @@ export default {
       },
       time: null,
       md: new MarkdownIt(),
+      startList: {
+        scoreList: [],
+        score: 0,
+      },
     };
   },
   computed: {
     html() {
-      return this.aiList.engText ? this.md.render(this.aiList.engText) : "";
+      return this.teacherList.engText
+        ? this.md.render(this.teacherList.engText)
+        : "";
     },
   },
   methods: {
@@ -194,6 +296,25 @@ export default {
     close() {
       this.$emit("update:engEvaDialogVisible", false);
     },
+    isNumber(e) {
+      let value = /^\d+$/.test(e);
+      // let value = e.replace(/[^d]/g, ""); // 只能输入数字
+      if (value == true) {
+        if (e < 0) {
+          this.$message.error("请输入大于0的数值");
+          this.startList.score = "";
+          return;
+        } else if (e > 100) {
+          this.$message.error("数值不能大于100");
+          this.startList.score = "";
+          return;
+        }
+      } else {
+        this.startList.score = "";
+        this.$message.error("请输入数字");
+        return;
+      }
+    },
     checkImg(list) {
       if (!list.length) {
         return;
@@ -218,7 +339,11 @@ export default {
       };
     },
     setType(i) {
-      this.type = i;
+      if (this.type == i) {
+        this.type = 0;
+      } else {
+        this.type = i;
+      }
       this.$forceUpdate();
     },
     getAiPj() {
@@ -255,7 +380,7 @@ export default {
             this.$message.error("你的作文内容太长,无法使用Ai评价!");
             return;
           }
-          this.aiList.engText =
+          this.teacherList.engText =
             res.data.FunctionResponse.choices[0].message.content;
           loading.close();
         },
@@ -268,9 +393,8 @@ export default {
     addCode() {
       let params = {
         id: this.evaEngJson.message.id,
-        aic: this.aiList.engText,
+        aic: JSON.stringify(this.startList),
         tc: this.teacherList.engText,
-        t: this.type,
       };
       this.ajax
         .get(this.$store.state.api + "addEngEva", params)
@@ -288,24 +412,54 @@ export default {
     engEvaDialogVisible: {
       handler(newVal) {
         if (newVal) {
-          this.aiList.engText = this.evaEngJson.message.aiCode;
+          if (this.evaEngJson.message.aiCode) {
+            if (
+              JSON.parse(this.evaEngJson.message.aiCode).scoreList.length > 0
+            ) {
+              this.startList.scoreList = JSON.parse(
+                this.evaEngJson.message.aiCode
+              ).scoreList;
+            } else {
+              this.startList.score = JSON.parse(
+                this.evaEngJson.message.aiCode
+              ).score;
+            }
+          }
           this.teacherList.engText = this.evaEngJson.message.teacherCode;
+          if (this.startList.scoreList.length == 0) {
+            for (
+              var i = 0;
+              i < this.evaEngJson.teacherJson.textJson.startJson.length;
+              i++
+            ) {
+              this.startList.scoreList.push(0);
+            }
+          }
+          this.type = 0;
+          const loading = this.$loading.service({
+            background: "rgba(255, 255, 255)",
+            target: document.querySelectorAll(".loadingText")[0],
+          });
+          loading.close();
           this.$forceUpdate();
           this.timer = setInterval(() => {
-            this.topHeight =
-              document.querySelectorAll(".engUpTop2")[0].offsetHeight ? document.querySelectorAll(".engUpTop2")[0].offsetHeight : 0 - 50;
+            this.topHeight = document.querySelectorAll(".engUpTop2")[0]
+              .offsetHeight
+              ? document.querySelectorAll(".engUpTop2")[0].offsetHeight + 50
+              : 0 - 50;
           }, 500);
           // setTimeout(() => {
           //   this.topHeight =
           //     document.querySelectorAll(".engUpTop2")[0].offsetHeight;
           // }, 500);
-        }else{
+        } else {
           clearInterval(this.timer);
         }
       },
       deep: true,
     },
   },
+  created() {},
 };
 </script>
 
@@ -387,8 +541,9 @@ export default {
   align-items: flex-start;
 }
 
-.oldBox {
-  width: 50%;
+.oldBox,
+.halfOldBox {
+  width: 100%;
   height: 100%;
   display: flex;
   flex-direction: column;
@@ -398,7 +553,11 @@ export default {
   border-left: 1px solid #d9d9d9;
   border-right: 1px solid #d9d9d9;
 }
-.oldBox > div:first-child {
+.halfOldBox {
+  width: 50% !important;
+}
+.oldBox > div:first-child,
+.halfOldBox > div:first-child {
   width: 100%;
   text-align: center;
   background: #d9d9d9;
@@ -514,4 +673,55 @@ ol {
   overflow-wrap: break-word;
   -webkit-line-break: after-white-space;
 }
+.tcNewButton {
+  color: #fff;
+  background-color: #409eff;
+  border-color: #409eff;
+  width: 90px;
+  height: 40px;
+  min-width: 90px;
+  border-radius: 5px;
+  line-height: 40px;
+  float: right;
+  margin: 0 20px 10px 0;
+  text-align: center;
+  cursor: pointer;
+}
+.setEngEva {
+  background: #fff;
+  padding: 10px;
+  margin: 5px 0;
+  border: 1px solid #ccc;
+  border-radius: 5px;
+  box-sizing: border-box;
+}
+.engStartBox {
+  display: flex;
+  flex-direction: column;
+  flex-wrap: nowrap;
+  align-items: flex-start;
+  margin-bottom: 5px;
+}
+.scoreItem {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  width: 100%;
+  margin-bottom: 5px;
+}
+.scoreItem > div:first-child {
+  font-size: 15px;
+  font-weight: bold;
+}
+.scoreItem > div:last-child >>> .el-rate {
+  height: 25px !important;
+}
+.scoreItem > div:last-child >>> .el-rate__item {
+  font-size: 25px !important;
+}
+.scoreItem > div:last-child >>> .el-rate__icon {
+  font-size: 25px !important;
+}
 </style>

+ 1 - 1
src/components/components/vpdf.vue

@@ -10,7 +10,7 @@
       </pdf>
     </div> -->
     <iframe ref="viframe" style="width: 100%; height: 99%; border: none"
-      :src="'https://cloud.cocorobo.cn/pdf.js/web/viewer.html?file=' + pdfUrl"></iframe>
+      :src="'https://cloud.cocorobo.cn/pdf.js/web/viewer.html?file=' + encodeURIComponent(pdfUrl)"></iframe>
     <!-- <div class="rightArea">
       <div class="toolGroup">
         <div class="page">第 {{ page }} / {{ numPages }} 页</div>

+ 1 - 1
src/components/components/worksDetail2.vue

@@ -898,7 +898,7 @@ export default {
                 ) {
                   var a =
                     "https://view.officeapps.live.com/op/view.aspx?src=" +
-                    pptInfo[i].content;
+                    encodeURIComponent(pptInfo[i].content);
                   workJson[k].wpptInfo.push(a);
                   this.showPDF = false;
                 } else if (

+ 51 - 17
src/components/courseDetail.vue

@@ -204,8 +204,8 @@
         </div>
         <div class="student_body">
           <div class="sLeft" v-if="courseDetail.brief">
-            <div class="courseT">项目详情</div>
-            <div class="courseTd">{{ courseDetail.brief }}</div>
+            <div class="courseT">课程详情</div>
+            <div class="courseTd" v-html="courseDetail.brief"></div>
           </div>
           <div :class="courseDetail.brief != '' ? 'rightTd' : 'noBRight'">
             <div v-if="tType == 1 || tType == 4" class="checkBox">
@@ -1065,18 +1065,51 @@ import FileSaver from "file-saver";
 
 const getFile = (url) => {
   return new Promise((resolve, reject) => {
-    axios({
-      method: "get",
-      url,
-      responseType: "blob",
-    })
-      .then((data) => {
-        resolve({ data: data.data });
-      })
-      .catch((error) => {
-        resolve({ data: 1 });
-        // reject(error.toString());
+    var credentials = {
+        accessKeyId: "AKIATLPEDU37QV5CHLMH",
+        secretAccessKey: "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",
+      }; //秘钥形式的登录上传
+      window.AWS.config.update(credentials);
+      window.AWS.config.region = "cn-northwest-1"; //设置区域
+      let url2 = url;
+      let _url2 = "";
+      if (
+        url2.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
+      ) {
+        _url2 = url2.split(
+          "https://view.officeapps.live.com/op/view.aspx?src="
+        )[1];
+      } else {
+        _url2 = url2;
+      }
+      var s3 = new window.AWS.S3({ params: { Bucket: "ccrb" } });
+      let name = decodeURIComponent(_url2.split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1])
+      var params = {
+        Bucket: "ccrb",
+        Key: name
+      };
+      s3.getObject(params, function (err, data) {
+        if (err) {
+          console.log(err, err.stack)
+          resolve({ data: 1 });
+        }else {
+          resolve({ data: data.Body });
+          console.log(data); 
+        }          // sxuccessful response
+
       });
+    // axios({
+    //   method: "get",
+    //   url,
+    //   responseType: "blob",
+    // })
+    //   .then((data) => {
+    //     resolve({ data: data.data });
+    //   })
+    //   .catch((error) => {
+    //     resolve({ data: 1 });
+    //     // reject(error.toString());
+    //   });
   });
 };
 
@@ -1880,7 +1913,7 @@ export default {
           <meta charset="UTF-8">
           <meta http-equiv="X-UA-Compatible" content="IE=edge">
           <meta name="viewport" content="width=device-width, initial-scale=1.0">
-          <title>报告</title>
+          <title>${a.title}</title>
           <style>
           </style>
       </head>
@@ -1891,7 +1924,7 @@ export default {
       // debugger
       // 生成报告
       const link = document.createElement("a");
-      let dname = a.title + ".docx";
+      let dname = a.title + ".doc";
       // link.download = "报告.html"; // 文件名
       link.download = dname; // 文件名
       link.style.display = "none";
@@ -2422,7 +2455,7 @@ export default {
 }
 
 .sLeft {
-  width: 25%;
+  width: 343px;
   margin-right: 10px;
   background: rgb(255, 255, 255);
   padding: 20px 20px 0 20px;
@@ -2441,6 +2474,7 @@ export default {
   height: 700px;
   overflow: auto;
   word-break: break-word;
+  white-space: pre-line;
 }
 
 .courseTd::-webkit-scrollbar {
@@ -2465,7 +2499,7 @@ export default {
 
 .rightTd,
 .noBRight {
-  width: calc(100% - 25% - 10px);
+  width: calc(100% - 28% - 10px);
   background: #fff;
   display: flex;
   flex-direction: row;

+ 6 - 6
src/components/easy/studyStudent.vue

@@ -3785,7 +3785,7 @@ export default {
           ) != -1
         ) {
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + w.works;
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
           this.showPDF = false;
         } else if (
           w.works
@@ -3834,7 +3834,7 @@ export default {
           ) != -1
         ) {
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + w.works;
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
           this.showPDF = false;
         } else if (
           w.works
@@ -5240,7 +5240,7 @@ export default {
                     this.showType = 2;
                     this.pptImgUrl1 =
                       "https://view.officeapps.live.com/op/view.aspx?src=" +
-                      _url;
+                      encodeURIComponent(_url);
                     this.isClickNav = "word0";
                   }
                 } else if (
@@ -5393,7 +5393,7 @@ export default {
                     this.showType = 2;
                     this.pptImgUrl1 =
                       "https://view.officeapps.live.com/op/view.aspx?src=" +
-                      _url;
+                      encodeURIComponent(_url);
                     this.isClickNav = "word0";
                   }
                 } else if (
@@ -5917,7 +5917,7 @@ export default {
         -1
       ) {
         this.pptImgUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + f;
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f);
         this.showPDF = false;
         this.dialogVisible3 = true;
       } else if (
@@ -5958,7 +5958,7 @@ export default {
         ) != -1
       ) {
         this.pptImgUrl1 =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + f.url;
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f.url);
         // this.dialogVisible3 = true;
         this.showType = 2;
       } else if (

+ 8 - 8
src/components/easy2/studyStudent jiu.vue

@@ -13502,7 +13502,7 @@ export default {
           ) != -1
         ) {
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + w.works;
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
           this.showPDF = false;
         } else if (
           w.works
@@ -13551,7 +13551,7 @@ export default {
           ) != -1
         ) {
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + w.works;
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
           this.showPDF = false;
         } else if (
           w.works
@@ -15706,7 +15706,7 @@ export default {
                     this.showType = 2;
                     this.pptImgUrl1 =
                       "https://view.officeapps.live.com/op/view.aspx?src=" +
-                      _url;
+                      encodeURIComponent(_url);
                   }
                 } else if (_chapterData[this.taskCount][0].type == 13) {
                   this.showType = 4;
@@ -15859,7 +15859,7 @@ export default {
                     this.showType = 2;
                     this.pptImgUrl1 =
                       "https://view.officeapps.live.com/op/view.aspx?src=" +
-                      _url;
+                      encodeURIComponent(_url);
                   }
                 } else if (_chapterData[this.taskCount][0].type == 13) {
                   this.showType = 4;
@@ -16505,7 +16505,7 @@ export default {
         -1
       ) {
         this.pptImgUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + f;
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f);
         this.showPDF = false;
         this.dialogVisible3 = true;
       } else if (
@@ -16553,7 +16553,7 @@ export default {
         ) != -1
       ) {
         this.pptImgUrl1 =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + f.url;
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f.url);
         // this.dialogVisible3 = true;
         this.showType = 2;
       } else if (
@@ -17802,7 +17802,7 @@ export default {
       } else if (t == 3) {
         this.fulltype = 2;
         this.fullUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + f.url;
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f.url);
       }
     },
     openSname(n, id, i, uid) {
@@ -17950,7 +17950,7 @@ export default {
         // a.remove();
         let content = x.response;
         let elink = document.createElement("a");
-        elink.download = decodeURI(
+        elink.download = decodeURIComponent(
           _url.split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1]
         );
         elink.style.display = "none";

File diff ditekan karena terlalu besar
+ 268 - 144
src/components/easy2/studyStudent.vue


File diff ditekan karena terlalu besar
+ 269 - 144
src/components/easy3/studyStudent.vue


+ 1 - 1
src/components/liveProjectDetail.vue

@@ -1625,7 +1625,7 @@ export default {
       }
     },
     openFile(u) {
-      this.pptImgUrl = "https://view.officeapps.live.com/op/view.aspx?src=" + u;
+      this.pptImgUrl = "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(u);
       this.isBlock = 7;
     },
     playVideo() {

+ 1 - 1
src/components/liveProjectDetailKH.vue

@@ -1625,7 +1625,7 @@ export default {
       }
     },
     openFile(u) {
-      this.pptImgUrl = "https://view.officeapps.live.com/op/view.aspx?src=" + u;
+      this.pptImgUrl = "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(u);
       this.isBlock = 7;
     },
     playVideo() {

+ 2 - 2
src/components/student/studyStudent.vue

@@ -1868,7 +1868,7 @@ export default {
                 } else if (this.chapterlist[k].type == 3) {
                   this.chapterlist[k].src =
                     "https://view.officeapps.live.com/op/view.aspx?src=" +
-                    this.chapterlist[k].url;
+                    encodeURIComponent(this.chapterlist[k].url);
                 } else if (this.chapterlist[k].type == 6) {
                   this.chapterlist[k].name += ".doc";
                 } else if (this.chapterlist[k].type == 8) {
@@ -2759,7 +2759,7 @@ export default {
         -1
       ) {
         this.pptImgUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + f;
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f);
         this.showPDF = false;
         this.dialogVisible3 = true;
       } else if (

+ 2 - 2
src/components/studio/studyStudent.vue

@@ -1854,7 +1854,7 @@ export default {
                 } else if (this.chapterlist[k].type == 3) {
                   this.chapterlist[k].src =
                     "https://view.officeapps.live.com/op/view.aspx?src=" +
-                    this.chapterlist[k].url;
+                    encodeURIComponent(this.chapterlist[k].url);
                 } else if (this.chapterlist[k].type == 6) {
                   this.chapterlist[k].name += ".doc";
                 } else if (this.chapterlist[k].type == 8) {
@@ -2736,7 +2736,7 @@ export default {
         -1
       ) {
         this.pptImgUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + f;
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f);
         this.showPDF = false;
         this.dialogVisible3 = true;
       } else if (

+ 4 - 4
src/components/study.vue

@@ -3807,7 +3807,7 @@ export default {
           ) != -1
         ) {
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + w.works;
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
           this.showPDF = false;
         } else if (
           w.works
@@ -4775,7 +4775,7 @@ export default {
                       this.showType[i][j] = 2;
                       this.pptImgUrl1[i][j] =
                         "https://view.officeapps.live.com/op/view.aspx?src=" +
-                        _url;
+                        encodeURIComponent(_url);
                       this.isClickNavOne[i][j][0] = "word0";
                     }
                   } else if (f[j].chapterData[0].type == 6) {
@@ -4959,7 +4959,7 @@ export default {
         -1
       ) {
         this.pptImgUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + f;
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f);
         this.showPDF = false;
         this.dialogVisible3 = true;
       } else if (
@@ -4990,7 +4990,7 @@ export default {
         ) != -1
       ) {
         this.pptImgUrl1[j][k] =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + f.url;
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f.url);
         // this.dialogVisible3 = true;
         this.showType[j][k] = 2;
       } else if (

File diff ditekan karena terlalu besar
+ 268 - 141
src/components/studyStudent.vue


+ 1 - 1
src/components/works.vue

@@ -760,7 +760,7 @@ export default {
                 ) {
                   var a =
                     "https://view.officeapps.live.com/op/view.aspx?src=" +
-                    pptInfo[i].content;
+                    encodeURIComponent(pptInfo[i].content);
                   workJson[k].wpptInfo.push(a);
                   this.showPDF = false;
                 } else if (

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini