From a73ccc95831d81ee03e5c4f44ec880d1c3f8d0a9 Mon Sep 17 00:00:00 2001 From: yangyin <1850366751@qq.com> Date: 星期三, 11 九月 2024 16:33:37 +0800 Subject: [PATCH] 添加发布按钮 --- src/views/project/yw/dataManage/knowledge/Knowledge.vue | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 113 insertions(+), 3 deletions(-) diff --git a/src/views/project/yw/dataManage/knowledge/Knowledge.vue b/src/views/project/yw/dataManage/knowledge/Knowledge.vue index 529fc4e..e9168e3 100644 --- a/src/views/project/yw/dataManage/knowledge/Knowledge.vue +++ b/src/views/project/yw/dataManage/knowledge/Knowledge.vue @@ -26,13 +26,36 @@ 1涓煡璇� </span> <span class="set_desc_text"> + <span class="set_desc_icon ywifont ywicon-fenshu_an"> </span> + {{ item.scope }} + </span> + <span class="set_desc_text"> <span class="set_desc_icon ywifont ywicon-cshy-shizhong"> </span> {{ item.create_time }}鏇存柊 + </span> + <span + :class="{ + 'text-orange-500': item.publish === SupervisorPublished.N, + 'text-green-500': item.publish === SupervisorPublished.Y, + }" + class="text-[12px]" + > + {{ supervisorPublishedMap[item.publish] }} </span> </div> </div> <div class="set_btn_group"> + <el-button + link + class="text-[12px]" + @click="publishKnowledgeBase(item)" + :style="{ color: item.publish === SupervisorPublished.Y ? '#f97316' : '#22c55e' }" + >{{ item.publish === SupervisorPublished.Y ? '涓嬫灦' : '鍙戝竷' }} + </el-button> + <el-divider direction="vertical" /> <el-button link class="text-[12px] text-[#686682]" @click="viewKnowledgeBase(item)">鏌ョ湅 </el-button> + <el-divider direction="vertical" /> + <el-button link class="text-[12px] text-[#686682]" @click="openChatTest(item)">瀵硅瘽娴嬭瘯 </el-button> <el-divider direction="vertical" /> <el-button link class="text-[12px] text-[#686682]" @click="editKnowledgeBase(item)">缂栬緫 </el-button> <el-divider direction="vertical" /> @@ -41,16 +64,43 @@ </div> </div> </div> + <div + v-if="chatTestIsShow" + ref="draggableChatRef" + :style="style" + class="fixed z-50 w-[700px] h-[800px] flex flex-col bg-[rgb(239,244,253)] right-0 bottom-0 rounded-lg" + > + <div ref="chatDragHandlerRef" class="flex-0"> + <div class="flex items-center justify-between py-2 px-4"> + <div class="font-bold cursor-move"> + WI姘村姟鏅鸿兘绠″鈥斺�斻�恵{ chatTestMapRow?.title }}銆戞祴璇� + <!-- <img src="/static/images/logo/logo-mini.svg" width="10" height="10" /> --> + </div> + <i class="ywifont ywicon-guanbi font-[10px] font-bold cursor-pointer" @click="closeChatTest"></i> + </div> + </div> + <Chat ref="chatRef" class="flex-auto px-2" :questionApi="questionAi"> </Chat> + </div> </div> </template> <script setup lang="ts"> +import { useDraggable } from '@vueuse/core'; +import axios, { CancelTokenSource } from 'axios'; import { ElMessage, ElMessageBox } from 'element-plus'; -import { onMounted, ref } from 'vue'; +import { nextTick, onMounted, ref } from 'vue'; import { useRouter } from 'vue-router'; -import { delete_docvector_name, get_docvector_list } from '/@/api/knowledge/docvector'; +import { + check_docvector_validate, + delete_docvector_name, + get_docvector_list, + publish_docvector_name, +} from '/@/api/knowledge/docvector'; +import Chat from '/@/components/chat/Chat.vue'; import { useQueryTable } from '/@/hooks/useQueryTable'; import mittBus from '/@/utils/mitt'; +import { useCompRef } from '/@/utils/types'; +import { SupervisorPublished, supervisorPublishedMap } from '/@/views/project/yw/lowCode/sqlAmis/types'; import knowledgeLeft from '/static/images/knowledge/data_type_1.png'; const router = useRouter(); //#region ====================== 鑾峰彇鐭ヨ瘑搴搒heet鍒楄〃 ====================== @@ -99,6 +149,7 @@ knowledge_title: row.title, knowledge_desc: row.desc, knowledge_prompt: row.prompt, + knowledge_scope: row.scope, }, }); }; @@ -111,6 +162,17 @@ }, }); }; +//鍙戝竷 +const publishKnowledgeBase = async (row) => { + const res = await publish_docvector_name({ + knowlg_id: row.id, + publish: row.publish === SupervisorPublished.Y ? SupervisorPublished.N : SupervisorPublished.Y, + }); + if (res.json_ok) { + row.publish = row.publish === SupervisorPublished.Y ? SupervisorPublished.N : SupervisorPublished.Y; + ElMessage.success('鍚屾鎴愬姛'); + } +}; //#endregion //#region ====================== 鎼滅储琛ㄦ牸锛屽琛ㄦ牸鎺掑簭 ====================== @@ -121,6 +183,55 @@ displayTableData.value = knowledgeBaseList.value; }); //#endregion +//#region ====================== Chat 娴嬭瘯 ====================== + +const chatRef = useCompRef(Chat); +const chatTestMapRow = ref(null); +const chatTestIsShow = ref(false); +const openChatTest = (row) => { + chatTestMapRow.value = row; + chatTestIsShow.value = true; + nextTick(() => { + chatRef.value.clear(); + setTimeout(() => { + chatRef.value.autoSend(row.prompt); + }, 30); + }); +}; + +const closeChatTest = () => { + chatTestMapRow.value = null; + chatTestIsShow.value = false; +}; + +const draggableChatRef = ref<HTMLElement | null>(null); +const chatDragHandlerRef = ref<HTMLDivElement>(null); +const chatDragContainerRef = ref<HTMLDivElement>(null); + +// `style` will be a helper computed for `left: ?px; top: ?px;` +const { x, y, style } = useDraggable(draggableChatRef, { + handle: chatDragHandlerRef, + initialValue: { + x: document.body.clientWidth / 2 - 350, + y: document.body.clientHeight / 2 - 400, + }, +}); + +const questionAi = async (text, sourceObj: { source: CancelTokenSource }) => { + const currentSource = axios.CancelToken.source(); + sourceObj.source = currentSource; + const res = await check_docvector_validate( + { + knowlg_id: chatTestMapRow.value.id, + question: text, + }, + { + loading: false, + cancelToken: currentSource.token, + } + ); + return res; +}; onMounted(() => { docvectorList(); mittBus.on('addKnowledgeBaseObj', (obj) => { @@ -170,4 +281,3 @@ } } </style> -import { useQueryTable } from '/@/hooks/useQueryTable'; -- Gitblit v1.9.3