From 03441c8582cbe539a3982a14ce0a30c9f030ad2c Mon Sep 17 00:00:00 2001
From: hrz <1710360675@qq.com>
Date: Sat, 5 Apr 2025 20:19:28 +0800
Subject: [PATCH] =?UTF-8?q?update=EF=BC=9A=E6=A0=BC=E5=BC=8F=E5=8C=96?=
=?UTF-8?q?=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
main/manager-web/babel.config.js | 23 ++-
main/manager-web/jsconfig.json | 2 +-
main/manager-web/package-lock.json | 2 +-
main/manager-web/package.json | 2 +-
main/manager-web/src/App.vue | 7 +-
main/manager-web/src/apis/httpRequest.js | 16 +-
main/manager-web/src/apis/module/admin.js | 40 ++---
main/manager-web/src/apis/module/agent.js | 6 +-
main/manager-web/src/apis/module/device.js | 48 ++---
main/manager-web/src/apis/module/model.js | 166 +++++++++---------
main/manager-web/src/apis/module/ota.js | 4 +-
main/manager-web/src/apis/module/user.js | 2 +-
main/manager-web/src/main.js | 12 +-
main/manager-web/src/router/index.js | 10 +-
main/manager-web/src/store/index.js | 10 +-
main/manager-web/src/styles/global.scss | 2 +-
main/manager-web/src/utils/index.js | 2 +-
main/manager-web/src/views/ModelConfig.vue | 105 +++++------
main/manager-web/src/views/UserManagement.vue | 112 ++++++------
main/manager-web/src/views/login.vue | 45 ++---
main/manager-web/src/views/register.vue | 39 ++--
main/manager-web/src/views/roleConfig.vue | 161 +++++++++--------
main/manager-web/src/views/test.vue | 15 +-
23 files changed, 414 insertions(+), 417 deletions(-)
diff --git a/main/manager-web/babel.config.js b/main/manager-web/babel.config.js
index 52fce6d4..b3469a75 100644
--- a/main/manager-web/babel.config.js
+++ b/main/manager-web/babel.config.js
@@ -1,13 +1,12 @@
module.exports = {
- presets: [
- ['@vue/cli-plugin-babel/preset', {
- useBuiltIns: 'usage',
- corejs: 3
- }]
- ],
- plugins: [
- '@babel/plugin-syntax-dynamic-import', // 确保支持动态导入 (Lazy Loading)
- '@babel/plugin-transform-runtime'
- ]
- }
-
\ No newline at end of file
+ presets: [
+ ['@vue/cli-plugin-babel/preset', {
+ useBuiltIns: 'usage',
+ corejs: 3
+ }]
+ ],
+ plugins: [
+ '@babel/plugin-syntax-dynamic-import', // 确保支持动态导入 (Lazy Loading)
+ '@babel/plugin-transform-runtime'
+ ]
+}
diff --git a/main/manager-web/jsconfig.json b/main/manager-web/jsconfig.json
index 4aafc5f6..587b2896 100644
--- a/main/manager-web/jsconfig.json
+++ b/main/manager-web/jsconfig.json
@@ -16,4 +16,4 @@
"scripthost"
]
}
-}
+}
\ No newline at end of file
diff --git a/main/manager-web/package-lock.json b/main/manager-web/package-lock.json
index 54610c6d..f84c4950 100644
--- a/main/manager-web/package-lock.json
+++ b/main/manager-web/package-lock.json
@@ -8847,4 +8847,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/main/manager-web/package.json b/main/manager-web/package.json
index 5a6e7de2..e49c09a8 100644
--- a/main/manager-web/package.json
+++ b/main/manager-web/package.json
@@ -43,4 +43,4 @@
"*.scss",
"*.vue"
]
-}
+}
\ No newline at end of file
diff --git a/main/manager-web/src/App.vue b/main/manager-web/src/App.vue
index e6ebe913..4e54377e 100644
--- a/main/manager-web/src/App.vue
+++ b/main/manager-web/src/App.vue
@@ -1,11 +1,10 @@
-
+
\ No newline at end of file
diff --git a/main/manager-web/src/apis/httpRequest.js b/main/manager-web/src/apis/httpRequest.js
index 44d939e7..182152f9 100755
--- a/main/manager-web/src/apis/httpRequest.js
+++ b/main/manager-web/src/apis/httpRequest.js
@@ -1,7 +1,7 @@
-import {goToPage, showDanger, showWarning, isNotNull} from '../utils/index'
-import Constant from '../utils/constant'
import Fly from 'flyio/dist/npm/fly';
-import store from '../store/index'
+import store from '../store/index';
+import Constant from '../utils/constant';
+import { goToPage, isNotNull, showDanger, showWarning } from '../utils/index';
const fly = new Fly()
// 设置超时
@@ -22,11 +22,11 @@ function sendRequest() {
_failCallback: null,
_method: 'GET',
_data: {},
- _header: {'content-type': 'application/json; charset=utf-8'},
+ _header: { 'content-type': 'application/json; charset=utf-8' },
_url: '',
_responseType: undefined, // 新增响应类型字段
'send'() {
- if(isNotNull(store.getters.getToken)){
+ if (isNotNull(store.getters.getToken)) {
this._header.Authorization = 'Bearer ' + (JSON.parse(store.getters.getToken)).token
}
@@ -40,7 +40,7 @@ function sendRequest() {
if (error) {
return
}
-
+
if (this._sucCallback) {
this._sucCallback(res)
}
@@ -101,13 +101,13 @@ function sendRequest() {
// 在错误处理函数中添加日志
function httpHandlerError(info, callBack) {
console.log('httpHandlerError', info)
-
+
/** 请求成功,退出该函数 可以根据项目需求来判断是否请求成功。这里判断的是status为200的时候是成功 */
let networkError = false
if (info.status === 200) {
if (info.data.code === 'success' || info.data.code === 0 || info.data.code === undefined) {
return networkError
- }else if (info.data.code === 401) {
+ } else if (info.data.code === 401) {
console.log('触发 401,清除 Token 并跳转登录页');
store.commit('clearAuth');
goToPage(Constant.PAGE.LOGIN, true);
diff --git a/main/manager-web/src/apis/module/admin.js b/main/manager-web/src/apis/module/admin.js
index 83da3023..f00036cf 100644
--- a/main/manager-web/src/apis/module/admin.js
+++ b/main/manager-web/src/apis/module/admin.js
@@ -1,30 +1,30 @@
-import RequestService from '../httpRequest'
-import {getServiceUrl} from '../api'
+import { getServiceUrl } from '../api';
+import RequestService from '../httpRequest';
export default {
// 用户列表
getUserList(params, callback) {
- const queryParams = new URLSearchParams({
- page: params.page,
- limit: params.limit,
- mobile: params.mobile
- }).toString();
+ const queryParams = new URLSearchParams({
+ page: params.page,
+ limit: params.limit,
+ mobile: params.mobile
+ }).toString();
- RequestService.sendRequest()
- .url(`${getServiceUrl()}/api/v1/admin/users?${queryParams}`)
- .method('GET')
- .success((res) => {
- RequestService.clearRequestTime()
- callback(res)
+ RequestService.sendRequest()
+ .url(`${getServiceUrl()}/api/v1/admin/users?${queryParams}`)
+ .method('GET')
+ .success((res) => {
+ RequestService.clearRequestTime()
+ callback(res)
+ })
+ .fail((err) => {
+ console.error('请求失败:', err)
+ RequestService.reAjaxFun(() => {
+ this.getUserList(callback)
})
- .fail((err) => {
- console.error('请求失败:', err)
- RequestService.reAjaxFun(() => {
- this.getUserList(callback)
- })
- }).send()
- },
+ }).send()
+ },
// 删除用户
deleteUser(id, callback) {
RequestService.sendRequest()
diff --git a/main/manager-web/src/apis/module/agent.js b/main/manager-web/src/apis/module/agent.js
index 034cbf8a..d0cc15e5 100644
--- a/main/manager-web/src/apis/module/agent.js
+++ b/main/manager-web/src/apis/module/agent.js
@@ -1,5 +1,5 @@
-import RequestService from '../httpRequest'
-import {getServiceUrl} from '../api'
+import { getServiceUrl } from '../api';
+import RequestService from '../httpRequest';
export default {
@@ -23,7 +23,7 @@ export default {
RequestService.sendRequest()
.url(`${getServiceUrl()}/api/v1/agent`)
.method('POST')
- .data({agentName: agentName})
+ .data({ agentName: agentName })
.success((res) => {
RequestService.clearRequestTime();
callback(res);
diff --git a/main/manager-web/src/apis/module/device.js b/main/manager-web/src/apis/module/device.js
index e8dc2c71..c6a9f0be 100644
--- a/main/manager-web/src/apis/module/device.js
+++ b/main/manager-web/src/apis/module/device.js
@@ -1,38 +1,38 @@
-import RequestService from '../httpRequest'
-import {getServiceUrl} from '../api'
+import { getServiceUrl } from '../api';
+import RequestService from '../httpRequest';
export default {
// 已绑设备
- getAgentBindDevices(agentId, callback) {
- RequestService.sendRequest()
- .url(`${getServiceUrl()}/api/v1/device/bind/${agentId}`)
- .method('GET')
- .success((res) => {
- RequestService.clearRequestTime();
- callback(res);
- })
- .fail((err) => {
- console.error('获取设备列表失败:', err);
- RequestService.reAjaxFun(() => {
- this.getAgentBindDevices(agentId, callback);
- });
- }).send();
- },
+ getAgentBindDevices(agentId, callback) {
+ RequestService.sendRequest()
+ .url(`${getServiceUrl()}/api/v1/device/bind/${agentId}`)
+ .method('GET')
+ .success((res) => {
+ RequestService.clearRequestTime();
+ callback(res);
+ })
+ .fail((err) => {
+ console.error('获取设备列表失败:', err);
+ RequestService.reAjaxFun(() => {
+ this.getAgentBindDevices(agentId, callback);
+ });
+ }).send();
+ },
// 解绑设备
unbindDevice(device_id, callback) {
- RequestService.sendRequest()
+ RequestService.sendRequest()
.url(`${getServiceUrl()}/api/v1/device/unbind`)
.method('POST')
.data({ deviceId: device_id })
.success((res) => {
- RequestService.clearRequestTime();
- callback(res);
+ RequestService.clearRequestTime();
+ callback(res);
})
.fail((err) => {
- console.error('解绑设备失败:', err);
- RequestService.reAjaxFun(() => {
- this.unbindDevice(device_id, callback);
- });
+ console.error('解绑设备失败:', err);
+ RequestService.reAjaxFun(() => {
+ this.unbindDevice(device_id, callback);
+ });
}).send();
},
// 绑定设备
diff --git a/main/manager-web/src/apis/module/model.js b/main/manager-web/src/apis/module/model.js
index 2bf7dc00..f13e335b 100644
--- a/main/manager-web/src/apis/module/model.js
+++ b/main/manager-web/src/apis/module/model.js
@@ -1,96 +1,96 @@
-import RequestService from '../httpRequest'
-import {getServiceUrl} from '../api'
+import { getServiceUrl } from '../api';
+import RequestService from '../httpRequest';
export default {
- // 获取模型配置列表
- getModelList(params, callback) {
- const queryParams = new URLSearchParams({
- modelType: params.modelType,
- modelName: params.modelName || '',
- page: params.page || 0,
- limit: params.limit || 10
- }).toString();
+ // 获取模型配置列表
+ getModelList(params, callback) {
+ const queryParams = new URLSearchParams({
+ modelType: params.modelType,
+ modelName: params.modelName || '',
+ page: params.page || 0,
+ limit: params.limit || 10
+ }).toString();
- RequestService.sendRequest()
- .url(`${getServiceUrl()}/api/v1/models/models/list?${queryParams}`)
- .method('GET')
- .success((res) => {
- RequestService.clearRequestTime()
- callback(res)
+ RequestService.sendRequest()
+ .url(`${getServiceUrl()}/api/v1/models/models/list?${queryParams}`)
+ .method('GET')
+ .success((res) => {
+ RequestService.clearRequestTime()
+ callback(res)
+ })
+ .fail((err) => {
+ console.error('获取模型列表失败:', err)
+ RequestService.reAjaxFun(() => {
+ this.getModelList(params, callback)
})
- .fail((err) => {
- console.error('获取模型列表失败:', err)
- RequestService.reAjaxFun(() => {
- this.getModelList(params, callback)
- })
- }).send()
- },
- // 获取模型供应器列表
- getModelProviders(modelType, callback) {
- RequestService.sendRequest()
- .url(`${getServiceUrl()}/api/v1/models/${modelType}/provideTypes`)
- .method('GET')
- .success((res) => {
- RequestService.clearRequestTime()
- callback(res.data?.data || [])
+ }).send()
+ },
+ // 获取模型供应器列表
+ getModelProviders(modelType, callback) {
+ RequestService.sendRequest()
+ .url(`${getServiceUrl()}/api/v1/models/${modelType}/provideTypes`)
+ .method('GET')
+ .success((res) => {
+ RequestService.clearRequestTime()
+ callback(res.data?.data || [])
+ })
+ .fail((err) => {
+ console.error('获取供应器列表失败:', err)
+ this.$message.error('获取供应器列表失败')
+ RequestService.reAjaxFun(() => {
+ this.getModelProviders(modelType, callback)
})
- .fail((err) => {
- console.error('获取供应器列表失败:', err)
- this.$message.error('获取供应器列表失败')
- RequestService.reAjaxFun(() => {
- this.getModelProviders(modelType, callback)
- })
- }).send()
- },
+ }).send()
+ },
- // 新增模型配置
- addModel(params, callback) {
- const { modelType, provideCode, formData } = params;
- const postData = {
- modelCode: formData.modelCode,
- modelName: formData.modelName,
- isDefault: formData.isDefault ? 1 : 0,
- isEnabled: formData.isEnabled ? 1 : 0,
- configJson: JSON.stringify(formData.configJson),
- docLink: formData.docLink,
- remark: formData.remark,
- sort: formData.sort || 0
- };
+ // 新增模型配置
+ addModel(params, callback) {
+ const { modelType, provideCode, formData } = params;
+ const postData = {
+ modelCode: formData.modelCode,
+ modelName: formData.modelName,
+ isDefault: formData.isDefault ? 1 : 0,
+ isEnabled: formData.isEnabled ? 1 : 0,
+ configJson: JSON.stringify(formData.configJson),
+ docLink: formData.docLink,
+ remark: formData.remark,
+ sort: formData.sort || 0
+ };
- RequestService.sendRequest()
- .url(`${getServiceUrl()}/api/v1/models/models/${modelType}/${provideCode}`)
- .method('POST')
- .data(postData)
- .success((res) => {
- RequestService.clearRequestTime()
- callback(res)
+ RequestService.sendRequest()
+ .url(`${getServiceUrl()}/api/v1/models/models/${modelType}/${provideCode}`)
+ .method('POST')
+ .data(postData)
+ .success((res) => {
+ RequestService.clearRequestTime()
+ callback(res)
+ })
+ .fail((err) => {
+ console.error('新增模型失败:', err)
+ this.$message.error(err.msg || '新增模型失败')
+ RequestService.reAjaxFun(() => {
+ this.addModel(params, callback)
})
- .fail((err) => {
- console.error('新增模型失败:', err)
- this.$message.error(err.msg || '新增模型失败')
- RequestService.reAjaxFun(() => {
- this.addModel(params, callback)
- })
- }).send()
- },
- // 删除模型配置
- deleteModel(modelType, provideCode, id, callback) {
- RequestService.sendRequest()
- .url(`${getServiceUrl()}/api/v1/models/models/${modelType}/${provideCode}/${id}`)
- .method('DELETE')
- .success((res) => {
- RequestService.clearRequestTime()
- callback(res)
+ }).send()
+ },
+ // 删除模型配置
+ deleteModel(modelType, provideCode, id, callback) {
+ RequestService.sendRequest()
+ .url(`${getServiceUrl()}/api/v1/models/models/${modelType}/${provideCode}/${id}`)
+ .method('DELETE')
+ .success((res) => {
+ RequestService.clearRequestTime()
+ callback(res)
+ })
+ .fail((err) => {
+ console.error('删除模型失败:', err)
+ this.$message.error(err.msg || '删除模型失败')
+ RequestService.reAjaxFun(() => {
+ this.deleteModel(modelType, provideCode, id, callback)
})
- .fail((err) => {
- console.error('删除模型失败:', err)
- this.$message.error(err.msg || '删除模型失败')
- RequestService.reAjaxFun(() => {
- this.deleteModel(modelType, provideCode, id, callback)
- })
- }).send()
- },
+ }).send()
+ },
}
diff --git a/main/manager-web/src/apis/module/ota.js b/main/manager-web/src/apis/module/ota.js
index fbc76421..127efb41 100644
--- a/main/manager-web/src/apis/module/ota.js
+++ b/main/manager-web/src/apis/module/ota.js
@@ -1,5 +1,5 @@
+import { getServiceUrl } from '../api'
import RequestService from '../httpRequest'
-import {getServiceUrl} from '../api'
export default {
/**
@@ -11,7 +11,7 @@ export default {
RequestService.sendRequest()
.url(`${getServiceUrl()}/api/v1/ota/activation`)
.method('GET')
- .query({code})
+ .query({ code })
.success((res) => {
RequestService.clearRequestTime()
callback(res)
diff --git a/main/manager-web/src/apis/module/user.js b/main/manager-web/src/apis/module/user.js
index 8464794c..01dc0492 100755
--- a/main/manager-web/src/apis/module/user.js
+++ b/main/manager-web/src/apis/module/user.js
@@ -1,5 +1,5 @@
+import { getServiceUrl } from '../api'
import RequestService from '../httpRequest'
-import {getServiceUrl} from '../api'
export default {
diff --git a/main/manager-web/src/main.js b/main/manager-web/src/main.js
index 12d672ca..e082f682 100644
--- a/main/manager-web/src/main.js
+++ b/main/manager-web/src/main.js
@@ -1,11 +1,11 @@
-import Vue from 'vue'
-import App from './App.vue'
-import router from './router'
-import store from './store'
-import 'normalize.css/normalize.css' // A modern alternative to CSS resets
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
-import './styles/global.scss'
+import 'normalize.css/normalize.css'; // A modern alternative to CSS resets
+import Vue from 'vue';
+import App from './App.vue';
+import router from './router';
+import store from './store';
+import './styles/global.scss';
Vue.use(ElementUI);
diff --git a/main/manager-web/src/router/index.js b/main/manager-web/src/router/index.js
index a6f2f2a6..75456641 100644
--- a/main/manager-web/src/router/index.js
+++ b/main/manager-web/src/router/index.js
@@ -56,11 +56,11 @@ const routes = [
}
},
{
- path: '/model-config',
- name: 'ModelConfig',
- component: function () {
- return import('../views/ModelConfig.vue')
- }
+ path: '/model-config',
+ name: 'ModelConfig',
+ component: function () {
+ return import('../views/ModelConfig.vue')
+ }
},
{
path: '/test',
diff --git a/main/manager-web/src/store/index.js b/main/manager-web/src/store/index.js
index 15377c71..e359c479 100644
--- a/main/manager-web/src/store/index.js
+++ b/main/manager-web/src/store/index.js
@@ -1,7 +1,7 @@
-import Vue from 'vue'
-import Vuex from 'vuex'
-import Constant from '../utils/constant'
-import {goToPage} from "@/utils";
+import { goToPage } from "@/utils";
+import Vue from 'vue';
+import Vuex from 'vuex';
+import Constant from '../utils/constant';
Vue.use(Vuex)
@@ -52,7 +52,7 @@ export default new Vuex.Store({
logout({ commit }) {
return new Promise((resolve) => {
commit('clearAuth')
- goToPage(Constant.PAGE.LOGIN,true);
+ goToPage(Constant.PAGE.LOGIN, true);
window.location.reload(); // 彻底重置状态
})
}
diff --git a/main/manager-web/src/styles/global.scss b/main/manager-web/src/styles/global.scss
index dfc8e51b..b83180f2 100644
--- a/main/manager-web/src/styles/global.scss
+++ b/main/manager-web/src/styles/global.scss
@@ -1,6 +1,6 @@
// 覆盖 autofill 样式
input:-webkit-autofill,
-input:-webkit-autofill:hover,
+input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
diff --git a/main/manager-web/src/utils/index.js b/main/manager-web/src/utils/index.js
index aeb728b4..8a5a960e 100755
--- a/main/manager-web/src/utils/index.js
+++ b/main/manager-web/src/utils/index.js
@@ -1,6 +1,6 @@
+import { Message } from 'element-ui'
import router from '../router'
import Constant from '../utils/constant'
-import { Message } from 'element-ui'
/**
* 判断用户是否登录
diff --git a/main/manager-web/src/views/ModelConfig.vue b/main/manager-web/src/views/ModelConfig.vue
index cdb9e3ef..e0f4afb9 100644
--- a/main/manager-web/src/views/ModelConfig.vue
+++ b/main/manager-web/src/views/ModelConfig.vue
@@ -2,26 +2,26 @@
-
-
模型配置
-
-
-
- 导入配置
-
-
-
- 导出配置
-
-
+
+
模型配置
+
+
+
+ 导入配置
+
+
+
+ 导出配置
+
+
+ style="background-size: cover; background-position: center;">
@@ -46,14 +46,14 @@
-
{{ modelTypeText }}
-
- 添加
-
+ {{ modelTypeText }}
+
+ 添加
+
-
+
@@ -72,9 +74,8 @@
-
+
@@ -98,7 +99,9 @@
-
+
-
+
- ©2025 xiaozhi-esp32-server
-
+ ©2025 xiaozhi-esp32-server
+
-
diff --git a/main/manager-web/src/views/UserManagement.vue b/main/manager-web/src/views/UserManagement.vue
index b6c4308e..af5982db 100644
--- a/main/manager-web/src/views/UserManagement.vue
+++ b/main/manager-web/src/views/UserManagement.vue
@@ -5,7 +5,8 @@
@@ -14,7 +15,8 @@
-
+
@@ -22,14 +24,14 @@
- 重置密码
- 重置密码
+ 禁用账户
- 恢复账号
- 删除用户
+ 删除用户
@@ -38,14 +40,16 @@
全选
启用
- 禁用
+ 禁用
删除
+@import './auth.scss'; // 添加这行引用
diff --git a/main/manager-web/src/views/register.vue b/main/manager-web/src/views/register.vue
index 5d0ce0c8..d30db354 100644
--- a/main/manager-web/src/views/register.vue
+++ b/main/manager-web/src/views/register.vue
@@ -4,8 +4,8 @@
@@ -13,7 +13,7 @@
-

+
注册
WELCOME TO REGISTER
@@ -23,34 +23,30 @@
-
![验证码]()
+
@@ -83,8 +79,8 @@
+@import './auth.scss'; // 修改为导入新建的SCSS文件
diff --git a/main/manager-web/src/views/roleConfig.vue b/main/manager-web/src/views/roleConfig.vue
index 57648c14..8af3e786 100644
--- a/main/manager-web/src/views/roleConfig.vue
+++ b/main/manager-web/src/views/roleConfig.vue
@@ -1,27 +1,28 @@
-
+
+ style="padding: 15px 24px;font-weight: 700;font-size: 19px;text-align: left;color: #3d4566;display: flex;gap: 13px;align-items: center;">
-

+ style="width: 37px;height: 37px;background: #5778ff;border-radius: 50%;display: flex;align-items: center;justify-content: center;">
+
{{ form.agentName }}
-
+
-
+
-
@@ -30,32 +31,31 @@
-
+
+ style="height: 100%;width: 100%;" />
-
+
-
+
@@ -65,7 +65,7 @@
-
+
@@ -83,7 +83,7 @@
重制
-

+

保存配置后,需要重启设备,新的配置才会生效。
@@ -100,7 +100,7 @@ import HeaderBar from "@/components/HeaderBar.vue";
export default {
name: 'RoleConfigPage',
- components: {HeaderBar},
+ components: { HeaderBar },
data() {
return {
form: {
@@ -121,16 +121,16 @@ export default {
}
},
options: [
- {value: '选项1', label: '黄金糕'},
- {value: '选项2', label: '双皮奶'}
+ { value: '选项1', label: '黄金糕' },
+ { value: '选项2', label: '双皮奶' }
],
models: [
- {label: '大语言模型(LLM)', key: 'llmModelId'},
- {label: '语音识别(ASR)', key: 'asrModelId'},
- {label: '语音活动检测(VAD)', key: 'vadModelId'},
- {label: '语音合成(TTS)', key: 'ttsModelId'},
- {label: '意图识别(Intent)', key: 'intentModelId'},
- {label: '记忆(Memory)', key: 'memModelId'}
+ { label: '大语言模型(LLM)', key: 'llmModelId' },
+ { label: '语音识别(ASR)', key: 'asrModelId' },
+ { label: '语音活动检测(VAD)', key: 'vadModelId' },
+ { label: '语音合成(TTS)', key: 'ttsModelId' },
+ { label: '意图识别(Intent)', key: 'intentModelId' },
+ { label: '记忆(Memory)', key: 'memModelId' }
],
templates: ['湾湾小何', '星际游子', '英语老师', '好奇男孩', '汪汪队长'],
loadingTemplate: false
@@ -153,8 +153,8 @@ export default {
language: this.form.language,
sort: this.form.sort
};
- import('@/apis/module/agent').then(({default: agentApi}) => {
- agentApi.updateAgentConfig(this.$route.query.agentId, configData, ({data}) => {
+ import('@/apis/module/agent').then(({ default: agentApi }) => {
+ agentApi.updateAgentConfig(this.$route.query.agentId, configData, ({ data }) => {
if (data.code === 0) {
this.$message.success('配置保存成功');
} else {
@@ -192,31 +192,31 @@ export default {
})
},
selectTemplate(templateName) {
- if (this.loadingTemplate) return;
- this.loadingTemplate = true;
- import('@/apis/module/agent').then(({default: agentApi}) => {
- agentApi.getAgentTemplate((response) => { // 移除参数传递
- this.loadingTemplate = false;
- if (response.data.code === 0) {
- // 在客户端过滤匹配的模板
- const matchedTemplate = response.data.data.find(
- t => t.agentName === templateName
- );
- if (matchedTemplate) {
- this.applyTemplateData(matchedTemplate);
- this.$message.success(`「${templateName}」模板已应用`);
- } else {
- this.$message.warning(`未找到「${templateName}」模板`);
- }
- } else {
- this.$message.error(response.data.msg || '获取模板失败');
- }
- });
- }).catch((error) => {
- this.loadingTemplate = false;
- this.$message.error('模板加载失败');
- console.error('接口异常:', error);
+ if (this.loadingTemplate) return;
+ this.loadingTemplate = true;
+ import('@/apis/module/agent').then(({ default: agentApi }) => {
+ agentApi.getAgentTemplate((response) => { // 移除参数传递
+ this.loadingTemplate = false;
+ if (response.data.code === 0) {
+ // 在客户端过滤匹配的模板
+ const matchedTemplate = response.data.data.find(
+ t => t.agentName === templateName
+ );
+ if (matchedTemplate) {
+ this.applyTemplateData(matchedTemplate);
+ this.$message.success(`「${templateName}」模板已应用`);
+ } else {
+ this.$message.warning(`未找到「${templateName}」模板`);
+ }
+ } else {
+ this.$message.error(response.data.msg || '获取模板失败');
+ }
});
+ }).catch((error) => {
+ this.loadingTemplate = false;
+ this.$message.error('模板加载失败');
+ console.error('接口异常:', error);
+ });
},
applyTemplateData(templateData) {
this.form = {
@@ -235,37 +235,37 @@ export default {
}
};
},
- fetchAgentConfig(agentId) {
- import('@/apis/module/agent').then(({default: agentApi}) => {
- agentApi.getDeviceConfig(agentId, ({data}) => {
- if (data.code === 0) {
- this.form = {
- ...this.form,
- ...data.data,
- model: {
- ttsModelId: data.data.ttsModelId,
- vadModelId: data.data.vadModelId,
- asrModelId: data.data.asrModelId,
- llmModelId: data.data.llmModelId,
- memModelId: data.data.memModelId,
- intentModelId: data.data.intentModelId
- }
- };
- } else {
- this.$message.error(data.msg || '获取配置失败');
- }
+ fetchAgentConfig(agentId) {
+ import('@/apis/module/agent').then(({ default: agentApi }) => {
+ agentApi.getDeviceConfig(agentId, ({ data }) => {
+ if (data.code === 0) {
+ this.form = {
+ ...this.form,
+ ...data.data,
+ model: {
+ ttsModelId: data.data.ttsModelId,
+ vadModelId: data.data.vadModelId,
+ asrModelId: data.data.asrModelId,
+ llmModelId: data.data.llmModelId,
+ memModelId: data.data.memModelId,
+ intentModelId: data.data.intentModelId
+ }
+ };
+ } else {
+ this.$message.error(data.msg || '获取配置失败');
+ }
+ });
});
- });
+ },
+ // 清空记忆体内容
+ clearMemory() {
+ this.form.langCode = "";
+ this.$message.success("记忆体已清空");
+ },
},
- // 清空记忆体内容
- clearMemory() {
- this.form.langCode = "";
- this.$message.success("记忆体已清空");
- },
-},
mounted() {
const agentId = this.$route.query.agentId;
- console.log('agentId2222',agentId);
+ console.log('agentId2222', agentId);
if (agentId) {
this.fetchAgentConfig(agentId);
}
@@ -299,7 +299,7 @@ export default {
padding-bottom: 2px;
}
-.select-field{
+.select-field {
width: 100%;
max-width: 720px;
border: 1px solid #e4e6ef;
@@ -397,4 +397,3 @@ export default {
background: #f6f8fb;
}
-
diff --git a/main/manager-web/src/views/test.vue b/main/manager-web/src/views/test.vue
index e5ea8309..9ec2643a 100644
--- a/main/manager-web/src/views/test.vue
+++ b/main/manager-web/src/views/test.vue
@@ -3,13 +3,12 @@
XiaoZhi ESP32 Server 测试助手
+ :class="['message', message.role === 'user' ? 'user' : 'assistant']">
{{ message.content }}
-