From f3f71c5356799f88f8a807c4f41116464b163af2 Mon Sep 17 00:00:00 2001 From: colin Date: Thu, 26 Dec 2024 11:50:04 +0800 Subject: [PATCH 1/6] feat(settings): Add package: `@abp/settings` --- .../vben5/packages/@abp/settings/package.json | 36 +++++++++ .../@abp/settings/src/api/definitions.ts | 75 +++++++++++++++++++ .../packages/@abp/settings/src/api/index.ts | 1 + .../vben5/packages/@abp/settings/src/index.ts | 2 + .../@abp/settings/src/types/definitions.ts | 48 ++++++++++++ .../packages/@abp/settings/src/types/index.ts | 1 + .../packages/@abp/settings/tsconfig.json | 6 ++ 7 files changed, 169 insertions(+) create mode 100644 apps/vben5/packages/@abp/settings/package.json create mode 100644 apps/vben5/packages/@abp/settings/src/api/definitions.ts create mode 100644 apps/vben5/packages/@abp/settings/src/api/index.ts create mode 100644 apps/vben5/packages/@abp/settings/src/index.ts create mode 100644 apps/vben5/packages/@abp/settings/src/types/definitions.ts create mode 100644 apps/vben5/packages/@abp/settings/src/types/index.ts create mode 100644 apps/vben5/packages/@abp/settings/tsconfig.json diff --git a/apps/vben5/packages/@abp/settings/package.json b/apps/vben5/packages/@abp/settings/package.json new file mode 100644 index 000000000..69db60502 --- /dev/null +++ b/apps/vben5/packages/@abp/settings/package.json @@ -0,0 +1,36 @@ +{ + "name": "@abp/settings", + "version": "8.3.2", + "homepage": "https://github.com/colinin/abp-next-admin", + "bugs": "https://github.com/colinin/abp-next-admin/issues", + "repository": { + "type": "git", + "url": "git+https://github.com/colinin/abp-next-admin.git", + "directory": "packages/@abp/settings" + }, + "license": "MIT", + "type": "module", + "sideEffects": [ + "**/*.css" + ], + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./src/index.ts" + } + }, + "dependencies": { + "@abp/core": "workspace:*", + "@abp/request": "workspace:*", + "@abp/ui": "workspace:*", + "@ant-design/icons-vue": "catalog:", + "@vben/access": "workspace:*", + "@vben/common-ui": "workspace:*", + "@vben/hooks": "workspace:*", + "@vben/icons": "workspace:*", + "@vben/layouts": "workspace:*", + "@vben/locales": "workspace:*", + "ant-design-vue": "catalog:", + "vue": "catalog:*" + } +} diff --git a/apps/vben5/packages/@abp/settings/src/api/definitions.ts b/apps/vben5/packages/@abp/settings/src/api/definitions.ts new file mode 100644 index 000000000..b2eb6c6e8 --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/api/definitions.ts @@ -0,0 +1,75 @@ +import type { ListResultDto } from '@abp/core'; + +import type { + SettingDefinitionCreateDto, + SettingDefinitionDto, + SettingDefinitionGetListInput, + SettingDefinitionUpdateDto, +} from '../types/definitions'; + +import { requestClient } from '@abp/request'; + +/** + * 删除设置定义 + * @param name 设置名称 + */ +export function deleteApi(name: string): Promise { + return requestClient.delete(`/api/permission-management/definitions/${name}`); +} + +/** + * 查询设置定义 + * @param name 设置名称 + * @returns 设置定义数据传输对象 + */ +export function getApi(name: string): Promise { + return requestClient.get( + `/api/permission-management/definitions/${name}`, + ); +} + +/** + * 查询设置定义列表 + * @param input 设置过滤条件 + * @returns 设置定义数据传输对象列表 + */ +export function getListApi( + input?: SettingDefinitionGetListInput, +): Promise> { + return requestClient.get>( + `/api/permission-management/definitions`, + { + params: input, + }, + ); +} + +/** + * 创建设置定义 + * @param input 设置定义参数 + * @returns 设置定义数据传输对象 + */ +export function createApi( + input: SettingDefinitionCreateDto, +): Promise { + return requestClient.post( + '/api/permission-management/definitions', + input, + ); +} + +/** + * 更新设置定义 + * @param name 设置名称 + * @param input 设置定义参数 + * @returns 设置定义数据传输对象 + */ +export function updateApi( + name: string, + input: SettingDefinitionUpdateDto, +): Promise { + return requestClient.put( + `/api/permission-management/definitions/${name}`, + input, + ); +} diff --git a/apps/vben5/packages/@abp/settings/src/api/index.ts b/apps/vben5/packages/@abp/settings/src/api/index.ts new file mode 100644 index 000000000..25ba3e6a1 --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/api/index.ts @@ -0,0 +1 @@ +export * as settingDefintiionsApi from './definitions'; diff --git a/apps/vben5/packages/@abp/settings/src/index.ts b/apps/vben5/packages/@abp/settings/src/index.ts new file mode 100644 index 000000000..4d4b4e299 --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/index.ts @@ -0,0 +1,2 @@ +export * from './api'; +export * from './types'; diff --git a/apps/vben5/packages/@abp/settings/src/types/definitions.ts b/apps/vben5/packages/@abp/settings/src/types/definitions.ts new file mode 100644 index 000000000..92c793247 --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/types/definitions.ts @@ -0,0 +1,48 @@ +import type { + ExtensibleObject, + IHasConcurrencyStamp, + IHasExtraProperties, +} from '@abp/core'; + +interface SettingDefinitionDto extends ExtensibleObject { + defaultValue?: string; + description?: string; + displayName: string; + isEncrypted: boolean; + isInherited: boolean; + isStatic: boolean; + isVisibleToClients: boolean; + name: string; + providers: string[]; +} + +interface SettingDefinitionGetListInput { + filter?: string; + providerName?: string; +} + +interface SettingDefinitionCreateOrUpdateDto + extends IHasConcurrencyStamp, + IHasExtraProperties { + defaultValue?: string; + description?: string; + displayName: string; + isEncrypted: boolean; + isInherited: boolean; + isVisibleToClients: boolean; + providers: string[]; +} + +interface SettingDefinitionCreateDto + extends SettingDefinitionCreateOrUpdateDto { + name: string; +} + +type SettingDefinitionUpdateDto = SettingDefinitionCreateOrUpdateDto; + +export type { + SettingDefinitionCreateDto, + SettingDefinitionDto, + SettingDefinitionGetListInput, + SettingDefinitionUpdateDto, +}; diff --git a/apps/vben5/packages/@abp/settings/src/types/index.ts b/apps/vben5/packages/@abp/settings/src/types/index.ts new file mode 100644 index 000000000..9b9d6c8af --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/types/index.ts @@ -0,0 +1 @@ +export * from './definitions'; diff --git a/apps/vben5/packages/@abp/settings/tsconfig.json b/apps/vben5/packages/@abp/settings/tsconfig.json new file mode 100644 index 000000000..ce1a891fb --- /dev/null +++ b/apps/vben5/packages/@abp/settings/tsconfig.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "@vben/tsconfig/web.json", + "include": ["src"], + "exclude": ["node_modules"] +} From 1610295346c2409b0172b5d1a9ae00d2de49baf5 Mon Sep 17 00:00:00 2001 From: colin Date: Thu, 26 Dec 2024 11:58:24 +0800 Subject: [PATCH 2/6] feat(settings): Add settings router. --- apps/vben5/apps/app-antd/package.json | 1 + .../app-antd/src/locales/langs/en-US/abp.json | 5 +++++ .../app-antd/src/locales/langs/zh-CN/abp.json | 5 +++++ .../app-antd/src/router/routes/modules/abp.ts | 20 +++++++++++++++++++ .../src/views/settings/definitions/index.vue | 15 ++++++++++++++ .../definitions/SettingDefinitionModal.vue | 7 +++++++ .../definitions/SettingDefinitionTable.vue | 7 +++++++ .../@abp/settings/src/components/index.ts | 1 + .../@abp/settings/src/constants/index.ts | 1 + .../settings/src/constants/permissions.ts | 10 ++++++++++ .../vben5/packages/@abp/settings/src/index.ts | 1 + 11 files changed, 73 insertions(+) create mode 100644 apps/vben5/apps/app-antd/src/views/settings/definitions/index.vue create mode 100644 apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionModal.vue create mode 100644 apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionTable.vue create mode 100644 apps/vben5/packages/@abp/settings/src/components/index.ts create mode 100644 apps/vben5/packages/@abp/settings/src/constants/index.ts create mode 100644 apps/vben5/packages/@abp/settings/src/constants/permissions.ts diff --git a/apps/vben5/apps/app-antd/package.json b/apps/vben5/apps/app-antd/package.json index 6bec70b7c..f7f4accbe 100644 --- a/apps/vben5/apps/app-antd/package.json +++ b/apps/vben5/apps/app-antd/package.json @@ -33,6 +33,7 @@ "@abp/openiddict": "workspace:*", "@abp/permission": "workspace:*", "@abp/request": "workspace:*", + "@abp/settings": "workspace:*", "@abp/ui": "workspace:*", "@vben/access": "workspace:*", "@vben/common-ui": "workspace:*", diff --git a/apps/vben5/apps/app-antd/src/locales/langs/en-US/abp.json b/apps/vben5/apps/app-antd/src/locales/langs/en-US/abp.json index bdea2d667..25ec69283 100644 --- a/apps/vben5/apps/app-antd/src/locales/langs/en-US/abp.json +++ b/apps/vben5/apps/app-antd/src/locales/langs/en-US/abp.json @@ -15,6 +15,11 @@ "title": "Permissions", "groups": "Groups", "definitions": "Definitions" + }, + "settings": { + "title": "Settings", + "definitions": "Definitions", + "system": "System Settings" } }, "openiddict": { diff --git a/apps/vben5/apps/app-antd/src/locales/langs/zh-CN/abp.json b/apps/vben5/apps/app-antd/src/locales/langs/zh-CN/abp.json index 103d0ab79..bd4920650 100644 --- a/apps/vben5/apps/app-antd/src/locales/langs/zh-CN/abp.json +++ b/apps/vben5/apps/app-antd/src/locales/langs/zh-CN/abp.json @@ -15,6 +15,11 @@ "title": "权限管理", "groups": "权限分组", "definitions": "权限定义" + }, + "settings": { + "title": "设置管理", + "definitions": "设置定义", + "system": "系统设置" } }, "openiddict": { diff --git a/apps/vben5/apps/app-antd/src/router/routes/modules/abp.ts b/apps/vben5/apps/app-antd/src/router/routes/modules/abp.ts index 7d71a20c2..b3180f421 100644 --- a/apps/vben5/apps/app-antd/src/router/routes/modules/abp.ts +++ b/apps/vben5/apps/app-antd/src/router/routes/modules/abp.ts @@ -110,6 +110,26 @@ const routes: RouteRecordRaw[] = [ }, ], }, + { + meta: { + title: $t('abp.manage.settings.title'), + icon: 'ic:outline-settings', + }, + name: 'SettingManagement', + path: '/manage/settings', + children: [ + { + meta: { + title: $t('abp.manage.settings.definitions'), + icon: 'codicon:settings', + }, + name: 'SettingDefinitions', + path: '/manage/settings/definitions', + component: () => + import('#/views/settings/definitions/index.vue'), + }, + ], + }, { meta: { title: $t('abp.manage.identity.auditLogs'), diff --git a/apps/vben5/apps/app-antd/src/views/settings/definitions/index.vue b/apps/vben5/apps/app-antd/src/views/settings/definitions/index.vue new file mode 100644 index 000000000..545f397d3 --- /dev/null +++ b/apps/vben5/apps/app-antd/src/views/settings/definitions/index.vue @@ -0,0 +1,15 @@ + + + diff --git a/apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionModal.vue b/apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionModal.vue new file mode 100644 index 000000000..1017376d1 --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionModal.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionTable.vue b/apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionTable.vue new file mode 100644 index 000000000..1017376d1 --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionTable.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/apps/vben5/packages/@abp/settings/src/components/index.ts b/apps/vben5/packages/@abp/settings/src/components/index.ts new file mode 100644 index 000000000..21440f85b --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/components/index.ts @@ -0,0 +1 @@ +export { default as SettingDefinitionTable } from './definitions/SettingDefinitionTable.vue'; diff --git a/apps/vben5/packages/@abp/settings/src/constants/index.ts b/apps/vben5/packages/@abp/settings/src/constants/index.ts new file mode 100644 index 000000000..c85954d3e --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/constants/index.ts @@ -0,0 +1 @@ +export * from './permissions'; diff --git a/apps/vben5/packages/@abp/settings/src/constants/permissions.ts b/apps/vben5/packages/@abp/settings/src/constants/permissions.ts new file mode 100644 index 000000000..0ab2b3558 --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/constants/permissions.ts @@ -0,0 +1,10 @@ +/** 设置定义权限 */ +export const SettingDefinitionsPermissions = { + /** 新增 */ + Create: 'SettingManagement.Definition.Create', + Default: 'SettingManagement.Definition', + /** 还原或删除 */ + DeleteOrRestore: 'SettingManagement.Definition.DeleteOrRestore', + /** 更新 */ + Update: 'SettingManagement.Definition.Update', +}; diff --git a/apps/vben5/packages/@abp/settings/src/index.ts b/apps/vben5/packages/@abp/settings/src/index.ts index 4d4b4e299..314dad0cd 100644 --- a/apps/vben5/packages/@abp/settings/src/index.ts +++ b/apps/vben5/packages/@abp/settings/src/index.ts @@ -1,2 +1,3 @@ export * from './api'; +export * from './components'; export * from './types'; From 3f9b5827be302ef7390c7d74872c670f6a25bb99 Mon Sep 17 00:00:00 2001 From: colin Date: Thu, 26 Dec 2024 13:26:30 +0800 Subject: [PATCH 3/6] feat(settings): Improve custom Settings. --- .../@abp/settings/src/api/definitions.ts | 12 +- .../definitions/SettingDefinitionModal.vue | 233 +++++++++++++++++- .../definitions/SettingDefinitionTable.vue | 216 +++++++++++++++- 3 files changed, 452 insertions(+), 9 deletions(-) diff --git a/apps/vben5/packages/@abp/settings/src/api/definitions.ts b/apps/vben5/packages/@abp/settings/src/api/definitions.ts index b2eb6c6e8..65c5d0fcd 100644 --- a/apps/vben5/packages/@abp/settings/src/api/definitions.ts +++ b/apps/vben5/packages/@abp/settings/src/api/definitions.ts @@ -14,7 +14,9 @@ import { requestClient } from '@abp/request'; * @param name 设置名称 */ export function deleteApi(name: string): Promise { - return requestClient.delete(`/api/permission-management/definitions/${name}`); + return requestClient.delete( + `/api/setting-management/settings/definitions/${name}`, + ); } /** @@ -24,7 +26,7 @@ export function deleteApi(name: string): Promise { */ export function getApi(name: string): Promise { return requestClient.get( - `/api/permission-management/definitions/${name}`, + `/api/setting-management/settings/definitions/${name}`, ); } @@ -37,7 +39,7 @@ export function getListApi( input?: SettingDefinitionGetListInput, ): Promise> { return requestClient.get>( - `/api/permission-management/definitions`, + `/api/setting-management/settings/definitions`, { params: input, }, @@ -53,7 +55,7 @@ export function createApi( input: SettingDefinitionCreateDto, ): Promise { return requestClient.post( - '/api/permission-management/definitions', + '/api/setting-management/settings/definitions', input, ); } @@ -69,7 +71,7 @@ export function updateApi( input: SettingDefinitionUpdateDto, ): Promise { return requestClient.put( - `/api/permission-management/definitions/${name}`, + `/api/setting-management/settings/definitions/${name}`, input, ); } diff --git a/apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionModal.vue b/apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionModal.vue index 1017376d1..475674827 100644 --- a/apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionModal.vue +++ b/apps/vben5/packages/@abp/settings/src/components/definitions/SettingDefinitionModal.vue @@ -1,7 +1,236 @@ - +