"新增聊天功能及相关路由和状态管理"
本次提交实现了聊天功能,包括在AppBar中添加了聊天链接,新增了聊天页面,以及聊天状态的管理。具体变更如下: 1. 在`AppBar.vue`中为聊天功能添加了图标和路由链接。 2. 新增`index.vue`文件,用于展示聊天内容。 3. 在`chat.ts`中定义了聊天状态的存储和获取方法。 4. 更新了`typed-router.d.ts`,包含了指向新聊天路由的记录。 这些变更使得应用能够提供聊天功能,为用户提供更丰富的交互方式。
This commit is contained in:
parent
4bdb33ba19
commit
38262b11ac
@ -19,21 +19,21 @@
|
|||||||
<v-list-item prepend-icon="mdi-home" rounded="lg" title="首页" to="/" />
|
<v-list-item prepend-icon="mdi-home" rounded="lg" title="首页" to="/" />
|
||||||
|
|
||||||
<v-list-item
|
<v-list-item
|
||||||
prepend-icon="mdi-home"
|
prepend-icon="mdi-assistant"
|
||||||
rounded="lg"
|
rounded="lg"
|
||||||
title="助理"
|
title="助理"
|
||||||
to="/assistants"
|
to="/assistants"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<v-list-item
|
<v-list-item
|
||||||
prepend-icon="mdi-home"
|
prepend-icon="mdi-tools"
|
||||||
rounded="lg"
|
rounded="lg"
|
||||||
title="工具"
|
title="工具"
|
||||||
to="/tools"
|
to="/tools"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<v-list-item
|
<v-list-item
|
||||||
prepend-icon="mdi-home"
|
prepend-icon="mdi-web"
|
||||||
rounded="lg"
|
rounded="lg"
|
||||||
title="连通测试"
|
title="连通测试"
|
||||||
to="/ping"
|
to="/ping"
|
||||||
@ -46,6 +46,15 @@
|
|||||||
title="登录"
|
title="登录"
|
||||||
to="/auth/login"
|
to="/auth/login"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<template v-for="chat in chatStore.chats.data" :key="chat.id">
|
||||||
|
<v-list-item
|
||||||
|
prepend-icon="mdi-chat"
|
||||||
|
rounded="lg"
|
||||||
|
:title="chat?.name"
|
||||||
|
:to="'/chats/' + chat.id"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
</v-list>
|
</v-list>
|
||||||
</v-navigation-drawer>
|
</v-navigation-drawer>
|
||||||
|
|
||||||
@ -62,9 +71,12 @@
|
|||||||
import { useConfigStore } from "@/stores/config";
|
import { useConfigStore } from "@/stores/config";
|
||||||
import { useUserStore } from "@/stores/user";
|
import { useUserStore } from "@/stores/user";
|
||||||
import { useAppStore } from "@/stores/app";
|
import { useAppStore } from "@/stores/app";
|
||||||
|
import { useChatStore } from "@/stores/chat";
|
||||||
|
|
||||||
|
const chatStore = useChatStore();
|
||||||
const configStore = useConfigStore();
|
const configStore = useConfigStore();
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
|
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
|
|
||||||
|
chatStore.getChats();
|
||||||
</script>
|
</script>
|
||||||
|
3
src/pages/chats/[id]/index.vue
Normal file
3
src/pages/chats/[id]/index.vue
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
<div>chats</div>
|
||||||
|
</template>
|
0
src/pages/chats/index.vue
Normal file
0
src/pages/chats/index.vue
Normal file
16
src/stores/chat.ts
Normal file
16
src/stores/chat.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { ApiV1ChatsGet200Response } from "@/api";
|
||||||
|
import { defineStore } from "pinia";
|
||||||
|
import { api } from "@/plugins/api";
|
||||||
|
|
||||||
|
export const useChatStore = defineStore("chats", {
|
||||||
|
state: () => ({
|
||||||
|
chats: [] as ApiV1ChatsGet200Response,
|
||||||
|
}),
|
||||||
|
actions: {
|
||||||
|
getChats() {
|
||||||
|
api.Chat.apiV1ChatsGet().then((response) => {
|
||||||
|
this.chats = response.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
2
src/typed-router.d.ts
vendored
2
src/typed-router.d.ts
vendored
@ -25,6 +25,8 @@ declare module 'vue-router/auto-routes' {
|
|||||||
'/assistants/create': RouteRecordInfo<'/assistants/create', '/assistants/create', Record<never, never>, Record<never, never>>,
|
'/assistants/create': RouteRecordInfo<'/assistants/create', '/assistants/create', Record<never, never>, Record<never, never>>,
|
||||||
'/auth/callback': RouteRecordInfo<'/auth/callback', '/auth/callback', Record<never, never>, Record<never, never>>,
|
'/auth/callback': RouteRecordInfo<'/auth/callback', '/auth/callback', Record<never, never>, Record<never, never>>,
|
||||||
'/auth/login': RouteRecordInfo<'/auth/login', '/auth/login', Record<never, never>, Record<never, never>>,
|
'/auth/login': RouteRecordInfo<'/auth/login', '/auth/login', Record<never, never>, Record<never, never>>,
|
||||||
|
'/chats/': RouteRecordInfo<'/chats/', '/chats', Record<never, never>, Record<never, never>>,
|
||||||
|
'/chats/[id]/': RouteRecordInfo<'/chats/[id]/', '/chats/:id', { id: ParamValue<true> }, { id: ParamValue<false> }>,
|
||||||
'/ping/': RouteRecordInfo<'/ping/', '/ping', Record<never, never>, Record<never, never>>,
|
'/ping/': RouteRecordInfo<'/ping/', '/ping', Record<never, never>, Record<never, never>>,
|
||||||
'/tools/': RouteRecordInfo<'/tools/', '/tools', Record<never, never>, Record<never, never>>,
|
'/tools/': RouteRecordInfo<'/tools/', '/tools', Record<never, never>, Record<never, never>>,
|
||||||
'/tools/create': RouteRecordInfo<'/tools/create', '/tools/create', Record<never, never>, Record<never, never>>,
|
'/tools/create': RouteRecordInfo<'/tools/create', '/tools/create', Record<never, never>, Record<never, never>>,
|
||||||
|
Loading…
Reference in New Issue
Block a user