Jelajahi Sumber

Merge branch 'beta' into HK

lsc 1 tahun lalu
induk
melakukan
e1cb9d5575
30 mengubah file dengan 1427 tambahan dan 477 penghapusan
  1. 4 0
      dist/index.html
  2. 0 0
      dist/static/css/app.9a4a528dd8ebaa987677f56447deb0c8.css
  3. 0 0
      dist/static/css/app.9a4a528dd8ebaa987677f56447deb0c8.css.map
  4. 0 0
      dist/static/css/app.f4b983a7cee7773a03e3a7b0fbdf6c9b.css
  5. 0 0
      dist/static/css/app.f4b983a7cee7773a03e3a7b0fbdf6c9b.css.map
  6. TEMPAT SAMPAH
      dist/static/img/downC.d085d2d.png
  7. 0 0
      dist/static/js/app.61916717289ad8bb1759.js
  8. 1 0
      dist/static/js/app.61916717289ad8bb1759.js.map
  9. 0 0
      dist/static/js/app.a2b5b681605744039260.js.map
  10. 0 0
      dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map
  11. 0 0
      dist/static/js/vendor.99a913bcc02dad4e392a.js
  12. 1 0
      dist/static/js/vendor.99a913bcc02dad4e392a.js.map
  13. 0 0
      dist/static/js/vendor.bff2d2510dce71ef7550.js
  14. 0 0
      dist/static/js/vendor.bff2d2510dce71ef7550.js.map
  15. 340 0
      package-lock.json
  16. 4 0
      package.json
  17. 9 0
      src/App.vue
  18. 13 11
      src/common/axios.config.js
  19. 6 6
      src/components/components/answerData.vue
  20. 20 19
      src/components/components/answerData2.vue
  21. 8 7
      src/components/components/askStatic.vue
  22. 11 7
      src/components/components/askStatic2.vue
  23. 212 58
      src/components/components/englishEva.vue
  24. 64 2
      src/components/components/onlineWrite.vue
  25. 4 2
      src/components/courseDetail.vue
  26. 64 2
      src/components/easy2/commpont/onlineWrite.vue
  27. 197 119
      src/components/easy2/studyStudent.vue
  28. 64 2
      src/components/easy3/commpont/onlineWrite.vue
  29. 197 119
      src/components/easy3/studyStudent.vue
  30. 208 123
      src/components/studyStudent.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.9a4a528dd8ebaa987677f56447deb0c8.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.a2b5b681605744039260.js></script></body></html><script>function stopSafari() {
+=======
+    }</style><link href=./static/css/app.f4b983a7cee7773a03e3a7b0fbdf6c9b.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.99a913bcc02dad4e392a.js></script><script type=text/javascript src=./static/js/app.61916717289ad8bb1759.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.9a4a528dd8ebaa987677f56447deb0c8.css


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


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


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


TEMPAT SAMPAH
dist/static/img/downC.d085d2d.png


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


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


File diff ditekan karena terlalu besar
+ 0 - 0
dist/static/js/app.a2b5b681605744039260.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.99a913bcc02dad4e392a.js


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


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


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


File diff ditekan karena terlalu besar
+ 340 - 0
package-lock.json


+ 4 - 0
package.json

@@ -27,7 +27,11 @@
     "jsmind": "^0.4.8",
     "jszip": "^3.10.1",
     "lamejs": "^1.2.1",
+<<<<<<< HEAD
     "language-hk-loader": "^1.0.1",
+=======
+    "markdown-it": "^13.0.1",
+>>>>>>> beta
     "pdfjs-dist": "^2.5.207",
     "pdfvuer": "^1.7.5",
     "qrcodejs2": "^0.0.2",

+ 9 - 0
src/App.vue

@@ -459,4 +459,13 @@ 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):hover {
+    color: #0061FF !important;
+}
 </style>

+ 13 - 11
src/common/axios.config.js

@@ -1,13 +1,13 @@
 import axios from "axios"
 import qs from "qs"
-axios.defaults.timeout = 900000   //响应时间
-axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';        //配置请求头
-axios.defaults.baseURL = process.env.NODE_HOST;   //配置接口地址
+axios.defaults.timeout = 900000 //响应时间
+axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; //配置请求头
+axios.defaults.baseURL = process.env.NODE_HOST; //配置接口地址
 console.log(process.env)
-//POST传参序列化(添加请求拦截器)
+    //POST传参序列化(添加请求拦截器)
 axios.interceptors.request.use((config) => {
     //在发送请求之前做某件事
-    let token = sessionStorage.getItem('access_token') || ""  //获取token 
+    let token = sessionStorage.getItem('access_token') || "" //获取token 
     console.log(token)
     if (token != "") {
         config.headers = {
@@ -15,10 +15,12 @@ axios.interceptors.request.use((config) => {
             'Content-Type': 'application/x-www-form-urlencoded'
         }
     }
-    if (config.data && config.data[0].post == '1' && config.method === 'post') {
-        config.data = 'mode=' + (Object.values(config.data[0]).join(','))//序列化post 参数
-    } else if(config.method === 'post') {
-        config.data = qs.stringify(config.data)//序列化post 参数
+    if (config.url === 'https://gpt.cocorobo.cn/chat') {
+        config.data = config.data //序列化post 参数
+    } else if (config.data && config.data[0].post == '1' && config.method === 'post') {
+        config.data = 'mode=' + (Object.values(config.data[0]).join(',')) //序列化post 参数
+    } else if (config.method === 'post') {
+        config.data = qs.stringify(config.data) //序列化post 参数
     }
     return config;
 }, (error) => {
@@ -30,13 +32,13 @@ axios.interceptors.request.use((config) => {
 axios.interceptors.response.use((res) => {
     //对响应数据做些事
     if (!res.data.success) {
-        let newToken = res.data.token    //成功后更新token 
+        let newToken = res.data.token //成功后更新token 
         localStorage.setItem('access_token', newToken)
 
     }
     return res;
 }, (error) => {
-    if (error.response.data.status == '401') {    //如果token 过期 则跳转到登录页面
+    if (error.response.data.status == '401') { //如果token 过期 则跳转到登录页面
         this.$router.push('/login');
     }
     return Promise.reject(error);

+ 6 - 6
src/components/components/answerData.vue

@@ -24,7 +24,7 @@
         <div v-for="(item, index) in timu" :key="index" class="borderB">
           <div class="s_title">第{{ index + 1 }}题</div>
           <div class="stuBox" style="margin-top: 20px; align-items: flex-start">
-            <div style="margin: 0 0 10px 0; min-width: 70px; color: #adadad">
+            <div style="margin: 0 0 10px 0; min-width: 70px; color: #adadad;font-size:16px;">
               答对同学:
             </div>
             <div class="stuBox" style="flex-wrap: wrap">
@@ -39,7 +39,7 @@
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="dialogVisible = false"
+        <el-button @click="dialogVisible = false"
           >关 闭</el-button
         >
       </span>
@@ -287,7 +287,7 @@ export default {
 
 .dialog_diy >>> .el-dialog__header,
 .dialog_diy1 >>> .el-dialog__header {
-  background: #002e81 !important;
+  background: #454545 !important;
   padding: 15px 20px;
 }
 
@@ -320,7 +320,6 @@ export default {
 .dialog_diy1 >>> .el-dialog__footer {
   background: #fafafa;
 }
-
 .s_title {
   /* margin-top: 10px; */
   font-size: 18px;
@@ -336,8 +335,6 @@ export default {
 }
 
 .studentClass {
-  background: #46a1eb;
-  color: #fff;
   width: 90px;
   height: 25px;
   text-align: center;
@@ -350,6 +347,9 @@ export default {
   text-overflow: ellipsis;
   font-size: 16px;
   margin-bottom: 10px;
+  background: #fff;
+  color: #0061ff;
+  border: 1px solid #0061ff;
 }
 
 .borderB {

+ 20 - 19
src/components/components/answerData2.vue

@@ -29,7 +29,7 @@
         <div v-for="(item, index) in timu" :key="index" class="borderB">
           <div class="s_title">第{{index+1}}题</div>
           <div class="stuBox" style="margin-top: 20px;align-items: flex-start;">
-            <div style="margin: 0 0 10px 0; min-width: 70px; color: #adadad">
+            <div style="margin: 0 0 10px 0; min-width: 70px; color: #adadad;font-size:16px;">
               答对同学:
             </div>
             <div class="stuBox" style="flex-wrap: wrap">
@@ -39,7 +39,7 @@
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="dialogVisible = false">关 闭</el-button>
+        <el-button @click="dialogVisible = false">关 闭</el-button>
       </span>
     </el-dialog>
   </div>
@@ -359,39 +359,39 @@ export default {
   margin: 0 3px;
 }
 
-.dialog_diy>>>.el-dialog__header,
-.dialog_diy1>>>.el-dialog__header {
-  background: #002e81 !important;
+.dialog_diy >>> .el-dialog__header,
+.dialog_diy1 >>> .el-dialog__header {
+  background: #454545 !important;
   padding: 15px 20px;
 }
 
-.dialog_diy>>>.el-dialog__title,
-.dialog_diy1>>>.el-dialog__title {
+.dialog_diy >>> .el-dialog__title,
+.dialog_diy1 >>> .el-dialog__title {
   color: #fff;
 }
 
-.dialog_diy>>>.el-dialog__headerbtn,
-.dialog_diy1>>>.el-dialog__headerbtn {
+.dialog_diy >>> .el-dialog__headerbtn,
+.dialog_diy1 >>> .el-dialog__headerbtn {
   top: 19px;
 }
 
-.dialog_diy>>>.el-dialog__headerbtn .el-dialog__close,
-.dialog_diy1>>>.el-dialog__headerbtn .el-dialog__close {
+.dialog_diy >>> .el-dialog__headerbtn .el-dialog__close,
+.dialog_diy1 >>> .el-dialog__headerbtn .el-dialog__close {
   color: #fff;
 }
 
-.dialog_diy>>>.el-dialog__headerbtn .el-dialog__close:hover,
-.dialog_diy1>>>.el-dialog__headerbtn .el-dialog__close:hover {
+.dialog_diy >>> .el-dialog__headerbtn .el-dialog__close:hover,
+.dialog_diy1 >>> .el-dialog__headerbtn .el-dialog__close:hover {
   color: #fff;
 }
 
-.dialog_diy1>>>.el-dialog__body {
+.dialog_diy1 >>> .el-dialog__body {
   padding: 0;
 }
 
-.dialog_diy>>>.el-dialog__body,
-.dialog_diy>>>.el-dialog__footer,
-.dialog_diy1>>>.el-dialog__footer {
+.dialog_diy >>> .el-dialog__body,
+.dialog_diy >>> .el-dialog__footer,
+.dialog_diy1 >>> .el-dialog__footer {
   background: #fafafa;
 }
 
@@ -410,8 +410,6 @@ export default {
 }
 
 .studentClass {
-  background: #46a1eb;
-  color: #fff;
   width: 90px;
   height: 25px;
   text-align: center;
@@ -424,6 +422,9 @@ export default {
   text-overflow: ellipsis;
   font-size: 16px;
   margin-bottom: 10px;
+  background: #fff;
+  color: #0061ff;
+  border: 1px solid #0061ff;
 }
 
 .borderB {

+ 8 - 7
src/components/components/askStatic.vue

@@ -79,7 +79,7 @@
                         cursor: pointer;
                       "
                     >
-                      {{ item.checkList[checkIndex] }}
+                      选项{{checkIndex+1}}:{{ item.checkList[checkIndex] }}
                     </div>
                   </el-tooltip>
                   <!-- </el-tooltip> -->
@@ -127,7 +127,7 @@
         <div v-for="(item, index) in timu" :key="index" class="borderB">
           <div v-html="item" class="s_title"></div>
           <div class="stuBox" style="margin-top: 20px; align-items: flex-start">
-            <div style="margin: 0 0 10px 0; min-width: 70px; color: #adadad">
+            <div style="margin: 0 0 10px 0; min-width: 70px; color: #adadad;font-size:16px;">
               选择同学:
             </div>
             <div class="stuBox" style="flex-wrap: wrap">
@@ -142,7 +142,7 @@
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="dialogVisible = false"
+        <el-button @click="dialogVisible = false"
           >关 闭</el-button
         >
       </span>
@@ -333,7 +333,7 @@ export default {
 
 .dialog_diy >>> .el-dialog__header,
 .dialog_diy1 >>> .el-dialog__header {
-  background: #002e81 !important;
+  background: #454545 !important;
   padding: 15px 20px;
 }
 
@@ -382,8 +382,6 @@ export default {
 }
 
 .studentClass {
-  background: #46a1eb;
-  color: #fff;
   width: 90px;
   height: 25px;
   text-align: center;
@@ -394,8 +392,11 @@ export default {
   overflow: hidden;
   padding: 5px;
   text-overflow: ellipsis;
-  font-size: 14px;
+  font-size: 16px;
   margin-bottom: 10px;
+  background: #fff;
+  color: #0061ff;
+  border: 1px solid #0061ff;
 }
 
 .borderB {

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

@@ -80,13 +80,14 @@
                   }"
                 >
                   <div
-                    style="margin-right: 10px"
+                    style="margin-right: 10px;display:flex;align-items: center;"
                     v-if="
                       item.checkList[checkIndex] &&
                       item.checkList[checkIndex].imgType &&
                       item.checkList[checkIndex].imgType == 1
                     "
                   >
+                    <div>选项{{checkIndex+1}}:</div>
                     <div
                       class="inImg"
                       @click.stop="previewImg(item.checkList[checkIndex].src)"
@@ -113,7 +114,7 @@
                         cursor: pointer;
                       "
                     >
-                      {{ item.checkList[checkIndex] }}
+                      选项{{checkIndex+1}}、{{ item.checkList[checkIndex] }}
                     </div>
                   </el-tooltip>
                 </span>
@@ -162,7 +163,7 @@
           </div>
           <div v-else v-html="item" class="s_title"></div>
           <div class="stuBox" style="margin-top: 20px; align-items: flex-start">
-            <div style="margin: 0 0 10px 0; min-width: 70px; color: #adadad">
+            <div style="margin: 0 0 10px 0; min-width: 70px; color: #adadad;font-size:16px;">
               选择同学:
             </div>
             <div class="stuBox" style="flex-wrap: wrap">
@@ -177,7 +178,7 @@
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="dialogVisible = false"
+        <el-button @click="dialogVisible = false"
           >关 闭</el-button
         >
       </span>
@@ -372,7 +373,7 @@ export default {
 
 .dialog_diy >>> .el-dialog__header,
 .dialog_diy1 >>> .el-dialog__header {
-  background: #002e81 !important;
+  background: #454545 !important;
   padding: 15px 20px;
 }
 
@@ -421,8 +422,8 @@ export default {
 }
 
 .studentClass {
-  background: #46a1eb;
-  color: #fff;
+  /* background: #46a1eb;
+  color: #fff; */
   width: 90px;
   height: 25px;
   text-align: center;
@@ -435,6 +436,9 @@ export default {
   text-overflow: ellipsis;
   font-size: 16px;
   margin-bottom: 10px;
+  background: #fff;
+  color: #0061ff;
+  border: 1px solid #0061ff;
 }
 
 .borderB {

+ 212 - 58
src/components/components/englishEva.vue

@@ -8,13 +8,13 @@
     class="dialog_diy fullStyle"
   >
     <div class="engUpBox">
-      <div class="engUpTop">
+      <div class="engUpTop2">
         <div class="engTitle">
           <div>作文题目:</div>
           <div>{{ evaEngJson.teacherJson.engTitle }}</div>
         </div>
         <div class="engText">
-          <div>作文题目:</div>
+          <div>作文内容:</div>
           <div
             class="cont"
             v-html="evaEngJson.teacherJson.englishText"
@@ -27,7 +27,9 @@
         :style="{ height: `calc(100% - ${topHeight}px)` }"
       >
         <div class="oldBox">
-          <div class="oldMes">原文( 作者:{{ evaEngJson.username }} )</div>
+          <div class="oldMes">
+            原文( 作者:{{ evaEngJson.message.username }} )
+          </div>
           <div class="oldText">
             <div class="detailBox">
               <div class="oldDetail">
@@ -79,105 +81,118 @@
               教师评价
             </div>
           </div>
-          <div v-if="type == 0">
-            <el-button
+          <div
+            v-if="type == 0"
+            style="
+              height: calc(100% - 45px);
+              margin: 10px 0 0 0;
+              overflow: auto;
+            "
+          >
+            <!-- <el-button
               type="primary"
-              @click="isPj = true"
+              @click="getAiPj"
               v-if="!isPj"
               style="margin: 10px 0 0 0"
               >AI评价</el-button
-            >
-            <div class="oldText" style="margin-top: 10px" v-else>
+            > -->
+            <div class="oldText loadingText" style="margin-top: 10px">
               <div class="detailBox" style="min-width: 300px">
                 <div class="oldDetail" style="min-width: 300px">
-                  <div>作业批改:</div>
-                  <el-input
+                  <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>
-                  <el-input
+                  <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>
             <el-button
               type="primary"
-              @click="isPj = false"
-              v-if="isPj"
+              @click="getAiPj"
               style="position: absolute; top: 50px; right: 20px"
-              >返回评价</el-button
+              >AI评价</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 v-if="type == 1" class="oldText" style="margin-top: 10px">
+            <div class="detailBox">
+              <div class="oldDetail">
+                <div>作业原文:</div>
+                <div v-html="evaEngJson.studentJson.engText"></div>
+              </div>
+              <div class="oldDetail">
+                <div>作业评价:</div>
+                <el-input
+                  type="textarea"
+                  :rows="10"
+                  resize="none"
+                  v-model="teacherList.engText"
+                />
               </div>
             </div>
           </div>
         </div>
       </div>
     </div>
-    <span slot="footer" class="dialog-footer" style="z-index: 999;position: relative;">
+    <span
+      slot="footer"
+      class="dialog-footer"
+      style="z-index: 999; position: relative"
+    >
       <el-button @click="close()">取 消</el-button>
-      <el-button type="primary">确 定</el-button>
+      <el-button type="primary" @click="addCode">确 定</el-button>
     </span>
   </el-dialog>
 </template>
 
 <script>
+import MarkdownIt from "markdown-it";
 export default {
-  props: ["engEvaDialogVisible","evaEngJson"],
+  props: ["engEvaDialogVisible", "evaEngJson", "uid"],
   data() {
     return {
       topHeight: 0,
       type: 0,
-      isPj: false,
       aiList: {
-        engTitle: "这是题目",
-        engText: "这是内容",
+        engTitle: "",
+        engText: "",
       },
       teacherList: {
         engTitle: "",
         engText: "",
       },
+      time: null,
+      md: new MarkdownIt(),
     };
   },
+  computed: {
+    html() {
+      return this.aiList.engText ? this.md.render(this.aiList.engText) : "";
+    },
+  },
   methods: {
     handleClose(done) {
-      this.close()
+      this.close();
       done();
     },
-    close(){
-      this.$emit("update:engEvaDialogVisible",false)
+    close() {
+      this.$emit("update:engEvaDialogVisible", false);
     },
     checkImg(list) {
       if (!list.length) {
@@ -206,9 +221,90 @@ export default {
       this.type = i;
       this.$forceUpdate();
     },
+    getAiPj() {
+      const loading = this.$loading.service({
+        background: "rgba(255, 255, 255)",
+        target: document.querySelectorAll(".loadingText")[0],
+      });
+      let param = {
+        model: "gpt-3.5-turbo",
+        temperature: 0,
+        max_tokens: 2048,
+        top_p: 1,
+        frequency_penalty: 0,
+        presence_penalty: 0,
+        messages: [
+          {
+            role: "user",
+            content:
+              "你的任务是为文字内容进行批注,请依照以下步骤完成任务,并仅显示第二步完成的内容:1.校对并更正:" +
+              this.evaEngJson.studentJson.engText +
+              "2.通过文本批注的形式,即将错误的单词用删除线划去,并将正确内容补充在后面,将前一段文字修改为后一段文字,并以markdown的形式呈现。",
+          },
+        ],
+        uid: this.uid,
+        stream: false,
+      };
+      this.ajax.post("https://gpt.cocorobo.cn/chat", param).then(
+        (res) => {
+          if (
+            res.data.FunctionResponse &&
+            res.data.FunctionResponse.result &&
+            res.data.FunctionResponse.result == "无效请求,请重新发起对话"
+          ) {
+            this.$message.error("你的作文内容太长,无法使用Ai评价!");
+            return;
+          }
+          this.aiList.engText =
+            res.data.FunctionResponse.choices[0].message.content;
+          loading.close();
+        },
+        (err) => {
+          console.log(err);
+          loading.close();
+        }
+      );
+    },
+    addCode() {
+      let params = {
+        id: this.evaEngJson.message.id,
+        aic: this.aiList.engText,
+        tc: this.teacherList.engText,
+        t: this.type,
+      };
+      this.ajax
+        .get(this.$store.state.api + "addEngEva", params)
+        .then((res) => {
+          this.$message.success("评价成功");
+        })
+        .catch((err) => {
+          this.$message.error("网络不佳");
+          console.error(err);
+        });
+    },
   },
-  mounted() {
-    this.topHeight = document.querySelectorAll(".engUpTop")[0].offsetHeight;
+  mounted() {},
+  watch: {
+    engEvaDialogVisible: {
+      handler(newVal) {
+        if (newVal) {
+          this.aiList.engText = this.evaEngJson.message.aiCode;
+          this.teacherList.engText = this.evaEngJson.message.teacherCode;
+          this.$forceUpdate();
+          this.timer = setInterval(() => {
+            this.topHeight =
+              document.querySelectorAll(".engUpTop2")[0].offsetHeight ? document.querySelectorAll(".engUpTop2")[0].offsetHeight : 0 - 50;
+          }, 500);
+          // setTimeout(() => {
+          //   this.topHeight =
+          //     document.querySelectorAll(".engUpTop2")[0].offsetHeight;
+          // }, 500);
+        }else{
+          clearInterval(this.timer);
+        }
+      },
+      deep: true,
+    },
   },
 };
 </script>
@@ -239,14 +335,14 @@ export default {
   background: #fafafa;
 }
 
-.fullStyle>>>.el-dialog__body {
+.fullStyle >>> .el-dialog__body {
   height: calc(100% - 125px) !important;
   box-sizing: border-box;
   padding: 30px 0 !important;
   background: #fff !important;
 }
 
-.fullStyle>>>.el-dialog {
+.fullStyle >>> .el-dialog {
   width: 100% !important;
   max-width: 100% !important;
   height: 100% !important;
@@ -260,7 +356,7 @@ export default {
   margin: 0 auto !important;
 }
 
-.fullStyle>>>.el-dialog__footer{
+.fullStyle >>> .el-dialog__footer {
   background: #fff !important;
 }
 .engUpBox {
@@ -313,12 +409,13 @@ export default {
 
 .oldText {
   width: 100%;
-  height: 100%;
+  height: calc(100% - 35px);
+  overflow: auto;
+  margin: 10px 0;
   display: flex;
   flex-direction: column;
   flex-wrap: nowrap;
   align-content: center;
-  justify-content: center;
   align-items: center;
 }
 
@@ -334,11 +431,6 @@ export default {
   padding-bottom: 30px;
 }
 
-.oldDetail1 > div:last-child {
-  max-height: 200px;
-  overflow: auto;
-}
-
 .oldImg {
   width: 30px;
   height: 30px;
@@ -360,4 +452,66 @@ export default {
   border: 1px solid #bcc2cc;
   box-sizing: border-box;
 }
+
+/* table 样式 */
+.cont >>> table {
+  border-top: 1px solid #ccc;
+  border-left: 1px solid #ccc;
+}
+
+.cont >>> table td,
+.cont >>> table th {
+  border-bottom: 1px solid #ccc;
+  border-right: 1px solid #ccc;
+  /* padding: 20px 5px; */
+  padding: 5px 10px;
+  max-width: 0px;
+  height: 30px;
+  vertical-align: baseline;
+  box-sizing: border-box;
+}
+
+.cont >>> table th {
+  border-bottom: 2px solid #ccc;
+  text-align: center;
+}
+
+/* blockquote 样式 */
+.cont >>> blockquote {
+  display: block;
+  border-left: 8px solid #d0e5f2;
+  padding: 5px 10px;
+  margin: 10px 0;
+  line-height: 1.4;
+  font-size: 100%;
+  background-color: #f1f1f1;
+}
+
+/* code 样式 */
+.cont >>> code {
+  display: inline-block;
+  /* *display: inline; */
+  zoom: 1;
+  background-color: #f1f1f1;
+  border-radius: 3px;
+  padding: 3px 5px;
+  margin: 0 3px;
+}
+
+.cont >>> pre code {
+  display: block;
+}
+
+/* ul ol 样式 */
+.cont >>> ul,
+ol {
+  margin: 10px 0 10px 20px;
+}
+
+/* code 样式 */
+.cont {
+  /* -webkit-user-modify: read-write; */
+  overflow-wrap: break-word;
+  -webkit-line-break: after-white-space;
+}
 </style>

+ 64 - 2
src/components/components/onlineWrite.vue

@@ -5,8 +5,8 @@
       <div>{{ englishList.engTitle }}</div>
     </div>
     <div class="engText">
-      <div>作文题目:</div>
-      <div v-html="englishList.englishText"></div>
+      <div>作文内容:</div>
+      <div class="cont" v-html="englishList.englishText"></div>
     </div>
 
     <div
@@ -417,4 +417,66 @@ export default {
   top: -5px;
   right: -5px;
 }
+
+/* table 样式 */
+.cont >>> table {
+  border-top: 1px solid #ccc;
+  border-left: 1px solid #ccc;
+}
+
+.cont >>> table td,
+.cont >>> table th {
+  border-bottom: 1px solid #ccc;
+  border-right: 1px solid #ccc;
+  /* padding: 20px 5px; */
+  padding: 5px 10px;
+  max-width: 0px;
+  height: 30px;
+  vertical-align: baseline;
+  box-sizing: border-box;
+}
+
+.cont >>> table th {
+  border-bottom: 2px solid #ccc;
+  text-align: center;
+}
+
+/* blockquote 样式 */
+.cont >>> blockquote {
+  display: block;
+  border-left: 8px solid #d0e5f2;
+  padding: 5px 10px;
+  margin: 10px 0;
+  line-height: 1.4;
+  font-size: 100%;
+  background-color: #f1f1f1;
+}
+
+/* code 样式 */
+.cont >>> code {
+  display: inline-block;
+  /* *display: inline; */
+  zoom: 1;
+  background-color: #f1f1f1;
+  border-radius: 3px;
+  padding: 3px 5px;
+  margin: 0 3px;
+}
+
+.cont >>> pre code {
+  display: block;
+}
+
+/* ul ol 样式 */
+.cont >>> ul,
+ol {
+  margin: 10px 0 10px 20px;
+}
+
+/* code 样式 */
+.cont {
+  /* -webkit-user-modify: read-write; */
+  overflow-wrap: break-word;
+  -webkit-line-break: after-white-space;
+}
 </style>

+ 4 - 2
src/components/courseDetail.vue

@@ -110,8 +110,8 @@
                   ><span
                     style="margin: 0 5px; font-weight: 400; color: #b2b2b2"
                     v-if="!TnameCheck && Tname.length > 6"
-                    >更多....</span
-                  >
+                    >展开</span
+                  ><span style="margin: 0 5px; font-weight: 400; color: #b2b2b2" v-else-if="TnameCheck && Tname.length > 6">收起</span>
                 </div>
               </div>
               <!-- <div
@@ -1491,6 +1491,7 @@ export default {
       console.log(this.courseTypeJson.length);
       this.aStudentName = res.data[2];
       this.chapInfo = JSON.parse(this.courseDetail.chapters);
+      this.rw = 0
       for (var z = 0; z < this.chapInfo.length; z++) {
         this.rw += this.chapInfo[z].chapterInfo[0].taskJson.length;
       }
@@ -1599,6 +1600,7 @@ export default {
           console.log(this.courseTypeJson.length);
           this.aStudentName = res.data[2];
           this.chapInfo = JSON.parse(this.courseDetail.chapters);
+          this.rw = 0
           for (var z = 0; z < this.chapInfo.length; z++) {
             this.rw += this.chapInfo[z].chapterInfo[0].taskJson.length;
           }

+ 64 - 2
src/components/easy2/commpont/onlineWrite.vue

@@ -5,8 +5,8 @@
       <div>{{ englishList.engTitle }}</div>
     </div>
     <div class="engText">
-      <div>作文题目:</div>
-      <div v-html="englishList.englishText"></div>
+      <div>作文内容:</div>
+      <div class="cont" v-html="englishList.englishText"></div>
     </div>
 
     <div
@@ -417,4 +417,66 @@ export default {
   top: -5px;
   right: -5px;
 }
+
+/* table 样式 */
+.cont >>> table {
+  border-top: 1px solid #ccc;
+  border-left: 1px solid #ccc;
+}
+
+.cont >>> table td,
+.cont >>> table th {
+  border-bottom: 1px solid #ccc;
+  border-right: 1px solid #ccc;
+  /* padding: 20px 5px; */
+  padding: 5px 10px;
+  max-width: 0px;
+  height: 30px;
+  vertical-align: baseline;
+  box-sizing: border-box;
+}
+
+.cont >>> table th {
+  border-bottom: 2px solid #ccc;
+  text-align: center;
+}
+
+/* blockquote 样式 */
+.cont >>> blockquote {
+  display: block;
+  border-left: 8px solid #d0e5f2;
+  padding: 5px 10px;
+  margin: 10px 0;
+  line-height: 1.4;
+  font-size: 100%;
+  background-color: #f1f1f1;
+}
+
+/* code 样式 */
+.cont >>> code {
+  display: inline-block;
+  /* *display: inline; */
+  zoom: 1;
+  background-color: #f1f1f1;
+  border-radius: 3px;
+  padding: 3px 5px;
+  margin: 0 3px;
+}
+
+.cont >>> pre code {
+  display: block;
+}
+
+/* ul ol 样式 */
+.cont >>> ul,
+ol {
+  margin: 10px 0 10px 20px;
+}
+
+/* code 样式 */
+.cont {
+  /* -webkit-user-modify: read-write; */
+  overflow-wrap: break-word;
+  -webkit-line-break: after-white-space;
+}
 </style>

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

@@ -68,7 +68,7 @@
       <div class="pb_left" v-else-if="!(IsFollow && tType == 2)">
         <!-- <div class="courseTitle">{{ courseDetail.title }}</div> -->
         <div style="border-bottom: 1px solid #cad1dc; width: 100%">
-          <div class="courseTitle">
+          <div class="courseTitle" :style="{ margin: tcid && inviteCode && '10px auto 0px'}">
             <div
               style="
                 max-width: calc(100% - 40px);
@@ -99,7 +99,7 @@
           <div
             class="inviteBox"
             v-if="tcid && inviteCode"
-            style="padding: 0 0 15px 0"
+            style="padding: 0 0 8px 0"
           >
             <div>
               <span>随机码:{{ inviteCode }}</span>
@@ -720,12 +720,6 @@
                               <span v-if="vitem.text">{{ vitem.text }}-</span
                               >{{ vitem.name }}
                             </div>
-                            <div class="downIcon" @click="downloadFile2(vitem)">
-                              <img
-                                src="../../assets/icon/newIcon/down.png"
-                                alt
-                              />
-                            </div>
                             <div
                               class="downIcon"
                               @click="checkFileFull1(vitem.type, vitem)"
@@ -735,18 +729,18 @@
                                 alt
                               />
                             </div>
-                          </div>
-                          <div class="navListItem" v-if="vitem.type == 12">
-                            <div class="navText" @click="downloadFile2(vitem)">
-                              <span v-if="vitem.text">{{ vitem.text }}-</span
-                              >{{ vitem.name }}
-                            </div>
                             <div class="downIcon" @click="downloadFile2(vitem)">
                               <img
                                 src="../../assets/icon/newIcon/down.png"
                                 alt
                               />
                             </div>
+                          </div>
+                          <div class="navListItem" v-if="vitem.type == 12">
+                            <div class="navText" @click="downloadFile2(vitem)">
+                              <span v-if="vitem.text">{{ vitem.text }}-</span
+                              >{{ vitem.name }}
+                            </div>
                             <div
                               class="downIcon"
                               @click="checkFileFull1(vitem.type, vitem)"
@@ -756,6 +750,12 @@
                                 alt
                               />
                             </div>
+                            <div class="downIcon" @click="downloadFile2(vitem)">
+                              <img
+                                src="../../assets/icon/newIcon/down.png"
+                                alt
+                              />
+                            </div>
                           </div>
                           <div class="navListItem" v-if="vitem.type == 13">
                             <div
@@ -890,7 +890,7 @@
                   <div class="bzBox">
                     <div class="yCss"></div>
                     <div :ref="'bz' + toolIndex" :id="'gj' + toolIndex">
-                      步骤{{ toolIndex + 1 }}
+                      工具{{ toolIndex + 1 }}
                     </div>
                     <div
                       v-if="timeWorkList[toolIndex].length > 0"
@@ -1311,21 +1311,15 @@
                         </div>
                       </div>
                     </div>
-                    <div class="tooldetail" v-if="tool.toolDetail != ''">
+                    <div class="tooldetail" v-if="tool.toolDetail != ''" :class="{isUpdateToolDetailClass:toolDetailIndex == toolIndex}">
                       <!-- <div class="toolTitle">工具描述</div> -->
-                      <div
+                      <div style="height:100%;"
                         v-html="contentConvent(tool.toolDetail)"
                         v-if="toolDetailIndex != toolIndex"
-                        @click.stop="updateToolDetail(toolIndex)"
+                        @click.stop="updateToolDetail(toolIndex, 2)"
                       ></div>
-                      <div v-else @click.stop="">
-                        <el-input
-                          type="textarea"
-                          :rows="3"
-                          resize="none"
-                          v-model="updateToolDetailInner"
-                          placeholder="请输入任务描述"
-                        ></el-input>
+                      <div v-else @click.stop="" style="height:100%;">
+                        <textarea @change="() => { $forceUpdate() }" class="checkTextArea" rows="3" v-autoHeight="70" type="text" placeholder="请输入任务描述" v-model="updateToolDetailInner"></textarea>
                       </div>
                     </div>
                     <el-button
@@ -2309,8 +2303,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -2319,7 +2313,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -2619,7 +2613,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -2877,7 +2871,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -2911,7 +2905,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -3034,7 +3028,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3068,7 +3062,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -3190,7 +3184,7 @@
                         class="corOpen"
                         @click="contract(toolIndex)"
                         v-if="
-                          worksStudent[toolIndex].length > 6 &&
+                          worksStudent[toolIndex].length > 3 &&
                           isCloseList[toolIndex].isClose == 0
                         "
                       >
@@ -3223,7 +3217,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -3516,7 +3510,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3545,7 +3539,7 @@
                           v-for="(w, wIndex) in isCloseList[toolIndex]
                             .isClose == 0
                             ? worksStudent[toolIndex]
-                            : worksStudent[toolIndex].slice(0, 6)"
+                            : worksStudent[toolIndex].slice(0, 3)"
                           :key="wIndex"
                           class="isWorksName2"
                           @click="
@@ -3700,7 +3694,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3728,7 +3722,7 @@
                           v-for="(w, wIndex) in isCloseList[toolIndex]
                             .isClose == 0
                             ? worksStudent[toolIndex]
-                            : worksStudent[toolIndex].slice(0, 6)"
+                            : worksStudent[toolIndex].slice(0, 3)"
                           :key="wIndex"
                           class="isWorksName2"
                           @click="
@@ -3795,7 +3789,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3823,10 +3817,10 @@
                           v-for="(w, wIndex) in isCloseList[toolIndex]
                             .isClose == 0
                             ? worksStudent[toolIndex]
-                            : worksStudent[toolIndex].slice(0, 6)"
+                            : worksStudent[toolIndex].slice(0, 3)"
                           :key="wIndex"
                           class="isWorksName2"
-                          style="width: 150px;height: 50px;line-height: 50px;"
+                          style="width: 160px;height: 65px;line-height: 65px;"
                           @click="
                             openTools(
                               69,
@@ -3889,8 +3883,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -3899,7 +3893,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4059,7 +4053,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <div
@@ -4183,8 +4177,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -4193,7 +4187,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4356,7 +4350,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" @click="commentOther(w, toolIndex, wIndex)"-->
@@ -4463,8 +4457,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -4473,7 +4467,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4636,7 +4630,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" -->
@@ -4743,8 +4737,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -4753,7 +4747,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4916,7 +4910,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" -->
@@ -5022,8 +5016,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -5032,7 +5026,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5195,7 +5189,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" -->
@@ -5312,7 +5306,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5341,7 +5335,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -5417,7 +5411,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5452,7 +5446,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -5617,7 +5611,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5644,7 +5638,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         class="isWorksName2"
                         @click="openXz(w, toolIndex)"
@@ -5865,7 +5859,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5893,7 +5887,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         class="isWorksName2"
                         @click="openSen(w, toolIndex)"
@@ -5948,7 +5942,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5983,7 +5977,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -6175,7 +6169,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -6210,7 +6204,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -7519,7 +7513,7 @@
                 >
                   <div class="e_add_top">
                     <div class="e_add_title">
-                      <span>目标管理名称</span>
+                      <!-- <span>目标管理名称</span> -->
                       <span>{{ eTitle }}</span>
                       <img
                         src="../../assets/line.png"
@@ -7528,7 +7522,7 @@
                           width: 125px;
                           height: 20px;
                           bottom: -10px;
-                          left: 120px;
+                          left: 5px;
                         "
                       />
                       <!-- <el-input
@@ -7541,7 +7535,7 @@
                   <div class="e_add_content">
                     <div class="e_add_list_pbox">
                       <div class="e_add_list_pbox_title">
-                        <span class="type_title">切换模式</span>
+                        <!-- <span class="type_title">切换模式</span> -->
                         <div class="type_content">
                           <span
                             :class="{ active: typeMode == 1 }"
@@ -7718,13 +7712,13 @@
     </div>
     <div v-if="pzDialog == true" class="newDialogCss">
       <div class="pzTop2">
-        <!-- <div>批注</div>
+        <!-- <div>评论</div>
         <div @click="pzDialog = false">
           <img src="../../assets/close1.png" alt="" />
         </div> -->
         <div class="checkbox">
           <div class="check" style="font-size: 25px; position: unset">
-            评课笔记
+            评
           </div>
           <el-select v-model="pzStype" @change="selectPz" class="selectBox">
             <el-option label="时间降序" :value="1"></el-option>
@@ -7738,13 +7732,13 @@
         <div class="pzListBox" v-if="pzList && pzList.length">
           <div class="pzList" v-for="(pz, pzIndex) in pzList" :key="pzIndex">
             <div class="pzNavTop">
-              <div></div>
+              <div></div>
               <div>
                 {{
                   pz.username && pz.username.length > 5
                     ? pz.username.substring(0, 5) + "..."
                     : pz.username
-                }}的批注
+                }}的评论
               </div>
               <div
                 class="pzDelete"
@@ -7819,7 +7813,7 @@
         </div>
         <div class="addPzButton">
           <div class="addPz" @click="(addPzDialog = true), (pzType = 1)">
-            添加批注
+            添加评论
           </div>
           <!-- <div class="img1">
             <div @click="(addPzDialog = true), (pzType = 2)">
@@ -8417,7 +8411,7 @@
           <div class="teacherPzImg">
             <img src="../../assets/icon/teacherPz.png" alt="" />
           </div>
-          <div style="margin-left: 10px; height: 25px">教师批注</div>
+          <div style="margin-left: 10px; height: 25px">教师评论</div>
         </div>
         <div @click="addPzDialog = false">
           <img src="../../assets/close1.png" class="pzClose" alt="" />
@@ -11307,7 +11301,7 @@
             <div>{{ englishList1.engTitle }}</div>
           </div>
           <div class="engText">
-            <div>作文题目:</div>
+            <div>作文内容:</div>
             <div class="cont" v-html="englishList1.englishText" @click="checkImg(getImgList(englishList1.englishText))"></div>
           </div>
         </div>
@@ -11406,7 +11400,7 @@
         <el-button type="primary" @click="addCorrect">确 定</el-button>
       </span>
     </el-dialog>
-    <englishEva :evaEngJson="evaEngJson" :engEvaDialogVisible.sync="engEvaDialogVisible"></englishEva>
+    <englishEva :evaEngJson="evaEngJson" :engEvaDialogVisible.sync="engEvaDialogVisible" :uid="userid"></englishEva>
     <interVideo
       :dialogVisibleVideo.sync="dialogVisibleVideo"
       :videoJson="videoJson"
@@ -11551,9 +11545,9 @@ export default {
       engUpdateDialogVisible:false,
       engEvaDialogVisible: false,
       evaEngJson: {
-        username: "",
         teacherJson: {},
         studentJson: {},
+        message: {},
       },
       isNoUserid:false,
       engListLength:0,
@@ -11936,18 +11930,22 @@ export default {
           document.querySelector(".student_body").offsetTop;
       }, 500);
     },
-    updateToolDetail(i) {
-      this.toolDetailIndex = i;
-      if (!this.isUpdateToolDetail1) {
+    updateToolDetail(i, type) {
+      if (!this.isUpdateToolDetail1 && type == 2) {
+        this.toolDetailIndex = i
         this.isUpdateToolDetail1 = true;
-        this.updateToolDetailInner = JSON.parse(
-          JSON.stringify(
-            this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
-              this.taskCount
-            ].toolChoose[i].toolDetail
-          )
-        );
-      } else {
+        setTimeout(() => {
+          this.updateToolDetailInner = JSON.parse(
+            JSON.stringify(
+              this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
+                this.taskCount
+              ].toolChoose[i].toolDetail
+            )
+          );
+          document.querySelector(".checkTextArea").focus();
+        }, 0);
+      } else if((this.isUpdateToolDetail1 && type != 2)){
+        // this.toolDetailIndex = i;
         this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
           this.taskCount
         ].toolChoose[i].toolDetail = JSON.parse(
@@ -11970,6 +11968,7 @@ export default {
               type: "success",
             });
             this.toolDetailIndex = null;
+            
             this.updateToolDetailInner = "";
             this.getCourseDetail(2);
             this.$forceUpdate();
@@ -11977,6 +11976,46 @@ export default {
           .catch((err) => {
             console.error(err);
           });
+      } else if((this.isUpdateToolDetail1 && type == 2)){
+        this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
+          this.taskCount
+        ].toolChoose[this.toolDetailIndex].toolDetail = JSON.parse(
+          JSON.stringify(this.updateToolDetailInner)
+        );
+        let params = [
+          {
+            cid: this.id,
+            chapters: JSON.stringify(this.chapInfoList),
+            uid: this.userid,
+            unitIndex: this.courseType,
+          },
+        ];
+        this.ajax
+          .post(this.$store.state.api + "updateWorkNew4", params)
+          .then((res) => {
+            this.$message({
+              message: "修改成功",
+              type: "success",
+            });
+            
+            this.toolDetailIndex = i;
+            this.isUpdateToolDetail1 = true;
+            setTimeout(() => {
+              this.updateToolDetailInner = JSON.parse(
+                JSON.stringify(
+                  this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
+                    this.taskCount
+                  ].toolChoose[i].toolDetail
+                )
+              );
+              document.querySelector(".checkTextArea").focus();
+            }, 0);
+            this.getCourseDetail(2);
+            this.$forceUpdate();
+          })
+          .catch((err) => {
+            console.error(err);
+          });
       }
     },
     jumpGj(i, j, k, l) {
@@ -11999,9 +12038,10 @@ export default {
           a.scrollTop = a.scrollTop - 150;
         }, 0);
       }
+      this.navId = ""
       if (l) {
         this.courseType = i;
-        this.navId = l;
+        // this.navId = l;
         this.taskCount = j;
         this.selectPz();
         this.getHomeWork();
@@ -13591,8 +13631,8 @@ export default {
       this.ajax
         .get(this.$store.state.api + "selectEngWork", params)
         .then((res) => {
+          this.evaEngJson.message = res.data[0][0];
           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;
@@ -15411,6 +15451,13 @@ export default {
       //     window.scrollTo(0, a.offsetTop);
       //   }
       // }, 0);
+      for (var z = 0; z < this.navList.length; z++) {
+        for (var q = 0; q < this.navList[z].task.length; q++) {
+          for (var w = 0; w < this.navList[z].task[q].tool.length; w++) {
+            this.navList[z].task[q].tool[w].isTool = false;
+          }
+        }
+      }
       this.selectPz();
       this.getHomeWork();
       this.getCourseDetail(2);
@@ -16022,7 +16069,7 @@ export default {
     },
     addPz(type, content) {
       if (type == "1" && this.pzConText == "") {
-        this.$message.error("批注不能为空!");
+        this.$message.error("评论不能为空!");
         return;
       }
       let params = [
@@ -16090,7 +16137,7 @@ export default {
         });
     },
     deletePz(id) {
-      this.$confirm("确定删除此批注吗?", "提示", {
+      this.$confirm("确定删除此评论吗?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
@@ -18923,6 +18970,19 @@ export default {
         clearInterval(el.__vueSetInterval__);
       },
     },
+    autoHeight: {
+      update(el, binding) {
+        const { value } = binding
+        if (value && typeof value === 'number') {
+          el.style.height = `${value}px`
+        } else {
+          el.style.height = 'auto'
+        }
+      },
+      componentUpdated(el) {
+        el.style.height = `${el.scrollHeight + 5}px`
+      },
+    },
   },
   beforeDestroy() {
     window.onresize = null;
@@ -19292,13 +19352,15 @@ export default {
 .filebox .tooldetail {
   width: calc(100% - 280px);
   margin: 0px 12px;
-  padding: 12px 25px 0 13px;
+  padding: 12px;
   line-height: 30px;
   word-break: break-word;
   background: #ffffff;
   border-radius: 8px 8px 8px 8px;
   opacity: 1;
   border: 1px solid #cad1dc;
+  overflow:hidden;
+  box-sizing:border-box;
 }
 
 .file {
@@ -19552,7 +19614,7 @@ export default {
 
 .courseTitle {
   width: 85%;
-  margin: 10px auto 20px auto;
+  margin: 10px auto 26px auto;
   display: flex;
   flex-direction: row;
   align-items: center;
@@ -19571,8 +19633,8 @@ export default {
 
 .inviteBox {
   font-size: 14px;
-  margin-top: 5px;
-  color: #a6cbff;
+  /* margin-top: 5px; */
+  color: #00000099;
   text-align: center;
 }
 
@@ -21149,7 +21211,7 @@ export default {
 
 .type_content {
   font-size: 16px;
-  margin-left: 30px;
+  /* margin-left: 30px; */
 }
 
 .type_content span + span {
@@ -21602,12 +21664,14 @@ export default {
 }
 
 .right_box_xuan {
-  background: rgb(0 123 255);
-  color: #fff;
   border-radius: 5px;
   padding: 5px;
   margin-left: 10px;
-  min-width: 95px;
+  min-width: 85px;
+  background: #fff;
+  color: #0061ff;
+  border: 1px solid #0061ff;
+  font-size: 14px;
 }
 
 .pButton:hover {
@@ -22707,8 +22771,8 @@ ol {
 }
 
 .mlImg {
-  width: 45px !important;
-  min-width: 45px;
+  width: 40px !important;
+  min-width: 40px;
   cursor: pointer;
   transform: rotate(180deg);
 }
@@ -23262,12 +23326,13 @@ ol {
 
 .oldText{
   width: 100%;
-  height: 100%;
+  height: calc(100% - 35px);
+  overflow: auto;
+  margin: 10px 0;
   display: flex;
   flex-direction: column;
   flex-wrap: nowrap;
   align-content: center;
-  justify-content: center;
   align-items: center;
 }
 
@@ -23282,11 +23347,6 @@ ol {
   padding-bottom: 30px;
 }
 
-.oldDetail1>div:last-child{
-  max-height: 200px;
-  overflow: auto;
-}
-
 .oldImg{
   width:30px;
   height: 30px;
@@ -23313,4 +23373,22 @@ ol {
   max-height: 300px;
   overflow: auto;
 }
+
+.isUpdateToolDetailClass{
+ padding: 0 !important; 
+}
+
+.isUpdateToolDetailClass textarea{
+  padding:12px;
+  font-size: 16px;
+  min-height:100%;
+  width: 100%;
+  box-sizing:border-box;
+  outline: none;
+  border:none;
+  line-height: 30px;
+  resize: none;
+  font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "\5FAE\8F6F\96C5\9ED1", Arial, sans-serif;
+  color: #838383;
+}
 </style>

+ 64 - 2
src/components/easy3/commpont/onlineWrite.vue

@@ -5,8 +5,8 @@
       <div>{{ englishList.engTitle }}</div>
     </div>
     <div class="engText">
-      <div>作文题目:</div>
-      <div v-html="englishList.englishText"></div>
+      <div>作文内容:</div>
+      <div class="cont" v-html="englishList.englishText"></div>
     </div>
 
     <div
@@ -417,4 +417,66 @@ export default {
   top: -5px;
   right: -5px;
 }
+
+/* table 样式 */
+.cont >>> table {
+  border-top: 1px solid #ccc;
+  border-left: 1px solid #ccc;
+}
+
+.cont >>> table td,
+.cont >>> table th {
+  border-bottom: 1px solid #ccc;
+  border-right: 1px solid #ccc;
+  /* padding: 20px 5px; */
+  padding: 5px 10px;
+  max-width: 0px;
+  height: 30px;
+  vertical-align: baseline;
+  box-sizing: border-box;
+}
+
+.cont >>> table th {
+  border-bottom: 2px solid #ccc;
+  text-align: center;
+}
+
+/* blockquote 样式 */
+.cont >>> blockquote {
+  display: block;
+  border-left: 8px solid #d0e5f2;
+  padding: 5px 10px;
+  margin: 10px 0;
+  line-height: 1.4;
+  font-size: 100%;
+  background-color: #f1f1f1;
+}
+
+/* code 样式 */
+.cont >>> code {
+  display: inline-block;
+  /* *display: inline; */
+  zoom: 1;
+  background-color: #f1f1f1;
+  border-radius: 3px;
+  padding: 3px 5px;
+  margin: 0 3px;
+}
+
+.cont >>> pre code {
+  display: block;
+}
+
+/* ul ol 样式 */
+.cont >>> ul,
+ol {
+  margin: 10px 0 10px 20px;
+}
+
+/* code 样式 */
+.cont {
+  /* -webkit-user-modify: read-write; */
+  overflow-wrap: break-word;
+  -webkit-line-break: after-white-space;
+}
 </style>

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

@@ -68,7 +68,7 @@
       <div class="pb_left" v-else-if="!(IsFollow && tType == 2)">
         <!-- <div class="courseTitle">{{ courseDetail.title }}</div> -->
         <div style="border-bottom: 1px solid #cad1dc; width: 100%">
-          <div class="courseTitle">
+          <div class="courseTitle" :style="{ margin: tcid && inviteCode && '10px auto 0px'}">
             <div
               style="
                 max-width: calc(100% - 40px);
@@ -99,7 +99,7 @@
           <div
             class="inviteBox"
             v-if="tcid && inviteCode"
-            style="padding: 0 0 15px 0"
+            style="padding: 0 0 8px 0"
           >
             <div>
               <span>随机码:{{ inviteCode }}</span>
@@ -710,12 +710,6 @@
                               <span v-if="vitem.text">{{ vitem.text }}-</span
                               >{{ vitem.name }}
                             </div>
-                            <div class="downIcon" @click="downloadFile2(vitem)">
-                              <img
-                                src="../../assets/icon/newIcon/down.png"
-                                alt
-                              />
-                            </div>
                             <div
                               class="downIcon"
                               @click="checkFileFull1(vitem.type, vitem)"
@@ -725,18 +719,18 @@
                                 alt
                               />
                             </div>
-                          </div>
-                          <div class="navListItem" v-if="vitem.type == 12">
-                            <div class="navText" @click="downloadFile2(vitem)">
-                              <span v-if="vitem.text">{{ vitem.text }}-</span
-                              >{{ vitem.name }}
-                            </div>
                             <div class="downIcon" @click="downloadFile2(vitem)">
                               <img
                                 src="../../assets/icon/newIcon/down.png"
                                 alt
                               />
                             </div>
+                          </div>
+                          <div class="navListItem" v-if="vitem.type == 12">
+                            <div class="navText" @click="downloadFile2(vitem)">
+                              <span v-if="vitem.text">{{ vitem.text }}-</span
+                              >{{ vitem.name }}
+                            </div>
                             <div
                               class="downIcon"
                               @click="checkFileFull1(vitem.type, vitem)"
@@ -746,6 +740,12 @@
                                 alt
                               />
                             </div>
+                            <div class="downIcon" @click="downloadFile2(vitem)">
+                              <img
+                                src="../../assets/icon/newIcon/down.png"
+                                alt
+                              />
+                            </div>
                           </div>
                           <div class="navListItem" v-if="vitem.type == 13">
                             <div
@@ -877,7 +877,7 @@
                   <div class="bzBox">
                     <div class="yCss"></div>
                     <div :ref="'bz' + toolIndex" :id="'gj' + toolIndex">
-                      步骤{{ toolIndex + 1 }}
+                      工具{{ toolIndex + 1 }}
                     </div>
                     <div
                       v-if="timeWorkList[toolIndex].length > 0"
@@ -1298,21 +1298,15 @@
                         </div>
                       </div>
                     </div>
-                    <div class="tooldetail" v-if="tool.toolDetail != ''">
+                    <div class="tooldetail" v-if="tool.toolDetail != ''" :class="{isUpdateToolDetailClass:toolDetailIndex == toolIndex}">
                       <!-- <div class="toolTitle">工具描述</div> -->
-                      <div
+                      <div style="height:100%;"
                         v-html="contentConvent(tool.toolDetail)"
                         v-if="toolDetailIndex != toolIndex"
-                        @click.stop="updateToolDetail(toolIndex)"
+                        @click.stop="updateToolDetail(toolIndex, 2)"
                       ></div>
-                      <div v-else @click.stop="">
-                        <el-input
-                          type="textarea"
-                          :rows="3"
-                          resize="none"
-                          v-model="updateToolDetailInner"
-                          placeholder="请输入任务描述"
-                        ></el-input>
+                      <div v-else @click.stop="" style="height:100%;">
+                        <textarea @change="() => { $forceUpdate() }" class="checkTextArea" rows="3" v-autoHeight="70" type="text" placeholder="请输入任务描述" v-model="updateToolDetailInner"></textarea>
                       </div>
                     </div>
                     <el-button
@@ -2296,8 +2290,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -2306,7 +2300,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -2606,7 +2600,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -2864,7 +2858,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -2898,7 +2892,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -3021,7 +3015,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3055,7 +3049,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -3177,7 +3171,7 @@
                         class="corOpen"
                         @click="contract(toolIndex)"
                         v-if="
-                          worksStudent[toolIndex].length > 6 &&
+                          worksStudent[toolIndex].length > 3 &&
                           isCloseList[toolIndex].isClose == 0
                         "
                       >
@@ -3210,7 +3204,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -3503,7 +3497,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3532,7 +3526,7 @@
                           v-for="(w, wIndex) in isCloseList[toolIndex]
                             .isClose == 0
                             ? worksStudent[toolIndex]
-                            : worksStudent[toolIndex].slice(0, 6)"
+                            : worksStudent[toolIndex].slice(0, 3)"
                           :key="wIndex"
                           class="isWorksName2"
                           @click="
@@ -3687,7 +3681,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3715,7 +3709,7 @@
                           v-for="(w, wIndex) in isCloseList[toolIndex]
                             .isClose == 0
                             ? worksStudent[toolIndex]
-                            : worksStudent[toolIndex].slice(0, 6)"
+                            : worksStudent[toolIndex].slice(0, 3)"
                           :key="wIndex"
                           class="isWorksName2"
                           @click="
@@ -3782,7 +3776,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3810,10 +3804,10 @@
                           v-for="(w, wIndex) in isCloseList[toolIndex]
                             .isClose == 0
                             ? worksStudent[toolIndex]
-                            : worksStudent[toolIndex].slice(0, 6)"
+                            : worksStudent[toolIndex].slice(0, 3)"
                           :key="wIndex"
                           class="isWorksName2"
-                          style="width: 150px;height: 50px;line-height: 50px;"
+                          style="width: 160px;height: 65px;line-height: 65px;"
                           @click="
                             openTools(
                               69,
@@ -3876,8 +3870,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -3886,7 +3880,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4046,7 +4040,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <div
@@ -4170,8 +4164,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -4180,7 +4174,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4343,7 +4337,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" @click="commentOther(w, toolIndex, wIndex)"-->
@@ -4450,8 +4444,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -4460,7 +4454,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4623,7 +4617,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" -->
@@ -4730,8 +4724,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -4740,7 +4734,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4903,7 +4897,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" -->
@@ -5009,8 +5003,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -5019,7 +5013,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5182,7 +5176,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" -->
@@ -5299,7 +5293,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5328,7 +5322,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -5404,7 +5398,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5439,7 +5433,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -5604,7 +5598,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5631,7 +5625,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         class="isWorksName2"
                         @click="openXz(w, toolIndex)"
@@ -5852,7 +5846,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5880,7 +5874,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         class="isWorksName2"
                         @click="openSen(w, toolIndex)"
@@ -5935,7 +5929,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5970,7 +5964,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -6162,7 +6156,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -6197,7 +6191,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -7506,7 +7500,7 @@
                 >
                   <div class="e_add_top">
                     <div class="e_add_title">
-                      <span>目标管理名称</span>
+                      <!-- <span>目标管理名称</span> -->
                       <span>{{ eTitle }}</span>
                       <img
                         src="../../assets/line.png"
@@ -7515,7 +7509,7 @@
                           width: 125px;
                           height: 20px;
                           bottom: -10px;
-                          left: 120px;
+                          left: 5px;
                         "
                       />
                       <!-- <el-input
@@ -7528,7 +7522,7 @@
                   <div class="e_add_content">
                     <div class="e_add_list_pbox">
                       <div class="e_add_list_pbox_title">
-                        <span class="type_title">切换模式</span>
+                        <!-- <span class="type_title">切换模式</span> -->
                         <div class="type_content">
                           <span
                             :class="{ active: typeMode == 1 }"
@@ -7705,13 +7699,13 @@
     </div>
     <div v-if="pzDialog == true" class="newDialogCss">
       <div class="pzTop2">
-        <!-- <div>批注</div>
+        <!-- <div>评论</div>
         <div @click="pzDialog = false">
           <img src="../../assets/close1.png" alt="" />
         </div> -->
         <div class="checkbox">
           <div class="check" style="font-size: 25px; position: unset">
-            评课笔记
+            评
           </div>
           <el-select v-model="pzStype" @change="selectPz" class="selectBox">
             <el-option label="时间降序" :value="1"></el-option>
@@ -7725,13 +7719,13 @@
         <div class="pzListBox" v-if="pzList && pzList.length">
           <div class="pzList" v-for="(pz, pzIndex) in pzList" :key="pzIndex">
             <div class="pzNavTop">
-              <div></div>
+              <div></div>
               <div>
                 {{
                   pz.username && pz.username.length > 5
                     ? pz.username.substring(0, 5) + "..."
                     : pz.username
-                }}的批注
+                }}的评论
               </div>
               <div
                 class="pzDelete"
@@ -7806,7 +7800,7 @@
         </div>
         <div class="addPzButton">
           <div class="addPz" @click="(addPzDialog = true), (pzType = 1)">
-            添加批注
+            添加评论
           </div>
           <!-- <div class="img1">
             <div @click="(addPzDialog = true), (pzType = 2)">
@@ -8404,7 +8398,7 @@
           <div class="teacherPzImg">
             <img src="../../assets/icon/teacherPz.png" alt="" />
           </div>
-          <div style="margin-left: 10px; height: 25px">教师批注</div>
+          <div style="margin-left: 10px; height: 25px">教师评论</div>
         </div>
         <div @click="addPzDialog = false">
           <img src="../../assets/close1.png" class="pzClose" alt="" />
@@ -11294,7 +11288,7 @@
             <div>{{ englishList1.engTitle }}</div>
           </div>
           <div class="engText">
-            <div>作文题目:</div>
+            <div>作文内容:</div>
             <div class="cont" v-html="englishList1.englishText" @click="checkImg(getImgList(englishList1.englishText))"></div>
           </div>
         </div>
@@ -11393,7 +11387,7 @@
         <el-button type="primary" @click="addCorrect">确 定</el-button>
       </span>
     </el-dialog>
-    <englishEva :evaEngJson="evaEngJson" :engEvaDialogVisible.sync="engEvaDialogVisible"></englishEva>
+    <englishEva :evaEngJson="evaEngJson" :engEvaDialogVisible.sync="engEvaDialogVisible" :uid="userid"></englishEva>
     <interVideo
       :dialogVisibleVideo.sync="dialogVisibleVideo"
       :videoJson="videoJson"
@@ -11723,9 +11717,9 @@ export default {
       engUpdateDialogVisible:false,
       engEvaDialogVisible: false,
       evaEngJson: {
-        username: "",
         teacherJson: {},
         studentJson: {},
+        message: {},
       },
       isNoUserid:false,
       engListLength:0,
@@ -11924,18 +11918,22 @@ export default {
           document.querySelector(".student_body").offsetTop;
       }, 500);
     },
-    updateToolDetail(i) {
-      this.toolDetailIndex = i;
-      if (!this.isUpdateToolDetail1) {
+    updateToolDetail(i, type) {
+      if (!this.isUpdateToolDetail1 && type == 2) {
+        this.toolDetailIndex = i
         this.isUpdateToolDetail1 = true;
-        this.updateToolDetailInner = JSON.parse(
-          JSON.stringify(
-            this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
-              this.taskCount
-            ].toolChoose[i].toolDetail
-          )
-        );
-      } else {
+        setTimeout(() => {
+          this.updateToolDetailInner = JSON.parse(
+            JSON.stringify(
+              this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
+                this.taskCount
+              ].toolChoose[i].toolDetail
+            )
+          );
+          document.querySelector(".checkTextArea").focus();
+        }, 0);
+      } else if((this.isUpdateToolDetail1 && type != 2)){
+        // this.toolDetailIndex = i;
         this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
           this.taskCount
         ].toolChoose[i].toolDetail = JSON.parse(
@@ -11958,6 +11956,7 @@ export default {
               type: "success",
             });
             this.toolDetailIndex = null;
+            
             this.updateToolDetailInner = "";
             this.getCourseDetail(2);
             this.$forceUpdate();
@@ -11965,6 +11964,46 @@ export default {
           .catch((err) => {
             console.error(err);
           });
+      } else if((this.isUpdateToolDetail1 && type == 2)){
+        this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
+          this.taskCount
+        ].toolChoose[this.toolDetailIndex].toolDetail = JSON.parse(
+          JSON.stringify(this.updateToolDetailInner)
+        );
+        let params = [
+          {
+            cid: this.id,
+            chapters: JSON.stringify(this.chapInfoList),
+            uid: this.userid,
+            unitIndex: this.courseType,
+          },
+        ];
+        this.ajax
+          .post(this.$store.state.api + "updateWorkNew4", params)
+          .then((res) => {
+            this.$message({
+              message: "修改成功",
+              type: "success",
+            });
+            
+            this.toolDetailIndex = i;
+            this.isUpdateToolDetail1 = true;
+            setTimeout(() => {
+              this.updateToolDetailInner = JSON.parse(
+                JSON.stringify(
+                  this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
+                    this.taskCount
+                  ].toolChoose[i].toolDetail
+                )
+              );
+              document.querySelector(".checkTextArea").focus();
+            }, 0);
+            this.getCourseDetail(2);
+            this.$forceUpdate();
+          })
+          .catch((err) => {
+            console.error(err);
+          });
       }
     },
     jumpGj(i, j, k, l) {
@@ -11987,9 +12026,10 @@ export default {
           a.scrollTop = a.scrollTop - 150;
         }, 0);
       }
+      this.navId = ""
       if (l) {
         this.courseType = i;
-        this.navId = l;
+        // this.navId = l;
         this.taskCount = j;
         this.selectPz();
         this.getHomeWork();
@@ -13580,8 +13620,8 @@ export default {
       this.ajax
         .get(this.$store.state.api + "selectEngWork", params)
         .then((res) => {
+          this.evaEngJson.message = res.data[0][0];
           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;
@@ -15400,6 +15440,13 @@ export default {
       //     window.scrollTo(0, a.offsetTop);
       //   }
       // }, 0);
+      for (var z = 0; z < this.navList.length; z++) {
+        for (var q = 0; q < this.navList[z].task.length; q++) {
+          for (var w = 0; w < this.navList[z].task[q].tool.length; w++) {
+            this.navList[z].task[q].tool[w].isTool = false;
+          }
+        }
+      }
       this.selectPz();
       this.getHomeWork();
       this.getCourseDetail(2);
@@ -16014,7 +16061,7 @@ export default {
     },
     addPz(type, content) {
       if (type == "1" && this.pzConText == "") {
-        this.$message.error("批注不能为空!");
+        this.$message.error("评论不能为空!");
         return;
       }
       let params = [
@@ -16082,7 +16129,7 @@ export default {
         });
     },
     deletePz(id) {
-      this.$confirm("确定删除此批注吗?", "提示", {
+      this.$confirm("确定删除此评论吗?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
@@ -18912,6 +18959,19 @@ export default {
         clearInterval(el.__vueSetInterval__);
       },
     },
+    autoHeight: {
+      update(el, binding) {
+        const { value } = binding
+        if (value && typeof value === 'number') {
+          el.style.height = `${value}px`
+        } else {
+          el.style.height = 'auto'
+        }
+      },
+      componentUpdated(el) {
+        el.style.height = `${el.scrollHeight + 5}px`
+      },
+    },
   },
   beforeDestroy() {
     window.onresize = null;
@@ -19281,13 +19341,15 @@ export default {
 .filebox .tooldetail {
   width: calc(100% - 280px);
   margin: 0px 12px;
-  padding: 12px 25px 0 13px;
+  padding: 12px;
   line-height: 30px;
   word-break: break-word;
   background: #ffffff;
   border-radius: 8px 8px 8px 8px;
   opacity: 1;
   border: 1px solid #cad1dc;
+  overflow:hidden;
+  box-sizing:border-box;
 }
 
 .file {
@@ -19541,7 +19603,7 @@ export default {
 
 .courseTitle {
   width: 85%;
-  margin: 10px auto 20px auto;
+  margin: 10px auto 26px auto;
   display: flex;
   flex-direction: row;
   align-items: center;
@@ -19560,8 +19622,8 @@ export default {
 
 .inviteBox {
   font-size: 14px;
-  margin-top: 5px;
-  color: #a6cbff;
+  /* margin-top: 5px; */
+  color: #00000099;
   text-align: center;
 }
 
@@ -21138,7 +21200,7 @@ export default {
 
 .type_content {
   font-size: 16px;
-  margin-left: 30px;
+  /* margin-left: 30px; */
 }
 
 .type_content span + span {
@@ -21591,12 +21653,14 @@ export default {
 }
 
 .right_box_xuan {
-  background: rgb(0 123 255);
-  color: #fff;
   border-radius: 5px;
   padding: 5px;
   margin-left: 10px;
-  min-width: 95px;
+  min-width: 85px;
+  background: #fff;
+  color: #0061ff;
+  border: 1px solid #0061ff;
+  font-size: 14px;
 }
 
 .pButton:hover {
@@ -22696,8 +22760,8 @@ ol {
 }
 
 .mlImg {
-  width: 45px !important;
-  min-width: 45px;
+  width: 40px !important;
+  min-width: 40px;
   cursor: pointer;
   transform: rotate(180deg);
 }
@@ -23251,12 +23315,13 @@ ol {
 
 .oldText{
   width: 100%;
-  height: 100%;
+  height: calc(100% - 35px);
+  overflow: auto;
+  margin: 10px 0;
   display: flex;
   flex-direction: column;
   flex-wrap: nowrap;
   align-content: center;
-  justify-content: center;
   align-items: center;
 }
 
@@ -23271,11 +23336,6 @@ ol {
   padding-bottom: 30px;
 }
 
-.oldDetail1>div:last-child{
-  max-height: 200px;
-  overflow: auto;
-}
-
 .oldImg{
   width:30px;
   height: 30px;
@@ -23302,4 +23362,22 @@ ol {
   max-height: 300px;
   overflow: auto;
 }
+
+.isUpdateToolDetailClass{
+ padding: 0 !important; 
+}
+
+.isUpdateToolDetailClass textarea{
+  padding:12px;
+  font-size: 16px;
+  min-height:100%;
+  width: 100%;
+  box-sizing:border-box;
+  outline: none;
+  border:none;
+  line-height: 30px;
+  resize: none;
+  font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "\5FAE\8F6F\96C5\9ED1", Arial, sans-serif;
+  color: #838383;
+}
 </style>

+ 208 - 123
src/components/studyStudent.vue

@@ -39,7 +39,7 @@
       <div class="pb_left" v-else-if="!(IsFollow && tType == 2)">
         <!-- <div class="courseTitle">{{ courseDetail.title }}</div> -->
         <div style="border-bottom: 1px solid #cad1dc; width: 100%">
-          <div class="courseTitle">
+          <div class="courseTitle" :style="{ margin: tcid && inviteCode && '10px auto 0px'}">
             <div
               style="
                 max-width: calc(100% - 40px);
@@ -70,7 +70,7 @@
           <div
             class="inviteBox"
             v-if="tcid && inviteCode"
-            style="padding: 0 0 15px 0"
+            style="padding: 0 0 8px 0"
           >
             <div>
               <span>随机码:{{ inviteCode }}</span>
@@ -86,7 +86,9 @@
             <div
               class="stageBoxCss"
               @click="get(stageIndex)"
-              :class="{ stageBoxIsCss: item.isOpen }"
+              :class="{ 
+                // stageBoxIsCss: stageIndex == courseType,
+               }"
             >
               <div class="stageItemTitle" :class="{ stageNav: item.isOpen }">
                 <div>阶段{{ stageIndex + 1 }}</div>
@@ -100,10 +102,10 @@
                   </div>
                 </el-tooltip>
               </div>
-              <div class="closeTri" v-if="item.isOpen">
+              <!-- <div class="closeTri" v-if="stageIndex == courseType" :style="{transform:item.isOpen ? 'rotate(0deg)' : 'rotate(-90deg)'}">
                 <img src="../assets/icon/newIcons/downC.png" alt />
-              </div>
-              <div class="closeTri" v-else>
+              </div> -->
+              <div class="closeTri" :style="{transform:item.isOpen ? 'rotate(90deg)' : 'rotate(0deg)'}">
                 <img src="../assets/icon/newIcons/right.png" alt />
               </div>
             </div>
@@ -723,9 +725,6 @@
                               <span v-if="vitem.text">{{ vitem.text }}-</span
                               >{{ vitem.name }}
                             </div>
-                            <div class="downIcon" @click="downloadFile2(vitem)">
-                              <img src="../assets/icon/newIcon/down.png" alt />
-                            </div>
                             <div
                               class="downIcon"
                               @click="checkFileFull1(vitem.type, vitem)"
@@ -735,15 +734,15 @@
                                 alt
                               />
                             </div>
+                            <div class="downIcon" @click="downloadFile2(vitem)">
+                              <img src="../assets/icon/newIcon/down.png" alt />
+                            </div>
                           </div>
                           <div class="navListItem" v-if="vitem.type == 12">
                             <div class="navText" @click="downloadFile2(vitem)">
                               <span v-if="vitem.text">{{ vitem.text }}-</span
                               >{{ vitem.name }}
                             </div>
-                            <div class="downIcon" @click="downloadFile2(vitem)">
-                              <img src="../assets/icon/newIcon/down.png" alt />
-                            </div>
                             <div
                               class="downIcon"
                               @click="checkFileFull1(vitem.type, vitem)"
@@ -753,6 +752,9 @@
                                 alt
                               />
                             </div>
+                            <div class="downIcon" @click="downloadFile2(vitem)">
+                              <img src="../assets/icon/newIcon/down.png" alt />
+                            </div>
                           </div>
                           <div class="navListItem" v-if="vitem.type == 13">
                             <div
@@ -884,7 +886,7 @@
                   <div class="bzBox">
                     <div class="yCss"></div>
                     <div :ref="'bz' + toolIndex" :id="'gj' + toolIndex">
-                      步骤{{ toolIndex + 1 }}
+                      工具{{ toolIndex + 1 }}
                     </div>
                     <div
                       v-if="timeWorkList[toolIndex].length > 0"
@@ -1305,21 +1307,15 @@
                         </div>
                       </div>
                     </div>
-                    <div class="tooldetail" v-if="tool.toolDetail != ''">
+                    <div class="tooldetail" v-if="tool.toolDetail != ''" :class="{isUpdateToolDetailClass:toolDetailIndex == toolIndex}">
                       <!-- <div class="toolTitle">工具描述</div> -->
-                      <div
+                      <div style="height:100%;"
                         v-html="contentConvent(tool.toolDetail)"
                         v-if="toolDetailIndex != toolIndex"
-                        @click.stop="updateToolDetail(toolIndex)"
+                        @click.stop="updateToolDetail(toolIndex, 2)"
                       ></div>
-                      <div v-else @click.stop="">
-                        <el-input
-                          type="textarea"
-                          :rows="3"
-                          resize="none"
-                          v-model="updateToolDetailInner"
-                          placeholder="请输入任务描述"
-                        ></el-input>
+                      <div v-else @click.stop="" style="height:100%;">
+                        <textarea @change="() => { $forceUpdate() }" class="checkTextArea" rows="3" v-autoHeight="70" type="text" placeholder="请输入任务描述" v-model="updateToolDetailInner"></textarea>
                       </div>
                     </div>
                     <el-button
@@ -2303,8 +2299,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -2313,7 +2309,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -2613,7 +2609,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -2871,7 +2867,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -2905,7 +2901,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -3028,7 +3024,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3062,7 +3058,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -3184,7 +3180,7 @@
                         class="corOpen"
                         @click="contract(toolIndex)"
                         v-if="
-                          worksStudent[toolIndex].length > 6 &&
+                          worksStudent[toolIndex].length > 3 &&
                           isCloseList[toolIndex].isClose == 0
                         "
                       >
@@ -3217,7 +3213,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -3510,7 +3506,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3539,7 +3535,7 @@
                           v-for="(w, wIndex) in isCloseList[toolIndex]
                             .isClose == 0
                             ? worksStudent[toolIndex]
-                            : worksStudent[toolIndex].slice(0, 6)"
+                            : worksStudent[toolIndex].slice(0, 3)"
                           :key="wIndex"
                           class="isWorksName2"
                           @click="
@@ -3694,7 +3690,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3722,7 +3718,7 @@
                           v-for="(w, wIndex) in isCloseList[toolIndex]
                             .isClose == 0
                             ? worksStudent[toolIndex]
-                            : worksStudent[toolIndex].slice(0, 6)"
+                            : worksStudent[toolIndex].slice(0, 3)"
                           :key="wIndex"
                           class="isWorksName2"
                           @click="
@@ -3789,7 +3785,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -3817,10 +3813,10 @@
                           v-for="(w, wIndex) in isCloseList[toolIndex]
                             .isClose == 0
                             ? worksStudent[toolIndex]
-                            : worksStudent[toolIndex].slice(0, 6)"
+                            : worksStudent[toolIndex].slice(0, 3)"
                           :key="wIndex"
                           class="isWorksName2"
-                          style="width: 150px;height: 50px;line-height: 50px;"
+                          style="width: 160px;height: 65px;line-height: 65px;"
                           @click="
                             openTools(
                               69,
@@ -3834,7 +3830,6 @@
                         >
                           {{ w.sName }}
                           <img
-                            v-show="false"
                             class="deleteImg1"
                             src="../assets/evaEnglish.png"
                             @click.stop="openEnglishEva(w.wid,toolIndex)"
@@ -3883,8 +3878,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                       (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -3893,7 +3888,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4053,7 +4048,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <div
@@ -4177,8 +4172,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -4187,7 +4182,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4350,7 +4345,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" @click="commentOther(w, toolIndex, wIndex)"-->
@@ -4457,8 +4452,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -4467,7 +4462,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4630,7 +4625,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" -->
@@ -4737,8 +4732,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -4747,7 +4742,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -4910,7 +4905,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" -->
@@ -5016,8 +5011,8 @@
                     <div
                       class="zuoyeYulan"
                       v-if="
-                        worksStudent.length &&
-                        worksStudent[toolIndex].length > 0
+                        (worksStudent.length &&
+                        worksStudent[toolIndex].length > 0) || (courseGroup.group && courseGroup.group.length)
                       "
                     >
                       <div class="worksTop">
@@ -5026,7 +5021,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5189,7 +5184,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                       >
                         <!-- @click="previewImg(w.works)" -->
@@ -5306,7 +5301,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5335,7 +5330,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -5411,7 +5406,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5446,7 +5441,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -5611,7 +5606,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5638,7 +5633,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         class="isWorksName2"
                         @click="openXz(w, toolIndex)"
@@ -5859,7 +5854,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5887,7 +5882,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         class="isWorksName2"
                         @click="openSen(w, toolIndex)"
@@ -5942,7 +5937,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -5977,7 +5972,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -6169,7 +6164,7 @@
                           class="corOpen"
                           @click="contract(toolIndex)"
                           v-if="
-                            worksStudent[toolIndex].length > 6 &&
+                            worksStudent[toolIndex].length > 3 &&
                             isCloseList[toolIndex].isClose == 0
                           "
                         >
@@ -6204,7 +6199,7 @@
                         v-for="(w, wIndex) in isCloseList[toolIndex].isClose ==
                         0
                           ? worksStudent[toolIndex]
-                          : worksStudent[toolIndex].slice(0, 6)"
+                          : worksStudent[toolIndex].slice(0, 3)"
                         :key="wIndex"
                         :class="w.type == 1 ? 'isTypeOne' : ''"
                       >
@@ -7513,7 +7508,7 @@
                 >
                   <div class="e_add_top">
                     <div class="e_add_title">
-                      <span>目标管理名称</span>
+                      <!-- <span>目标管理名称</span> -->
                       <span>{{ eTitle }}</span>
                       <img
                         src="../assets/line.png"
@@ -7522,7 +7517,7 @@
                           width: 125px;
                           height: 20px;
                           bottom: -10px;
-                          left: 120px;
+                          left: 5px;
                         "
                       />
                       <!-- <el-input
@@ -7535,7 +7530,7 @@
                   <div class="e_add_content">
                     <div class="e_add_list_pbox">
                       <div class="e_add_list_pbox_title">
-                        <span class="type_title">切换模式</span>
+                        <!-- <span class="type_title">切换模式</span> -->
                         <div class="type_content">
                           <span
                             :class="{ active: typeMode == 1 }"
@@ -7712,13 +7707,13 @@
     </div>
     <div v-if="pzDialog == true" class="newDialogCss">
       <div class="pzTop2">
-        <!-- <div>批注</div>
+        <!-- <div>评论</div>
         <div @click="pzDialog = false">
           <img src="../assets/close1.png" alt="" />
         </div> -->
         <div class="checkbox">
           <div class="check" style="font-size: 25px; position: unset">
-            评课笔记
+            评
           </div>
           <el-select v-model="pzStype" @change="selectPz" class="selectBox">
             <el-option label="时间降序" :value="1"></el-option>
@@ -7732,13 +7727,13 @@
         <div class="pzListBox" v-if="pzList && pzList.length">
           <div class="pzList" v-for="(pz, pzIndex) in pzList" :key="pzIndex">
             <div class="pzNavTop">
-              <div></div>
+              <div></div>
               <div>
                 {{
                   pz.username && pz.username.length > 5
                     ? pz.username.substring(0, 5) + "..."
                     : pz.username
-                }}的批注
+                }}的评论
               </div>
               <div
                 class="pzDelete"
@@ -7813,7 +7808,7 @@
         </div>
         <div class="addPzButton">
           <div class="addPz" @click="(addPzDialog = true), (pzType = 1)">
-            添加批注
+            添加评论
           </div>
           <!-- <div class="img1">
             <div @click="(addPzDialog = true), (pzType = 2)">
@@ -8387,7 +8382,7 @@
           <div class="teacherPzImg">
             <img src="../assets/icon/teacherPz.png" alt="" />
           </div>
-          <div style="margin-left: 10px; height: 25px">教师批注</div>
+          <div style="margin-left: 10px; height: 25px">教师评论</div>
         </div>
         <div @click="addPzDialog = false">
           <img src="../assets/close1.png" class="pzClose" alt="" />
@@ -11277,7 +11272,7 @@
             <div>{{ englishList1.engTitle }}</div>
           </div>
           <div class="engText">
-            <div>作文题目:</div>
+            <div>作文内容:</div>
             <div class="cont" v-html="englishList1.englishText" @click="checkImg(getImgList(englishList1.englishText))"></div>
           </div>
         </div>
@@ -11376,7 +11371,7 @@
         <el-button type="primary" @click="addCorrect">确 定</el-button>
       </span>
     </el-dialog>
-    <englishEva :evaEngJson="evaEngJson" :engEvaDialogVisible.sync="engEvaDialogVisible"></englishEva>
+    <englishEva :evaEngJson="evaEngJson" :engEvaDialogVisible.sync="engEvaDialogVisible" :uid="userid"></englishEva>
     <interVideo
       :dialogVisibleVideo.sync="dialogVisibleVideo"
       :videoJson="videoJson"
@@ -11521,9 +11516,9 @@ export default {
       engUpdateDialogVisible: false,
       engEvaDialogVisible: false,
       evaEngJson: {
-        username: "",
         teacherJson: {},
         studentJson: {},
+        message: {},
       },
       isNoUserid:false,
       engListLength:0,
@@ -11904,18 +11899,22 @@ export default {
           document.querySelector(".student_body").offsetTop;
       }, 500);
     },
-    updateToolDetail(i) {
-      this.toolDetailIndex = i;
-      if (!this.isUpdateToolDetail1) {
+    updateToolDetail(i, type) {
+      if (!this.isUpdateToolDetail1 && type == 2) {
+        this.toolDetailIndex = i
         this.isUpdateToolDetail1 = true;
-        this.updateToolDetailInner = JSON.parse(
-          JSON.stringify(
-            this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
-              this.taskCount
-            ].toolChoose[i].toolDetail
-          )
-        );
-      } else {
+        setTimeout(() => {
+          this.updateToolDetailInner = JSON.parse(
+            JSON.stringify(
+              this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
+                this.taskCount
+              ].toolChoose[i].toolDetail
+            )
+          );
+          document.querySelector(".checkTextArea").focus();
+        }, 0);
+      } else if((this.isUpdateToolDetail1 && type != 2)){
+        // this.toolDetailIndex = i;
         this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
           this.taskCount
         ].toolChoose[i].toolDetail = JSON.parse(
@@ -11938,6 +11937,7 @@ export default {
               type: "success",
             });
             this.toolDetailIndex = null;
+            
             this.updateToolDetailInner = "";
             this.getCourseDetail(2);
             this.$forceUpdate();
@@ -11945,6 +11945,46 @@ export default {
           .catch((err) => {
             console.error(err);
           });
+      } else if((this.isUpdateToolDetail1 && type == 2)){
+        this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
+          this.taskCount
+        ].toolChoose[this.toolDetailIndex].toolDetail = JSON.parse(
+          JSON.stringify(this.updateToolDetailInner)
+        );
+        let params = [
+          {
+            cid: this.id,
+            chapters: JSON.stringify(this.chapInfoList),
+            uid: this.userid,
+            unitIndex: this.courseType,
+          },
+        ];
+        this.ajax
+          .post(this.$store.state.api + "updateWorkNew4", params)
+          .then((res) => {
+            this.$message({
+              message: "修改成功",
+              type: "success",
+            });
+            
+            this.toolDetailIndex = i;
+            this.isUpdateToolDetail1 = true;
+            setTimeout(() => {
+              this.updateToolDetailInner = JSON.parse(
+                JSON.stringify(
+                  this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
+                    this.taskCount
+                  ].toolChoose[i].toolDetail
+                )
+              );
+              document.querySelector(".checkTextArea").focus();
+            }, 0);
+            this.getCourseDetail(2);
+            this.$forceUpdate();
+          })
+          .catch((err) => {
+            console.error(err);
+          });
       }
     },
     jumpGj(i, j, k, l) {
@@ -11959,7 +11999,7 @@ export default {
       this.navList[i].task[j].tool[k].isTool =
         !this.navList[i].task[j].tool[k].isTool;
       var a = document.scrollingElement;
-
+      this.navId = ""
       let target = document.querySelector(`#gj${k}`);
       if (target) {
         target.scrollIntoView(true);
@@ -11969,7 +12009,7 @@ export default {
       }
       if (l) {
         this.courseType = i;
-        this.navId = l;
+        // this.navId = l;
         this.taskCount = j;
         this.selectPz();
         this.getHomeWork();
@@ -13559,8 +13599,8 @@ export default {
       this.ajax
         .get(this.$store.state.api + "selectEngWork", params)
         .then((res) => {
+          this.evaEngJson.message = res.data[0][0];
           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;
@@ -15300,7 +15340,7 @@ export default {
       this.getCourseDetail(2);
       this.$forceUpdate();
     },
-    openTask(s, n, i) {
+    openTask(s, n, i,ctype) {
       if (this.IsFollow && this.tType == 2) {
         this.$message.error("已经开启跟随模式,请认真跟堂听讲");
         return;
@@ -15340,15 +15380,19 @@ export default {
           }
         }
       }
-      if (this.navList[s].task[n].isOpen == true) {
+      if (this.navList[s].task[n].isOpen == true && ctype != 2) {
         this.navList[s].task[n].isOpen = !this.navList[s].task[n].isOpen;
         return;
       }
       this.courseType = s;
       this.navId = i;
       this.taskCount = n;
-      this.navList[this.courseType].task[this.taskCount].isOpen =
+      if(ctype == 2){
+        this.navList[s].task[n].isOpen = true
+      }else{
+        this.navList[this.courseType].task[this.taskCount].isOpen =
         !this.navList[this.courseType].task[this.taskCount].isOpen;
+      }
       if (this.IsLookOpen) {
         this.chapInfoList[this.courseType].chapterInfo[0].taskJson[
           this.taskCount
@@ -15379,6 +15423,13 @@ export default {
       //     window.scrollTo(0, a.offsetTop);
       //   }
       // }, 0);
+      for (var z = 0; z < this.navList.length; z++) {
+        for (var q = 0; q < this.navList[z].task.length; q++) {
+          for (var w = 0; w < this.navList[z].task[q].tool.length; w++) {
+            this.navList[z].task[q].tool[w].isTool = false;
+          }
+        }
+      }
       this.selectPz();
       this.getHomeWork();
       this.getCourseDetail(2);
@@ -15393,9 +15444,11 @@ export default {
       //   this.navList[k].isOpen = false;
       // }
       // this.navList[i].isOpen = true;
+      let a = this.navList[i].isOpen
       this.navList[i].isOpen = !this.navList[i].isOpen;
+      this.$forceUpdate()
       if (this.navList[i].isOpen) {
-        this.openTask(i, 0, i + "-0");
+        this.openTask(i, 0, (i + "-0"),2);
       }
     },
     addQuestion() {
@@ -15990,7 +16043,7 @@ export default {
     },
     addPz(type, content) {
       if (type == "1" && this.pzConText == "") {
-        this.$message.error("批注不能为空!");
+        this.$message.error("评论不能为空!");
         return;
       }
       let params = [
@@ -16058,7 +16111,7 @@ export default {
         });
     },
     deletePz(id) {
-      this.$confirm("确定删除此批注吗?", "提示", {
+      this.$confirm("确定删除此评论吗?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
@@ -18887,6 +18940,19 @@ export default {
         clearInterval(el.__vueSetInterval__);
       },
     },
+    autoHeight: {
+      update(el, binding) {
+        const { value } = binding
+        if (value && typeof value === 'number') {
+          el.style.height = `${value}px`
+        } else {
+          el.style.height = 'auto'
+        }
+      },
+      componentUpdated(el) {
+        el.style.height = `${el.scrollHeight}px`
+      },
+    },
   },
   beforeDestroy() {
     window.onresize = null;
@@ -19253,13 +19319,15 @@ export default {
 .filebox .tooldetail {
   width: calc(100% - 280px);
   margin: 0px 12px;
-  padding: 12px 25px 0 13px;
+  padding: 12px;
   line-height: 30px;
   word-break: break-word;
   background: #ffffff;
   border-radius: 8px 8px 8px 8px;
   opacity: 1;
   border: 1px solid #cad1dc;
+  overflow:hidden;
+  box-sizing:border-box;
 }
 
 .file {
@@ -19513,7 +19581,7 @@ export default {
 
 .courseTitle {
   width: 85%;
-  margin: 10px auto 20px auto;
+  margin: 10px auto 26px auto;
   display: flex;
   flex-direction: row;
   align-items: center;
@@ -19532,8 +19600,8 @@ export default {
 
 .inviteBox {
   font-size: 14px;
-  margin-top: 5px;
-  color: #a6cbff;
+  /* margin-top: 5px; */
+  color: #00000099;
   text-align: center;
 }
 
@@ -21110,7 +21178,7 @@ export default {
 
 .type_content {
   font-size: 16px;
-  margin-left: 30px;
+  /* margin-left: 30px; */
 }
 
 .type_content span + span {
@@ -21563,12 +21631,14 @@ export default {
 }
 
 .right_box_xuan {
-  background: rgb(0 123 255);
-  color: #fff;
   border-radius: 5px;
   padding: 5px;
   margin-left: 10px;
-  min-width: 95px;
+  min-width: 85px;
+  background: #fff;
+  color: #0061ff;
+  border: 1px solid #0061ff;
+  font-size: 14px;
 }
 
 .pButton:hover {
@@ -22668,8 +22738,8 @@ ol {
 }
 
 .mlImg {
-  width: 45px !important;
-  min-width: 45px;
+  width: 40px !important;
+  min-width: 40px;
   cursor: pointer;
   transform: rotate(180deg);
 }
@@ -22791,6 +22861,7 @@ ol {
   min-width: 15px;
   width: 15px;
   height: 15px;
+  transition: all .5s;
 }
 
 .closeTri1 {
@@ -23246,12 +23317,13 @@ ol {
 
 .oldText{
   width: 100%;
-  height: 100%;
+  height: calc(100% - 35px);
+  overflow: auto;
+  margin: 10px 0;
   display: flex;
   flex-direction: column;
   flex-wrap: nowrap;
   align-content: center;
-  justify-content: center;
   align-items: center;
 }
 
@@ -23266,11 +23338,6 @@ ol {
   padding-bottom: 30px;
 }
 
-.oldDetail1>div:last-child{
-  max-height: 200px;
-  overflow: auto;
-}
-
 .oldImg{
   width:30px;
   height: 30px;
@@ -23297,4 +23364,22 @@ ol {
   max-height: 300px;
   overflow: auto;
 }
+
+.isUpdateToolDetailClass{
+ padding: 0 !important; 
+}
+
+.isUpdateToolDetailClass textarea{
+  padding:12px;
+  font-size: 16px;
+  min-height:100%;
+  width: 100%;
+  box-sizing:border-box;
+  outline: none;
+  border:none;
+  line-height: 30px;
+  resize: none;
+  font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "\5FAE\8F6F\96C5\9ED1", Arial, sans-serif;
+  color: #838383;
+}
 </style>

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