lsc преди 1 година
родител
ревизия
9268b43109

+ 1 - 1
dist/index.html

@@ -27,7 +27,7 @@
     html,
     body{
       font-family: '黑体';
-    }</style><link href=./static/css/app.7abebab11ed1dee687dd09c63f6dc604.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.264e3d6e7c524117db80.js></script><script type=text/javascript src=./static/js/app.ba7d6680f576337472b1.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.fb73f7e9e83e8bd78f18de631ec261a2.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.264e3d6e7c524117db80.js></script><script type=text/javascript src=./static/js/app.3c3b1402510d1312f06c.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/css/app.7abebab11ed1dee687dd09c63f6dc604.css.map


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/css/app.fb73f7e9e83e8bd78f18de631ec261a2.css


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/css/app.fb73f7e9e83e8bd78f18de631ec261a2.css.map


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/app.3c3b1402510d1312f06c.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/app.3c3b1402510d1312f06c.js.map


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map


+ 158 - 30
src/components/classRoomHelper/component/countdown.vue

@@ -7,7 +7,7 @@
             <div
               class="c_t_i_card"
               v-if="!showCountDownInput1"
-              @click.stop="changeShowInput1(true)"
+              @click="changeShowInput1(true)"
             >
               <div>
                 <span class="c_t_i_btnTop" v-if="!isCountdown"
@@ -54,7 +54,7 @@
             <div
               class="c_t_i_card"
               v-if="!showCountDownInput2"
-              @click.stop="changeShowInput2(true)"
+              @click="changeShowInput2(true)"
             >
               <div>
                 <span class="c_t_i_btnTop" v-if="!isCountdown"
@@ -125,14 +125,14 @@
             <span>快捷设置</span>
           </div>
           <div class="c_ct_box">
-            <span @click.stop="setCountdownTime(30)">30秒</span>
-            <span @click.stop="setCountdownTime(60)">1分钟</span>
-            <span @click.stop="setCountdownTime(120)">2分钟</span>
-            <span @click.stop="setCountdownTime(180)">3分钟</span>
-            <span @click.stop="setCountdownTime(300)">5分钟</span>
-            <span @click.stop="setCountdownTime(360)">6分钟</span>
-            <span @click.stop="setCountdownTime(480)">8分钟</span>
-            <span @click.stop="setCountdownTime(600)">10分钟</span>
+            <span @click="setCountdownTime(30)">30秒</span>
+            <span @click="setCountdownTime(60)">1分钟</span>
+            <span @click="setCountdownTime(120)">2分钟</span>
+            <span @click="setCountdownTime(180)">3分钟</span>
+            <span @click="setCountdownTime(300)">5分钟</span>
+            <span @click="setCountdownTime(360)">6分钟</span>
+            <span @click="setCountdownTime(480)">8分钟</span>
+            <span @click="setCountdownTime(600)">10分钟</span>
           </div>
         </div>
 
@@ -141,12 +141,12 @@
             <span>行为标签</span>
             <div class="c_t_btnArea">
               <span
-                @click.stop="changeBehaviorTagType(0)"
+                @click="changeBehaviorTagType(0)"
                 :class="[behaviorTagType == 0 ? 'c_t_ba_active' : '']"
                 >常用</span
               >
               <span
-                @click.stop="changeBehaviorTagType(1)"
+                @click="changeBehaviorTagType(1)"
                 :class="[behaviorTagType == 1 ? 'c_t_ba_active' : '']"
                 >更多</span
               >
@@ -180,7 +180,7 @@
               v-if="behaviorTagType == 1"
               :class="[choiceBehavior.includes(item) ? 'c_bt_b_active' : '']"
               v-for="(item, index) in behaviorTagMore"
-              @click.stop="choiceBehaviorTag(item)"
+              @click="choiceBehaviorTag(item)"
               :key="behaviorTagType + '-' + index"
               >{{ item }}</span
             >
@@ -188,7 +188,7 @@
               v-if="behaviorTagType == 0"
               :class="[choiceBehavior.includes(item) ? 'c_bt_b_active' : '']"
               v-for="(item, index) in behaviorTagCommon"
-              @click.stop="choiceBehaviorTag(item)"
+              @click="choiceBehaviorTag(item)"
               :key="behaviorTagType + '-' + index"
               >{{ item }}</span
             >
@@ -196,7 +196,40 @@
         </div>
 
         <div class="c_btnArea">
-          <span @click.stop="music()">
+          <span>
+            <div class="c_b_musicListArea">
+              <el-tooltip
+                effect="light"
+								placement="top"
+                :content="showSourceList ? '隐藏音乐列表' : '显示音乐列表'"
+              >
+                <span @click.stop="()=>showSourceList = !showSourceList">
+                  <svg
+                    :style="
+                      `transform: rotate(${showSourceList ? '0deg' : '180deg'})`
+                    "
+                    t="1728975847364"
+                    class="icon"
+                    viewBox="0 0 1024 1024"
+                    version="1.1"
+                    xmlns="http://www.w3.org/2000/svg"
+                    p-id="4250"
+                    width="200"
+                    height="200"
+                  >
+                    <path
+                      d="M814.795 320.301c9.571 0 12.392 6.018 6.264 13.372l-297.761 357.392c-6.128 7.355-16.154 7.355-22.281 0l-297.761-357.392c-6.128-7.355-3.309-13.372 6.264-13.372l605.275 0z"
+                      p-id="4251"
+                    ></path>
+                  </svg>
+                </span>
+              </el-tooltip>
+              <div v-if="showSourceList" v-click-outside="()=>showSourceList = false">
+								<div :class="[sourceUrl==item.url?'c_b_musicListArea_active':'']" v-for="(item,index) in sourceUrlList" :key="index" @click="changeSourceUrl(item.url)">
+									<span>{{item.name}}</span>
+								</div>
+							</div>
+            </div>
             <el-tooltip
               class="item"
               effect="light"
@@ -208,6 +241,7 @@
                 height="24"
                 viewBox="0 0 24 24"
                 fill="none"
+                @click="music()"
                 xmlns="http://www.w3.org/2000/svg"
               >
                 <path
@@ -242,7 +276,7 @@
               ]"
               v-if="type == 0"
               style=""
-              @click.stop="countdownTimeFn()"
+              @click="countdownTimeFn()"
             >
               <svg
                 v-if="!isCountdown"
@@ -280,7 +314,7 @@
             <div
               :class="[!isKeepTime ? 'c_ba_startType' : 'c_ba_startType2']"
               v-if="type == 1"
-              @click.stop="keepTimeFn()"
+              @click="keepTimeFn()"
             >
               <svg
                 v-if="!isKeepTime"
@@ -313,10 +347,9 @@
                   p-id="4267"
                 ></path>
               </svg>
-              <!-- <svg v-else t="1721117616634" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13970" width="64" height="64"><path d="M128 128m53.333333 0l661.333334 0q53.333333 0 53.333333 53.333333l0 661.333334q0 53.333333-53.333333 53.333333l-661.333334 0q-53.333333 0-53.333333-53.333333l0-661.333334q0-53.333333 53.333333-53.333333Z" p-id="13971"></path></svg> -->
             </div>
           </div>
-          <span @click.stop="reset()">
+          <span @click="reset()">
             <el-tooltip
               class="item"
               effect="light"
@@ -349,7 +382,7 @@
         </div>
 
         <div class="ActivityMemo">
-          <span @click.stop="changeShowType(1)">
+          <span @click="changeShowType(1)">
             教学活动备忘
             <svg
               width="16"
@@ -376,7 +409,7 @@
       </div>
 
       <div class="c_changeType">
-        <div class="c_ct_btn" @click.stop="changeType(0)">
+        <div class="c_ct_btn" @click="changeType(0)">
           <div>倒计时</div>
           <span v-if="type == 0"></span>
           <svg
@@ -411,7 +444,7 @@
 
         <span></span>
 
-        <div class="c_ct_btn" @click.stop="changeType(1)">
+        <div class="c_ct_btn" @click="changeType(1)">
           <div>计时器</div>
           <span v-if="type == 1"></span>
           <svg
@@ -465,7 +498,7 @@
 
     <div class="c_behavior" v-if="showType == 1">
       <div class="behaviorBack">
-        <span @click.stop="changeShowType(0)">
+        <span @click="changeShowType(0)">
           <svg
             width="16"
             height="16"
@@ -493,19 +526,19 @@
           <el-button
             :type="showBtnType == 0 ? 'primary' : ''"
             size="small"
-            @click.stop="showBtnType = 0"
+            @click="showBtnType = 0"
             >所有事件</el-button
           >
           <el-button
             :type="showBtnType == 1 ? 'primary' : ''"
             size="small"
-            @click.stop="showBtnType = 1"
+            @click="showBtnType = 1"
             >计时事件</el-button
           >
         </el-button-group>
 
         <span
-          @click.stop="derive(showMemorandumList)"
+          @click="derive(showMemorandumList)"
           v-loading="exportLoading"
         >
           <el-tooltip class="item" effect="dark" content="导出" placement="top">
@@ -621,6 +654,34 @@ export default {
         "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E5%80%92%E8%AE%A1%E6%97%B6%E9%9F%B3%E4%B9%901721355956636.mp3",
       endSourceUrl:
         "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E5%80%92%E6%95%B010%E7%A7%92%E5%8F%A0%E5%8A%A0%E9%9F%B3%E6%95%881721638403882.MP3",
+      sourceUrlList: [
+        {
+          name: "音乐1",
+          url:
+            "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E5%80%92%E8%AE%A1%E6%97%B6%E9%9F%B3%E4%B9%901721355956636.mp3"
+        },
+        {
+          name: "音乐2",
+          url:
+            "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/default%2F%E9%9F%B3%E4%B9%9021728975233277.mp3"
+        },
+        {
+          name: "音乐3",
+          url:
+            "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/default%2F%E9%9F%B3%E4%B9%9031728975268412.mp3"
+        },
+        {
+          name: "音乐4",
+          url:
+            "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/default%2F%E9%9F%B3%E4%B9%9041728975432067.mp3"
+        },
+        {
+          name: "音乐5",
+          url:
+            "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/default%2F%E9%9F%B3%E4%B9%9051728975447857.mp3"
+        }
+      ],
+      showSourceList: false,
       sourceActive: false,
       type: 0, //0:倒计时   1:计时器
       isCountdown: false,
@@ -956,13 +1017,13 @@ export default {
         //设置每一列的宽度
         { wch: 25 },
         { wch: 50 },
-        { wch: 25 },
+        { wch: 25 }
       ];
       XLSX.utils.book_append_sheet(workbook, ws, "sheet1"); //把sheet添加到workbook里,第三个参数是sheet名
       XLSX.writeFile(workbook, "事件.xlsx");
 
       this.exportLoading = false;
-			this.$message.success("导出成功")
+      this.$message.success("导出成功");
     },
     lookWork(data) {
       const taskTypes = {
@@ -1634,10 +1695,22 @@ ${_textData}
 
       return {
         h: hours != 0 ? formatTimeUnit(hours) : null,
-        m: minutes != 0 ? formatTimeUnit(minutes) : hours > 0 ? formatTimeUnit(minutes):null,
+        m:
+          minutes != 0
+            ? formatTimeUnit(minutes)
+            : hours > 0
+            ? formatTimeUnit(minutes)
+            : null,
         s: formatTimeUnit(seconds)
       };
-    }
+    },
+		changeSourceUrl(url){
+			if(this.isCountdown || this.isKeepTime)return this.$message.error("请先停止计时再设置");
+			if(this.sourceUrl == url)return this.showSourceList = false;
+			this.sourceUrl = url;
+
+			this.showSourceList = false;
+		}
   }
 };
 </script>
@@ -1978,6 +2051,61 @@ ${_textData}
   /* border-radius: 20px; */
   cursor: pointer;
   transition: 0.2s;
+  position: relative;
+}
+
+.c_b_musicListArea {
+  position: absolute;
+  left: -20px;
+  top: 10px;
+  width: 20px;
+  height: 20px;
+}
+
+.c_b_musicListArea > span {
+  width: 20px;
+  height: 20px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  cursor: pointer;
+}
+
+.c_b_musicListArea > div {
+  width: 150px;
+  height: 200px;
+  position: absolute;
+  bottom: 40px;
+  left: -20px;
+  cursor: default;
+  border-radius: 5px;
+	box-sizing: border-box;
+	padding: 5px;
+	overflow: auto;
+	background-color: #fff;
+	box-shadow: 0px 0px 5px 2px #1d398314;
+}
+
+.c_b_musicListArea>div>div{
+	width: 100%;
+	height: 30px;
+	border-radius: 5px;
+	display: flex;
+	align-items: center;
+	box-sizing: border-box;
+	padding-left: 10px;
+	cursor: pointer;
+	transition: 0.2s;
+	margin-bottom: 5px;
+}
+
+.c_b_musicListArea>div>div:hover{
+	background-color: #f0f2f5;
+}
+
+.c_b_musicListArea_active{
+	background-color: #409eff !important;
+	color: #fff;
 }
 
 .c_btnArea > span > svg {

+ 21 - 5
src/components/classRoomHelper/component/levitatedSphere.vue

@@ -52,6 +52,13 @@
       ref="iiframe2"
       v-show="false"
     ></iframe>
+
+		<mini-audio
+      v-show="false"
+      ref="audioRef"
+      :loop="false"
+      :audio-source="wozaiAudioUrl"
+    ></mini-audio>
   </div>
 </template>
 
@@ -73,7 +80,9 @@ export default {
       chatLoading: false,
       talkLoading: false,
       source: null,
-      talkTextList: []
+      talkTextList: [],
+			wozaiAudioUrl:"https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/default%2F%E4%B8%AD%E6%96%87%E7%89%88%E6%88%91%E5%9C%A81728961654002.wav",
+			wozaiAudioEnglishUrl:"https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/default%2F%E8%8B%B1%E6%96%87%E7%89%88what%27sup1728961667376.wav",
     };
   },
   computed: {
@@ -123,8 +132,10 @@ export default {
         "languageOptions"
       ).selectedIndex = 2; //普通话
       iiframe.contentWindow.testdoContinuousPronunciationAssessment();
-			this.talkTextList.push("我在");
-			this.talkText();
+			//this.talkTextList.push("我在");
+			//this.talkText();
+			// console.log("打开")
+			this.$refs.audioRef.play();
 			// return;
       // this.$message.success("已开启语音助手,请说“可可同学”来唤醒");
       this.$parent.changeRecordType(1);
@@ -136,7 +147,6 @@ export default {
 			this.chatLoading = false;
 			this.talkLoading == false;
       this.show = true;
-      console.log("已唤醒");
       iiframe.contentWindow.onRecognizedResult = e => {
         let _msg = converter(e.privText);
         // let _msg2 = e.privText;
@@ -219,12 +229,18 @@ export default {
                 }, 3000);
                 // }, 2000);
               } else {
+								let msgList = [];
+
+								msgList.push({
+									type:"text",
+									text: `请在150字以内回答以下问题:\n${this.userText}`
+								})
                 this.chatLoading = true;
                 const _uuid = uuidv4();
                 let params = {
                   assistant_id: "f8e1ebb2-2e0d-11ef-8bf4-12e77c4cb76b",
                   userId: this.userId,
-                  message: this.userText,
+                  message: msgList,
                   session_name: _uuid + "-qgt",
                   uid: _uuid,
                   file_ids: [],

+ 54 - 44
src/components/classRoomHelper/component/searchArea.vue

@@ -2023,58 +2023,64 @@ export default {
         return;
       }
       let history = [];
-      this.nowChatList.forEach(i => {
-        if (i.content == "wanSearch") {
-          // history.push({
-          // 	role:"assistant",
-          // 	content: JSON.stringify(i.aiContent)
-          // })
-          return;
-        } else if (i.content == "getImage") {
-          // return history.push({
-          //   role: "user",
-          //   content: i.content
-          // });
-        } else if (i.content == "addAsk") {
-        }
-        if (i.content) {
-          history.push({
-            type: "text",
-            text: i.content
-          });
-        }
-        if (i.aiContent) {
-          history.push({
-            type: "text",
-            text: i.aiContent
-          });
-        }
-      });
+      // this.nowChatList.forEach(i => {
+      //   if (i.content == "wanSearch") {
+      //     // history.push({
+      //     // 	role:"assistant",
+      //     // 	content: JSON.stringify(i.aiContent)
+      //     // })
+      //     return;
+      //   } else if (i.content == "getImage") {
+      //     // return history.push({
+      //     //   role: "user",
+      //     //   content: i.content
+      //     // });
+      //   } else if (i.content == "addAsk") {
+      //   }
+      //   if (i.content) {
+      //     history.push({
+      //       type: "text",
+      //       text: i.content
+      //     });
+      //   }
+      //   if (i.aiContent) {
+      //     history.push({
+      //       type: "text",
+      //       text: i.aiContent
+      //     });
+      //   }
+      // });
       // history.pop();
-      if (_msg) {
-        history.push({ type: "text", text: _msg });
-      } else {
-        history.push({ type: "text", text: _text });
-      }
-
-			history = history.map(i=>({
-				type:i.type,
-				text:`Language: ${this.getLang()}
-				Language: ${this.getLang()}
-				Language: ${this.getLang()}
-			${i.text}`
-			}))
+      // if (_msg) {
+      //   history.push({ type: "text", text: _msg });
+      // } else {
+      //   history.push({ type: "text", text: _text });
+      // }
 
+			// history = history.map(i=>({
+			// 	type:i.type,
+			// 	text:`Language: ${this.getLang()}
+			// 	Language: ${this.getLang()}
+			// 	Language: ${this.getLang()}
+			// ${i.text}`
+			// }))
+			let _msg2 = `
+			Language: ${this.getLang()}
+			Language: ${this.getLang()}
+			Language: ${this.getLang()}
+			${_text}
+			`
       let params = {
         assistant_id: this.choseRoleItem
           ? this.choseRoleItem.assistant_id
-          : "f8e1ebb2-2e0d-11ef-8bf4-12e77c4cb76b",
+          : "b19f1a1a-7586-11ef-8ce0-12e77c4cb76b",
         userId: this.userid,
-        message: history,
+        message: _msg2,
         session_name: `${this.courseId}-studyStudent-md`,
         uid: _uuid,
         file_ids: this.fileId,
-        model: "gpt-4o-2024-08-06"
+        // model: "gpt-4o-2024-08-06"
+				model:"gpt-4o-2024-08-06"
       };
       // let params = {
       //   model: "gpt-3.5-turbo",
@@ -3733,7 +3739,7 @@ ${_wordData}
   padding: 10px;
   background-color: #f6f8ff;
   border-radius: 2px 8px 8px 8px;
-  white-space: pre-line;
+  /* white-space: pre-line; */
   word-break: break-all;
 }
 
@@ -3741,6 +3747,10 @@ ${_wordData}
   margin-left: 20px;
 }
 
+.s_t_c_a_r_content >>> li{
+	margin: 1.5em 0;
+}
+
 /* .s_t_c_a_r_content>>> ol{
 	margin-left: 20px;
 } */

Файловите разлики са ограничени, защото са твърде много
+ 4 - 0
src/components/classRoomHelper/component/taskArea.vue


+ 79 - 52
src/components/easy2/commpont/markDialog.vue

@@ -8,7 +8,7 @@
           <div class="scoreTit">
             <div>任务得分</div>
             <div>
-              <span style="color: rgba(54, 129, 252, 1);margin-right: 3px;">{{
+              <span style="color: #4380F8;margin-right: 3px;">{{
                 totalScore ? totalScore : 0
               }}</span
               >分
@@ -38,7 +38,7 @@
                       {{ e.detail }}
                     </div>
                   </el-tooltip>
-                  <el-rate @change="submit" v-model="e.cog"></el-rate>
+                  <el-rate :disabled="tType == 2" disabled-void-color @change="submit" v-model="e.cog"></el-rate>
                 </div>
               </div>
               <div
@@ -63,7 +63,7 @@
                       {{ e.detail }}
                     </div>
                   </el-tooltip>
-                  <el-rate @change="submit" v-model="e.cog"></el-rate>
+                  <el-rate :disabled="tType == 2" disabled-void-color @change="submit" v-model="e.cog"></el-rate>
                 </div>
               </div>
             </div>
@@ -86,24 +86,25 @@
           <div class="AreaCss">
             <el-input
               type="textarea"
-              placeholder="您可在此输入评语"
+              :placeholder="tType == 1 ?'您可在此输入评语':'暂无评语'"
               v-model="textarea"
               @blur="submit"
+              :disabled="tType == 2"
             >
             </el-input>
-            <!-- <div
+            <div
               v-if="
                 (currentUid.type == 1 ||
                   currentUid.type == 10 ||
                   currentUid.type == 13 ||
                   isMarkCom == 1) &&
-                  !isMarkSco
+                  !isMarkSco && tType == 1
               "
               class="anewC"
               @click="anewEva"
             >
               重新生成
-            </div> -->
+            </div>
           </div>
 
           <div
@@ -111,7 +112,7 @@
           >
             <div></div>
 
-            <div style="display: flex;">
+            <div style="display: flex;" v-if="tType == 1">
               <div
                 class="ScrBtn"
                 @click="reset"
@@ -160,6 +161,7 @@
 
         <!-- 提交列表 -->
         <div
+          v-if="tType == 1"
           style="flex: 1;display: flex;flex-direction: column;overflow: auto;"
         >
           <div class="workListTit" @click="workListTitBtn">
@@ -237,7 +239,7 @@
               <div class="Timer">{{ currentUid.time }}</div>
             </div>
           </div>
-          <div class="cutStuBtn">
+          <div v-if="tType == 1" class="cutStuBtn">
             <div>
               <span v-if="current == 0" style="cursor: pointer;color:#ccc"
                 >上一个</span
@@ -460,7 +462,9 @@ export default {
     "markScoreworksStudent",
     "languageSetting",
     "taskDetail",
-    "tool"
+    "tool",
+    "tType",
+    "sIsOpen"
   ],
   data() {
     return {
@@ -590,12 +594,11 @@ export default {
     this.selectSWorksData();
   },
   methods: {
+    setZero(index){
+      console.log(index);
+      console.log('scoTitList',this.scoTitList);
+    },
     async anewEva() {
-      // if (!this.textarea) {
-      //   return this.$message.info("请先进行AI评分获取评语~");
-      // }
-      // return console.log('this.scoTitList',this.scoTitList);
-
       this.ScLoading = true;
 
       let _fileid = "";
@@ -607,16 +610,16 @@ export default {
         _fileid = await this.createFileid(this.currentUid.content);
       }
 
-      let sco = "";
+      let sco = ""; //分数
       this.scoTitList.forEach(e => {
-        sco += `${e.detail}:${e.cog}星`;
+        sco += `${e.detail}:${e.cog}星`;
       });
 
       let con = this.cuScoCon;
 
-      let std = "";
+      let std = ""; //维度
       let tit = [];
-      let laws = "";
+      let laws = ""; //细则
       if (this.tool.eList && this.tool.eList.length) {
         tit = JSON.parse(JSON.stringify(this.tool.eList));
       } else {
@@ -626,7 +629,7 @@ export default {
       if (this.tool.eList && this.tool.eList.length) {
         for (let i = 0; i < this.tool.eList.length; i++) {
           if (this.tool.eList[i].isai == 1) {
-            laws += `细则${i}:${this.tool.eList[i].rule}, \n`;
+            laws += `${this.tool.eList[i].rule}。 \n`;
           }
         }
         for (let i = 0; i < this.tool.eList.length; i++) {
@@ -639,21 +642,13 @@ export default {
             } else {
               result = a;
             }
-            std += `纬度${i}:“${result}”,  \n`;
+            std += `${result}。  \n`;
           }
         }
       } else {
         for (let i = 0; i < tit.length; i++) {
           if (tit[i].isai == 1) {
-            let a = tit[i].detail;
-            let result = "";
-
-            if (isNaN(parseFloat(a)) && a) {
-              result = a.match(/[\u4e00-\u9fa5a-zA-Z]+/g).join("");
-            } else {
-              result = a;
-            }
-            laws += ` 细则${i}:${tit[i].rule}, \n`;
+            laws += ` ${tit[i].rule}。 \n`;
           }
         }
         for (let i = 0; i < tit.length; i++) {
@@ -666,7 +661,7 @@ export default {
             } else {
               result = a;
             }
-            std += `纬度${i}:“${result}”,  \n`;
+            std += `${result}。  \n`;
           }
         }
       }
@@ -680,31 +675,33 @@ export default {
 
         #目标#
         你要结合<作业内容><评价标准>和该标准对应的<等级>写评语。
-        当作业内容与<评价细则>无关,或者缺乏原创性会被直接评为0星。此时你可以输出评语“==期待看到你自己的想法!必要时,可以请教老师哦~==”
+        当作业内容与评价细则无关,或者缺乏原创性会被直接评为0星。此时你可以输出评语“期待看到你自己的想法!必要时,可以请教老师哦~”
+        ${this.currentUid.type == 1 ? "提取图片内容进行评价" : ""}
       
           
         #评分资料#
         评价标准:${std}
+        评价细则:${laws}
         等级:${sco}
         作业内容:${_fileid ? "上传的文件内容" : con}
 
 
         #输出要求#
         “评语”字数控制在150字左右,参考输出范例。
-        只输出评价内容,不要输出其他无关内容
+        严格输出按照格式输出json格式。只输出json格式的内容,其他内容不要输出
         
           
         #输出格式#
-        ==
-        学生能够全面且正确地描述光合作用中氧气和葡萄糖的生成过程,涵盖光反应和暗反应的每个阶段和主要反应物及产物。同时,学生也能够全面、准确地解释氧气和葡萄糖在植物生命活动中的重要作用,并展示了对光合作用的深入理解。论文结构良好,内容详实,逻辑清晰,论据充分。
-        ==
+        [{'comment':'评语(150个汉字左右)'}]
+
 
         #输出范例#
-        学生能够全面且正确地描述光合作用中氧气和葡萄糖的生成过程,涵盖光反应和暗反应的每个阶段和主要反应物及产物。同时,学生也能够全面、准确地解释氧气和葡萄糖在植物生命活动中的重要作用,并展示了对光合作用的深入理解。论文结构良好,内容详实,逻辑清晰,论据充分。
+        [{'comment':'学生能够全面且正确地描述光合作用中氧气和葡萄糖的生成过程,涵盖光反应和暗反应的每个阶段和主要反应物及产物。同时,学生也能够全面、准确地解释氧气和葡萄糖在植物生命活动中的重要作用,并展示了对光合作用的深入理解。论文结构良好,内容详实,逻辑清晰,论据充分。'}]
         `;
+      // console.log("messages", messages);
 
       let params = {
-        assistant_id: "f8e1ebb2-2e0d-11ef-8bf4-12e77c4cb76b",
+        assistant_id: "6063369f-289a-11ef-8bf4-12e77c4cb76b",
         message: [
           {
             type: "text",
@@ -722,17 +719,47 @@ export default {
         .then(response => {
           let data = response.data.FunctionResponse;
           console.log("data", data);
-          // 找到第一个等号的位置
-          const startIndex = data.message.indexOf("==") + 2;
-          // 找到最后一个等号的位置
-          const endIndex = data.message.lastIndexOf("==");
+          if (data.message) {
+            let dArray = {};
+            try {
+              dArray = JSON.parse(
+                data.message.replaceAll("```json", "").replaceAll("```", "")
+              );
+            } catch (error) {
+              console.log("error_________________" + error);
+              try {
+                let regex = new RegExp("(?<=```json)([\\s\\S]*?)(?=```)");
 
-          // 提取中间的文字
-          const extractedText = data.message
-            .substring(startIndex, endIndex)
-            .trim();
+                let match = data.message.match(regex);
+                dArray = JSON.parse(
+                  match[0]
+                    .replace(/\n/g, "")
+                    .replace(/\s{2,}/g, "")
+                    .replace(/\'/g, '"')
+                );
+              } catch (error) {
+                try {
+                  dArray = JSON.parse(
+                    data.message
+                      .replaceAll("```json", "")
+                      .replaceAll("# Solution", "")
+                      .replaceAll("```", "")
+                      .replace(/\n/g, "")
+                      .replace(/\s{2,}/g, "")
+                      .replace(/\'/g, '"')
+                  );
+                } catch (error) {
+                  console.log("error_________________" + error);
 
-          this.textarea = extractedText;
+                  this.anewEva();
+                  return;
+                }
+                console.log("error_________________" + error);
+              }
+            }
+            console.log("dArray", dArray);
+            this.textarea = dArray[0].comment;
+          }
           this.submit()
           this.$message.success("重新生成完成");
 
@@ -740,9 +767,7 @@ export default {
         })
         .catch(error => {
           this.ScLoading = false;
-
           this.$message.error("重新生成失败");
-
           console.log(error);
         });
     },
@@ -1015,6 +1040,8 @@ export default {
 
     // ai打分
     aiGet2(messages, _fileid, work) {
+      if (!this.markScoreVisible) return console.log('弹框关闭了');
+
       let _this = this;
 
       let params = {
@@ -1029,7 +1056,7 @@ export default {
         userId: this.cUserid,
         file_ids: _fileid ? [_fileid] : [],
         isImage: work.type == 1 ? true : "",
-        model: "gpt-4o-2024-08-06"
+        model: _fileid ? "gpt-4o-2024-08-06"  : "gpt-4o-2024-08-06"
       };
       this.ajax
         .post("https://gpt4.cocorobo.cn/ai_agent_park_chat", params)
@@ -1904,9 +1931,9 @@ export default {
   background-color: #fff;
   bottom: 3px;
   right: 22px;
-  color: #12b0ff;
+  color: #3681FC;
   cursor: pointer;
-  font-size: 16px;
+  font-size: 14px;
   transform: translate(0px, 2px);
 }
 </style>

+ 4 - 2
src/components/easy2/commpont/markScore.vue

@@ -77,7 +77,8 @@ export default {
     "loading",
     "wIndex",
     "toolIndex",
-    "tool"
+    "tool",
+    "markScoreVisible"
   ],
 
   data() {
@@ -270,6 +271,7 @@ export default {
 
     // ai循环评分
     async aiupdetaSco(messages, uid, stage, task,_fileid,work) {
+      
       let _this = this;
       let params = {
         assistant_id: "6063369f-289a-11ef-8bf4-12e77c4cb76b",
@@ -283,7 +285,7 @@ export default {
         userId: this.userid,
         file_ids: _fileid ? [_fileid] : [],
         isImage: work == 0 ? true : '',
-        model: "gpt-4o-2024-08-06"
+        model:  _fileid ? "gpt-4o-2024-08-06"  : "gpt-4o-2024-08-06"
       };
       return new Promise((resolve,reject) => {
         this.ajax

+ 437 - 49
src/components/easy2/studyStudent.vue

@@ -1432,6 +1432,44 @@
                           >
                             评分
                           </div>
+                          <div  class="stuLookScore" v-if=" w.userid == userid || tType == 1 && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <el-popover
+                              placement="top"
+                              width="318"
+                              trigger="hover"
+                              >
+                                <markScore 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
+                                  :ref="`markSco${toolIndex}${wIndex}`"
+                                  @updateLoading=updateLoading
+                                  @updateDocSco=updateDocSco
+                                  @refreshOther=refreshOther
+                                  @markScoreDig=markScoreDig
+                                  :tool="tool"
+                                  :wIndex="wIndex"
+                                  :scoCon="w" 
+                                  :toolIndex="toolIndex" 
+                                  :key="refreshKey" 
+                                  :stage="courseType"
+                                  :task="taskCount"  
+                                  :scoTit="chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList"
+                                  >
+                                </markScore>
+
+                              <div
+                                @click="markScoreDig2(w.sName,worksStudent,w.userid,toolIndex,chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,AIloading[toolIndex][wIndex].loading,tool)"
+                                slot="reference"
+                              >
+                                <span v-if="AIloading[toolIndex][wIndex].sco">
+                                  {{ AIloading[toolIndex][wIndex].sco + "分" }}
+                                </span>
+                                <span v-else>
+                                  评分
+                                </span>    
+                              </div>
+                            </el-popover>
+                          </div>
                           <img
                             class="deleteImg"
                             src="../../assets/deleteworks.png"
@@ -1466,6 +1504,44 @@
                           >
                             评分
                           </div>
+                          <div  class="stuLookScore" v-if=" w.userid == userid || tType == 1 && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <el-popover
+                              placement="top"
+                              width="318"
+                              trigger="hover"
+                              >
+                                <markScore 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
+                                  :ref="`markSco${toolIndex}${wIndex}`"
+                                  @updateLoading=updateLoading
+                                  @updateDocSco=updateDocSco
+                                  @refreshOther=refreshOther
+                                  @markScoreDig=markScoreDig
+                                  :tool="tool"
+                                  :wIndex="wIndex"
+                                  :scoCon="w" 
+                                  :toolIndex="toolIndex" 
+                                  :key="refreshKey" 
+                                  :stage="courseType"
+                                  :task="taskCount"  
+                                  :scoTit="chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList"
+                                  >
+                                </markScore>
+
+                              <div
+                                @click="markScoreDig2(w.sName,worksStudent,w.userid,toolIndex,chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,AIloading[toolIndex][wIndex].loading,tool)"
+                                slot="reference"
+                              >
+                                <span v-if="AIloading[toolIndex][wIndex].sco">
+                                  {{ AIloading[toolIndex][wIndex].sco + "分" }}
+                                </span>
+                                <span v-else>
+                                  评分
+                                </span>    
+                              </div>
+                            </el-popover>
+                          </div>
                           <img
                             class="deleteImg"
                             src="../../assets/deleteworks.png"
@@ -1505,6 +1581,44 @@
                           >
                             评分
                           </div>
+                          <div  class="stuLookScore" v-if=" w.userid == userid || tType == 1 && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <el-popover
+                              placement="top"
+                              width="318"
+                              trigger="hover"
+                              >
+                                <markScore 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
+                                  :ref="`markSco${toolIndex}${wIndex}`"
+                                  @updateLoading=updateLoading
+                                  @updateDocSco=updateDocSco
+                                  @refreshOther=refreshOther
+                                  @markScoreDig=markScoreDig
+                                  :tool="tool"
+                                  :wIndex="wIndex"
+                                  :scoCon="w" 
+                                  :toolIndex="toolIndex" 
+                                  :key="refreshKey" 
+                                  :stage="courseType"
+                                  :task="taskCount"  
+                                  :scoTit="chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList"
+                                  >
+                                </markScore>
+
+                              <div
+                                @click="markScoreDig2(w.sName,worksStudent,w.userid,toolIndex,chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,AIloading[toolIndex][wIndex].loading,tool)"
+                                slot="reference"
+                              >
+                                <span v-if="AIloading[toolIndex][wIndex].sco">
+                                  {{ AIloading[toolIndex][wIndex].sco + "分" }}
+                                </span>
+                                <span v-else>
+                                  评分
+                                </span>    
+                              </div>
+                            </el-popover>
+                          </div>
                           <img
                             class="deleteImg"
                             src="../../assets/deleteworks.png"
@@ -1544,6 +1658,44 @@
                           >
                             评分
                           </div>
+                          <div  class="stuLookScore" v-if=" w.userid == userid || tType == 1 && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <el-popover
+                              placement="top"
+                              width="318"
+                              trigger="hover"
+                              >
+                                <markScore 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
+                                  :ref="`markSco${toolIndex}${wIndex}`"
+                                  @updateLoading=updateLoading
+                                  @updateDocSco=updateDocSco
+                                  @refreshOther=refreshOther
+                                  @markScoreDig=markScoreDig
+                                  :tool="tool"
+                                  :wIndex="wIndex"
+                                  :scoCon="w" 
+                                  :toolIndex="toolIndex" 
+                                  :key="refreshKey" 
+                                  :stage="courseType"
+                                  :task="taskCount"  
+                                  :scoTit="chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList"
+                                  >
+                                </markScore>
+
+                              <div
+                                @click="markScoreDig2(w.sName,worksStudent,w.userid,toolIndex,chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,AIloading[toolIndex][wIndex].loading,tool)"
+                                slot="reference"
+                              >
+                                <span v-if="AIloading[toolIndex][wIndex].sco">
+                                  {{ AIloading[toolIndex][wIndex].sco + "分" }}
+                                </span>
+                                <span v-else>
+                                  评分
+                                </span>    
+                              </div>
+                            </el-popover>
+                          </div>
                           <img
                             class="deleteImg"
                             src="../../assets/deleteworks.png"
@@ -2150,6 +2302,44 @@
                           >
                             评分
                           </div>
+                          <div  class="stuLookScore" v-if=" w.userid == userid || tType == 1 && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <el-popover
+                              placement="top"
+                              width="318"
+                              trigger="hover"
+                              >
+                                <markScore 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
+                                  :ref="`markSco${toolIndex}${wIndex}`"
+                                  @updateLoading=updateLoading
+                                  @updateDocSco=updateDocSco
+                                  @refreshOther=refreshOther
+                                  @markScoreDig=markScoreDig
+                                  :tool="tool"
+                                  :wIndex="wIndex"
+                                  :scoCon="w" 
+                                  :toolIndex="toolIndex" 
+                                  :key="refreshKey" 
+                                  :stage="courseType"
+                                  :task="taskCount"  
+                                  :scoTit="chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList"
+                                  >
+                                </markScore>
+
+                              <div
+                                @click="markScoreDig2(w.sName,worksStudent,w.userid,toolIndex,chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,AIloading[toolIndex][wIndex].loading,tool)"
+                                slot="reference"
+                              >
+                                <span v-if="AIloading[toolIndex][wIndex].sco">
+                                  {{ AIloading[toolIndex][wIndex].sco + "分" }}
+                                </span>
+                                <span v-else>
+                                  评分
+                                </span>    
+                              </div>
+                            </el-popover>
+                          </div>
                           <img
                             class="deleteImg"
                             src="../../assets/deleteworks.png"
@@ -2225,6 +2415,44 @@
                           >
                             评分
                           </div>
+                          <div  class="stuLookScore" v-if=" w.userid == userid || tType == 1 && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <el-popover
+                              placement="top"
+                              width="318"
+                              trigger="hover"
+                              >
+                                <markScore 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
+                                  :ref="`markSco${toolIndex}${wIndex}`"
+                                  @updateLoading=updateLoading
+                                  @updateDocSco=updateDocSco
+                                  @refreshOther=refreshOther
+                                  @markScoreDig=markScoreDig
+                                  :tool="tool"
+                                  :wIndex="wIndex"
+                                  :scoCon="w" 
+                                  :toolIndex="toolIndex" 
+                                  :key="refreshKey" 
+                                  :stage="courseType"
+                                  :task="taskCount"  
+                                  :scoTit="chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList"
+                                  >
+                                </markScore>
+
+                              <div
+                                @click="markScoreDig2(w.sName,worksStudent,w.userid,toolIndex,chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,AIloading[toolIndex][wIndex].loading,tool)"
+                                slot="reference"
+                              >
+                                <span v-if="AIloading[toolIndex][wIndex].sco">
+                                  {{ AIloading[toolIndex][wIndex].sco + "分" }}
+                                </span>
+                                <span v-else>
+                                  评分
+                                </span>    
+                              </div>
+                            </el-popover>
+                          </div>
                           <img
                             class="deleteImg"
                             src="../../assets/deleteworks.png"
@@ -2375,6 +2603,44 @@
                           >
                             评分
                           </div>
+                          <div  class="stuLookScore" v-if=" w.userid == userid || tType == 1 && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <el-popover
+                              placement="top"
+                              width="318"
+                              trigger="hover"
+                              >
+                                <markScore 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
+                                  :ref="`markSco${toolIndex}${wIndex}`"
+                                  @updateLoading=updateLoading
+                                  @updateDocSco=updateDocSco
+                                  @refreshOther=refreshOther
+                                  @markScoreDig=markScoreDig
+                                  :tool="tool"
+                                  :wIndex="wIndex"
+                                  :scoCon="w" 
+                                  :toolIndex="toolIndex" 
+                                  :key="refreshKey" 
+                                  :stage="courseType"
+                                  :task="taskCount"  
+                                  :scoTit="chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList"
+                                  >
+                                </markScore>
+
+                              <div
+                                @click="markScoreDig2(w.sName,worksStudent,w.userid,toolIndex,chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,AIloading[toolIndex][wIndex].loading,tool)"
+                                slot="reference"
+                              >
+                                <span v-if="AIloading[toolIndex][wIndex].sco">
+                                  {{ AIloading[toolIndex][wIndex].sco + "分" }}
+                                </span>
+                                <span v-else>
+                                  评分
+                                </span>    
+                              </div>
+                            </el-popover>
+                          </div>
                           <img
                             class="deleteImg"
                             src="../../assets/deleteworks.png"
@@ -2482,7 +2748,7 @@
                           展开
                         </div>
                       </div>
-                      <div style="display: flex;" v-if="courseDetail.userid == userid && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
+                      <div style="display: flex;" v-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1)) && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
                       <!-- <div  style="display: flex;" v-if="courseDetail.userid == userid && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length && courseDetail.state == 5"> -->
                         <div  style="margin-right:10px" class="ScoreBtn"  @click="resetLoopEva(worksStudent[toolIndex],chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,courseType,taskCount,toolIndex,tool.toolDetail,worksStudent)" >
                           一键重置
@@ -2832,7 +3098,7 @@
                           </div>
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
 
-                          <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                          <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
 
                             <el-popover
                               placement="top"
@@ -2841,7 +3107,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -2924,7 +3191,7 @@
                           </div>
 
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
-                            <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
 
 
                             <el-popover
@@ -2935,7 +3202,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -3021,7 +3289,7 @@
                           </div>
 
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
-                            <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
          
                             
                             <el-popover
@@ -3032,7 +3300,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -3119,7 +3388,7 @@
 
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
 
-                          <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                          <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
                             
                             <el-popover
                            
@@ -3129,7 +3398,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -3654,7 +3924,7 @@
 
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
    
-                            <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
 
                               <el-popover
                              
@@ -3664,7 +3934,8 @@
                                 trigger="hover"
                                 >
                                   <markScore 
-                                    :loading="AIloading[toolIndex][wIndex].loading" 
+                                     :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                     :ref="`markSco${toolIndex}${wIndex}`"
                                     @updateLoading=updateLoading
                                     @updateDocSco=updateDocSco
@@ -3794,7 +4065,7 @@
                         展开
                       </div>
                     </div>
-                    <div style="display: flex;" v-if="courseDetail.userid == userid && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
+                    <div style="display: flex;" v-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1)) && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
 
                     <!-- <div style="display: flex;" v-if="courseDetail.userid == userid && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length && courseDetail.state == 5 "> -->
                       <div  style="margin-right:10px" class="ScoreBtn"  @click="resetLoopEva(worksStudent[toolIndex],chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,courseType,taskCount,toolIndex,tool.toolDetail,worksStudent)" >
@@ -3881,7 +4152,7 @@
 
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
   
-                          <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                          <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
                             
                             <el-popover
                          
@@ -3891,7 +4162,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -3976,7 +4248,7 @@
                           </div>
 
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
-                            <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
      
                             <el-popover
                             
@@ -3986,7 +4258,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -4072,7 +4345,7 @@
                           </div>
 
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
-                            <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
               
                             
                             <el-popover
@@ -4083,7 +4356,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -4772,7 +5046,7 @@
                                 </div>
 
                                 <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
-                              <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                              <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
                           
                                   
                                 <el-popover
@@ -4782,7 +5056,8 @@
                                   trigger="hover"
                                   >
                                     <markScore 
-                                      :loading="AIloading[toolIndex][wIndex].loading" 
+                                       :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                       :ref="`markSco${toolIndex}${wIndex}`"
                                       @updateLoading=updateLoading
                                       @updateDocSco=updateDocSco
@@ -4946,7 +5221,7 @@
                             </div>
 
                             <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
-                              <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                              <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
           
                               
                               <el-popover
@@ -4957,7 +5232,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -5098,7 +5374,7 @@
                           展开
                         </div>
                       </div>
-                      <div style="display: flex;" v-if="courseDetail.userid == userid && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
+                      <div style="display: flex;" v-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1)) && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
 
                         <div  style="margin-right:10px" class="ScoreBtn" @click="resetLoopEva(worksStudent[toolIndex],chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,courseType,taskCount,toolIndex,tool.toolDetail,worksStudent)" >
                           一键重置
@@ -5302,25 +5578,22 @@
                             评分
                           </div>
 
-                          <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
-                          <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
-               
-                            
+                          <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
                             <el-popover
-                         
                               placement="top"
                               width="318"
                               :disabled="AIloading[toolIndex][wIndex].loading"
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
                                   @refreshOther=refreshOther
                                   @markScoreDig=markScoreDig
-                                 :tool="tool"
+                                  :tool="tool"
                                   :wIndex="wIndex"
                                   :scoCon="w" 
                                   :toolIndex="toolIndex" 
@@ -5458,7 +5731,7 @@
                           展开
                         </div>
                       </div>
-                      <div style="display: flex;" v-if="courseDetail.userid == userid && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
+                      <div style="display: flex;" v-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1)) && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
 
                       <div  style="margin-right:10px" class="ScoreBtn" @click="resetLoopEva(worksStudent[toolIndex],chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,courseType,taskCount,toolIndex,tool.toolDetail,worksStudent)" >
                         一键重置
@@ -5663,7 +5936,7 @@
                           </div>
 
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
-                          <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                          <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
            
                             
                             <el-popover
@@ -5674,7 +5947,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -6101,7 +6375,7 @@
                           展开
                         </div>
                       </div>
-                      <div style="display: flex;" v-if="courseDetail.userid == userid && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
+                      <div style="display: flex;" v-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1)) && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
 
                         <div  style="margin-right:10px" class="ScoreBtn" @click="resetLoopEva(worksStudent[toolIndex],chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,courseType,taskCount,toolIndex,tool.toolDetail,worksStudent)" >
                           一键重置
@@ -6307,7 +6581,7 @@
 
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
                    
-                          <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                          <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
                             
                             <el-popover
                             
@@ -6317,7 +6591,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -7111,7 +7386,7 @@
                           展开
                         </div>
                       </div>
-                      <div style="display: flex;" v-if="courseDetail.userid == userid && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
+                      <div style="display: flex;" v-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1)) && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
 
                         <div  style="margin-right:10px" class="ScoreBtn" @click="resetLoopEva(worksStudent[toolIndex],chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,courseType,taskCount,toolIndex,tool.toolDetail,worksStudent)" >
                           一键重置
@@ -7192,7 +7467,7 @@
 
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
                    
-                          <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                          <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
                             
                             <el-popover
                          
@@ -7202,7 +7477,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -7365,6 +7641,44 @@
                           >
                             评分
                           </div>
+                          <div  class="stuLookScore" v-if=" w.userid == userid || tType == 1 && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <el-popover
+                              placement="top"
+                              width="318"
+                              trigger="hover"
+                              >
+                                <markScore 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
+                                  :ref="`markSco${toolIndex}${wIndex}`"
+                                  @updateLoading=updateLoading
+                                  @updateDocSco=updateDocSco
+                                  @refreshOther=refreshOther
+                                  @markScoreDig=markScoreDig
+                                  :tool="tool"
+                                  :wIndex="wIndex"
+                                  :scoCon="w" 
+                                  :toolIndex="toolIndex" 
+                                  :key="refreshKey" 
+                                  :stage="courseType"
+                                  :task="taskCount"  
+                                  :scoTit="chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList"
+                                  >
+                                </markScore>
+
+                              <div
+                                @click="markScoreDig2(w.sName,worksStudent,w.userid,toolIndex,chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,AIloading[toolIndex][wIndex].loading,tool)"
+                                slot="reference"
+                              >
+                                <span v-if="AIloading[toolIndex][wIndex].sco">
+                                  {{ AIloading[toolIndex][wIndex].sco + "分" }}
+                                </span>
+                                <span v-else>
+                                  评分
+                                </span>    
+                              </div>
+                            </el-popover>
+                          </div>
                           <img
                             class="deleteImg"
                             src="../../assets/deleteworks.png"
@@ -7419,7 +7733,7 @@
                           展开
                         </div>
                       </div>
-                      <div style="display: flex;" v-if="courseDetail.userid == userid && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
+                      <div style="display: flex;" v-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1)) && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5">
                       <!-- <div style="display: flex;" v-if="courseDetail.userid == userid && ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length)) && courseDetail.state == 5"> -->
                         <div @click="resetLoopEva(worksStudent[toolIndex],chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,courseType,taskCount,toolIndex,tool.toolDetail,tool)"  style="margin-right:10px" class="ScoreBtn">
                           一键重置
@@ -7499,7 +7813,7 @@
                           </div>
                           <!-- <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length"> -->
 
-                          <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                          <div v-else-if="(courseDetail.userid == userid || (courseDetail.course_teacher && courseDetail.course_teacher.indexOf(userid) != -1) || (w.userid == userid && sIsOpen)) && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
                             <!-- <div
                                 class="answerScore"
                                 @click="markScoreDig(w.userid,toolIndex)"
@@ -7525,7 +7839,8 @@
                               trigger="hover"
                               >
                                 <markScore 
-                                  :loading="AIloading[toolIndex][wIndex].loading" 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
                                   :ref="`markSco${toolIndex}${wIndex}`"
                                   @updateLoading=updateLoading
                                   @updateDocSco=updateDocSco
@@ -7684,6 +7999,44 @@
                           >
                             评分
                           </div>
+                          <div  class="stuLookScore" v-if=" w.userid == userid || tType == 1 && courseDetail.state == 5 &&  ((chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList.length) || (tool.eList && tool.eList.length))">
+                            <el-popover
+                              placement="top"
+                              width="318"
+                              trigger="hover"
+                              >
+                                <markScore 
+                                   :loading="AIloading[toolIndex][wIndex].loading" 
+                                  :markScoreVisible="markScoreVisible"
+                                  :ref="`markSco${toolIndex}${wIndex}`"
+                                  @updateLoading=updateLoading
+                                  @updateDocSco=updateDocSco
+                                  @refreshOther=refreshOther
+                                  @markScoreDig=markScoreDig
+                                  :tool="tool"
+                                  :wIndex="wIndex"
+                                  :scoCon="w" 
+                                  :toolIndex="toolIndex" 
+                                  :key="refreshKey" 
+                                  :stage="courseType"
+                                  :task="taskCount"  
+                                  :scoTit="chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList"
+                                  >
+                                </markScore>
+
+                              <div
+                                @click="markScoreDig2(w.sName,worksStudent,w.userid,toolIndex,chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,AIloading[toolIndex][wIndex].loading,tool)"
+                                slot="reference"
+                              >
+                                <span v-if="AIloading[toolIndex][wIndex].sco">
+                                  {{ AIloading[toolIndex][wIndex].sco + "分" }}
+                                </span>
+                                <span v-else>
+                                  评分
+                                </span>    
+                              </div>
+                            </el-popover>
+                          </div>
                           <img
                             class="deleteImg"
                             src="../../assets/deleteworks.png"
@@ -9067,7 +9420,7 @@
           </div>
           <div
             class="upload_send"
-            @click="addCourseWorks(taskCount)"
+            @click="addCourseWorksCopy(taskCount)"
             v-if="!proVisible"
           >
             提交
@@ -12915,7 +13268,7 @@
     >
     <div slot="title">
       <div class="markScore_diyTit">
-        <div>教师评分</div>
+        <div>{{tType == 1 ? "教师评分" : "作业弹框"}} </div>
         <div @click="markFullScreenBtn" style="cursor: pointer;"><img src="../../assets/icon/newIcons/fullScreen.png" alt=""></div>
       </div>
     </div>
@@ -12930,9 +13283,10 @@
         :task="taskCount" 
         :taskDetail="chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].taskDetail"
         :tool="toolListS"
-
         :languageSetting="languageSetting"
         :scoTit="markScoreTit" 
+        :tType="tType"
+        :sIsOpen="sIsOpen"
         :markScoreworksStudent="markScoreworksStudent"
         :markScoreVisible="markScoreVisible"
       ></markDialog>
@@ -13922,10 +14276,11 @@ export default {
       // this.refreshKey++
       this.worksStudent.forEach((e,index)=>{
         if(this.markScoretoolIndex == index){
-          
           e.forEach((i,inx)=>{
             let mk = `markSco${index}${inx}`
-            this.$refs[mk][0].getData()
+            if(this.$refs[mk] && this.$refs[mk][0]){
+              this.$refs[mk][0].getData()
+            }
           })
         }
       })
@@ -13980,7 +14335,10 @@ export default {
       this.markScoreworksStudent = worksStudent;
       this.markfullscreen = false;
       this.markScoreVisible = true;
-			this.insertMemorandum(`查看<span class="variable">${uname}</span>的作业`)
+      
+      if( this.tType == 1 ){
+        this.insertMemorandum(`查看<span class="variable">${uname}</span>的作业`)
+      }
     },
     // 点击markScore显示评分框
     markScoreDig(data){
@@ -14767,6 +15125,25 @@ export default {
           console.error(err);
         });
     },
+    addCourseWorksCopy(i){
+      let arr = this.workStudent[this.toolindex].filter(e=>{
+        return e.userid = this.userid
+      })
+
+      if (arr.length > 0) {
+        this.$confirm("再次提交会覆盖原有作业,并清空评分。", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+          })
+          .then(() => {
+            this.addCourseWorks(i)
+          })
+          .catch(() => {});
+      }else{
+        this.addCourseWorks(i)
+      }
+    },
     addCourseWorks(i) {
       var typesql;
       if (this.fileType === 0) {
@@ -14795,7 +15172,7 @@ export default {
         },
       ];
       this.ajax
-        .post(this.$store.state.api + "addCourseWorksR", params)
+        .post(this.$store.state.api + "addCourseWorksR1", params)
         .then((res) => {
           this.$message({
             message: "提交成功",
@@ -26430,4 +26807,15 @@ ol {
   display: block;
   margin-right: 5px;
 }
+.stuLookScore{
+  position: absolute;
+  top: 12px;
+  right: 40px;
+  background: #0000008f;
+  border-radius: 5px;
+  padding: 3px 5px;
+  font-size: 14px;
+  color: #fff;
+  cursor: pointer;
+}
 </style>

+ 2 - 1
src/components/index.vue

@@ -711,9 +711,10 @@ export default {
       let params = {
         org: this.org && this.org != "" ? this.org : "",
         oid: this.oid && this.oid != "" ? this.oid : "",
+        stand: "cn"
       };
       this.ajax
-        .get(this.$store.state.api + "selectAllType", params)
+        .get(this.$store.state.api + "selectAllTypeStand", params)
         .then((res) => {
           if(this.oid == "69893dca-1d47-11ed-8c78-005056b86db5"){
             res.data[0] = [...res.data[0],...res.data[4]]

Някои файлове не бяха показани, защото твърде много файлове са промени