From 6713c4f475408198aa7c6be301195e3c04cdd764 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期三, 27 十一月 2024 14:05:34 +0800 Subject: [PATCH] bug 修复 --- src/layout/component/sidebar/components/ChatRecord.vue | 74 +++++++++++++++++------------------- 1 files changed, 35 insertions(+), 39 deletions(-) diff --git a/src/layout/component/sidebar/components/ChatRecord.vue b/src/layout/component/sidebar/components/ChatRecord.vue index 520b30f..91dd6c1 100644 --- a/src/layout/component/sidebar/components/ChatRecord.vue +++ b/src/layout/component/sidebar/components/ChatRecord.vue @@ -49,8 +49,7 @@ <div class="ywifont ywicon-xiaoxi1 flex-0 mr-2.5"></div> <div class="flex-auto text-ellipsis text-nowrap text-sm group-hover:text-[#0084ff]">{{ item.title }}</div> <div class="text-gray-100 flex items-center space-x-2 ml-1"> - <!-- <div class="ywifont invisible ywicon-bianji group-hover:visible !text-sm"></div> --> - + <div class="ywifont invisible ywicon-bianji group-hover:visible !text-sm" @click.stop="editChat(item)"></div> <el-popconfirm title="纭畾鍒犻櫎鑱婂ぉ璁板綍?" @confirm.stop="confirmDeleteChatRoom(item)" width="180"> <template #reference> <div class="ywifont invisible ywicon-shanchu3 group-hover:visible"></div> @@ -65,23 +64,19 @@ <script setup lang="ts"> import { Search } from '@element-plus/icons-vue'; -import { computed, onMounted, onUnmounted, reactive, ref, watch } from 'vue'; -import type { ChatRoomItem } from './types'; -import { CreateHistoryGroup, DeleteHistoryGroups, GetHistoryGroups } from '/@/api/ai/chat'; -import router from '/@/router'; -import { activeChatRoom, activeRoomId, chatRoomList, gotoAnswerPage, newChatRoomClick } from '/@/stores/chatRoom'; -import { DateFilter, dateFilterMap } from '/@/model/types/date'; -import { debounce, getRecentDateRange } from '/@/utils/util'; +import { ElMessage, ElMessageBox } from 'element-plus'; import moment from 'moment'; +import { computed, onMounted, ref, watch } from 'vue'; +import type { ChatRoomItem } from './types'; +import { DeleteHistoryGroups, setHistoryGroupTitle } from '/@/api/ai/chat'; import { useSearch } from '/@/hooks/useSearch'; -import { gotoRoute } from '/@/utils/route'; -import emitter from '/@/utils/mitt'; - +import { DateFilter, dateFilterMap } from '/@/model/types/date'; +import { activeRoomId, chatRoomList, gotoAnswerPage, newChatRoomClick, selectFirstRoom } from '/@/stores/chatRoom'; +import { debounce, getRecentDateRange } from '/@/utils/util'; const chatRoomRef = ref<HTMLDivElement>(null); const queryParams = ref({ title: '', }); - const roomClick = (room: ChatRoomItem) => { activeRoomId.value = room.id; @@ -103,7 +98,32 @@ roomClick(chatRoomList.value[0]); chatRoomRef.value.firstElementChild?.scrollIntoView(); }; - +const editChat = (room: ChatRoomItem) => { + ElMessageBox.prompt('', '閲嶅懡鍚�', { + confirmButtonText: '纭', + cancelButtonText: '鍙栨秷', + inputPattern: /^[\s\S]*.*[^\s][\s\S]*$/, + inputValue: room.title, + inputErrorMessage: '璇疯緭鍏ユ柊鐨勫悕绉�', + }) + .then(async (edit) => { + const res = await setHistoryGroupTitle({ + history_group_id: room.id, + title: edit.value, + }); + if (res.json_ok) { + const foundIndex = chatRoomList.value.findIndex((item) => item.id === room.id); + chatRoomList.value[foundIndex].title = edit.value; + chatRoomRef.value.firstElementChild?.scrollIntoView(); + } + }) + .catch(({ value }) => { + ElMessage({ + type: 'info', + message: '鍙栨秷淇敼', + }); + }); +}; //#region ====================== 鏃ユ湡绛涢�� ====================== const activeDateFilter = ref<DateFilter>(DateFilter.All); @@ -150,32 +170,8 @@ //#endregion onMounted(async () => { - const res = await GetHistoryGroups(); - - const resData = (res?.groups || []) as any[]; - // 鎸夋渶鏅氭椂闂村埌鏈�鏃╂椂闂� - chatRoomList.value = resData - ?.toSorted((a, b) => { - return b.create_time.localeCompare(a.create_time); - }) - .map((item) => { - return { - id: item.group_id, - title: item.group_title, - createTime: item.create_time, - isInitial: Number(item.chat_count) === 0, - }; - }); - - if (!chatRoomList.value || chatRoomList.value.length === 0) { - newChatRoomClick(); - } else { - const toClickRoom = activeChatRoom.value ?? chatRoomList.value[0]; - roomClick(toClickRoom); - } + selectFirstRoom(); }); - - </script> <style scoped lang="scss"> .set-input { -- Gitblit v1.9.3