From 27a368b386a8d447b401cc177b4d6ed724b33455 Mon Sep 17 00:00:00 2001 From: richjohnrambo Date: Wed, 9 Sep 2026 14:28:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BB=9F=E4=B8=80IM=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E5=95=86=E6=88=B7=E6=96=87=E6=A1=88=E5=92=8C=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/internal/logic/sys/im_user.go | 11 +++++++++ server/internal/model/input/sysin/im_user.go | 1 + .../data/generate/im_adfahi_batch2_menu.sql | 5 ++++ .../data/generate/im_menu_hierarchy.sql | 3 ++- .../data/generate/im_menu_title_repair.sql | 16 ++++++------- .../data/generate/im_missing_menu_patch.sql | 8 +++---- .../generate/im_tenant_login_ip_whitelist.sql | 4 ++-- .../storage/data/generate/im_tenant_menu.sql | 18 +++++++------- web/src/api/imTenant/index.ts | 20 ++++++++++------ web/src/views/im/registrationInvite/index.vue | 11 +++++---- web/src/views/im/registrationInvite/model.ts | 6 ++--- web/src/views/imAbuseReason/index.vue | 2 +- web/src/views/imAbuseReason/model.ts | 4 ++-- web/src/views/imAppRelease/index.vue | 2 +- web/src/views/imAppRelease/model.ts | 4 ++-- web/src/views/imAuditLog/index.vue | 4 ++-- web/src/views/imAuditLog/model.ts | 4 ++-- web/src/views/imAuditLog/view.vue | 2 +- web/src/views/imDashboard/index.vue | 6 ++--- web/src/views/imDeadLetter/index.vue | 23 ++++++++++++++---- web/src/views/imDeadLetter/model.ts | 4 ++-- web/src/views/imExternalConfig/index.vue | 2 +- web/src/views/imExternalConfig/model.ts | 4 ++-- web/src/views/imFeedbackConfig/index.vue | 6 ++--- web/src/views/imFile/index.vue | 4 ++-- web/src/views/imFile/model.ts | 4 ++-- web/src/views/imFile/view.vue | 2 +- web/src/views/imFilePolicy/index.vue | 2 +- web/src/views/imFilePolicy/model.ts | 4 ++-- web/src/views/imGroup/index.vue | 4 ++-- web/src/views/imGroup/model.ts | 8 +++---- web/src/views/imGroup/view.vue | 2 +- web/src/views/imKafkaAudit/model.ts | 6 ++--- web/src/views/imKafkaAudit/view.vue | 2 +- web/src/views/imKafkaCommand/index.vue | 19 +++++++++++---- web/src/views/imKafkaCommand/model.ts | 6 ++--- web/src/views/imKafkaCommand/view.vue | 2 +- web/src/views/imLoginFailureLog/index.vue | 4 ++-- web/src/views/imLoginFailureLog/model.ts | 4 ++-- web/src/views/imMailboxConfig/index.vue | 6 ++--- .../views/imMessageShared/MessageTable.vue | 4 ++-- web/src/views/imMessageShared/model.ts | 4 ++-- web/src/views/imNotification/index.vue | 2 +- web/src/views/imNotification/model.ts | 6 ++--- web/src/views/imOrg/index.vue | 6 ++--- web/src/views/imOrg/model.ts | 4 ++-- web/src/views/imOutbox/index.vue | 2 +- web/src/views/imOutbox/model.ts | 4 ++-- web/src/views/imOutbox/view.vue | 2 +- web/src/views/imPolicyShared.ts | 8 +++++++ web/src/views/imRealname/model.ts | 4 ++-- web/src/views/imRealname/view.vue | 2 +- web/src/views/imSecurityPolicy/index.vue | 18 +++++++++++--- web/src/views/imSecurityPolicy/model.ts | 2 +- web/src/views/imSensitiveWord/index.vue | 14 ++++++++--- web/src/views/imSensitiveWord/model.ts | 2 +- web/src/views/imTaskDashboard/index.vue | 6 +++-- web/src/views/imTaskDashboard/model.ts | 6 ++--- web/src/views/imTenant/deletionCheck.vue | 2 +- web/src/views/imTenant/edit.vue | 14 +++++------ web/src/views/imTenant/index.vue | 2 +- web/src/views/imTenant/model.ts | 24 +++++++++---------- web/src/views/imTenant/usage.vue | 6 ++--- web/src/views/imUser/governance.vue | 2 +- web/src/views/imUser/index.vue | 4 ++-- web/src/views/imUser/model.ts | 11 +++++---- web/src/views/imUser/view.vue | 2 +- web/src/views/imUserLoginHistory/index.vue | 4 ++-- web/src/views/imUserLoginHistory/model.ts | 4 ++-- web/src/views/imUserPolicyGroup/index.vue | 22 +++++++++++------ web/src/views/imUserPolicyGroup/model.ts | 2 +- web/src/views/imWorkOrder/index.vue | 2 +- web/src/views/imWorkOrder/model.ts | 4 ++-- web/src/views/imWorkOrder/view.vue | 2 +- web/src/views/imWorkbench/index.vue | 2 +- web/src/views/imWorkbench/model.ts | 4 ++-- 76 files changed, 272 insertions(+), 186 deletions(-) diff --git a/server/internal/logic/sys/im_user.go b/server/internal/logic/sys/im_user.go index 36acb1e..eea4466 100644 --- a/server/internal/logic/sys/im_user.go +++ b/server/internal/logic/sys/im_user.go @@ -239,6 +239,17 @@ func (s *sSysImUser) List(ctx context.Context, in *sysin.ImUserListInp) (list [] if err = fillImUserRegisterTypes(ctx, tenant.Id, list); err != nil { return nil, 0, err } + page := in.Page + if page < 1 { + page = 1 + } + perPage := in.PerPage + if perPage < 1 { + perPage = 10 + } + for index, item := range list { + item.DisplayNo = 1000 + (page-1)*perPage + index + } return list, totalCount, nil } diff --git a/server/internal/model/input/sysin/im_user.go b/server/internal/model/input/sysin/im_user.go index cdcd48c..941368f 100644 --- a/server/internal/model/input/sysin/im_user.go +++ b/server/internal/model/input/sysin/im_user.go @@ -41,6 +41,7 @@ func (in *ImUserListInp) Filter(ctx context.Context) (err error) { type ImUserListModel struct { TenantId int64 `json:"tenantId" dc:"租户ID"` TenantName string `json:"tenantName" dc:"租户名称"` + DisplayNo int `json:"displayNo" dc:"后台展示编号"` UserId string `json:"userId" dc:"用户ID"` Username string `json:"username" dc:"登录账号"` Phone string `json:"phone" dc:"手机号"` diff --git a/server/storage/data/generate/im_adfahi_batch2_menu.sql b/server/storage/data/generate/im_adfahi_batch2_menu.sql index eba9167..c7fd58b 100644 --- a/server/storage/data/generate/im_adfahi_batch2_menu.sql +++ b/server/storage/data/generate/im_adfahi_batch2_menu.sql @@ -11,6 +11,11 @@ FROM ( SELECT '登录失败日志','imLoginFailureLogIndex','login-failure-log/index','/imLoginFailureLog/list','/imLoginFailureLog/index',55 ) p WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` m WHERE m.`name`=p.name); +UPDATE `hg_admin_menu` +SET `pid`=@imRootId, `icon`='DashboardOutlined', `type`=2, `level`=2, + `tree`=CONCAT('tr_',@imRootId,' '), `sort`=5, `updated_at`=@now +WHERE `name`='imDashboardIndex'; + SET @dashboardId := (SELECT `id` FROM `hg_admin_menu` WHERE `name`='imDashboardIndex' LIMIT 1); SET @privateMessageId := (SELECT `id` FROM `hg_admin_menu` WHERE `name`='imPrivateMessageIndex' LIMIT 1); SET @groupMessageId := (SELECT `id` FROM `hg_admin_menu` WHERE `name`='imGroupMessageIndex' LIMIT 1); diff --git a/server/storage/data/generate/im_menu_hierarchy.sql b/server/storage/data/generate/im_menu_hierarchy.sql index 303a04e..cc4d8ab 100644 --- a/server/storage/data/generate/im_menu_hierarchy.sql +++ b/server/storage/data/generate/im_menu_hierarchy.sql @@ -30,6 +30,7 @@ UPDATE `hg_admin_menu` SET `pid`=@imRootId, `title`='用户与群组', `path`='p UPDATE `hg_admin_menu` SET `pid`=@imRootId, `title`='内容审核', `path`='content', `icon`='FileSearchOutlined', `type`=1, `redirect`='/im/content/private-message/index', `component`='ParentLayout', `always_show`=1, `hidden`=0, `status`=1, `level`=2, `tree`=CONCAT('tr_', @imRootId, ' '), `sort`=20, `updated_at`=@now WHERE `id`=@contentId; UPDATE `hg_admin_menu` SET `pid`=@imRootId, `title`='日志审计', `path`='audit', `icon`='AuditOutlined', `type`=1, `redirect`='/im/audit/operation/index', `component`='ParentLayout', `always_show`=1, `hidden`=0, `status`=1, `level`=2, `tree`=CONCAT('tr_', @imRootId, ' '), `sort`=30, `updated_at`=@now WHERE `id`=@auditId; UPDATE `hg_admin_menu` SET `pid`=@imRootId, `title`='系统设置', `path`='settings', `icon`='SettingOutlined', `type`=1, `redirect`='/im/settings/tenant/index', `component`='ParentLayout', `always_show`=1, `hidden`=0, `status`=1, `level`=2, `tree`=CONCAT('tr_', @imRootId, ' '), `sort`=40, `updated_at`=@now WHERE `id`=@settingsId; +UPDATE `hg_admin_menu` SET `pid`=@imRootId, `icon`='DashboardOutlined', `type`=2, `level`=2, `tree`=CONCAT('tr_', @imRootId, ' '), `sort`=5, `updated_at`=@now WHERE `name`='imDashboardIndex'; UPDATE `hg_admin_menu` SET `redirect`='/im/dashboard/index', `updated_at`=@now WHERE `id`=@imRootId; -- User and group management. @@ -59,7 +60,7 @@ UPDATE `hg_admin_menu` SET `pid`=@auditId, `path`='dead-letter/index', `level`=3 UPDATE `hg_admin_menu` SET `pid`=@auditId, `path`='task-dashboard/index', `level`=3, `tree`=CONCAT('tr_', @imRootId, ' tr_', @auditId, ' '), `sort`=80, `updated_at`=@now WHERE `name`='imTaskDashboardIndex'; -- System and tenant settings. -UPDATE `hg_admin_menu` SET `pid`=@settingsId, `title`='租户管理', `path`='tenant/index', `level`=3, `tree`=CONCAT('tr_', @imRootId, ' tr_', @settingsId, ' '), `sort`=10, `updated_at`=@now WHERE `name`='imTenantIndex'; +UPDATE `hg_admin_menu` SET `pid`=@settingsId, `title`='商户管理', `path`='tenant/index', `level`=3, `tree`=CONCAT('tr_', @imRootId, ' tr_', @settingsId, ' '), `sort`=10, `updated_at`=@now WHERE `name`='imTenantIndex'; UPDATE `hg_admin_menu` SET `pid`=@settingsId, `path`='security-policy/index', `level`=3, `tree`=CONCAT('tr_', @imRootId, ' tr_', @settingsId, ' '), `sort`=20, `updated_at`=@now WHERE `name`='imSecurityPolicyIndex'; UPDATE `hg_admin_menu` SET `pid`=@settingsId, `path`='file-policy/index', `level`=3, `tree`=CONCAT('tr_', @imRootId, ' tr_', @settingsId, ' '), `sort`=30, `updated_at`=@now WHERE `name`='imFilePolicyIndex'; UPDATE `hg_admin_menu` SET `pid`=@settingsId, `path`='workbench/index', `level`=3, `tree`=CONCAT('tr_', @imRootId, ' tr_', @settingsId, ' '), `sort`=40, `updated_at`=@now WHERE `name`='imWorkbenchIndex'; diff --git a/server/storage/data/generate/im_menu_title_repair.sql b/server/storage/data/generate/im_menu_title_repair.sql index d2b3f47..af4156b 100644 --- a/server/storage/data/generate/im_menu_title_repair.sql +++ b/server/storage/data/generate/im_menu_title_repair.sql @@ -1,15 +1,15 @@ SET NAMES utf8mb4; UPDATE `hg_admin_menu` SET `title` = 'IM管理' WHERE `name` = 'imManager'; -UPDATE `hg_admin_menu` SET `title` = '租户管理' WHERE `name` = 'imTenant'; -UPDATE `hg_admin_menu` SET `title` = '租户列表' WHERE `name` = 'imTenantIndex'; -UPDATE `hg_admin_menu` SET `title` = '租户详情' WHERE `name` = 'imTenantView'; -UPDATE `hg_admin_menu` SET `title` = '新增/编辑租户' WHERE `name` = 'imTenantEdit'; -UPDATE `hg_admin_menu` SET `title` = '启用/停用租户' WHERE `name` = 'imTenantStatus'; -UPDATE `hg_admin_menu` SET `title` = '租户用量统计' WHERE `name` = 'imTenantUsage'; -UPDATE `hg_admin_menu` SET `title` = '租户删除检查' WHERE `name` = 'imTenantDeletionCheck'; +UPDATE `hg_admin_menu` SET `title` = '商户管理' WHERE `name` = 'imTenant'; +UPDATE `hg_admin_menu` SET `title` = '商户列表' WHERE `name` = 'imTenantIndex'; +UPDATE `hg_admin_menu` SET `title` = '商户详情' WHERE `name` = 'imTenantView'; +UPDATE `hg_admin_menu` SET `title` = '新增/编辑商户' WHERE `name` = 'imTenantEdit'; +UPDATE `hg_admin_menu` SET `title` = '启用/停用商户' WHERE `name` = 'imTenantStatus'; +UPDATE `hg_admin_menu` SET `title` = '商户用量统计' WHERE `name` = 'imTenantUsage'; +UPDATE `hg_admin_menu` SET `title` = '商户删除检查' WHERE `name` = 'imTenantDeletionCheck'; UPDATE `hg_admin_menu` SET `title` = '进入删除保护期' WHERE `name` = 'imTenantEnterDeleting'; -UPDATE `hg_admin_menu` SET `title` = '恢复租户' WHERE `name` = 'imTenantRestore'; +UPDATE `hg_admin_menu` SET `title` = '恢复商户' WHERE `name` = 'imTenantRestore'; UPDATE `hg_admin_menu` SET `title` = '用户管理' WHERE `name` = 'imUser'; UPDATE `hg_admin_menu` SET `title` = '用户列表' WHERE `name` = 'imUserIndex'; diff --git a/server/storage/data/generate/im_missing_menu_patch.sql b/server/storage/data/generate/im_missing_menu_patch.sql index d8aee92..1082ca3 100644 --- a/server/storage/data/generate/im_missing_menu_patch.sql +++ b/server/storage/data/generate/im_missing_menu_patch.sql @@ -67,10 +67,10 @@ FROM ( SELECT @abuseReasonId, '原因禁用', 'imAbuseReasonDelete', '/imAbuseReason/delete', 3, CONCAT('tr_', @imRootId, ' tr_', @abuseReasonId, ' '), 20 UNION ALL SELECT @mailboxConfigId, '信箱配置更新', 'imMailboxConfigUpdate', '/imMailboxConfig/update', 3, CONCAT('tr_', @imRootId, ' tr_', @mailboxConfigId, ' '), 10 UNION ALL SELECT @feedbackConfigId, '反馈配置更新', 'imFeedbackConfigUpdate', '/imFeedbackConfig/update', 3, CONCAT('tr_', @imRootId, ' tr_', @feedbackConfigId, ' '), 10 UNION ALL - SELECT @tenantListId, '租户用量与健康', 'imTenantUsage', '/imTenant/usage', 4, CONCAT('tr_', @imRootId, ' tr_', (SELECT `pid` FROM `hg_admin_menu` WHERE `id` = @tenantListId), ' tr_', @tenantListId, ' '), 40 UNION ALL - SELECT @tenantListId, '租户删除前检查', 'imTenantDeletionCheck', '/imTenant/deletionCheck', 4, CONCAT('tr_', @imRootId, ' tr_', (SELECT `pid` FROM `hg_admin_menu` WHERE `id` = @tenantListId), ' tr_', @tenantListId, ' '), 50 UNION ALL - SELECT @tenantListId, '租户进入删除流程', 'imTenantEnterDeleting', '/imTenant/enterDeleting', 4, CONCAT('tr_', @imRootId, ' tr_', (SELECT `pid` FROM `hg_admin_menu` WHERE `id` = @tenantListId), ' tr_', @tenantListId, ' '), 60 UNION ALL - SELECT @tenantListId, '恢复租户', 'imTenantRestore', '/imTenant/restore', 4, CONCAT('tr_', @imRootId, ' tr_', (SELECT `pid` FROM `hg_admin_menu` WHERE `id` = @tenantListId), ' tr_', @tenantListId, ' '), 70 UNION ALL + SELECT @tenantListId, '商户用量与健康', 'imTenantUsage', '/imTenant/usage', 4, CONCAT('tr_', @imRootId, ' tr_', (SELECT `pid` FROM `hg_admin_menu` WHERE `id` = @tenantListId), ' tr_', @tenantListId, ' '), 40 UNION ALL + SELECT @tenantListId, '商户删除前检查', 'imTenantDeletionCheck', '/imTenant/deletionCheck', 4, CONCAT('tr_', @imRootId, ' tr_', (SELECT `pid` FROM `hg_admin_menu` WHERE `id` = @tenantListId), ' tr_', @tenantListId, ' '), 50 UNION ALL + SELECT @tenantListId, '商户进入删除流程', 'imTenantEnterDeleting', '/imTenant/enterDeleting', 4, CONCAT('tr_', @imRootId, ' tr_', (SELECT `pid` FROM `hg_admin_menu` WHERE `id` = @tenantListId), ' tr_', @tenantListId, ' '), 60 UNION ALL + SELECT @tenantListId, '恢复商户', 'imTenantRestore', '/imTenant/restore', 4, CONCAT('tr_', @imRootId, ' tr_', (SELECT `pid` FROM `hg_admin_menu` WHERE `id` = @tenantListId), ' tr_', @tenantListId, ' '), 70 UNION ALL SELECT @auditLogId, '导出审计日志', 'imAuditLogExport', '/imAuditLog/export', 3, CONCAT('tr_', @imRootId, ' tr_', @auditLogId, ' '), 20 ) p WHERE parent_id IS NOT NULL diff --git a/server/storage/data/generate/im_tenant_login_ip_whitelist.sql b/server/storage/data/generate/im_tenant_login_ip_whitelist.sql index 2e7ab0e..9ed2dbd 100644 --- a/server/storage/data/generate/im_tenant_login_ip_whitelist.sql +++ b/server/storage/data/generate/im_tenant_login_ip_whitelist.sql @@ -25,12 +25,12 @@ SET @now = NOW(); SELECT @groupMenuId := `id` FROM `hg_admin_menu` WHERE `name` = 'imUserPolicyGroupIndex' LIMIT 1; INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) -SELECT NULL, @groupMenuId, '查看租户登录IP白名单', 'imTenantLoginIPWhitelist', '', '', '3', '', '/imUserPolicyGroup/loginIPWhitelist', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT(`tree`, 'tr_', `id`, ' '), '9', '', '1', @now, @now +SELECT NULL, @groupMenuId, '查看商户登录IP白名单', 'imTenantLoginIPWhitelist', '', '', '3', '', '/imUserPolicyGroup/loginIPWhitelist', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT(`tree`, 'tr_', `id`, ' '), '9', '', '1', @now, @now FROM `hg_admin_menu` WHERE `id` = @groupMenuId AND NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imTenantLoginIPWhitelist'); INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) -SELECT NULL, @groupMenuId, '保存租户登录IP白名单', 'imTenantLoginIPWhitelistSave', '', '', '3', '', '/imUserPolicyGroup/loginIPWhitelistSave', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT(`tree`, 'tr_', `id`, ' '), '10', '', '1', @now, @now +SELECT NULL, @groupMenuId, '保存商户登录IP白名单', 'imTenantLoginIPWhitelistSave', '', '', '3', '', '/imUserPolicyGroup/loginIPWhitelistSave', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT(`tree`, 'tr_', `id`, ' '), '10', '', '1', @now, @now FROM `hg_admin_menu` WHERE `id` = @groupMenuId AND NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imTenantLoginIPWhitelistSave'); diff --git a/server/storage/data/generate/im_tenant_menu.sql b/server/storage/data/generate/im_tenant_menu.sql index becfd21..f03adcb 100644 --- a/server/storage/data/generate/im_tenant_menu.sql +++ b/server/storage/data/generate/im_tenant_menu.sql @@ -11,7 +11,7 @@ SELECT @imRootId := `id` FROM `hg_admin_menu` WHERE `name` = 'imManager' LIMIT 1 SELECT @tenantDirId := `id` FROM `hg_admin_menu` WHERE `name` = 'imTenant' LIMIT 1; INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) -SELECT NULL, @imRootId, '租户管理', 'imTenant', 'tenant', '', '1', '/im/tenant/index', '', '', 'ParentLayout', '1', '', '0', '0', '', '0', '0', '0', '2', CONCAT('tr_', @imRootId, ' '), '10', '', '1', @now, @now +SELECT NULL, @imRootId, '商户管理', 'imTenant', 'tenant', '', '1', '/im/tenant/index', '', '', 'ParentLayout', '1', '', '0', '0', '', '0', '0', '0', '2', CONCAT('tr_', @imRootId, ' '), '10', '', '1', @now, @now WHERE @tenantDirId IS NULL; SELECT @tenantDirId := `id` FROM `hg_admin_menu` WHERE `name` = 'imTenant' LIMIT 1; @@ -19,35 +19,35 @@ SELECT @tenantDirId := `id` FROM `hg_admin_menu` WHERE `name` = 'imTenant' LIMIT SELECT @tenantListId := `id` FROM `hg_admin_menu` WHERE `name` = 'imTenantIndex' LIMIT 1; INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) -SELECT NULL, @tenantDirId, '租户列表', 'imTenantIndex', 'index', '', '2', '', '/imTenant/list', '', '/imTenant/index', '1', 'imTenant', '0', '0', '', '0', '0', '0', '3', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' '), '10', '', '1', @now, @now +SELECT NULL, @tenantDirId, '商户列表', 'imTenantIndex', 'index', '', '2', '', '/imTenant/list', '', '/imTenant/index', '1', 'imTenant', '0', '0', '', '0', '0', '0', '3', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' '), '10', '', '1', @now, @now WHERE @tenantListId IS NULL; SELECT @tenantListId := `id` FROM `hg_admin_menu` WHERE `name` = 'imTenantIndex' LIMIT 1; INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) -SELECT NULL, @tenantListId, '租户详情', 'imTenantView', '', '', '3', '', '/imTenant/view', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '10', '', '1', @now, @now +SELECT NULL, @tenantListId, '商户详情', 'imTenantView', '', '', '3', '', '/imTenant/view', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '10', '', '1', @now, @now WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imTenantView'); INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) -SELECT NULL, @tenantListId, '编辑/新增租户', 'imTenantEdit', '', '', '3', '', '/imTenant/edit', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '20', '', '1', @now, @now +SELECT NULL, @tenantListId, '编辑/新增商户', 'imTenantEdit', '', '', '3', '', '/imTenant/edit', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '20', '', '1', @now, @now WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imTenantEdit'); INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) -SELECT NULL, @tenantListId, '修改租户状态', 'imTenantStatus', '', '', '3', '', '/imTenant/status', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '30', '', '1', @now, @now +SELECT NULL, @tenantListId, '修改商户状态', 'imTenantStatus', '', '', '3', '', '/imTenant/status', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '30', '', '1', @now, @now WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imTenantStatus'); INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) -SELECT NULL, @tenantListId, '租户用量与健康', 'imTenantUsage', '', '', '3', '', '/imTenant/usage', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '40', '', '1', @now, @now +SELECT NULL, @tenantListId, '商户用量与健康', 'imTenantUsage', '', '', '3', '', '/imTenant/usage', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '40', '', '1', @now, @now WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imTenantUsage'); INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) -SELECT NULL, @tenantListId, '租户删除前检查', 'imTenantDeletionCheck', '', '', '3', '', '/imTenant/deletionCheck', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '50', '', '1', @now, @now +SELECT NULL, @tenantListId, '商户删除前检查', 'imTenantDeletionCheck', '', '', '3', '', '/imTenant/deletionCheck', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '50', '', '1', @now, @now WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imTenantDeletionCheck'); INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) -SELECT NULL, @tenantListId, '租户进入删除流程', 'imTenantEnterDeleting', '', '', '3', '', '/imTenant/enterDeleting', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '60', '', '1', @now, @now +SELECT NULL, @tenantListId, '商户进入删除流程', 'imTenantEnterDeleting', '', '', '3', '', '/imTenant/enterDeleting', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '60', '', '1', @now, @now WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imTenantEnterDeleting'); INSERT INTO `hg_admin_menu` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) -SELECT NULL, @tenantListId, '恢复租户', 'imTenantRestore', '', '', '3', '', '/imTenant/restore', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '70', '', '1', @now, @now +SELECT NULL, @tenantListId, '恢复商户', 'imTenantRestore', '', '', '3', '', '/imTenant/restore', '', '', '1', '', '0', '0', '', '0', '1', '0', '4', CONCAT('tr_', @imRootId, ' tr_', @tenantDirId, ' tr_', @tenantListId, ' '), '70', '', '1', @now, @now WHERE NOT EXISTS (SELECT 1 FROM `hg_admin_menu` WHERE `name` = 'imTenantRestore'); diff --git a/web/src/api/imTenant/index.ts b/web/src/api/imTenant/index.ts index 4007456..0b5eff0 100644 --- a/web/src/api/imTenant/index.ts +++ b/web/src/api/imTenant/index.ts @@ -1,15 +1,21 @@ import { http } from '@/utils/http/axios'; -// 获取IM租户列表 -export function List(params) { - return http.request({ +// 获取IM商户列表 +export async function List(params) { + const res: any = await http.request({ url: '/imTenant/list', method: 'get', params, }); + if (Array.isArray(res?.list)) { + res.list = [...res.list].sort((left, right) => { + return Number(right.code === 'default') - Number(left.code === 'default'); + }); + } + return res; } -// 添加/编辑IM租户 +// 添加/编辑IM商户 export function Edit(params) { return http.request({ url: '/imTenant/edit', @@ -18,7 +24,7 @@ export function Edit(params) { }); } -// 修改IM租户状态 +// 修改IM商户状态 export function Status(params) { return http.request({ url: '/imTenant/status', @@ -27,7 +33,7 @@ export function Status(params) { }); } -// 获取IM租户指定详情 +// 获取IM商户指定详情 export function View(params) { return http.request({ url: '/imTenant/view', @@ -36,7 +42,7 @@ export function View(params) { }); } -// 获取IM租户用量和健康状态 +// 获取IM商户用量和健康状态 export function Usage(params) { return http.request({ url: '/imTenant/usage', diff --git a/web/src/views/im/registrationInvite/index.vue b/web/src/views/im/registrationInvite/index.vue index 4fe11c2..f6cf6fc 100644 --- a/web/src/views/im/registrationInvite/index.vue +++ b/web/src/views/im/registrationInvite/index.vue @@ -1,7 +1,7 @@