From 1140829bcc4370681d1ea5fff90f54fa085dd7ed Mon Sep 17 00:00:00 2001 From: AN <1983933789@qq.com> Date: Sun, 11 May 2025 11:27:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenant-package):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E5=A5=97=E9=A4=90=E7=AE=A1=E7=90=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/elegant/imports.ts | 1 + src/router/elegant/routes.ts | 9 + src/router/elegant/transform.ts | 1 + src/service/api/system/menu.ts | 8 + src/service/api/system/tenant-package.ts | 9 + src/typings/api/system.api.d.ts | 8 +- src/typings/components.d.ts | 3 + src/typings/elegant-router.d.ts | 2 + .../system/config/modules/config-search.vue | 8 +- src/views/system/dept/modules/dept-search.vue | 6 +- src/views/system/post/modules/post-search.vue | 8 +- src/views/system/tenant-package/index.vue | 229 ++++++++++++++++++ .../modules/tenant-package-operate-drawer.vue | 160 ++++++++++++ .../modules/tenant-package-search.vue | 75 ++++++ 14 files changed, 514 insertions(+), 13 deletions(-) create mode 100644 src/views/system/tenant-package/index.vue create mode 100644 src/views/system/tenant-package/modules/tenant-package-operate-drawer.vue create mode 100644 src/views/system/tenant-package/modules/tenant-package-search.vue diff --git a/src/router/elegant/imports.ts b/src/router/elegant/imports.ts index a705636c..ff752fde 100644 --- a/src/router/elegant/imports.ts +++ b/src/router/elegant/imports.ts @@ -39,6 +39,7 @@ export const views: Record Promise import("@/views/system/oss/index.vue"), system_post: () => import("@/views/system/post/index.vue"), system_role: () => import("@/views/system/role/index.vue"), + "system_tenant-package": () => import("@/views/system/tenant-package/index.vue"), system_tenant: () => import("@/views/system/tenant/index.vue"), system_user: () => import("@/views/system/user/index.vue"), tool_gen: () => import("@/views/tool/gen/index.vue"), diff --git a/src/router/elegant/routes.ts b/src/router/elegant/routes.ts index 934c65ad..00d2e9a3 100644 --- a/src/router/elegant/routes.ts +++ b/src/router/elegant/routes.ts @@ -277,6 +277,15 @@ export const generatedRoutes: GeneratedRoute[] = [ i18nKey: 'route.system_tenant' } }, + { + name: 'system_tenant-package', + path: '/system/tenant-package', + component: 'view.system_tenant-package', + meta: { + title: 'system_tenant-package', + i18nKey: 'route.system_tenant-package' + } + }, { name: 'system_user', path: '/system/user', diff --git a/src/router/elegant/transform.ts b/src/router/elegant/transform.ts index 0c7663ab..797392e0 100644 --- a/src/router/elegant/transform.ts +++ b/src/router/elegant/transform.ts @@ -190,6 +190,7 @@ const routeMap: RouteMap = { "system_post": "/system/post", "system_role": "/system/role", "system_tenant": "/system/tenant", + "system_tenant-package": "/system/tenant-package", "system_user": "/system/user", "tool": "/tool", "tool_gen": "/tool/gen", diff --git a/src/service/api/system/menu.ts b/src/service/api/system/menu.ts index 847f0725..3d25a5b1 100644 --- a/src/service/api/system/menu.ts +++ b/src/service/api/system/menu.ts @@ -50,3 +50,11 @@ export function fetchGetRoleMenuTreeSelect(roleId: CommonType.IdType) { method: 'get' }); } + +/** 获取租户套餐关联菜单 */ +export function fetchGetTenantPackageMenuTreeSelect(packageId: CommonType.IdType) { + return request({ + url: `/system/menu/tenantPackageMenuTreeselect/${packageId}`, + method: 'get' + }); +} diff --git a/src/service/api/system/tenant-package.ts b/src/service/api/system/tenant-package.ts index 88bb0f27..d99a0573 100644 --- a/src/service/api/system/tenant-package.ts +++ b/src/service/api/system/tenant-package.ts @@ -41,3 +41,12 @@ export function fetchBatchDeleteTenantPackage(packageIds: CommonType.IdType[]) { method: 'delete' }); } + +/** 修改租户套餐状态 */ +export function fetchUpdateTenantPackageStatus(data: Api.System.TenantPackageOperateParams) { + return request({ + url: `/system/tenant/package/changeStatus`, + method: 'put', + data + }); +} diff --git a/src/typings/api/system.api.d.ts b/src/typings/api/system.api.d.ts index e61667b8..bfb674de 100644 --- a/src/typings/api/system.api.d.ts +++ b/src/typings/api/system.api.d.ts @@ -68,7 +68,11 @@ declare namespace Api { checkedKeys: CommonType.IdType[]; menus: MenuList; }>; - + /** teannt-package menu tree select */ + type TenantPackageMenuTreeSelect = Common.CommonRecord<{ + checkedKeys: CommonType.IdType[]; + menus: MenuList; + }>; /** role dept tree select */ type RoleDeptTreeSelect = Common.CommonRecord<{ checkedKeys: CommonType.IdType[]; @@ -562,7 +566,7 @@ declare namespace Api { /** 套餐名称 */ packageName: string; /** 关联菜单id */ - menuIds: CommonType.IdType; + menuIds: CommonType.IdType[]; /** 备注 */ remark: string; /** 菜单树选择项是否关联显示 */ diff --git a/src/typings/components.d.ts b/src/typings/components.d.ts index 82b11b25..e5c7e243 100644 --- a/src/typings/components.d.ts +++ b/src/typings/components.d.ts @@ -45,6 +45,9 @@ declare module 'vue' { 'IconMaterialSymbols:syncOutline': typeof import('~icons/material-symbols/sync-outline')['default'] 'IconMaterialSymbols:uploadRounded': typeof import('~icons/material-symbols/upload-rounded')['default'] 'IconMaterialSymbols:warningOutlineRounded': typeof import('~icons/material-symbols/warning-outline-rounded')['default'] + IconMaterialSymbolsAddRounded: typeof import('~icons/material-symbols/add-rounded')['default'] + IconMaterialSymbolsDeleteOutline: typeof import('~icons/material-symbols/delete-outline')['default'] + IconMaterialSymbolsDriveFileRenameOutlineOutline: typeof import('~icons/material-symbols/drive-file-rename-outline-outline')['default'] IconMdiArrowDownThin: typeof import('~icons/mdi/arrow-down-thin')['default'] IconMdiArrowUpThin: typeof import('~icons/mdi/arrow-up-thin')['default'] IconMdiDrag: typeof import('~icons/mdi/drag')['default'] diff --git a/src/typings/elegant-router.d.ts b/src/typings/elegant-router.d.ts index 96ebece3..8c7c6fac 100644 --- a/src/typings/elegant-router.d.ts +++ b/src/typings/elegant-router.d.ts @@ -44,6 +44,7 @@ declare module "@elegant-router/types" { "system_post": "/system/post"; "system_role": "/system/role"; "system_tenant": "/system/tenant"; + "system_tenant-package": "/system/tenant-package"; "system_user": "/system/user"; "tool": "/tool"; "tool_gen": "/tool/gen"; @@ -131,6 +132,7 @@ declare module "@elegant-router/types" { | "system_oss" | "system_post" | "system_role" + | "system_tenant-package" | "system_tenant" | "system_user" | "tool_gen" diff --git a/src/views/system/config/modules/config-search.vue b/src/views/system/config/modules/config-search.vue index f5cc53a3..c790c021 100644 --- a/src/views/system/config/modules/config-search.vue +++ b/src/views/system/config/modules/config-search.vue @@ -34,13 +34,13 @@ async function search() { - + - + - + - +