lsc 1 år sedan
förälder
incheckning
9d8f72f62b

+ 1 - 1
dist/index.html

@@ -27,7 +27,7 @@
     html,
     html,
     body{
     body{
       font-family: 'Source Han Sans SC', sans-serif;
       font-family: 'Source Han Sans SC', sans-serif;
-    }</style><link href=./static/css/app.620a4005d0d06695fec06710f34a07a7.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.9ee7cb8cb3c0161956b8.js></script><script type=text/javascript src=./static/js/app.45c1a056c7d3b6c188da.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.e256b2bcd190235e7376ed6f880967a5.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.9ee7cb8cb3c0161956b8.js></script><script type=text/javascript src=./static/js/app.5f64786d8936190591dc.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {
     document.documentElement.addEventListener("touchstart", function (event) {

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/app.e256b2bcd190235e7376ed6f880967a5.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/app.e256b2bcd190235e7376ed6f880967a5.css.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/app.5f64786d8936190591dc.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/app.5f64786d8936190591dc.js.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map


BIN
src/assets/icon/fourthToolList/chatgpt.png


+ 1 - 0
src/common/tools.js

@@ -35,5 +35,6 @@ export const tools = {
     69: { name: "英语口语" },
     69: { name: "英语口语" },
     25: { name: "目标管理" },
     25: { name: "目标管理" },
     26: { name: "课程设计" },
     26: { name: "课程设计" },
+    71: { name: "AI智能体" },
     62: { name: "交互视频" }
     62: { name: "交互视频" }
 };
 };

+ 7 - 0
src/components/courseDetail.vue

@@ -704,6 +704,13 @@
                                 />
                                 />
                                 <div>英语口语</div>
                                 <div>英语口语</div>
                               </div>
                               </div>
+                              <div v-if="item3.tool == 71">
+                                <img
+                                  src="../assets/icon/fourthToolList/chatgpt.png"
+                                  alt
+                                />
+                                <div>AI智能体</div>
+                              </div>
                               <div v-if="item3.tool == undefined">
                               <div v-if="item3.tool == undefined">
                                 <img
                                 <img
                                   src="../assets/icon/empytool.png"
                                   src="../assets/icon/empytool.png"

+ 61 - 11
src/components/easy2/studyStudent.vue

@@ -216,6 +216,7 @@
                       <div v-if="t.tool == 25">目标管理</div>
                       <div v-if="t.tool == 25">目标管理</div>
                       <div v-if="t.tool == 26">课程设计</div>
                       <div v-if="t.tool == 26">课程设计</div>
                       <div v-if="t.tool == 62">交互视频</div>
                       <div v-if="t.tool == 62">交互视频</div>
+                      <div v-if="t.tool == 71">AI智能体</div>
                     </div>
                     </div>
                   </div>
                   </div>
                 </div>
                 </div>
@@ -1269,6 +1270,14 @@
                             />
                             />
                             <div style="margin: 5px 0">海龟编程</div>
                             <div style="margin: 5px 0">海龟编程</div>
                           </div>
                           </div>
+                          <div v-if="tooC == 71">
+                            <img
+                              @click="addTools(tooC, toolIndex, taskCount)"
+                              src="../../assets/icon/fourthToolList/chatgpt.png"
+                              alt
+                            />
+                            <div style="margin: 5px 0">AI智能体</div>
+                          </div>
                           <div v-if="tooC == 65">
                           <div v-if="tooC == 65">
                             <img
                             <img
                               @click="addTools(tooC, toolIndex, taskCount)"
                               @click="addTools(tooC, toolIndex, taskCount)"
@@ -8506,6 +8515,23 @@
                 <div v-else class="isChoose"></div>
                 <div v-else class="isChoose"></div>
               </div>
               </div>
             </div>
             </div>
+            <div
+              class="tool"
+              :class="{ isToolChoose: checktoolArray.indexOf(71) != -1 }"
+              @click="addTools2(71)"
+            >
+              <div class="whiteBIcon">
+                <img src="../../assets/icon/fourthToolList/chatgpt.png" alt />
+                <div style="margin: 5px 0">AI智能体</div>
+              </div>
+              <div class="check">
+                <div
+                  v-if="checktoolArray.indexOf(71) == -1"
+                  class="noChoose"
+                ></div>
+                <div v-else class="isChoose"></div>
+              </div>
+            </div>
           </div>
           </div>
           <div class="toolSort" v-if="toolType == 7">
           <div class="toolSort" v-if="toolType == 7">
             <div
             <div
@@ -13966,7 +13992,7 @@ export default {
         })
         })
         .catch(() => {});
         .catch(() => {});
     },
     },
-    commentOther(w, toolIndex, wIndex, gindex, gid) {
+    async commentOther(w, toolIndex, wIndex, gindex, gid) {
       this.commentIndexJson = {
       this.commentIndexJson = {
         toolIndex: toolIndex,
         toolIndex: toolIndex,
         wIndex: wIndex,
         wIndex: wIndex,
@@ -13977,7 +14003,7 @@ export default {
       this.commentDialogVisible = true;
       this.commentDialogVisible = true;
       this.commentDetail = w;
       this.commentDetail = w;
       if (w.works && w.type == 1) {
       if (w.works && w.type == 1) {
-        this.pptImgUrl = "";
+        // this.pptImgUrl = "";
         var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
         var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
         if (
         if (
           a.indexOf(
           a.indexOf(
@@ -13986,8 +14012,9 @@ export default {
               [w.works.split(".").length - 1].toLocaleUpperCase()
               [w.works.split(".").length - 1].toLocaleUpperCase()
           ) != -1
           ) != -1
         ) {
         ) {
+          let _uuurl = await this.checkLink(w.works);
           this.pptImgUrl =
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
           this.showPDF = false;
           this.showPDF = false;
         } else if (
         } else if (
           w.works
           w.works
@@ -14017,7 +14044,7 @@ export default {
           ].toolChoose[toolIndex].wordJson;
           ].toolChoose[toolIndex].wordJson;
       }
       }
     },
     },
-    openScore(w, index) {
+    async openScore(w, index) {
       this.wScore = 0;
       this.wScore = 0;
       this.wScore = w.score ? JSON.parse(w.score).wScore : 0;
       this.wScore = w.score ? JSON.parse(w.score).wScore : 0;
       this.scoreDetail = w.score ? JSON.parse(w.score).detail : "";
       this.scoreDetail = w.score ? JSON.parse(w.score).detail : "";
@@ -14039,8 +14066,9 @@ export default {
               [w.works.split(".").length - 1].toLocaleUpperCase()
               [w.works.split(".").length - 1].toLocaleUpperCase()
           ) != -1
           ) != -1
         ) {
         ) {
+          let _uuurl = await this.checkLink(w.works);
           this.pptImgUrl =
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
           this.showPDF = false;
           this.showPDF = false;
         } else if (
         } else if (
           w.works
           w.works
@@ -17205,15 +17233,16 @@ export default {
       this.chapTools = this.chapToolList[i][t];
       this.chapTools = this.chapToolList[i][t];
       this.dialogVisible2 = true;
       this.dialogVisible2 = true;
     },
     },
-    openFile(f) {
+    async openFile(f) {
       this.pptImgUrl = "";
       this.pptImgUrl = "";
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
       if (
       if (
         a.indexOf(f.split(".")[f.split(".").length - 1].toLocaleUpperCase()) !=
         a.indexOf(f.split(".")[f.split(".").length - 1].toLocaleUpperCase()) !=
         -1
         -1
       ) {
       ) {
+        let _uuurl = await this.checkLink(f);
         this.pptImgUrl =
         this.pptImgUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f);
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
         this.showPDF = false;
         this.showPDF = false;
         this.dialogVisible3 = true;
         this.dialogVisible3 = true;
       } else if (
       } else if (
@@ -17254,7 +17283,7 @@ export default {
       this.isClickNav = i;
       this.isClickNav = i;
       this.$forceUpdate();
       this.$forceUpdate();
     },
     },
-    downFile(f, i) {
+    async downFile(f, i) {
       this.isClickNav = "";
       this.isClickNav = "";
       this.pptImgUrl1 = "";
       this.pptImgUrl1 = "";
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"]; //"PDF",
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"]; //"PDF",
@@ -17263,8 +17292,9 @@ export default {
           f.url.split(".")[f.url.split(".").length - 1].toLocaleUpperCase()
           f.url.split(".")[f.url.split(".").length - 1].toLocaleUpperCase()
         ) != -1
         ) != -1
       ) {
       ) {
+        let _uuurl = await this.checkLink(f.url);
         this.pptImgUrl1 =
         this.pptImgUrl1 =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f.url);
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
         // this.dialogVisible3 = true;
         // this.dialogVisible3 = true;
         this.showType = 2;
         this.showType = 2;
       } else if (
       } else if (
@@ -17990,6 +18020,8 @@ export default {
         window.parent.postMessage({ tools: "61" }, "*");
         window.parent.postMessage({ tools: "61" }, "*");
       } else if (t == 63) {
       } else if (t == 63) {
         window.parent.postMessage({ tools: "63" }, "*");
         window.parent.postMessage({ tools: "63" }, "*");
+      } else if (t == 71) {
+        window.parent.postMessage({ tools: "71" }, "*");
       } else if (t == 69) {
       } else if (t == 69) {
         if (this.worksStudent[i].length) {
         if (this.worksStudent[i].length) {
           for (var k = 0; k < this.worksStudent[i].length; k++) {
           for (var k = 0; k < this.worksStudent[i].length; k++) {
@@ -18574,7 +18606,7 @@ export default {
       this.fulltype = type;
       this.fulltype = type;
       this.fullUrl = url;
       this.fullUrl = url;
     },
     },
-    checkFileFull1(t, f) {
+    async checkFileFull1(t, f) {
       this.fullDialogVisible = true;
       this.fullDialogVisible = true;
       if (t == 6) {
       if (t == 6) {
         this.fulltype = 1;
         this.fulltype = 1;
@@ -18591,8 +18623,9 @@ export default {
         this.fullUrl = f.url;
         this.fullUrl = f.url;
       } else if (t == 3) {
       } else if (t == 3) {
         this.fulltype = 2;
         this.fulltype = 2;
+        let _uuurl = await this.checkLink(f.url);
         this.fullUrl =
         this.fullUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f.url);
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
       }
       }
     },
     },
     openSname(n, id, i, uid) {
     openSname(n, id, i, uid) {
@@ -19713,6 +19746,23 @@ export default {
       this.isCloseList[tool.split('-')[1]].isCloseBoolean = boolean2
       this.isCloseList[tool.split('-')[1]].isCloseBoolean = boolean2
       this.$forceUpdate();
       this.$forceUpdate();
     },
     },
+    async checkLink(url) {
+      // console.log(url)
+      let _url = url
+      try {
+        const response = await fetch(url);
+        if(!response.ok){
+          _url = await this.checkLink("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/" + encodeURIComponent(_url.split('https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/')[1]))
+        }
+        // console.log(response.ok)
+      } catch (error) {
+        console.error('Error checking link:', error);
+        // console.log(false)
+        _url = await this.checkLink("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/" + encodeURIComponent(_url.split('https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/')[1]))
+      }
+      // console.log(_url)
+      return _url 
+    }
   },
   },
   directives: {
   directives: {
     // 使用局部注册指令的方式
     // 使用局部注册指令的方式

+ 66 - 11
src/components/easy3/studyStudent.vue

@@ -216,6 +216,7 @@
                       <div v-if="t.tool == 25">目标管理</div>
                       <div v-if="t.tool == 25">目标管理</div>
                       <div v-if="t.tool == 26">课程设计</div>
                       <div v-if="t.tool == 26">课程设计</div>
                       <div v-if="t.tool == 62">交互视频</div>
                       <div v-if="t.tool == 62">交互视频</div>
+                      <div v-if="t.tool == 71">AI智能体</div>
                     </div>
                     </div>
                   </div>
                   </div>
                 </div>
                 </div>
@@ -1256,6 +1257,14 @@
                             />
                             />
                             <div style="margin: 5px 0">海龟编程</div>
                             <div style="margin: 5px 0">海龟编程</div>
                           </div>
                           </div>
+                          <div v-if="tooC == 71">
+                            <img
+                              @click="addTools(tooC, toolIndex, taskCount)"
+                              src="../../assets/icon/fourthToolList/chatgpt.png"
+                              alt
+                            />
+                            <div style="margin: 5px 0">AI智能体</div>
+                          </div>
                           <div v-if="tooC == 65">
                           <div v-if="tooC == 65">
                             <img
                             <img
                               @click="addTools(tooC, toolIndex, taskCount)"
                               @click="addTools(tooC, toolIndex, taskCount)"
@@ -8493,6 +8502,23 @@
                 <div v-else class="isChoose"></div>
                 <div v-else class="isChoose"></div>
               </div>
               </div>
             </div>
             </div>
+            <div
+              class="tool"
+              :class="{ isToolChoose: checktoolArray.indexOf(71) != -1 }"
+              @click="addTools2(71)"
+            >
+              <div class="whiteBIcon">
+                <img src="../../assets/icon/fourthToolList/chatgpt.png" alt />
+                <div style="margin: 5px 0">AI智能体</div>
+              </div>
+              <div class="check">
+                <div
+                  v-if="checktoolArray.indexOf(71) == -1"
+                  class="noChoose"
+                ></div>
+                <div v-else class="isChoose"></div>
+              </div>
+            </div>
           </div>
           </div>
           <div class="toolSort" v-if="toolType == 7">
           <div class="toolSort" v-if="toolType == 7">
             <div
             <div
@@ -13959,7 +13985,7 @@ export default {
         })
         })
         .catch(() => {});
         .catch(() => {});
     },
     },
-    commentOther(w, toolIndex, wIndex, gindex, gid) {
+    async commentOther(w, toolIndex, wIndex, gindex, gid) {
       this.commentIndexJson = {
       this.commentIndexJson = {
         toolIndex: toolIndex,
         toolIndex: toolIndex,
         wIndex: wIndex,
         wIndex: wIndex,
@@ -13970,7 +13996,7 @@ export default {
       this.commentDialogVisible = true;
       this.commentDialogVisible = true;
       this.commentDetail = w;
       this.commentDetail = w;
       if (w.works && w.type == 1) {
       if (w.works && w.type == 1) {
-        this.pptImgUrl = "";
+        // this.pptImgUrl = "";
         var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
         var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
         if (
         if (
           a.indexOf(
           a.indexOf(
@@ -13979,8 +14005,10 @@ export default {
               [w.works.split(".").length - 1].toLocaleUpperCase()
               [w.works.split(".").length - 1].toLocaleUpperCase()
           ) != -1
           ) != -1
         ) {
         ) {
+          let _uuurl = await this.checkLink(w.works);
+          console.log(_uuurl)
           this.pptImgUrl =
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
           this.showPDF = false;
           this.showPDF = false;
         } else if (
         } else if (
           w.works
           w.works
@@ -14010,7 +14038,7 @@ export default {
           ].toolChoose[toolIndex].wordJson;
           ].toolChoose[toolIndex].wordJson;
       }
       }
     },
     },
-    openScore(w, index) {
+    async openScore(w, index) {
       this.wScore = 0;
       this.wScore = 0;
       this.wScore = w.score ? JSON.parse(w.score).wScore : 0;
       this.wScore = w.score ? JSON.parse(w.score).wScore : 0;
       this.scoreDetail = w.score ? JSON.parse(w.score).detail : "";
       this.scoreDetail = w.score ? JSON.parse(w.score).detail : "";
@@ -14032,8 +14060,10 @@ export default {
               [w.works.split(".").length - 1].toLocaleUpperCase()
               [w.works.split(".").length - 1].toLocaleUpperCase()
           ) != -1
           ) != -1
         ) {
         ) {
+          let _uuurl = await this.checkLink(w.works);
+          console.log(_uuurl)
           this.pptImgUrl =
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
           this.showPDF = false;
           this.showPDF = false;
         } else if (
         } else if (
           w.works
           w.works
@@ -17223,15 +17253,17 @@ export default {
       this.chapTools = this.chapToolList[i][t];
       this.chapTools = this.chapToolList[i][t];
       this.dialogVisible2 = true;
       this.dialogVisible2 = true;
     },
     },
-    openFile(f) {
+    async openFile(f) {
       this.pptImgUrl = "";
       this.pptImgUrl = "";
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
       if (
       if (
         a.indexOf(f.split(".")[f.split(".").length - 1].toLocaleUpperCase()) !=
         a.indexOf(f.split(".")[f.split(".").length - 1].toLocaleUpperCase()) !=
         -1
         -1
       ) {
       ) {
+        let _uuurl = await this.checkLink(f);
+          console.log(_uuurl)
         this.pptImgUrl =
         this.pptImgUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f);
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
         this.showPDF = false;
         this.showPDF = false;
         this.dialogVisible3 = true;
         this.dialogVisible3 = true;
       } else if (
       } else if (
@@ -17272,7 +17304,7 @@ export default {
       this.isClickNav = i;
       this.isClickNav = i;
       this.$forceUpdate();
       this.$forceUpdate();
     },
     },
-    downFile(f, i) {
+    async downFile(f, i) {
       this.isClickNav = "";
       this.isClickNav = "";
       this.pptImgUrl1 = "";
       this.pptImgUrl1 = "";
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"]; //"PDF",
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"]; //"PDF",
@@ -17281,8 +17313,10 @@ export default {
           f.url.split(".")[f.url.split(".").length - 1].toLocaleUpperCase()
           f.url.split(".")[f.url.split(".").length - 1].toLocaleUpperCase()
         ) != -1
         ) != -1
       ) {
       ) {
+        let _uuurl = await this.checkLink(f.url);
+          console.log(_uuurl)
         this.pptImgUrl1 =
         this.pptImgUrl1 =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f.url);
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
         // this.dialogVisible3 = true;
         // this.dialogVisible3 = true;
         this.showType = 2;
         this.showType = 2;
       } else if (
       } else if (
@@ -18010,6 +18044,8 @@ export default {
         window.parent.postMessage({ tools: "61" }, "*");
         window.parent.postMessage({ tools: "61" }, "*");
       } else if (t == 63) {
       } else if (t == 63) {
         window.parent.postMessage({ tools: "63" }, "*");
         window.parent.postMessage({ tools: "63" }, "*");
+      } else if (t == 71) {
+        window.parent.postMessage({ tools: "71" }, "*");
       } else if (t == 69) {
       } else if (t == 69) {
         if (this.worksStudent[i].length) {
         if (this.worksStudent[i].length) {
           for (var k = 0; k < this.worksStudent[i].length; k++) {
           for (var k = 0; k < this.worksStudent[i].length; k++) {
@@ -18594,7 +18630,7 @@ export default {
       this.fulltype = type;
       this.fulltype = type;
       this.fullUrl = url;
       this.fullUrl = url;
     },
     },
-    checkFileFull1(t, f) {
+    async checkFileFull1(t, f) {
       this.fullDialogVisible = true;
       this.fullDialogVisible = true;
       if (t == 6) {
       if (t == 6) {
         this.fulltype = 1;
         this.fulltype = 1;
@@ -18611,8 +18647,10 @@ export default {
         this.fullUrl = f.url;
         this.fullUrl = f.url;
       } else if (t == 3) {
       } else if (t == 3) {
         this.fulltype = 2;
         this.fulltype = 2;
+        let _uuurl = await this.checkLink(f.url);
+          console.log(_uuurl)
         this.fullUrl =
         this.fullUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f.url);
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
       }
       }
     },
     },
     openSname(n, id, i, uid) {
     openSname(n, id, i, uid) {
@@ -19731,6 +19769,23 @@ export default {
       this.isCloseList[tool.split('-')[1]].isCloseBoolean = boolean2
       this.isCloseList[tool.split('-')[1]].isCloseBoolean = boolean2
       this.$forceUpdate();
       this.$forceUpdate();
     },
     },
+    async checkLink(url) {
+      // console.log(url)
+      let _url = url
+      try {
+        const response = await fetch(url);
+        if(!response.ok){
+          _url = await this.checkLink("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/" + encodeURIComponent(_url.split('https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/')[1]))
+        }
+        // console.log(response.ok)
+      } catch (error) {
+        console.error('Error checking link:', error);
+        // console.log(false)
+        _url = await this.checkLink("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/" + encodeURIComponent(_url.split('https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/')[1]))
+      }
+      // console.log(_url)
+      return _url 
+    }
   },
   },
   directives: {
   directives: {
     // 使用局部注册指令的方式
     // 使用局部注册指令的方式

+ 61 - 12
src/components/studyStudent.vue

@@ -227,6 +227,7 @@
                       <div v-if="t.tool == 25">目标管理</div>
                       <div v-if="t.tool == 25">目标管理</div>
                       <div v-if="t.tool == 26">课程设计</div>
                       <div v-if="t.tool == 26">课程设计</div>
                       <div v-if="t.tool == 62">交互视频</div>
                       <div v-if="t.tool == 62">交互视频</div>
+                      <div v-if="t.tool == 71">AI智能体</div>
                     </div>
                     </div>
                   </div>
                   </div>
                 </div>
                 </div>
@@ -1265,6 +1266,14 @@
                             />
                             />
                             <div style="margin: 5px 0">海龟编程</div>
                             <div style="margin: 5px 0">海龟编程</div>
                           </div>
                           </div>
+                          <div v-if="tooC == 71">
+                            <img
+                              @click="addTools(tooC, toolIndex, taskCount)"
+                              src="../assets/icon/fourthToolList/chatgpt.png"
+                              alt
+                            />
+                            <div style="margin: 5px 0">AI智能体</div>
+                          </div>
                           <div v-if="tooC == 65">
                           <div v-if="tooC == 65">
                             <img
                             <img
                               @click="addTools(tooC, toolIndex, taskCount)"
                               @click="addTools(tooC, toolIndex, taskCount)"
@@ -8490,6 +8499,23 @@
                 <div v-else class="isChoose"></div>
                 <div v-else class="isChoose"></div>
               </div>
               </div>
             </div>
             </div>
+            <div
+              class="tool"
+              :class="{ isToolChoose: checktoolArray.indexOf(71) != -1 }"
+              @click="addTools2(71)"
+            >
+              <div class="whiteBIcon">
+                <img src="../assets/icon/fourthToolList/chatgpt.png" alt />
+                <div style="margin: 5px 0">AI智能体</div>
+              </div>
+              <div class="check">
+                <div
+                  v-if="checktoolArray.indexOf(71) == -1"
+                  class="noChoose"
+                ></div>
+                <div v-else class="isChoose"></div>
+              </div>
+            </div>
           </div>
           </div>
           <div class="toolSort" v-if="toolType == 7">
           <div class="toolSort" v-if="toolType == 7">
             <div
             <div
@@ -13936,7 +13962,7 @@ export default {
         })
         })
         .catch(() => {});
         .catch(() => {});
     },
     },
-    commentOther(w, toolIndex, wIndex, gindex, gid) {
+    async commentOther(w, toolIndex, wIndex, gindex, gid) {
       this.commentIndexJson = {
       this.commentIndexJson = {
         toolIndex: toolIndex,
         toolIndex: toolIndex,
         wIndex: wIndex,
         wIndex: wIndex,
@@ -13947,7 +13973,7 @@ export default {
       this.commentDialogVisible = true;
       this.commentDialogVisible = true;
       this.commentDetail = w;
       this.commentDetail = w;
       if (w.works && w.type == 1) {
       if (w.works && w.type == 1) {
-        this.pptImgUrl = "";
+        // this.pptImgUrl = "";
         var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
         var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
         if (
         if (
           a.indexOf(
           a.indexOf(
@@ -13956,8 +13982,9 @@ export default {
               [w.works.split(".").length - 1].toLocaleUpperCase()
               [w.works.split(".").length - 1].toLocaleUpperCase()
           ) != -1
           ) != -1
         ) {
         ) {
+          let _uuurl = await this.checkLink(w.works);
           this.pptImgUrl =
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
           this.showPDF = false;
           this.showPDF = false;
         } else if (
         } else if (
           w.works
           w.works
@@ -13987,7 +14014,7 @@ export default {
           ].toolChoose[toolIndex].wordJson;
           ].toolChoose[toolIndex].wordJson;
       }
       }
     },
     },
-    openScore(w, index) {
+    async openScore(w, index) {
       this.wScore = 0;
       this.wScore = 0;
       this.wScore = w.score ? JSON.parse(w.score).wScore : 0;
       this.wScore = w.score ? JSON.parse(w.score).wScore : 0;
       this.scoreDetail = w.score ? JSON.parse(w.score).detail : "";
       this.scoreDetail = w.score ? JSON.parse(w.score).detail : "";
@@ -14009,8 +14036,9 @@ export default {
               [w.works.split(".").length - 1].toLocaleUpperCase()
               [w.works.split(".").length - 1].toLocaleUpperCase()
           ) != -1
           ) != -1
         ) {
         ) {
+          let _uuurl = await this.checkLink(w.works);
           this.pptImgUrl =
           this.pptImgUrl =
-            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(w.works);
+            "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
           this.showPDF = false;
           this.showPDF = false;
         } else if (
         } else if (
           w.works
           w.works
@@ -17202,15 +17230,16 @@ export default {
       this.chapTools = this.chapToolList[i][t];
       this.chapTools = this.chapToolList[i][t];
       this.dialogVisible2 = true;
       this.dialogVisible2 = true;
     },
     },
-    openFile(f) {
+    async openFile(f) {
       this.pptImgUrl = "";
       this.pptImgUrl = "";
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
       if (
       if (
         a.indexOf(f.split(".")[f.split(".").length - 1].toLocaleUpperCase()) !=
         a.indexOf(f.split(".")[f.split(".").length - 1].toLocaleUpperCase()) !=
         -1
         -1
       ) {
       ) {
+        let _uuurl = await this.checkLink(f);
         this.pptImgUrl =
         this.pptImgUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f);
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
         this.showPDF = false;
         this.showPDF = false;
         this.dialogVisible3 = true;
         this.dialogVisible3 = true;
       } else if (
       } else if (
@@ -17251,7 +17280,7 @@ export default {
       this.isClickNav = i;
       this.isClickNav = i;
       this.$forceUpdate();
       this.$forceUpdate();
     },
     },
-    downFile(f, i) {
+    async downFile(f, i) {
       this.isClickNav = "";
       this.isClickNav = "";
       this.pptImgUrl1 = "";
       this.pptImgUrl1 = "";
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"]; //"PDF",
       var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"]; //"PDF",
@@ -17260,8 +17289,9 @@ export default {
           f.url.split(".")[f.url.split(".").length - 1].toLocaleUpperCase()
           f.url.split(".")[f.url.split(".").length - 1].toLocaleUpperCase()
         ) != -1
         ) != -1
       ) {
       ) {
+        let _uuurl = await this.checkLink(f.url);
         this.pptImgUrl1 =
         this.pptImgUrl1 =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f.url);
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
         // this.dialogVisible3 = true;
         // this.dialogVisible3 = true;
         this.showType = 2;
         this.showType = 2;
       } else if (
       } else if (
@@ -17988,6 +18018,8 @@ export default {
         window.parent.postMessage({ tools: "61" }, "*");
         window.parent.postMessage({ tools: "61" }, "*");
       } else if (t == 63) {
       } else if (t == 63) {
         window.parent.postMessage({ tools: "63" }, "*");
         window.parent.postMessage({ tools: "63" }, "*");
+      } else if (t == 71) {
+        window.parent.postMessage({ tools: "71" }, "*");
       } else if (t == 69) {
       } else if (t == 69) {
         if (this.worksStudent[i].length) {
         if (this.worksStudent[i].length) {
           for (var k = 0; k < this.worksStudent[i].length; k++) {
           for (var k = 0; k < this.worksStudent[i].length; k++) {
@@ -18572,7 +18604,7 @@ export default {
       this.fulltype = type;
       this.fulltype = type;
       this.fullUrl = url;
       this.fullUrl = url;
     },
     },
-    checkFileFull1(t, f) {
+    async checkFileFull1(t, f) {
       this.fullDialogVisible = true;
       this.fullDialogVisible = true;
       if (t == 6) {
       if (t == 6) {
         this.fulltype = 1;
         this.fulltype = 1;
@@ -18589,8 +18621,9 @@ export default {
         this.fullUrl = f.url;
         this.fullUrl = f.url;
       } else if (t == 3) {
       } else if (t == 3) {
         this.fulltype = 2;
         this.fulltype = 2;
+        let _uuurl = await this.checkLink(f.url);
         this.fullUrl =
         this.fullUrl =
-          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(f.url);
+          "https://view.officeapps.live.com/op/view.aspx?src=" + encodeURIComponent(_uuurl);
       }
       }
     },
     },
     openSname(n, id, i, uid) {
     openSname(n, id, i, uid) {
@@ -19705,6 +19738,23 @@ export default {
       this.isCloseList[tool.split('-')[1]].isCloseBoolean = boolean2
       this.isCloseList[tool.split('-')[1]].isCloseBoolean = boolean2
       this.$forceUpdate();
       this.$forceUpdate();
     },
     },
+    async checkLink(url) {
+      console.log(url)
+      let _url = url
+      try {
+        const response = await fetch(url);
+        if(!response.ok){
+          _url = await this.checkLink("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/" + encodeURIComponent(_url.split('https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/')[1]))
+        }
+        console.log(response.ok)
+      } catch (error) {
+        console.error('Error checking link:', error);
+        // console.log(false)
+        _url = await this.checkLink("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/" + encodeURIComponent(_url.split('https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/')[1]))
+      }
+      // console.log(_url)
+      return _url 
+    }
   },
   },
   directives: {
   directives: {
     // 使用局部注册指令的方式
     // 使用局部注册指令的方式
@@ -19856,7 +19906,6 @@ export default {
         return c;
         return c;
       };
       };
     },
     },
-
   },
   },
   mounted() {
   mounted() {
     document.body.addEventListener("click", (e) => {
     document.body.addEventListener("click", (e) => {

Vissa filer visades inte eftersom för många filer har ändrats