From 85efecb73650c6d1a27a2a3ade142493eac5f4d0 Mon Sep 17 00:00:00 2001 From: Quicy <1728550853@qq.com> Date: Mon, 19 Jan 2026 11:36:34 +0800 Subject: [PATCH] feat: chat layout --- packages/shared/src/chatInfo.ts | 10 ++ packages/shared/src/index.ts | 3 +- .../src/components/scroll-area/ScrollArea.vue | 33 ++++++ .../src/components/scroll-area/ScrollBar.vue | 32 ++++++ .../ui/src/components/scroll-area/index.ts | 2 + packages/ui/src/index.ts | 1 + .../components/ChatList/RobotChat/index.vue | 29 +++++ .../components/ChatList/UserChat/index.vue | 17 +++ .../web/src/components/ChatList/index.vue | 36 ++++++ .../src/components/MainContainer/index.vue | 28 ++--- packages/web/src/components/Sidebar/index.vue | 105 +++++++++--------- packages/web/src/pages/chat/index.vue | 64 ++++++++--- packages/web/src/pages/mainSection/index.vue | 22 ++++ packages/web/src/router.ts | 13 ++- 14 files changed, 309 insertions(+), 86 deletions(-) create mode 100644 packages/shared/src/chatInfo.ts create mode 100644 packages/ui/src/components/scroll-area/ScrollArea.vue create mode 100644 packages/ui/src/components/scroll-area/ScrollBar.vue create mode 100644 packages/ui/src/components/scroll-area/index.ts create mode 100644 packages/web/src/components/ChatList/RobotChat/index.vue create mode 100644 packages/web/src/components/ChatList/UserChat/index.vue create mode 100644 packages/web/src/components/ChatList/index.vue create mode 100644 packages/web/src/pages/mainSection/index.vue diff --git a/packages/shared/src/chatInfo.ts b/packages/shared/src/chatInfo.ts new file mode 100644 index 00000000..fb5aaae2 --- /dev/null +++ b/packages/shared/src/chatInfo.ts @@ -0,0 +1,10 @@ +export interface robot{ + description: string + time: Date, + id: string | number, + type: string +} + +export interface user{ + description: string, time: Date, id: number | string +} \ No newline at end of file diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index c16f5c97..f23cc870 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -1,4 +1,5 @@ export * from './model' export * from './schedule' export * from './platform' -export * from './mcp' \ No newline at end of file +export * from './mcp' +export * from './chatInfo' diff --git a/packages/ui/src/components/scroll-area/ScrollArea.vue b/packages/ui/src/components/scroll-area/ScrollArea.vue new file mode 100644 index 00000000..70052e25 --- /dev/null +++ b/packages/ui/src/components/scroll-area/ScrollArea.vue @@ -0,0 +1,33 @@ + + + diff --git a/packages/ui/src/components/scroll-area/ScrollBar.vue b/packages/ui/src/components/scroll-area/ScrollBar.vue new file mode 100644 index 00000000..39ec80ff --- /dev/null +++ b/packages/ui/src/components/scroll-area/ScrollBar.vue @@ -0,0 +1,32 @@ + + + diff --git a/packages/ui/src/components/scroll-area/index.ts b/packages/ui/src/components/scroll-area/index.ts new file mode 100644 index 00000000..c416759c --- /dev/null +++ b/packages/ui/src/components/scroll-area/index.ts @@ -0,0 +1,2 @@ +export { default as ScrollArea } from "./ScrollArea.vue" +export { default as ScrollBar } from "./ScrollBar.vue" diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index 6b33dce8..3633263c 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts @@ -16,6 +16,7 @@ export * from './components/input-group/index' export * from './components/kbd/index' export * from './components/label/index' export * from './components/radio-group/index' +export * from './components/scroll-area/index' export * from './components/select/index' export * from './components/separator/index' export * from './components/sheet/index' diff --git a/packages/web/src/components/ChatList/RobotChat/index.vue b/packages/web/src/components/ChatList/RobotChat/index.vue new file mode 100644 index 00000000..08e0528a --- /dev/null +++ b/packages/web/src/components/ChatList/RobotChat/index.vue @@ -0,0 +1,29 @@ + + + \ No newline at end of file diff --git a/packages/web/src/components/ChatList/UserChat/index.vue b/packages/web/src/components/ChatList/UserChat/index.vue new file mode 100644 index 00000000..4113ac96 --- /dev/null +++ b/packages/web/src/components/ChatList/UserChat/index.vue @@ -0,0 +1,17 @@ + + + \ No newline at end of file diff --git a/packages/web/src/components/ChatList/index.vue b/packages/web/src/components/ChatList/index.vue new file mode 100644 index 00000000..1d63b3f7 --- /dev/null +++ b/packages/web/src/components/ChatList/index.vue @@ -0,0 +1,36 @@ + + + \ No newline at end of file diff --git a/packages/web/src/components/MainContainer/index.vue b/packages/web/src/components/MainContainer/index.vue index f95694ff..d6db8bbd 100644 --- a/packages/web/src/components/MainContainer/index.vue +++ b/packages/web/src/components/MainContainer/index.vue @@ -11,38 +11,40 @@ /> - -
-
-
-
-
-
-
-
+
+ + + + + +
\ No newline at end of file diff --git a/packages/web/src/components/Sidebar/index.vue b/packages/web/src/components/Sidebar/index.vue index 205fbb00..bfb27738 100644 --- a/packages/web/src/components/Sidebar/index.vue +++ b/packages/web/src/components/Sidebar/index.vue @@ -1,46 +1,38 @@ \ No newline at end of file diff --git a/packages/web/src/pages/mainSection/index.vue b/packages/web/src/pages/mainSection/index.vue new file mode 100644 index 00000000..96f08f48 --- /dev/null +++ b/packages/web/src/pages/mainSection/index.vue @@ -0,0 +1,22 @@ + + + \ No newline at end of file diff --git a/packages/web/src/router.ts b/packages/web/src/router.ts index ae5e45f1..5bb6e80a 100644 --- a/packages/web/src/router.ts +++ b/packages/web/src/router.ts @@ -11,9 +11,14 @@ const routes = [ path: '/login', component: () => import('@/pages/login/index.vue') }, { - name: 'Chat', - path: '/chat', - component: () => import('@/pages/chat/index.vue'), + name: 'Main', + component: () => import('@/pages/mainSection/index.vue'), + path: '/main', + redirect:'/main/chat', + children: [{ + path: 'chat', + component: () => import('@/pages/chat/index.vue') + }] } ] @@ -28,7 +33,7 @@ router.beforeEach((to) => { if (to.fullPath !== '/login') { return token ? true : { name: 'Login' } } else { - return token ? { name: 'Chat' } : true + return token ? { name: 'Main' } : true } })