瀏覽代碼

课堂助手

SanHQin 11 月之前
父節點
當前提交
887ed32bbf

File diff suppressed because it is too large
+ 156 - 128
src/components/classRoomHelper/component/AnnotationCanvas.vue


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

@@ -476,7 +476,7 @@
                 fill="none"
                 @click.stop="changeMegaphone()"
                 xmlns="http://www.w3.org/2000/svg"
-								v-if="!openMegaphone"
+                v-if="!openMegaphone"
               >
                 <path
                   fill-rule="evenodd"
@@ -494,19 +494,39 @@
                 />
               </svg>
 
-							<svg v-else  @click.stop="changeMegaphone()" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M13.65 2.02537C13.9812 1.7766 14.4513 1.84342 14.7001 2.17461C16.3635 4.38918 17.3495 7.14305 17.3495 10.125C17.3495 13.107 16.3635 15.8609 14.7001 18.0755C14.4513 18.4067 13.9812 18.4735 13.65 18.2247C13.3188 17.9759 13.252 17.5058 13.5007 17.1746C14.9758 15.2109 15.8495 12.7711 15.8495 10.125C15.8495 7.47901 14.9758 5.03921 13.5007 3.07548C13.252 2.74429 13.3188 2.27414 13.65 2.02537Z" fill="#3681FC"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M8.64952 5.77537C8.98072 5.5266 9.45087 5.59342 9.69963 5.92461C10.5784 7.09461 11.0995 8.55006 11.0995 10.125C11.0995 11.7 10.5784 13.1555 9.69963 14.3255C9.45087 14.6567 8.98072 14.7235 8.64952 14.4747C8.31833 14.226 8.25152 13.7558 8.50028 13.4246C9.19069 12.5055 9.5995 11.3641 9.5995 10.125C9.5995 8.88601 9.19069 7.74463 8.50028 6.82548C8.25152 6.49429 8.31833 6.02414 8.64952 5.77537Z" fill="#3681FC"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M4.00873 9.07423C4.31294 8.79311 4.78744 8.81182 5.06857 9.11603C5.3975 9.47198 5.59951 9.94984 5.59951 10.4732C5.59951 11.0115 5.38582 11.5015 5.04023 11.8604C4.75291 12.1588 4.27812 12.1677 3.97976 11.8804C3.6814 11.5931 3.67245 11.1183 3.95977 10.8199C4.04703 10.7293 4.09951 10.6082 4.09951 10.4732C4.09951 10.3419 4.04986 10.2238 3.96693 10.1341C3.68581 9.82986 3.70452 9.35535 4.00873 9.07423Z" fill="#3681FC"/>
-</svg>
-
-							
-							</el-tooltip
+              <svg
+                v-else
+                @click.stop="changeMegaphone()"
+                width="20"
+                height="20"
+                viewBox="0 0 20 20"
+                fill="none"
+                xmlns="http://www.w3.org/2000/svg"
+              >
+                <path
+                  fill-rule="evenodd"
+                  clip-rule="evenodd"
+                  d="M13.65 2.02537C13.9812 1.7766 14.4513 1.84342 14.7001 2.17461C16.3635 4.38918 17.3495 7.14305 17.3495 10.125C17.3495 13.107 16.3635 15.8609 14.7001 18.0755C14.4513 18.4067 13.9812 18.4735 13.65 18.2247C13.3188 17.9759 13.252 17.5058 13.5007 17.1746C14.9758 15.2109 15.8495 12.7711 15.8495 10.125C15.8495 7.47901 14.9758 5.03921 13.5007 3.07548C13.252 2.74429 13.3188 2.27414 13.65 2.02537Z"
+                  fill="#3681FC"
+                />
+                <path
+                  fill-rule="evenodd"
+                  clip-rule="evenodd"
+                  d="M8.64952 5.77537C8.98072 5.5266 9.45087 5.59342 9.69963 5.92461C10.5784 7.09461 11.0995 8.55006 11.0995 10.125C11.0995 11.7 10.5784 13.1555 9.69963 14.3255C9.45087 14.6567 8.98072 14.7235 8.64952 14.4747C8.31833 14.226 8.25152 13.7558 8.50028 13.4246C9.19069 12.5055 9.5995 11.3641 9.5995 10.125C9.5995 8.88601 9.19069 7.74463 8.50028 6.82548C8.25152 6.49429 8.31833 6.02414 8.64952 5.77537Z"
+                  fill="#3681FC"
+                />
+                <path
+                  fill-rule="evenodd"
+                  clip-rule="evenodd"
+                  d="M4.00873 9.07423C4.31294 8.79311 4.78744 8.81182 5.06857 9.11603C5.3975 9.47198 5.59951 9.94984 5.59951 10.4732C5.59951 11.0115 5.38582 11.5015 5.04023 11.8604C4.75291 12.1588 4.27812 12.1677 3.97976 11.8804C3.6814 11.5931 3.67245 11.1183 3.95977 10.8199C4.04703 10.7293 4.09951 10.6082 4.09951 10.4732C4.09951 10.3419 4.04986 10.2238 3.96693 10.1341C3.68581 9.82986 3.70452 9.35535 4.00873 9.07423Z"
+                  fill="#3681FC"
+                />
+              </svg> </el-tooltip
           ></span>
         </div>
         <div class="s_b_bat_right">
           <!-- <img :src="require('../../../assets/icon/course/bulb.svg')"> -->
-          <span>
+          <span v-if="!canShowTips">
             <svg
               width="20"
               height="20"
@@ -572,6 +592,166 @@
               />
             </svg>
           </span>
+
+          <span v-else @click.stop="showTipsFn()">
+            <svg
+              width="20"
+              height="21"
+              viewBox="0 0 20 21"
+              fill="none"
+              xmlns="http://www.w3.org/2000/svg"
+            >
+              <circle cx="10" cy="10.0732" r="5" fill="#FFE607" />
+              <path
+                fill-rule="evenodd"
+                clip-rule="evenodd"
+                d="M10 6.32324C7.92893 6.32324 6.25 8.00217 6.25 10.0732C6.25 12.1443 7.92893 13.8232 10 13.8232C12.0711 13.8232 13.75 12.1443 13.75 10.0732C13.75 8.00217 12.0711 6.32324 10 6.32324ZM5 10.0732C5 7.31182 7.23858 5.07324 10 5.07324C12.7614 5.07324 15 7.31182 15 10.0732C15 12.8347 12.7614 15.0732 10 15.0732C7.23858 15.0732 5 12.8347 5 10.0732Z"
+                fill="black"
+                fill-opacity="0.9"
+              />
+              <path
+                fill-rule="evenodd"
+                clip-rule="evenodd"
+                d="M10 1.32324C10.3452 1.32324 10.625 1.60306 10.625 1.94824V3.19824C10.625 3.54342 10.3452 3.82324 10 3.82324C9.65482 3.82324 9.375 3.54342 9.375 3.19824V1.94824C9.375 1.60306 9.65482 1.32324 10 1.32324Z"
+                fill="black"
+                fill-opacity="0.9"
+              />
+              <path
+                fill-rule="evenodd"
+                clip-rule="evenodd"
+                d="M18.75 10.0732C18.75 10.4184 18.4702 10.6982 18.125 10.6982L16.875 10.6982C16.5298 10.6982 16.25 10.4184 16.25 10.0732C16.25 9.72806 16.5298 9.44824 16.875 9.44824L18.125 9.44824C18.4702 9.44824 18.75 9.72806 18.75 10.0732Z"
+                fill="black"
+                fill-opacity="0.9"
+              />
+              <path
+                fill-rule="evenodd"
+                clip-rule="evenodd"
+                d="M3.75 10.0732C3.75 10.4184 3.47018 10.6982 3.125 10.6982L1.875 10.6982C1.52982 10.6982 1.25 10.4184 1.25 10.0732C1.25 9.72806 1.52982 9.44824 1.875 9.44824L3.125 9.44824C3.47018 9.44824 3.75 9.72806 3.75 10.0732Z"
+                fill="black"
+                fill-opacity="0.9"
+              />
+              <path
+                fill-rule="evenodd"
+                clip-rule="evenodd"
+                d="M5.58052 5.65386C5.33644 5.89793 4.94071 5.89793 4.69664 5.65386L3.81275 4.76997C3.56867 4.52589 3.56867 4.13017 3.81275 3.88609C4.05683 3.64201 4.45256 3.64201 4.69664 3.88609L5.58052 4.76997C5.8246 5.01405 5.8246 5.40978 5.58052 5.65386Z"
+                fill="black"
+                fill-opacity="0.9"
+              />
+              <path
+                fill-rule="evenodd"
+                clip-rule="evenodd"
+                d="M14.4194 5.65376C14.1753 5.40968 14.1753 5.01396 14.4194 4.76988L15.3033 3.88599C15.5473 3.64192 15.9431 3.64192 16.1872 3.88599C16.4312 4.13007 16.4312 4.5258 16.1872 4.76988L15.3033 5.65376C15.0592 5.89784 14.6635 5.89784 14.4194 5.65376Z"
+                fill="black"
+                fill-opacity="0.9"
+              />
+              <path
+                fill-rule="evenodd"
+                clip-rule="evenodd"
+                d="M8.75 18.1982C8.75 17.8531 9.02982 17.5732 9.375 17.5732H10.625C10.9702 17.5732 11.25 17.8531 11.25 18.1982C11.25 18.5434 10.9702 18.8232 10.625 18.8232H9.375C9.02982 18.8232 8.75 18.5434 8.75 18.1982Z"
+                fill="black"
+                fill-opacity="0.9"
+              />
+              <path
+                fill-rule="evenodd"
+                clip-rule="evenodd"
+                d="M7.5 16.3232C7.5 15.9781 7.77982 15.6982 8.125 15.6982H11.875C12.2202 15.6982 12.5 15.9781 12.5 16.3232C12.5 16.6684 12.2202 16.9482 11.875 16.9482H8.125C7.77982 16.9482 7.5 16.6684 7.5 16.3232Z"
+                fill="black"
+                fill-opacity="0.9"
+              />
+            </svg>
+          </span>
+
+          <div class="tips" v-if="showTips">
+            <div class="tipsList">
+							<div v-for="(item,index) in showTipsList" :key="index">{{ index+1 }}.{{ item }}</div>
+						</div>
+            <div class="tipsBottom">
+              <div @click.stop="showTips = false">
+                <svg
+                  width="20"
+                  height="20"
+                  viewBox="0 0 20 20"
+                  fill="none"
+                  xmlns="http://www.w3.org/2000/svg"
+                >
+                  <circle cx="10" cy="10" r="5" fill="#FFE607" />
+                  <path
+                    fill-rule="evenodd"
+                    clip-rule="evenodd"
+                    d="M10 6.25C7.92893 6.25 6.25 7.92893 6.25 10C6.25 12.0711 7.92893 13.75 10 13.75C12.0711 13.75 13.75 12.0711 13.75 10C13.75 7.92893 12.0711 6.25 10 6.25ZM5 10C5 7.23858 7.23858 5 10 5C12.7614 5 15 7.23858 15 10C15 12.7614 12.7614 15 10 15C7.23858 15 5 12.7614 5 10Z"
+                    fill="black"
+                    fill-opacity="0.9"
+                  />
+                  <path
+                    fill-rule="evenodd"
+                    clip-rule="evenodd"
+                    d="M10 1.25C10.3452 1.25 10.625 1.52982 10.625 1.875V3.125C10.625 3.47018 10.3452 3.75 10 3.75C9.65482 3.75 9.375 3.47018 9.375 3.125V1.875C9.375 1.52982 9.65482 1.25 10 1.25Z"
+                    fill="black"
+                    fill-opacity="0.9"
+                  />
+                  <path
+                    fill-rule="evenodd"
+                    clip-rule="evenodd"
+                    d="M18.75 10C18.75 10.3452 18.4702 10.625 18.125 10.625L16.875 10.625C16.5298 10.625 16.25 10.3452 16.25 10C16.25 9.65482 16.5298 9.375 16.875 9.375L18.125 9.375C18.4702 9.375 18.75 9.65482 18.75 10Z"
+                    fill="black"
+                    fill-opacity="0.9"
+                  />
+                  <path
+                    fill-rule="evenodd"
+                    clip-rule="evenodd"
+                    d="M3.75 10C3.75 10.3452 3.47018 10.625 3.125 10.625L1.875 10.625C1.52982 10.625 1.25 10.3452 1.25 10C1.25 9.65482 1.52982 9.375 1.875 9.375L3.125 9.375C3.47018 9.375 3.75 9.65482 3.75 10Z"
+                    fill="black"
+                    fill-opacity="0.9"
+                  />
+                  <path
+                    fill-rule="evenodd"
+                    clip-rule="evenodd"
+                    d="M5.58052 5.58061C5.33644 5.82469 4.94071 5.82469 4.69664 5.58061L3.81275 4.69673C3.56867 4.45265 3.56867 4.05692 3.81275 3.81285C4.05683 3.56877 4.45256 3.56877 4.69664 3.81285L5.58052 4.69673C5.8246 4.94081 5.8246 5.33654 5.58052 5.58061Z"
+                    fill="black"
+                    fill-opacity="0.9"
+                  />
+                  <path
+                    fill-rule="evenodd"
+                    clip-rule="evenodd"
+                    d="M14.4194 5.58052C14.1753 5.33644 14.1753 4.94071 14.4194 4.69664L15.3033 3.81275C15.5473 3.56867 15.9431 3.56867 16.1872 3.81275C16.4312 4.05683 16.4312 4.45256 16.1872 4.69664L15.3033 5.58052C15.0592 5.8246 14.6635 5.8246 14.4194 5.58052Z"
+                    fill="black"
+                    fill-opacity="0.9"
+                  />
+                  <path
+                    fill-rule="evenodd"
+                    clip-rule="evenodd"
+                    d="M8.75 18.125C8.75 17.7798 9.02982 17.5 9.375 17.5H10.625C10.9702 17.5 11.25 17.7798 11.25 18.125C11.25 18.4702 10.9702 18.75 10.625 18.75H9.375C9.02982 18.75 8.75 18.4702 8.75 18.125Z"
+                    fill="black"
+                    fill-opacity="0.9"
+                  />
+                  <path
+                    fill-rule="evenodd"
+                    clip-rule="evenodd"
+                    d="M7.5 16.25C7.5 15.9048 7.77982 15.625 8.125 15.625H11.875C12.2202 15.625 12.5 15.9048 12.5 16.25C12.5 16.5952 12.2202 16.875 11.875 16.875H8.125C7.77982 16.875 7.5 16.5952 7.5 16.25Z"
+                    fill="black"
+                    fill-opacity="0.9"
+                  />
+                </svg>
+                <span>课堂小贴士</span>
+                <svg
+                  width="16"
+                  height="16"
+                  viewBox="0 0 16 16"
+                  fill="none"
+                  xmlns="http://www.w3.org/2000/svg"
+                >
+                  <path
+                    fill-rule="evenodd"
+                    clip-rule="evenodd"
+                    d="M12.8737 5.66782C13.0572 5.87421 13.0386 6.19025 12.8322 6.37371L8.33218 10.3737C8.14273 10.5421 7.85726 10.5421 7.66781 10.3737L3.16781 6.37371C2.96142 6.19025 2.94283 5.87421 3.12629 5.66782C3.30975 5.46143 3.62578 5.44284 3.83218 5.6263L7.99999 9.33103L12.1678 5.6263C12.3742 5.44284 12.6902 5.46143 12.8737 5.66782Z"
+                    fill="black"
+                    fill-opacity="0.6"
+                  />
+                </svg>
+              </div>
+            </div>
+          </div>
+          <!-- <div></div> -->
         </div>
       </div>
       <div class="s_b_btnArea">
@@ -1163,10 +1343,21 @@
             placement="top"
           >
             <span style="background-color: #3681FC;">
-              <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M10.568 6.01235C8.05196 6.01235 6.01235 8.05196 6.01235 10.568C6.01235 13.0839 8.05196 15.1235 10.568 15.1235C11.8261 15.1235 12.9643 14.6142 13.7892 13.7892C14.6142 12.9643 15.1235 11.8261 15.1235 10.568C15.1235 8.05196 13.0839 6.01235 10.568 6.01235ZM5 10.568C5 7.49286 7.49286 5 10.568 5C13.643 5 16.1359 7.49286 16.1359 10.568C16.1359 11.923 15.6513 13.1657 14.8468 14.1309L16.6421 15.9262C16.8398 16.1239 16.8398 16.4444 16.6421 16.6421C16.4444 16.8398 16.1239 16.8398 15.9262 16.6421L14.1309 14.8468C13.1657 15.6513 11.923 16.1359 10.568 16.1359C7.49286 16.1359 5 13.643 5 10.568Z" fill="white" fill-opacity="0.9"/>
-</svg>
-
+              <svg
+                width="22"
+                height="22"
+                viewBox="0 0 22 22"
+                fill="none"
+                xmlns="http://www.w3.org/2000/svg"
+              >
+                <path
+                  fill-rule="evenodd"
+                  clip-rule="evenodd"
+                  d="M10.568 6.01235C8.05196 6.01235 6.01235 8.05196 6.01235 10.568C6.01235 13.0839 8.05196 15.1235 10.568 15.1235C11.8261 15.1235 12.9643 14.6142 13.7892 13.7892C14.6142 12.9643 15.1235 11.8261 15.1235 10.568C15.1235 8.05196 13.0839 6.01235 10.568 6.01235ZM5 10.568C5 7.49286 7.49286 5 10.568 5C13.643 5 16.1359 7.49286 16.1359 10.568C16.1359 11.923 15.6513 13.1657 14.8468 14.1309L16.6421 15.9262C16.8398 16.1239 16.8398 16.4444 16.6421 16.6421C16.4444 16.8398 16.1239 16.8398 15.9262 16.6421L14.1309 14.8468C13.1657 15.6513 11.923 16.1359 10.568 16.1359C7.49286 16.1359 5 13.643 5 10.568Z"
+                  fill="white"
+                  fill-opacity="0.9"
+                />
+              </svg>
             </span>
           </el-tooltip>
         </div>
@@ -1223,7 +1414,19 @@ export default {
     openMegaphone: {
       type: Boolean,
       default: false
-    }
+    },
+    canShowTips: {
+      type: Boolean,
+      default: false
+    },
+    showTipsLoading: {
+      type: Boolean,
+      default: false
+    },
+    tipsList: {
+      type: Array,
+      default: () => []
+    },
   },
   data() {
     return {
@@ -1298,7 +1501,9 @@ export default {
       roleList2: [],
       sortOption: 0, //切换角色 0我的 1 社区
       roleText: "",
-      isReadonly: true
+      isReadonly: true,
+      showTips: false,
+			showTipsList:[],
     };
   },
   computed: {
@@ -1423,6 +1628,10 @@ export default {
     }
   },
   methods: {
+    showTipsFn() {
+			this.showTipsList = this.tipsList[this.tipsList.length-1]
+      this.showTips = true;
+    },
     insertMemorandum(_html) {
       //保存行为操作
       //variable
@@ -1848,7 +2057,7 @@ export default {
         session_name: `${this.courseId}-studyStudent-md`,
         uid: _uuid,
         file_ids: this.fileId,
-				model: "gpt-4o-2024-08-06",
+        model: "gpt-4o-2024-08-06"
       };
       // let params = {
       //   model: "gpt-3.5-turbo",
@@ -2018,7 +2227,7 @@ ${_atList
         session_name: `${this.courseId}-studyStudent-md`,
         uid: _uuid,
         file_ids: this.fileId,
-				model: "gpt-4o-2024-08-06",
+        model: "gpt-4o-2024-08-06"
       };
       // let params = {
       //   model: "gpt-3.5-turbo",
@@ -2421,7 +2630,7 @@ Instruction: Based on the context, follow "Format example", write content
         session_name: _uuid,
         // uid: _uuid,
         file_ids: this.fileId,
-				model: "gpt-4o-2024-08-06",
+        model: "gpt-4o-2024-08-06"
       };
       // let params = {
       //   message: {
@@ -2534,7 +2743,7 @@ Instruction: Based on the context, follow "Format example", write content
         session_name: _uuid,
         // uid: _uuid,
         file_ids: this.fileId,
-				model: "gpt-4o-2024-08-06",
+        model: "gpt-4o-2024-08-06"
       };
       // let params = {
       //   message: {
@@ -2790,7 +2999,7 @@ ${_wordData}
             session_name: `${this.courseId}-studyStudent-md`,
             uid: _uuid,
             file_ids: this.fileId,
-						model: "gpt-4o-2024-08-06",
+            model: "gpt-4o-2024-08-06"
           };
           // let params = {
           //   model: "gpt-3.5-turbo",
@@ -2988,7 +3197,7 @@ ${_wordData}
         session_name: `${this.courseId}-studyStudent-md`,
         uid: _uuid,
         file_ids: this.fileId,
-				model: "gpt-4o-2024-08-06",
+        model: "gpt-4o-2024-08-06"
       };
       // let params = {
       //     model: "gpt-3.5-turbo",
@@ -3116,10 +3325,10 @@ ${_wordData}
       // 	this.aiIsTalk = true;
       // }
     },
-		changeMegaphone(){
-			this.$parent.changeMegaphone()
-			if(this.aiIsTalk){
-				try {
+    changeMegaphone() {
+      this.$parent.changeMegaphone();
+      if (this.aiIsTalk) {
+        try {
           this.aiTalkList = [];
           let _talkTextIiframe2 = this.$refs.iiframe2;
           _talkTextIiframe2.contentWindow.pausesynthesizer();
@@ -3129,8 +3338,8 @@ ${_wordData}
           this.aiTalkList = [];
           this.aiIsTalk = false;
         }
-			}
-		},
+      }
+    },
     aiTalkAll(item) {
       if (this.aiTalkUid == item.uid && this.aiIsTalk) {
         try {
@@ -3274,10 +3483,10 @@ ${_wordData}
   width: 100%;
   height: 100%;
   box-sizing: border-box;
-	position: relative;
-	display: flex;
-	flex-direction: column;
-	justify-content: flex-end;
+  position: relative;
+  display: flex;
+  flex-direction: column;
+  justify-content: flex-end;
 }
 .checkboxCss {
   color: #fff;
@@ -3309,9 +3518,9 @@ ${_wordData}
   overflow-x: hidden;
   box-sizing: border-box;
   padding: 20px 0;
-	position: absolute;
+  position: absolute;
   padding-bottom: 70px;
-	top: 0;
+  top: 0;
 }
 
 .s_t_chat {
@@ -3550,7 +3759,7 @@ ${_wordData}
   align-items: center;
   box-sizing: border-box;
   padding: 0 10px;
-  overflow: auto;
+  /* overflow: auto; */
   display: flex;
   justify-content: space-between;
 }
@@ -3588,6 +3797,10 @@ ${_wordData}
   height: 20px;
 }
 
+.s_b_bat_right {
+  position: relative;
+}
+
 .s_b_bat_right > span {
   padding: 3px 10px;
   background: #fff;
@@ -3600,6 +3813,7 @@ ${_wordData}
   justify-content: center;
   align-items: center;
   cursor: pointer;
+  position: relative;
 }
 
 .s_b_bat_right > span > svg {
@@ -3621,6 +3835,57 @@ ${_wordData}
   margin-right: 5px;
 }
 
+.tips {
+  width: 380px;
+  position: absolute;
+  bottom: 0;
+  right: 0;
+  box-sizing: border-box;
+  padding:20px 15px 12px 15px;
+  border-radius: 8px;
+  background: #ffffff;
+  border: 1px solid #f0f2f5;
+	display: flex;
+	flex-direction: column;
+	justify-content: space-between;
+
+  box-shadow: 0px 8px 10px -5px #00000014;
+
+  box-shadow: 0px 16px 24px 2px #0000000a;
+
+  box-shadow: 0px 6px 30px 5px #0000000d;
+	z-index: 2001;
+}
+
+.tipsList{
+	width: 100%;
+	height: auto;
+}
+
+.tipsList>div{
+	margin-bottom:20px;
+	width: 100%;
+	height: auto; 
+}
+
+.tipsBottom {
+  width: 100%;
+  height: auto;
+  display: flex;
+  justify-content: flex-end;
+}
+
+.tipsBottom>div{
+	display: flex;
+	justify-content: center;
+	align-items: center;
+	cursor: pointer;
+}
+
+.tipsBottom>div>span{
+	margin: 0 5px
+}
+
 .s_b_btnArea {
   width: 100%;
   height: 30px;
@@ -4281,13 +4546,13 @@ ${_wordData}
 }
 
 .cs_b_i_avatar {
-	width: 50px;
-	height: 50px;
-	display: flex;
-	justify-content: center;
-	align-items: center;
+  width: 50px;
+  height: 50px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
   background-color: #ffffffe5;
-	border-radius: 8px;
+  border-radius: 8px;
 }
 
 .cs_b_item:hover {
@@ -4297,13 +4562,13 @@ ${_wordData}
 .cs_b_i_name {
   font-weight: bold;
   color: #768196;
-	font-size: 14px;
+  font-size: 14px;
 }
 
 .cs_b_i_des {
   color: #768196;
-	margin-top: 5px;
-	font-size: 12px;
+  margin-top: 5px;
+  font-size: 12px;
 }
 
 .cs_box > .cs_b_item:nth-of-type(3n + 2) {

+ 92 - 2
src/components/classRoomHelper/index.vue

@@ -10,6 +10,9 @@
         :fileId="fileId"
         :recordType="recordType"
         v-if="itemType == 1"
+				:canShowTips="canShowTips"
+				:showTipsLoading="showTipsLoading"
+				:tipsList="tipsList"
       />
       <taskArea
         :courseDetail="courseDetail"
@@ -259,6 +262,7 @@ import timepiece from "./component/timepiece.vue";
 import countdown from "./component/countdown.vue";
 import AnnotationCanvas from "./component/AnnotationCanvas.vue";
 import languageAssistant from "./component/languageAssistant.vue";
+import { v4 as uuidv4 } from "uuid";
 // 自定义指令,用于处理点击外部区域的事件
 const clickOutside = {
   bind(el, binding) {
@@ -352,14 +356,100 @@ export default {
       fold: false,
       openMegaphone: false, //是否打开喇叭
       getFileIdLoading: false,
-      AnnotationCanvasShow: false
+      AnnotationCanvasShow: false,
+			canShowTips:false,
+			showTipsLoading:false,
+			tipsList:[],
+			firstEnterTime:null
     };
   },
   mounted() {
     this.setWidth();
     this.getFileId();
+		this.firstEnterTime = new Date().getTime();
+		setTimeout(()=>{
+			this.getTipsList()
+		},3000)
   },
   methods: {
+		getTipsList(){
+			this.showTipsLoading = true;
+			let nowTaskObj = this.navList[this.courseType].task[this.taskCount]
+			let nowTask = `【任务${this.taskCount+1}:${nowTaskObj.taskName}】`
+			let _textData = `课程名称:${this.courseDetail.title}\n分类:${this.courseDetail.name}\n\n`;
+      let _chapters = JSON.parse(this.courseDetail.chapters);
+      _chapters.forEach((i1, index1) => {
+        if (i1.dyName) {
+          _textData += `阶段${index1 + 1}:${i1.dyName}\n`;
+        }
+        i1.chapterInfo[0].taskJson.forEach((i2, index2) => {
+          if (i2.task) {
+            _textData += `任务${index2 + 1}:${i2.task}\n`;
+            _textData += `${i2.taskDetail}\n`;
+          }
+        });
+        _textData += "\n";
+      });
+			let _msg = `Language: Please use the same language as the user requirement, if the user speaks Chinese, the specific text of your answer should also be in Chinese.
+ATTENTION: Use '##' to SPLIT SECTIONS, not '#'. Output format carefully referenced "Format example".
+Instruction: Based on the context, follow "Format example", write content
+
+#Context
+## 任务
+你是专业的教学评估员,擅长分析课堂动态和学生的认知状态,能够根据教师的当前思路提供有效的教学建议。
+你需要根据我提供的信息,推测分析,之后给出3个具体的操作步骤的建议。
+
+##工作流程
+
+1. 仔细阅读并分析我提供的课堂信息或课堂实录内容。
+2. 观察课堂上学生的行为和反应,推测他们的认知状态。
+3. 通过教师的言行和教学安排,推测教师当前的思路和教学目标。
+4. 根据教师的思路和学生的认知状态,提出一个教学建议,并给出3个具体的操作步骤。只需要描述对应的动作,不需要指出该动作的目标和作用。
+
+##输出
+
+###输出要求
+1. 最终输出仅包含具体操作步骤。
+2. 具体操作步骤以数组形式输出,包含3个步骤。
+3. 严格按照Format example里的格式输出
+
+##Format example
+["(使用1句话描述)","(使用1句话描述)","(使用1句话描述)"]
+
+##课堂内容
+当前进行到:${nowTask}
+
+${_textData}
+`
+let params = {
+        assistant_id: "6063369f-289a-11ef-8bf4-12e77c4cb76b",
+        userId: this.userid,
+        message: [{ type: "text", text: _msg }],
+        session_name: uuidv4(),
+        // uid: _uuid,
+        file_ids: this.fileId,
+				model: "gpt-4o-2024-08-06",
+      };
+			console.log(params)
+      this.ajax
+        // .post("https://gpt4.cocorobo.cn/chat", params)
+        // .post("https://claude3.cocorobo.cn/chat", params)
+        .post("https://gpt4.cocorobo.cn/ai_agent_park_chat", params)
+        .then(res => {
+          let _data = res.data.FunctionResponse.message;
+          _data = _data.replaceAll("```json", "").replaceAll("```", "");
+          const match = _data.match(/\[\s*[^]*\s*\]/);
+          let _result = JSON.parse(match[0]) || [];
+					this.tipsList.push(_result)
+          this.showTipsLoading = false;
+					this.canShowTips = true;
+        })
+        .catch(e => {
+          this.showTipsLoading = false;
+          this.$message.error("获取课堂小贴士失败");
+          console.log(e);
+        });
+		},
 		handleBlur(){
 			// console.log(this.fold)
 			this.fold = !this.fold;
@@ -456,7 +546,7 @@ export default {
       this.fileId = [];
       let _this = this;
       let _successFileUrl = [];
-      if (this.fileList.length <= 0) retrun;
+      if (this.fileList.length <= 0) return;
       let addType = ["DOCX", "DOC", "PPT", "PPTX", "MD", "TXT", "PDF"];
       this.fileList.forEach(i => {
         if (

Some files were not shown because too many files changed in this diff