From 4409f370006df98ccad7634fae46caa05c110cc4 Mon Sep 17 00:00:00 2001 From: Erlei Chen Date: Fri, 21 Mar 2025 01:39:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E6=A0=B7=E5=BC=8F=E5=8F=8A?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/manager-web/src/apis/api.js | 6 +- main/manager-web/src/apis/module/agent.js | 84 ++++++ main/manager-web/src/apis/module/device.js | 51 ++++ main/manager-web/src/apis/module/user.js | 16 -- .../src/components/AddAgentDialog.vue | 75 ++++++ main/manager-web/src/components/AgentItem.vue | 77 ++++++ main/manager-web/src/components/Footer.vue | 30 +++ main/manager-web/src/components/HeaderBar.vue | 114 ++++---- main/manager-web/src/router/index.js | 7 + main/manager-web/src/views/device.vue | 251 ++++++++++++++++++ main/manager-web/src/views/home.vue | 115 +++++--- main/manager-web/src/views/roleConfig.vue | 129 ++++----- 12 files changed, 756 insertions(+), 199 deletions(-) create mode 100755 main/manager-web/src/apis/module/agent.js create mode 100755 main/manager-web/src/apis/module/device.js create mode 100644 main/manager-web/src/components/AddAgentDialog.vue create mode 100644 main/manager-web/src/components/AgentItem.vue create mode 100644 main/manager-web/src/components/Footer.vue create mode 100644 main/manager-web/src/views/device.vue diff --git a/main/manager-web/src/apis/api.js b/main/manager-web/src/apis/api.js index bb6ec96b..38c2f86b 100755 --- a/main/manager-web/src/apis/api.js +++ b/main/manager-web/src/apis/api.js @@ -1,4 +1,6 @@ // 引入各个模块的请求 +import agent from './module/agent.js' +import device from './module/device.js' import user from './module/user.js' /** @@ -7,7 +9,7 @@ import user from './module/user.js' * 如果你想调用8002端口,就用'/xiaozhi-esp32-api/api/v1',请与vue.config.js的devServer配置相结合,方便跨域请求 * */ -const DEV_API_SERVICE = 'https://apifoxmock.com/m1/5931378-5618560-default' +const DEV_API_SERVICE = 'https://m1.apifoxmock.com/m1/5931378-5618560-default' // 8002开发完成完成后使用这个 // const DEV_API_SERVICE = '/xiaozhi-esp32-api' @@ -24,4 +26,6 @@ export function getServiceUrl() { export default { getServiceUrl, user, + agent, + device } diff --git a/main/manager-web/src/apis/module/agent.js b/main/manager-web/src/apis/module/agent.js new file mode 100755 index 00000000..721f075c --- /dev/null +++ b/main/manager-web/src/apis/module/agent.js @@ -0,0 +1,84 @@ +import RequestService from '../httpRequest' +import {getServiceUrl} from '../api' + + +export default { + //智能体列表 + getAgentList(callback) { + RequestService.sendRequest().url(`${getServiceUrl()}/api/v1/user/agent`) + .method('GET') + .success((res) => { + RequestService.clearRequestTime() + callback(res) + }) + .fail((err) => { + console.error('获取智能体列表失败:', err); + }).send() + }, + //添加智能体 + addAgent(name, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/api/v1/user/agent`) + .method('POST') + .data({name}) + .success((res) => { + RequestService.clearRequestTime(); + callback(res); + }) + .fail((err) => { + console.error('添加智能体失败:', err); + RequestService.reAjaxFun(() => { + this.addAgent(name, callback); + }); + }).send(); + }, + //获取智能体配置 + getAgentConfig(agent_id, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/api/v1/user/agent/${agent_id}`) + .method('GET') + .success((res) => { + RequestService.clearRequestTime(); + callback(res); + }) + .fail((err) => { + console.error('获取智能体配置失败:', err); + RequestService.reAjaxFun(() => { + this.getAgentConfig(agent_id, callback); + }); + }).send(); + }, + //配置智能体 + saveAgentConfig(agent_id, configData, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/api/v1/user/agent/${agent_id}`) + .method('PUT') + .data(configData) + .success((res) => { + RequestService.clearRequestTime(); + callback(res); + }) + .fail((err) => { + console.error('保存智能体配置失败:', err); + RequestService.reAjaxFun(() => { + this.saveAgentConfig(device_id, configData, callback); + }); + }).send(); + }, + //删除智能体 + delAgent(agent_id, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/api/v1/user/agent/${agent_id}`) + .method('DELETE') + .success((res) => { + RequestService.clearRequestTime(); + callback(res); + }) + .fail((err) => { + console.error('删除智能体失败:', err); + RequestService.reAjaxFun(() => { + this.deleteAgent(agent_id, callback); + }); + }).send(); + }, +} diff --git a/main/manager-web/src/apis/module/device.js b/main/manager-web/src/apis/module/device.js new file mode 100755 index 00000000..cd568745 --- /dev/null +++ b/main/manager-web/src/apis/module/device.js @@ -0,0 +1,51 @@ +import RequestService from '../httpRequest' +import {getServiceUrl} from '../api' + + +export default { + //设备列表 + getDeviceList(agent_id, callback) { + RequestService.sendRequest().url(`${getServiceUrl()}/api/v1/user/agent/device/bind/${agent_id}`) + .method('GET') + .success((res) => { + RequestService.clearRequestTime() + callback(res) + }) + .fail((err) => { + console.error('获取设备列表失败:', err); + }).send() + }, + //绑定设备 + bindDevice(agent_id, code, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/api/v1/user/agent/device/bind/${agent_id}`) + .method('POST') + .data({code}) + .success((res) => { + RequestService.clearRequestTime(); + callback(res); + }) + .fail((err) => { + console.error('绑定设备失败:', err); + RequestService.reAjaxFun(() => { + this.addDevice(name, callback); + }); + }).send(); + }, + // 解绑设备 + unbindDevice(device_id, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/api/v1/user/device/unbind/${device_id}`) + .method('PUT') + .success((res) => { + RequestService.clearRequestTime(); + callback(res); + }) + .fail(() => { + RequestService.reAjaxFun(() => { + this.unbindDevice(device_id, callback); + }); + }).send() + }, + +} diff --git a/main/manager-web/src/apis/module/user.js b/main/manager-web/src/apis/module/user.js index bf3eea34..1879afaf 100755 --- a/main/manager-web/src/apis/module/user.js +++ b/main/manager-web/src/apis/module/user.js @@ -47,22 +47,6 @@ export default { }); }).send() }, - // 绑定设备 - bindDevice(deviceCode, callback) { - RequestService.sendRequest() - .url(`${getServiceUrl()}/api/v1/user/device/bind/${deviceCode}`) - .method('POST') - .success((res) => { - RequestService.clearRequestTime(); - callback(res); - }) - .fail((err) => { - console.error('绑定设备失败:', err); - RequestService.reAjaxFun(() => { - this.bindDevice(deviceCode, callback); - }); - }).send(); - }, // 获取验证码 getCaptcha(uuid, callback) { diff --git a/main/manager-web/src/components/AddAgentDialog.vue b/main/manager-web/src/components/AddAgentDialog.vue new file mode 100644 index 00000000..a7df2940 --- /dev/null +++ b/main/manager-web/src/components/AddAgentDialog.vue @@ -0,0 +1,75 @@ + + + + + \ No newline at end of file diff --git a/main/manager-web/src/components/AgentItem.vue b/main/manager-web/src/components/AgentItem.vue new file mode 100644 index 00000000..eb0b852d --- /dev/null +++ b/main/manager-web/src/components/AgentItem.vue @@ -0,0 +1,77 @@ + + + + \ No newline at end of file diff --git a/main/manager-web/src/components/Footer.vue b/main/manager-web/src/components/Footer.vue new file mode 100644 index 00000000..3ccb543c --- /dev/null +++ b/main/manager-web/src/components/Footer.vue @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/main/manager-web/src/components/HeaderBar.vue b/main/manager-web/src/components/HeaderBar.vue index acc0e981..00400e30 100644 --- a/main/manager-web/src/components/HeaderBar.vue +++ b/main/manager-web/src/components/HeaderBar.vue @@ -1,32 +1,40 @@