From dbc1a515d2d5c43d174494587c98b4822c4557b2 Mon Sep 17 00:00:00 2001
From: Junsen <951434130@qq.com>
Date: Mon, 11 Aug 2025 15:07:21 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=AE=9A?=
=?UTF-8?q?=E4=B9=89=E6=A0=87=E7=AD=BE=E7=BB=84=E4=BB=B6=EF=BC=8C=E6=9B=B4?=
=?UTF-8?q?=E6=96=B0=E8=81=8A=E5=A4=A9=E8=AE=B0=E5=BD=95=E5=92=8C=E8=AE=BE?=
=?UTF-8?q?=E5=A4=87=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=EF=BC=8C=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E8=AF=B7=E6=B1=82=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/api/chat-history/chat-history.ts | 3 +
.../src/components/custom-tabs/index.vue | 131 +++++
.../src/http/request/alova.ts | 3 +-
.../src/layouts/fg-tabbar/tabbarList.ts | 41 +-
.../src/pages/agent/edit.vue | 546 ++++++++----------
.../src/pages/agent/index.vue | 214 +++++++
.../src/pages/agent/tools.vue | 23 +-
.../src/pages/chat-history/detail.vue | 16 +-
.../src/pages/chat-history/index.vue | 349 ++++++-----
.../src/pages/device-config/index.vue | 14 +-
.../src/pages/device/index.vue | 250 ++++----
.../src/pages/index/index.vue | 29 +-
.../src/pages/login/index.vue | 3 +-
.../src/pages/register/index.vue | 3 +-
.../src/pages/settings/index.vue | 310 ++++++++++
.../src/pages/voiceprint/index.vue | 234 ++++----
.../src/static/tabbar/network.png | Bin 0 -> 6593 bytes
.../src/static/tabbar/network_activate.png | Bin 0 -> 6289 bytes
.../src/static/tabbar/system.png | Bin 0 -> 3391 bytes
.../src/static/tabbar/system_activate.png | Bin 0 -> 3566 bytes
main/xiaozhi-mobile-admin/src/store/agent.ts | 122 ----
main/xiaozhi-mobile-admin/src/store/index.ts | 1 -
main/xiaozhi-mobile-admin/src/utils/index.ts | 28 +-
.../src/utils/uploadFile.ts | 7 +-
24 files changed, 1376 insertions(+), 951 deletions(-)
create mode 100644 main/xiaozhi-mobile-admin/src/components/custom-tabs/index.vue
create mode 100644 main/xiaozhi-mobile-admin/src/pages/agent/index.vue
create mode 100644 main/xiaozhi-mobile-admin/src/pages/settings/index.vue
create mode 100644 main/xiaozhi-mobile-admin/src/static/tabbar/network.png
create mode 100644 main/xiaozhi-mobile-admin/src/static/tabbar/network_activate.png
create mode 100644 main/xiaozhi-mobile-admin/src/static/tabbar/system.png
create mode 100644 main/xiaozhi-mobile-admin/src/static/tabbar/system_activate.png
delete mode 100644 main/xiaozhi-mobile-admin/src/store/agent.ts
diff --git a/main/xiaozhi-mobile-admin/src/api/chat-history/chat-history.ts b/main/xiaozhi-mobile-admin/src/api/chat-history/chat-history.ts
index 8d6e396b..89c3f1ef 100644
--- a/main/xiaozhi-mobile-admin/src/api/chat-history/chat-history.ts
+++ b/main/xiaozhi-mobile-admin/src/api/chat-history/chat-history.ts
@@ -17,6 +17,9 @@ export function getChatSessions(agentId: string, params: GetSessionsParams) {
ignoreAuth: false,
toast: false,
},
+ cacheFor: {
+ expire: 0,
+ },
})
}
diff --git a/main/xiaozhi-mobile-admin/src/components/custom-tabs/index.vue b/main/xiaozhi-mobile-admin/src/components/custom-tabs/index.vue
new file mode 100644
index 00000000..f5ef0705
--- /dev/null
+++ b/main/xiaozhi-mobile-admin/src/components/custom-tabs/index.vue
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
diff --git a/main/xiaozhi-mobile-admin/src/http/request/alova.ts b/main/xiaozhi-mobile-admin/src/http/request/alova.ts
index d970a4c3..288e2542 100644
--- a/main/xiaozhi-mobile-admin/src/http/request/alova.ts
+++ b/main/xiaozhi-mobile-admin/src/http/request/alova.ts
@@ -4,6 +4,7 @@ import AdapterUniapp from '@alova/adapter-uniapp'
import { createAlova } from 'alova'
import { createServerTokenAuthentication } from 'alova/client'
import VueHook from 'alova/vue'
+import { getEnvBaseUrl } from '@/utils'
import { toast } from '@/utils/toast'
import { ContentTypeEnum, ResultEnum, ShowMessage } from './enum'
@@ -35,7 +36,7 @@ const { onAuthRequired, onResponseRefreshToken } = createServerTokenAuthenticati
* alova 请求实例
*/
const alovaInstance = createAlova({
- baseURL: import.meta.env.VITE_SERVER_BASEURL,
+ baseURL: getEnvBaseUrl(),
...AdapterUniapp(),
timeout: 5000,
statesHook: VueHook,
diff --git a/main/xiaozhi-mobile-admin/src/layouts/fg-tabbar/tabbarList.ts b/main/xiaozhi-mobile-admin/src/layouts/fg-tabbar/tabbarList.ts
index 69fbfec0..5273136c 100644
--- a/main/xiaozhi-mobile-admin/src/layouts/fg-tabbar/tabbarList.ts
+++ b/main/xiaozhi-mobile-admin/src/layouts/fg-tabbar/tabbarList.ts
@@ -37,42 +37,21 @@ export const tabbarList: FgTabBarItem[] = [
iconType: 'uiLib',
},
{
- iconPath: 'static/tabbar/device.png',
- selectedIconPath: 'static/tabbar/device_activate.png',
- pagePath: 'pages/device/index',
- text: '设备管理',
- icon: 'i-carbon-laptop',
- // 注意 unocss 的图标需要在 页面上引入一下,或者配置到 unocss.config.ts 的 safelist 中
+ iconPath: 'static/tabbar/network.png',
+ selectedIconPath: 'static/tabbar/network_activate.png',
+ pagePath: 'pages/device-config/index',
+ text: '配网',
+ icon: 'i-carbon-network-3',
iconType: 'uiLib',
},
{
- iconPath: 'static/tabbar/microphone.png',
- selectedIconPath: 'static/tabbar/microphone_activate.png',
- pagePath: 'pages/voiceprint/index',
- text: '声纹识别',
- icon: 'i-carbon-microphone-filled',
+ iconPath: 'static/tabbar/system.png',
+ selectedIconPath: 'static/tabbar/system_activate.png',
+ pagePath: 'pages/settings/index',
+ text: '系统',
+ icon: 'i-carbon-settings',
iconType: 'uiLib',
},
- {
- iconPath: 'static/tabbar/chat.png',
- selectedIconPath: 'static/tabbar/chat_activate.png',
- pagePath: 'pages/chat-history/index',
- text: '聊天记录',
- icon: 'i-carbon-chat-bot',
- iconType: 'uiLib',
- },
- // {
- // pagePath: 'pages/my/index',
- // text: '我的',
- // icon: '/static/logo.svg',
- // iconType: 'local',
- // },
- // {
- // pagePath: 'pages/mine/index',
- // text: '我的',
- // icon: 'iconfont icon-my',
- // iconType: 'iconfont',
- // },
]
// NATIVE_TABBAR(1) 和 CUSTOM_TABBAR_WITH_CACHE(2) 时,需要tabbar缓存
diff --git a/main/xiaozhi-mobile-admin/src/pages/agent/edit.vue b/main/xiaozhi-mobile-admin/src/pages/agent/edit.vue
index 45d3eb3f..36809fa6 100644
--- a/main/xiaozhi-mobile-admin/src/pages/agent/edit.vue
+++ b/main/xiaozhi-mobile-admin/src/pages/agent/edit.vue
@@ -1,81 +1,24 @@
-
-{
- "layout": "default",
- "style": {
- "navigationStyle": "custom",
- "navigationBarTitleText": "编辑"
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 基础信息
+
+
-
-
-
-
-
- 基础信息
+
+
+
+
+ 助手昵称
-
-
-
-
-
-
- 助手昵称
-
-
-
-
-
-
- 角色模式
-
-
-
- {{ template.agentName }}
-
-
-
-
-
-
- 角色介绍
-
-
-
- {{ (formData.systemPrompt || '').length }}/2000
-
-
-
-
-
-
-
- 模型配置
-
-
-
-
-
-
-
-
- 语音活动检测
-
-
- {{ displayNames.vad }}
-
-
-
-
-
-
- 语音识别
-
-
- {{ displayNames.asr }}
-
-
-
-
-
-
- 大语言模型
-
-
- {{ displayNames.llm }}
-
-
-
-
-
-
- 视觉大模型
-
-
- {{ displayNames.vllm }}
-
-
-
-
-
-
- 意图识别
-
-
- {{ displayNames.intent }}
-
-
-
-
-
-
- 记忆
-
-
- {{ displayNames.memory }}
-
-
-
-
-
-
-
-
-
- 语音设置
-
-
-
-
-
-
-
-
- 语音合成
-
-
- {{ displayNames.tts }}
-
-
-
-
-
-
- 角色音色
-
-
- {{ displayNames.voiceprint }}
-
-
-
-
-
-
- 插件
-
-
- 编辑功能
-
-
-
-
-
-
-
-
- 历史记忆
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ saving ? '保存中...' : '保存' }}
-
-
+
+
+
+ 角色模式
+
+
+
+ {{ template.agentName }}
+
+
+
+
+
+
+ 角色介绍
+
+
+
+ {{ (formData.systemPrompt || '').length }}/2000
+
+
+
+
+
+
+
+ 模型配置
+
+
+
+
+
+
+
+
+ 语音活动检测
+
+
+ {{ displayNames.vad }}
+
+
+
+
+
+
+ 语音识别
+
+
+ {{ displayNames.asr }}
+
+
+
+
+
+
+ 大语言模型
+
+
+ {{ displayNames.llm }}
+
+
+
+
+
+
+ 视觉大模型
+
+
+ {{ displayNames.vllm }}
+
+
+
+
+
+
+ 意图识别
+
+
+ {{ displayNames.intent }}
+
+
+
+
+
+
+ 记忆
+
+
+ {{ displayNames.memory }}
+
+
+
+
+
+
+
+
+
+ 语音设置
+
+
+
+
+
+
+
+
+ 语音合成
+
+
+ {{ displayNames.tts }}
+
+
+
+
+
+
+ 角色音色
+
+
+ {{ displayNames.voiceprint }}
+
+
+
+
+
+
+ 插件
+
+
+ 编辑功能
+
+
+
+
+
+
+
+
+ 历史记忆
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ saving ? '保存中...' : '保存' }}
+
+
{
@close="onPickerCancel('voiceprint')"
@select="({ item }) => onPickerConfirm('voiceprint', item.value, item.name)"
/>
-
-
-
-
\ No newline at end of file
+
diff --git a/main/xiaozhi-mobile-admin/src/pages/agent/index.vue b/main/xiaozhi-mobile-admin/src/pages/agent/index.vue
new file mode 100644
index 00000000..9e81b663
--- /dev/null
+++ b/main/xiaozhi-mobile-admin/src/pages/agent/index.vue
@@ -0,0 +1,214 @@
+
+{
+ "layout": "default",
+ "style": {
+ "navigationBarTitleText": "智能体",
+ "navigationStyle": "custom"
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/main/xiaozhi-mobile-admin/src/pages/agent/tools.vue b/main/xiaozhi-mobile-admin/src/pages/agent/tools.vue
index 63e2deb9..88ca36fc 100644
--- a/main/xiaozhi-mobile-admin/src/pages/agent/tools.vue
+++ b/main/xiaozhi-mobile-admin/src/pages/agent/tools.vue
@@ -261,7 +261,7 @@ onMounted(async () => {
@@ -453,12 +453,12 @@ onMounted(async () => {
-
+
{{ field.label }}
@@ -472,7 +472,7 @@ onMounted(async () => {
{
-
+
每行输入一个项目
-
+
+
+
+
{
v-model="showChatHistoryDialog" :actions="chatHistoryActions" title="选择声纹向量"
@select="selectAudioId"
/>
-
-
-
-