From 916eaa8cfe079d28ce626c8397f9ac3734383014 Mon Sep 17 00:00:00 2001 From: DaxPay Date: Thu, 11 Jul 2024 18:52:35 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E7=B3=BB=E7=BB=9F=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/common/Parameter.ts | 4 +- src/logics/websocket/UserGlobalWebSocker.ts | 4 +- src/views/baseapi/dict/DictEdit.vue | 5 +- src/views/baseapi/dict/DictItemEdit.vue | 5 +- src/views/baseapi/param/SystemParam.api.ts | 97 ++++++++++ src/views/baseapi/param/SystemParamEdit.vue | 191 ++++++++++++++++++++ src/views/baseapi/param/SystemParamList.vue | 152 ++++++++++++++++ src/views/iam/client/ClientEdit.vue | 5 +- src/views/iam/perm/code/PermCodeEdit.vue | 5 +- src/views/iam/perm/menu/MenuEdit.vue | 5 +- src/views/iam/role/RoleEdit.vue | 5 +- src/views/iam/role/RoleMenuModal.vue | 8 +- src/views/iam/role/RolePathModal.vue | 8 +- 13 files changed, 466 insertions(+), 28 deletions(-) create mode 100644 src/views/baseapi/param/SystemParam.api.ts create mode 100644 src/views/baseapi/param/SystemParamEdit.vue create mode 100644 src/views/baseapi/param/SystemParamList.vue diff --git a/src/api/common/Parameter.ts b/src/api/common/Parameter.ts index c363b6c9a..b6b6d3ec3 100644 --- a/src/api/common/Parameter.ts +++ b/src/api/common/Parameter.ts @@ -4,9 +4,9 @@ import { Result } from '#/axios' /** * 根据键名获取键值 */ -export function findByParamKey(key) { +export function findByKey(key) { return defHttp.get>({ - url: `/system/param/findByParamKey`, + url: `/system/param/findByKey`, method: 'GET', params: { key }, }) diff --git a/src/logics/websocket/UserGlobalWebSocker.ts b/src/logics/websocket/UserGlobalWebSocker.ts index 6d9b8e464..aad424ca1 100644 --- a/src/logics/websocket/UserGlobalWebSocker.ts +++ b/src/logics/websocket/UserGlobalWebSocker.ts @@ -11,7 +11,7 @@ import { } from '@/logics/websocket/WebSockerType' import { publishWsEvent } from '@/logics/websocket/WebsocketNotice' import { useMessage } from '@/hooks/web/useMessage' -import { findByParamKey } from '@/api/common/Parameter' +import { findByKey } from '@/api/common/Parameter' import { authEcho } from '@/api/common/BaseApi.api' const { notification } = useMessage() @@ -25,7 +25,7 @@ let wsClose: WebSocket['close'] export async function initWebSocket() { const userStore = useUserStoreWithOut() const token = userStore.getToken - const { data: wsUrl } = await findByParamKey('WebsocketServerUrl') + const { data: wsUrl } = await findByKey('WebsocketServerUrl') // 判断token是否有效, 无效会自动退出 await authEcho('') // 后端服务地址 diff --git a/src/views/baseapi/dict/DictEdit.vue b/src/views/baseapi/dict/DictEdit.vue index a5b0344be..e226891cb 100644 --- a/src/views/baseapi/dict/DictEdit.vue +++ b/src/views/baseapi/dict/DictEdit.vue @@ -126,11 +126,10 @@ formRef.value?.validate().then(async () => { confirmLoading.value = true if (formEditType.value === FormEditType.Add) { - await add(form) + await add(form).finally(() => (confirmLoading.value = false)) } else if (formEditType.value === FormEditType.Edit) { - await update(form) + await update(form).finally(() => (confirmLoading.value = false)) } - confirmLoading.value = false handleCancel() emits('ok') }) diff --git a/src/views/baseapi/dict/DictItemEdit.vue b/src/views/baseapi/dict/DictItemEdit.vue index d29c354d7..9581bdc32 100644 --- a/src/views/baseapi/dict/DictItemEdit.vue +++ b/src/views/baseapi/dict/DictItemEdit.vue @@ -129,11 +129,10 @@ import { nextTick, reactive, ref, unref } from "vue"; formRef.value?.validate().then(async () => { confirmLoading.value = true if (formEditType.value === FormEditType.Add) { - await add(form) + await add(form).finally(() => (confirmLoading.value = false)) } else if (formEditType.value === FormEditType.Edit) { - await update(form) + await update(form).finally(() => (confirmLoading.value = false)) } - confirmLoading.value = false handleCancel() emits('ok') }) diff --git a/src/views/baseapi/param/SystemParam.api.ts b/src/views/baseapi/param/SystemParam.api.ts new file mode 100644 index 000000000..105f0ba14 --- /dev/null +++ b/src/views/baseapi/param/SystemParam.api.ts @@ -0,0 +1,97 @@ +import { defHttp } from '@/utils/http/axios' +import { PageResult, Result } from '#/axios' +import { BaseEntity } from '#/web' + +/** + * 分页 + */ +export const page = (params) => { + return defHttp.get>>({ + url: '/system/param/page', + params, + }) +} + +/** + * 获取单条 + */ +export const get = (id) => { + return defHttp.get>({ + url: '/system/param/findById', + params: { id }, + }) +} + +/** + * 添加 + */ +export const add = (obj: SystemParam) => { + return defHttp.post({ + url: '/system/param/add', + data: obj, + }) +} + +/** + * 更新 + */ +export const update = (obj: SystemParam) => { + return defHttp.post({ + url: '/system/param/update', + data: obj, + }) +} + +/** + * 删除 + */ +export const del = (id) => { + return defHttp.delete({ + url: '/system/param/delete', + params: { id }, + }) +} + +/** + * 查询全部 + */ +export const findAll = () => { + return defHttp.get>>({ + url: '/system/param/findAll', + }) +} + +/** + * 编码是否被使用 + */ +export const existsByKey = (key: string) => { + return defHttp.get>({ + url: '/system/param/existsByKey', + params: { key }, + }) +} +export const existsByKeyNotId = (key: string, id) => { + return defHttp.get>({ + url: '/system/param/existsByKeyNotId', + params: { key, id }, + }) +} +/** + * 系统参数配置 + */ +export interface SystemParam extends BaseEntity { + // 参数名称 + name?: string + // 参数键名 + key?: string + // 参数值 + value?: string + // 参数类型 + type?: number + // 是否启用 + enable?: boolean + // 内置参数 + internal?: boolean + // 备注 + remark?: string +} diff --git a/src/views/baseapi/param/SystemParamEdit.vue b/src/views/baseapi/param/SystemParamEdit.vue new file mode 100644 index 000000000..9097278d4 --- /dev/null +++ b/src/views/baseapi/param/SystemParamEdit.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/src/views/baseapi/param/SystemParamList.vue b/src/views/baseapi/param/SystemParamList.vue new file mode 100644 index 000000000..3e8c6cc1f --- /dev/null +++ b/src/views/baseapi/param/SystemParamList.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/views/iam/client/ClientEdit.vue b/src/views/iam/client/ClientEdit.vue index 9f5b7d47a..54a78df80 100644 --- a/src/views/iam/client/ClientEdit.vue +++ b/src/views/iam/client/ClientEdit.vue @@ -115,11 +115,10 @@ formRef.value?.validate().then(async () => { confirmLoading.value = true if (formEditType.value === FormEditType.Add) { - await add(form.value) + await add(form.value).finally(() => (confirmLoading.value = false)) } else if (formEditType.value === FormEditType.Edit) { - await update(form.value) + await update(form.value).finally(() => (confirmLoading.value = false)) } - confirmLoading.value = false handleCancel() emits('ok') }) diff --git a/src/views/iam/perm/code/PermCodeEdit.vue b/src/views/iam/perm/code/PermCodeEdit.vue index b8d5bd771..340a588ab 100644 --- a/src/views/iam/perm/code/PermCodeEdit.vue +++ b/src/views/iam/perm/code/PermCodeEdit.vue @@ -164,11 +164,10 @@ formRef.value?.validate().then(async () => { confirmLoading.value = true if (formEditType.value === FormEditType.Add) { - await add(form.value) + await add(form.value).finally(() => (confirmLoading.value = false)) } else if (formEditType.value === FormEditType.Edit) { - await update(form.value) + await update(form.value).finally(() => (confirmLoading.value = false)) } - confirmLoading.value = false handleCancel() emits('ok') }) diff --git a/src/views/iam/perm/menu/MenuEdit.vue b/src/views/iam/perm/menu/MenuEdit.vue index faadd6915..6909d4ab5 100644 --- a/src/views/iam/perm/menu/MenuEdit.vue +++ b/src/views/iam/perm/menu/MenuEdit.vue @@ -274,11 +274,10 @@ formRef.value?.validate().then(async () => { confirmLoading.value = true if ([FormEditType.Add, FormEditType.Other].includes(formEditType.value)) { - await add(form.value) + await add(form.value).finally(() => (confirmLoading.value = false)) } else if (formEditType.value === FormEditType.Edit) { - await update(form.value) + await update(form.value).finally(() => (confirmLoading.value = false)) } - confirmLoading.value = false handleCancel() emits('ok') }) diff --git a/src/views/iam/role/RoleEdit.vue b/src/views/iam/role/RoleEdit.vue index c9c06d993..2fd989fe7 100644 --- a/src/views/iam/role/RoleEdit.vue +++ b/src/views/iam/role/RoleEdit.vue @@ -154,11 +154,10 @@ formRef.value?.validate().then(async () => { confirmLoading.value = true if (formEditType.value === FormEditType.Add) { - await add(unref(form)) + await add(unref(form)).finally(() => (confirmLoading.value = false)) } else if (formEditType.value === FormEditType.Edit) { - await update(unref(form)) + await update(unref(form)).finally(() => (confirmLoading.value = false)) } - confirmLoading.value = false handleCancel() emits('ok') }) diff --git a/src/views/iam/role/RoleMenuModal.vue b/src/views/iam/role/RoleMenuModal.vue index 09cfa3b88..2b59d0d3a 100644 --- a/src/views/iam/role/RoleMenuModal.vue +++ b/src/views/iam/role/RoleMenuModal.vue @@ -171,10 +171,12 @@ clientCode: clientCode.value, updateChildren, menuIds: checkedKeys.value, - }).then(() => { - createMessage.success('保存成功') - handleCancel() }) + .then(() => { + createMessage.success('保存成功') + handleCancel() + }) + .finally(() => (loading.value = false)) } /** diff --git a/src/views/iam/role/RolePathModal.vue b/src/views/iam/role/RolePathModal.vue index 17b522112..d3ab5cd1d 100644 --- a/src/views/iam/role/RolePathModal.vue +++ b/src/views/iam/role/RolePathModal.vue @@ -168,10 +168,12 @@ clientCode: clientCode.value, updateChildren, pathIds: checkedKeys.value, - }).then(() => { - createMessage.success('保存成功') - handleCancel() }) + .then(() => { + createMessage.success('保存成功') + handleCancel() + }) + .finally(() => (loading.value = false)) } /**