Browse Source

feat: 在AI聊天组件中添加课程ID参数并关联操作记录

为CollapsibleToolbar和AiChat组件添加courseid属性,用于传递课程标识
在发送AI消息时,若存在课程ID则调用addPPTOp2记录操作
lsc 2 weeks ago
parent
commit
9883a5740b

+ 15 - 1
src/components/CollapsibleToolbar/componets/aiChat.vue

@@ -216,7 +216,7 @@ import { chat_no_stream, chat_stream, getAgentModel, chat_no_stream2 } from '@/t
 import { useSlidesStore, useMainStore } from '@/store'
 import { lang } from '@/main'
 import MarkdownIt from 'markdown-it'
-import { getWorkPageId } from '@/services/course'
+import { getWorkPageId, addPPTOp2 } from '@/services/course'
 import FileInput from '@/components/FileInput2.vue'
 import axios from '@/services/config'
 import message from '@/utils/message'
@@ -270,9 +270,11 @@ const props = withDefaults(defineProps<{
   userid?: string | null
   userJson?: any
   courseTitle?: string | null
+  courseid?: string | null
 }>(), {
   userid: null,
   userJson: null,
+  courseid: null,
   courseTitle: null,
 })
 
@@ -313,6 +315,18 @@ const sendMessage = () => {
   if (chatLoading.value) {
     return
   }
+  if (props.courseid) {
+    addPPTOp2({
+      id: props.courseid,
+      userid: props.userid || '',
+      type: '4',
+      index: 0, // 获取当前ppt页面的id
+      data: inputText.value
+    }).then(res => {
+      console.log('res', res)
+    })
+  }
+
   // 检查是否有文件正在处理中
   const hasProcessingFile = files.value.some(file => file.isProcessing)
   if (hasProcessingFile) {

+ 3 - 1
src/components/CollapsibleToolbar/index2.vue

@@ -124,7 +124,7 @@
         </div>
       </div>
       <div class="submenu-content">
-        <AiChat ref="aiChatRef" :userid="props.userid" :userJson="userJson" :courseTitle="props.courseTitle" />
+        <AiChat ref="aiChatRef" :userid="props.userid" :userJson="userJson" :courseid="props.courseid" :courseTitle="props.courseTitle" />
       </div>
     </div>
     <div class="submenu" :class="{ visible: activeSubmenu === 'uploadFile' }">
@@ -831,11 +831,13 @@ const props = withDefaults(defineProps<{
   // 只保留英语口语这一项工具,其余侧边栏入口全部隐藏(EditorEn 展示页用)。
   // 默认 false,index3 等现役编辑器走默认分支,行为不变。
   onlyEnglish?: boolean
+  courseid?: string | null
 }>(), {
   defaultCollapsed: false,
   userid: null,
   courseTitle: null,
   onlyEnglish: false,
+  courseid: null,
 })
 
 const getUserInfo = async (userid: string) => {

+ 1 - 1
src/views/Editor/index3.vue

@@ -175,7 +175,7 @@
     </div>
     <!-- <EditorHeader class="layout-header" /> -->
     <div class="layout-content">
-      <CollapsibleToolbar class="layout-sidebar" @toggle="handleToolbarToggle" :userid="props.userid" :courseTitle="courseTitle" />
+      <CollapsibleToolbar class="layout-sidebar" @toggle="handleToolbarToggle" :userid="props.userid" :courseTitle="courseTitle" :courseid="props.courseid" />
       <div class="layout-content-center">
         <CanvasTool class="center-top"  :userid="props.userid"/>
         <Canvas class="center-body" :style="{ height: `calc(100% - ${remarkHeight + 60}px  - 120px)` }"