fix ai assistant bugs

This commit is contained in:
Chuck1sn
2025-06-06 11:32:05 +08:00
parent df3862d496
commit a1752df1ed
4 changed files with 25 additions and 31 deletions

View File

@@ -94,7 +94,7 @@ import type { DepartmentUpsertModel } from "@/types/department";
import DOMPurify from "dompurify"; import DOMPurify from "dompurify";
import { Modal, type ModalInterface, initFlowbite } from "flowbite"; import { Modal, type ModalInterface, initFlowbite } from "flowbite";
import { marked } from "marked"; import { marked } from "marked";
import { onMounted, onUnmounted, ref, watch } from "vue"; import { nextTick, onMounted, onUnmounted, ref, watch } from "vue";
import { z } from "zod"; import { z } from "zod";
import Button from "../components/Button.vue"; import Button from "../components/Button.vue";
import DepartmentUpsertModal from "../components/DepartmentUpsertModal.vue"; import DepartmentUpsertModal from "../components/DepartmentUpsertModal.vue";
@@ -256,6 +256,9 @@ const chatByMode = async (
isUser: true, isUser: true,
username: user.username!, username: user.username!,
}); });
await nextTick(() => {
scrollToBottom();
});
if (mode === "search") { if (mode === "search") {
await searchAction(message); await searchAction(message);
} else if (mode === "execute") { } else if (mode === "execute") {
@@ -269,7 +272,6 @@ const handleSendClick = async (
message: string, message: string,
mode: "chat" | "search" | "execute", mode: "chat" | "search" | "execute",
) => { ) => {
scrollToBottom();
if (isLoading.value) { if (isLoading.value) {
abortChat(); abortChat();
return; return;
@@ -289,10 +291,7 @@ onMounted(async () => {
initFlowbite(); initFlowbite();
const $upsertModalElement: HTMLElement | null = const $upsertModalElement: HTMLElement | null =
document.querySelector("#user-upsert-modal"); document.querySelector("#user-upsert-modal");
userUpsertModal.value = new Modal( userUpsertModal.value = new Modal($upsertModalElement, {});
$upsertModalElement,
{},
);
const $userDeleteModalElement: HTMLElement | null = const $userDeleteModalElement: HTMLElement | null =
document.querySelector("#user-delete-modal"); document.querySelector("#user-delete-modal");
userDeleteModal.value = new Modal( userDeleteModal.value = new Modal(
@@ -304,16 +303,10 @@ onMounted(async () => {
); );
const $departmentDeleteModalElement: HTMLElement | null = const $departmentDeleteModalElement: HTMLElement | null =
document.querySelector("#department-delete-modal"); document.querySelector("#department-delete-modal");
departmentDeleteModal.value = new Modal( departmentDeleteModal.value = new Modal($departmentDeleteModalElement, {});
$departmentDeleteModalElement,
{},
);
const $departmentUpsertModalElement: HTMLElement | null = const $departmentUpsertModalElement: HTMLElement | null =
document.querySelector("#department-upsert-modal"); document.querySelector("#department-upsert-modal");
departmentUpsertModal.value = new Modal( departmentUpsertModal.value = new Modal($departmentUpsertModalElement, {});
$departmentUpsertModalElement,
{},
);
}); });
</script> </script>

View File

@@ -43,11 +43,11 @@ import SettingsIcon from "./icons/SettingsIcon.vue";
import UsersIcon from "./icons/UsersIcon.vue"; import UsersIcon from "./icons/UsersIcon.vue";
const isDrawerVisible = ref(false); const isDrawerVisible = ref(false);
const emit = defineEmits(['menu-click']); const emit = defineEmits(["menu-click"]);
// 菜单点击处理 // 菜单点击处理
const handleMenuClick = () => { const handleMenuClick = () => {
emit('menu-click'); emit("menu-click");
}; };
const toggleSidebar = () => { const toggleSidebar = () => {
@@ -66,7 +66,7 @@ defineExpose({
toggleSidebar, toggleSidebar,
openSidebar, openSidebar,
closeSidebar, closeSidebar,
isDrawerVisible isDrawerVisible,
}); });
// 菜单配置 // 菜单配置

View File

@@ -45,6 +45,7 @@ export const useAiChat = () => {
console.log("onclose"); console.log("onclose");
}, },
onerror(err) { onerror(err) {
console.error(err);
throw err; throw err;
}, },
}); });