From da1cf77ea7b8eb16998ac8b6bca326622878290c Mon Sep 17 00:00:00 2001 From: MyGit <3282299728@qq.com> Date: Thu, 4 Jul 2024 13:12:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BC=9A=E8=AF=9D=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E4=BC=98=E5=8C=96=EF=BC=8C=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=97=B6=E9=97=B4=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bs-comp/chatComponent/MessageBs.tsx | 13 +++++++-- .../bs-comp/chatComponent/MessageUser.tsx | 14 ++++++++-- src/frontend/src/pages/ChatAppPage/index.tsx | 28 +++++++++++-------- src/frontend/src/pages/DiffFlowPage/index.tsx | 2 +- src/frontend/src/types/chat/index.ts | 2 ++ src/frontend/src/util/utils.ts | 12 ++++++++ 6 files changed, 52 insertions(+), 19 deletions(-) diff --git a/src/frontend/src/components/bs-comp/chatComponent/MessageBs.tsx b/src/frontend/src/components/bs-comp/chatComponent/MessageBs.tsx index 1e1dcb00f..c62e2c01a 100644 --- a/src/frontend/src/components/bs-comp/chatComponent/MessageBs.tsx +++ b/src/frontend/src/components/bs-comp/chatComponent/MessageBs.tsx @@ -3,7 +3,7 @@ import { LoadIcon } from "@/components/bs-icons/loading"; import { CodeBlock } from "@/modals/formModal/chatMessage/codeBlock"; import { ChatMessageType } from "@/types/chat"; import { copyText } from "@/utils"; -import { useMemo, useRef } from "react"; +import { useMemo, useRef, useState } from "react"; import ReactMarkdown from "react-markdown"; import rehypeMathjax from "rehype-mathjax"; import remarkGfm from "remark-gfm"; @@ -11,6 +11,7 @@ import remarkMath from "remark-math"; import MessageButtons from "./MessageButtons"; import SourceEntry from "./SourceEntry"; import { useMessageStore } from "./messageStore"; +import { isSameDay } from "@/util/utils"; // 颜色列表 const colorList = [ @@ -76,11 +77,17 @@ export default function MessageBs({ data, onUnlike = () => { }, onSource }: { da } const chatId = useMessageStore(state => state.chatId) + const [show, setShow] = useState(false) - return
+ return
+
+ {isSameDay(data.update_time, new Date())} +
{data.sender &&

{data.sender}

} -
+
setShow(true)} + onMouseLeave={(e) => setShow(false)}>
{data.message.toString() ? diff --git a/src/frontend/src/components/bs-comp/chatComponent/MessageUser.tsx b/src/frontend/src/components/bs-comp/chatComponent/MessageUser.tsx index 6f2ead90c..085111136 100644 --- a/src/frontend/src/components/bs-comp/chatComponent/MessageUser.tsx +++ b/src/frontend/src/components/bs-comp/chatComponent/MessageUser.tsx @@ -1,8 +1,9 @@ import { locationContext } from "@/contexts/locationContext"; import { ChatMessageType } from "@/types/chat"; import { MagnifyingGlassIcon, Pencil2Icon, ReloadIcon } from "@radix-ui/react-icons"; -import { useContext } from "react"; +import { useContext, useState } from "react"; import { useMessageStore } from "./messageStore"; +import { isSameDay } from "@/util/utils"; export default function MessageUser({ useName, data }: { data: ChatMessageType }) { const msg = data.message[data.chatKey] @@ -24,10 +25,17 @@ export default function MessageUser({ useName, data }: { data: ChatMessageType } document.dispatchEvent(myEvent); } - return
+ const [show, setShow] = useState(false) + + return
+
+ {isSameDay(data.update_time, new Date())} +
{useName &&

{useName}

} -
+
setShow(true)} + onMouseLeave={(e) => setShow(false)}>
{msg}
diff --git a/src/frontend/src/pages/ChatAppPage/index.tsx b/src/frontend/src/pages/ChatAppPage/index.tsx index 6796ebe75..3b0aa5f17 100755 --- a/src/frontend/src/pages/ChatAppPage/index.tsx +++ b/src/frontend/src/pages/ChatAppPage/index.tsx @@ -1,4 +1,6 @@ import SkillChatSheet from "@/components/bs-comp/sheets/SkillChatSheet"; +import { PlusBoxIcon, PlusBoxIconDark } from "@/components/bs-icons/plusBox"; +import { bsConfirm } from "@/components/bs-ui/alertDialog/useConfirm"; import { Trash2 } from "lucide-react"; import { useEffect, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; @@ -7,9 +9,8 @@ import { captureAndAlertRequestErrorHoc } from "../../controllers/request"; import { useDebounce } from "../../util/hook"; import { generateUUID } from "../../utils"; import ChatPanne from "./components/ChatPanne"; -import { PlusBoxIcon, PlusBoxIconDark } from "@/components/bs-icons/plusBox"; -import { gradients } from "@/components/bs-comp/cardComponent"; -import { bsConfirm } from "@/components/bs-ui/alertDialog/useConfirm"; +import { isSameDay } from "@/util/utils"; +import { SkillIcon, AssistantIcon } from "@/components/bs-icons"; export default function SkillChatPage() { @@ -66,7 +67,6 @@ export default function SkillChatPage() { setChatId(chat.chat_id) }, 100, false) - // del const handleDeleteChat = (e, id) => { e.stopPropagation(); @@ -80,7 +80,6 @@ export default function SkillChatPage() { }) } - return
@@ -96,14 +95,19 @@ export default function SkillChatPage() { { chatList.map((chat, i) => (
handleSelectChat(chat)}> -

- - {chat.flow_name} -

- {chat.flow_description} - handleDeleteChat(e, chat.chat_id)}> +
+
+ {chat.flow_type === 'assistant' ? : } +
+

{chat.flow_name}

+
+ {chat.flow_description} +
+ {isSameDay(chat.update_time, new Date())} + handleDeleteChat(e, chat.chat_id)}> +
)) } diff --git a/src/frontend/src/pages/DiffFlowPage/index.tsx b/src/frontend/src/pages/DiffFlowPage/index.tsx index b4ced78f6..935ceeaa1 100644 --- a/src/frontend/src/pages/DiffFlowPage/index.tsx +++ b/src/frontend/src/pages/DiffFlowPage/index.tsx @@ -45,7 +45,7 @@ export default function index(params) { 添加版本({mulitVersionFlow.length}/4)
- + {/* content */}
{/* comps */} diff --git a/src/frontend/src/types/chat/index.ts b/src/frontend/src/types/chat/index.ts index bc9fcf9b5..56a87f71a 100644 --- a/src/frontend/src/types/chat/index.ts +++ b/src/frontend/src/types/chat/index.ts @@ -22,4 +22,6 @@ export type ChatMessageType = { receiver?: any; liked?: boolean; extra?: string; + create_time: string; + update_time: string; }; diff --git a/src/frontend/src/util/utils.ts b/src/frontend/src/util/utils.ts index a4f797835..4d780a28c 100644 --- a/src/frontend/src/util/utils.ts +++ b/src/frontend/src/util/utils.ts @@ -91,6 +91,18 @@ export function formatDate(date: Date, format: string): string { return format.replace(/yyyy|MM|dd|HH|mm|ss/g, (match) => replacements[match]) } +// string类型和Date对比是否同一天 +export function isSameDay(time: string, date: Date): string { + if(!time) return '暂无时间' + const newTime = time.substring(0, time.indexOf('T')).split('-') + const arrayTime = newTime.map(t => Number(t)) + const [year, month, day] = [date.getFullYear(), date.getMonth() + 1, date.getDay()] + if(year === arrayTime[0] && month === arrayTime[1] && day === arrayTime[2]) { + return time.substring(time.indexOf('T') + 1, time.length - 3) + } + return `${newTime[1]}月${newTime[2]}日` +} + export function toTitleCase(str: string | undefined): string { if (!str) return ""; let result = str