From cd97018c4d78f8c570f0d683bdf5ac977bcea5c4 Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Wed, 9 Apr 2025 13:36:59 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=8F=82=E6=95=B0=E5=A2=9E=E5=88=A0?= =?UTF-8?q?=E6=94=B9=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add:配置管理接口 * add:参数增删改查 --- .../timbre/controller/TimbreController.java | 6 +- .../modules/timbre/vo/TimbreDetailsVO.java | 2 +- main/manager-web/src/apis/module/admin.js | 85 ++- .../src/assets/header/param_management.png | Bin 0 -> 6904 bytes main/manager-web/src/components/HeaderBar.vue | 9 + main/manager-web/src/router/index.js | 12 +- .../src/views/ParamsManagement.vue | 536 ++++++++++++++++++ 7 files changed, 644 insertions(+), 6 deletions(-) create mode 100644 main/manager-web/src/assets/header/param_management.png create mode 100644 main/manager-web/src/views/ParamsManagement.vue diff --git a/main/manager-api/src/main/java/xiaozhi/modules/timbre/controller/TimbreController.java b/main/manager-api/src/main/java/xiaozhi/modules/timbre/controller/TimbreController.java index e13cb93e..15ddf8fc 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/timbre/controller/TimbreController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/timbre/controller/TimbreController.java @@ -82,11 +82,11 @@ public class TimbreController { return new Result<>(); } - @DeleteMapping("/{id}") + @DeleteMapping @Operation(summary = "音色删除") @RequiresPermissions("sys:role:superAdmin") - public Result delete(@PathVariable String id) { - timbreService.delete(new String[] { id }); + public Result delete(@RequestBody String[] ids) { + timbreService.delete(ids); return new Result<>(); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/timbre/vo/TimbreDetailsVO.java b/main/manager-api/src/main/java/xiaozhi/modules/timbre/vo/TimbreDetailsVO.java index 68cc7bbb..3f0ace40 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/timbre/vo/TimbreDetailsVO.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/timbre/vo/TimbreDetailsVO.java @@ -14,7 +14,7 @@ import lombok.Data; @Data public class TimbreDetailsVO implements Serializable { @Schema(description = "音色id") - private Long id; + private String id; @Schema(description = "语言") private String languages; diff --git a/main/manager-web/src/apis/module/admin.js b/main/manager-web/src/apis/module/admin.js index dba012ba..76fabb87 100644 --- a/main/manager-web/src/apis/module/admin.js +++ b/main/manager-web/src/apis/module/admin.js @@ -56,6 +56,89 @@ export default { this.resetUserPassword(id, callback) }) }).send() - } + }, + getParamsList(params, callback) { + const queryParams = new URLSearchParams({ + page: params.page, + limit: params.limit + }).toString(); + RequestService.sendRequest() + .url(`${getServiceUrl()}/admin/params/page?${queryParams}`) + .method('GET') + .success((res) => { + RequestService.clearRequestTime() + callback(res) + }) + .fail((err) => { + console.error('获取参数列表失败:', err) + RequestService.reAjaxFun(() => { + this.getParamsList(params, callback) + }) + }).send() + }, + addParam(data, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/admin/params`) + .method('POST') + .data(data) + .success((res) => { + RequestService.clearRequestTime() + callback(res) + }) + .fail((err) => { + console.error('添加参数失败:', err) + RequestService.reAjaxFun(() => { + this.addParam(data, callback) + }) + }).send() + }, + updateParam(data, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/admin/params`) + .method('PUT') + .data(data) + .success((res) => { + RequestService.clearRequestTime() + callback(res) + }) + .fail((err) => { + console.error('更新参数失败:', err) + RequestService.reAjaxFun(() => { + this.updateParam(data, callback) + }) + }).send() + }, + deleteParam(id, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/admin/params`) + .method('DELETE') + .data({ ids: [id] }) + .success((res) => { + RequestService.clearRequestTime() + callback(res) + }) + .fail((err) => { + console.error('删除参数失败:', err) + RequestService.reAjaxFun(() => { + this.deleteParam(id, callback) + }) + }).send() + }, + batchDeleteParams(ids, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/admin/params`) + .method('DELETE') + .data({ ids }) + .success((res) => { + RequestService.clearRequestTime() + callback(res) + }) + .fail((err) => { + console.error('批量删除参数失败:', err) + RequestService.reAjaxFun(() => { + this.batchDeleteParams(ids, callback) + }) + }).send() + } } diff --git a/main/manager-web/src/assets/header/param_management.png b/main/manager-web/src/assets/header/param_management.png new file mode 100644 index 0000000000000000000000000000000000000000..215b12efb06e9d06387eb9dfc3d0cc1d73c9c3e6 GIT binary patch literal 6904 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 c18>1s(Rw=ktYNkfzp? literal 0 HcmV?d00001 diff --git a/main/manager-web/src/components/HeaderBar.vue b/main/manager-web/src/components/HeaderBar.vue index e5f719a1..5ddcee55 100644 --- a/main/manager-web/src/components/HeaderBar.vue +++ b/main/manager-web/src/components/HeaderBar.vue @@ -26,6 +26,12 @@ :style="{ filter: $route.path === '/user-management' ? 'brightness(0) invert(1)' : 'None' }" /> 用户管理 +
+ + 参数管理 +
@@ -96,6 +102,9 @@ export default { goModelConfig() { this.$router.push('/model-config') }, + goParamManagement() { + this.$router.push('/params-management') + }, // 获取用户信息 fetchUserInfo() { userApi.getUserInfo(({ data }) => { diff --git a/main/manager-web/src/router/index.js b/main/manager-web/src/router/index.js index 75456641..9a06b07b 100644 --- a/main/manager-web/src/router/index.js +++ b/main/manager-web/src/router/index.js @@ -69,7 +69,17 @@ const routes = [ return import('../views/test.vue') } }, - + { + path: '/params-management', + name: 'ParamsManagement', + component: function () { + return import('../views/ParamsManagement.vue') + }, + meta: { + requiresAuth: true, + title: '参数管理' + } + }, ] const router = new VueRouter({ diff --git a/main/manager-web/src/views/ParamsManagement.vue b/main/manager-web/src/views/ParamsManagement.vue new file mode 100644 index 00000000..896c035e --- /dev/null +++ b/main/manager-web/src/views/ParamsManagement.vue @@ -0,0 +1,536 @@ + + + + + \ No newline at end of file