@liujitcn/kratos-admin-system 0.0.28 → 0.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +19 -2
  2. package/dist/package/declarations/src/api/base/notification.d.ts +24 -0
  3. package/dist/package/declarations/src/api/system/base_audit_log.d.ts +55 -0
  4. package/dist/package/declarations/src/api/system/base_dashboard.d.ts +14 -0
  5. package/dist/package/declarations/src/api/system/base_file.d.ts +13 -0
  6. package/dist/package/declarations/src/api/system/base_i18n.d.ts +5 -5
  7. package/dist/package/declarations/src/api/system/base_login_policy.d.ts +10 -0
  8. package/dist/package/declarations/src/api/system/base_message.d.ts +24 -0
  9. package/dist/package/declarations/src/api/system/base_message_category.d.ts +21 -0
  10. package/dist/package/declarations/src/api/system/base_session.d.ts +11 -0
  11. package/dist/package/declarations/src/api/system/oauth_client.d.ts +24 -0
  12. package/dist/package/declarations/src/components/AuditLogTable.vue.d.ts +45 -0
  13. package/dist/package/declarations/src/components/DynamicI18nCell.vue.d.ts +16 -0
  14. package/dist/package/declarations/src/components/DynamicI18nEditor.vue.d.ts +20 -0
  15. package/dist/package/declarations/src/components/auditLog.d.ts +9 -0
  16. package/dist/package/declarations/src/components/dynamicI18n.d.ts +38 -0
  17. package/dist/package/declarations/src/locales/generated.d.ts +1364 -68
  18. package/dist/package/declarations/src/rpc/base/v1/login.d.ts +149 -0
  19. package/dist/package/declarations/src/rpc/base/v1/notification.d.ts +281 -0
  20. package/dist/package/declarations/src/rpc/base/v1/oauth.d.ts +25 -0
  21. package/dist/package/declarations/src/rpc/base/v1/oauth_client.d.ts +23 -0
  22. package/dist/package/declarations/src/rpc/system/admin/v1/base_audit_log.d.ts +640 -0
  23. package/dist/package/declarations/src/rpc/system/admin/v1/base_config.d.ts +3 -3
  24. package/dist/package/declarations/src/rpc/system/admin/v1/base_dashboard.d.ts +60 -0
  25. package/dist/package/declarations/src/rpc/system/admin/v1/base_dict.d.ts +4 -4
  26. package/dist/package/declarations/src/rpc/system/admin/v1/base_file.d.ts +73 -0
  27. package/dist/package/declarations/src/rpc/system/admin/v1/base_i18n.d.ts +27 -23
  28. package/dist/package/declarations/src/rpc/system/admin/v1/base_job.d.ts +5 -0
  29. package/dist/package/declarations/src/rpc/system/admin/v1/base_login_policy.d.ts +51 -0
  30. package/dist/package/declarations/src/rpc/system/admin/v1/base_menu.d.ts +2 -2
  31. package/dist/package/declarations/src/rpc/system/admin/v1/base_message.d.ts +193 -0
  32. package/dist/package/declarations/src/rpc/system/admin/v1/base_message_category.d.ts +125 -0
  33. package/dist/package/declarations/src/rpc/system/admin/v1/base_session.d.ts +33 -0
  34. package/dist/package/declarations/src/rpc/system/admin/v1/base_user.d.ts +3 -3
  35. package/dist/package/declarations/src/rpc/system/admin/v1/code_gen.d.ts +1 -1
  36. package/dist/package/declarations/src/rpc/system/admin/v1/oauth_client.d.ts +145 -0
  37. package/dist/package/declarations/src/views/base/api-log/index.vue.d.ts +3 -0
  38. package/dist/package/declarations/src/views/base/dashboard/index.vue.d.ts +3 -0
  39. package/dist/package/declarations/src/views/base/data-access-log/index.vue.d.ts +3 -0
  40. package/dist/package/declarations/src/views/base/file/index.vue.d.ts +3 -0
  41. package/dist/package/declarations/src/views/base/login-log/index.vue.d.ts +3 -0
  42. package/dist/package/declarations/src/views/base/login-policy/index.vue.d.ts +3 -0
  43. package/dist/package/declarations/src/views/base/message/index.vue.d.ts +3 -0
  44. package/dist/package/declarations/src/views/base/message-category/index.vue.d.ts +3 -0
  45. package/dist/package/declarations/src/views/base/oauth-client/index.vue.d.ts +3 -0
  46. package/dist/package/declarations/src/views/base/operation-log/index.vue.d.ts +3 -0
  47. package/dist/package/declarations/src/views/base/permission-log/index.vue.d.ts +3 -0
  48. package/dist/package/declarations/src/views/base/policy-evaluation-log/index.vue.d.ts +3 -0
  49. package/dist/package/declarations/src/views/message/inbox/index.vue.d.ts +3 -0
  50. package/dist/package/declarations/src/views/profile/components/session.vue.d.ts +3 -0
  51. package/dist/package/src/api/base/notification.ts +69 -0
  52. package/dist/package/src/api/base/sse.ts +4 -4
  53. package/dist/package/src/api/system/auth.ts +1 -0
  54. package/dist/package/src/api/system/base_audit_log.ts +168 -0
  55. package/dist/package/src/api/system/base_dashboard.ts +55 -0
  56. package/dist/package/src/api/system/base_file.ts +43 -0
  57. package/dist/package/src/api/system/base_i18n.ts +12 -12
  58. package/dist/package/src/api/system/base_login_policy.ts +32 -0
  59. package/dist/package/src/api/system/base_message.ts +70 -0
  60. package/dist/package/src/api/system/base_message_category.ts +57 -0
  61. package/dist/package/src/api/system/base_session.ts +33 -0
  62. package/dist/package/src/api/system/oauth_client.ts +102 -0
  63. package/dist/package/src/components/AuditLogTable.vue +105 -0
  64. package/dist/package/src/components/{DynamicTranslationCell.vue → DynamicI18nCell.vue} +50 -50
  65. package/dist/package/src/components/{DynamicTranslationEditor.vue → DynamicI18nEditor.vue} +45 -45
  66. package/dist/package/src/components/Notification.vue +196 -0
  67. package/dist/package/src/components/auditLog.ts +46 -0
  68. package/dist/package/src/components/{dynamicTranslation.ts → dynamicI18n.ts} +15 -15
  69. package/dist/package/src/locales/README.md +5 -3
  70. package/dist/package/src/locales/en-US.json +345 -21
  71. package/dist/package/src/locales/ja-JP.json +347 -23
  72. package/dist/package/src/locales/zh-CN.json +343 -19
  73. package/dist/package/src/locales/zh-TW.json +346 -22
  74. package/dist/package/src/module.ts +5 -2
  75. package/dist/package/src/rpc/base/v1/login.ts +172 -0
  76. package/dist/package/src/rpc/base/v1/notification.ts +315 -0
  77. package/dist/package/src/rpc/base/v1/oauth.ts +25 -0
  78. package/dist/package/src/rpc/base/v1/oauth_client.ts +33 -0
  79. package/dist/package/src/rpc/system/admin/v1/base_audit_log.ts +737 -0
  80. package/dist/package/src/rpc/system/admin/v1/base_config.ts +3 -3
  81. package/dist/package/src/rpc/system/admin/v1/base_dashboard.ts +81 -0
  82. package/dist/package/src/rpc/system/admin/v1/base_dict.ts +4 -4
  83. package/dist/package/src/rpc/system/admin/v1/base_file.ts +88 -0
  84. package/dist/package/src/rpc/system/admin/v1/base_i18n.ts +27 -23
  85. package/dist/package/src/rpc/system/admin/v1/base_job.ts +5 -0
  86. package/dist/package/src/rpc/system/admin/v1/base_login_policy.ts +63 -0
  87. package/dist/package/src/rpc/system/admin/v1/base_menu.ts +2 -2
  88. package/dist/package/src/rpc/system/admin/v1/base_message.ts +236 -0
  89. package/dist/package/src/rpc/system/admin/v1/base_message_category.ts +149 -0
  90. package/dist/package/src/rpc/system/admin/v1/base_session.ts +44 -0
  91. package/dist/package/src/rpc/system/admin/v1/base_user.ts +3 -3
  92. package/dist/package/src/rpc/system/admin/v1/code_gen.ts +1 -1
  93. package/dist/package/src/rpc/system/admin/v1/oauth_client.ts +174 -0
  94. package/dist/package/src/views/ai/chat/components/ChatPanel.vue +2 -2
  95. package/dist/package/src/views/ai/chat/message.ts +7 -3
  96. package/dist/package/src/views/base/api-log/index.vue +83 -0
  97. package/dist/package/src/views/base/config/index.vue +41 -41
  98. package/dist/package/src/views/base/dashboard/index.vue +200 -0
  99. package/dist/package/src/views/base/data-access-log/index.vue +84 -0
  100. package/dist/package/src/views/base/dict/index.vue +23 -23
  101. package/dist/package/src/views/base/dict/item.vue +25 -25
  102. package/dist/package/src/views/base/file/index.vue +119 -0
  103. package/dist/package/src/views/base/job/index.vue +62 -7
  104. package/dist/package/src/views/base/language/index.vue +2 -1
  105. package/dist/package/src/views/base/login-log/index.vue +92 -0
  106. package/dist/package/src/views/base/login-policy/index.vue +219 -0
  107. package/dist/package/src/views/base/menu/index.vue +23 -23
  108. package/dist/package/src/views/base/message/index.vue +582 -0
  109. package/dist/package/src/views/base/message-category/index.vue +356 -0
  110. package/dist/package/src/views/base/oauth-client/index.vue +411 -0
  111. package/dist/package/src/views/base/operation-log/index.vue +82 -0
  112. package/dist/package/src/views/base/permission-log/index.vue +85 -0
  113. package/dist/package/src/views/base/policy-evaluation-log/index.vue +82 -0
  114. package/dist/package/src/views/message/inbox/index.vue +249 -0
  115. package/dist/package/src/views/profile/components/base.vue +6 -5
  116. package/dist/package/src/views/profile/components/password.vue +2 -2
  117. package/dist/package/src/views/profile/components/security.vue +475 -62
  118. package/dist/package/src/views/profile/components/session.vue +153 -0
  119. package/dist/package/src/views/profile/index.vue +35 -22
  120. package/dist/package/src/views/tool/code-gen/code-preview/index.vue +9 -9
  121. package/dist/package/src/views/tool/code-gen/columns/index.vue +1 -1
  122. package/dist/package/src/views/tool/code-gen/components/CodeGenLocaleEditor.vue +8 -8
  123. package/dist/package/src/views/tool/code-gen/config.ts +1 -0
  124. package/dist/package/src/views/tool/code-gen/table/index.vue +7 -7
  125. package/dist/package/src/views/tool/ops-monitoring/index.vue +25 -21
  126. package/package.json +2 -2
  127. package/dist/package/declarations/src/api/system/base_log.d.ts +0 -9
  128. package/dist/package/declarations/src/components/DynamicTranslationCell.vue.d.ts +0 -16
  129. package/dist/package/declarations/src/components/DynamicTranslationEditor.vue.d.ts +0 -20
  130. package/dist/package/declarations/src/components/dynamicTranslation.d.ts +0 -38
  131. package/dist/package/declarations/src/rpc/system/admin/v1/base_log.d.ts +0 -87
  132. package/dist/package/src/api/system/base_log.ts +0 -32
  133. package/dist/package/src/rpc/system/admin/v1/base_log.ts +0 -101
  134. package/dist/package/src/views/base/log/index.vue +0 -339
  135. /package/dist/package/declarations/src/{views/base/log/index.vue.d.ts → components/Notification.vue.d.ts} +0 -0
@@ -2,28 +2,28 @@ import service from "@liujitcn/kratos-admin-core/request";
2
2
  import type { Empty } from "@liujitcn/kratos-admin-system/rpc/google/protobuf/empty";
3
3
  import type {
4
4
  BaseI18nService,
5
- DraftBaseTranslationRequest,
6
- DraftBaseTranslationResponse,
7
- UpdateBaseTranslationRequest
5
+ DraftBaseI18nRequest,
6
+ DraftBaseI18nResponse,
7
+ UpdateBaseI18nRequest
8
8
  } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_i18n";
9
9
 
10
- const BASE_TRANSLATION_URL = "/v1/admin/base/translation";
10
+ const BASE_I18N_URL = "/v1/admin/base/i18n";
11
11
 
12
12
  /** BaseI18nServiceImpl Admin 单条动态翻译服务。 */
13
13
  export class BaseI18nServiceImpl implements BaseI18nService {
14
- /** DraftBaseTranslation 翻译请求中的单个文本。 */
15
- DraftBaseTranslation(request: DraftBaseTranslationRequest): Promise<DraftBaseTranslationResponse> {
16
- return service<DraftBaseTranslationRequest, DraftBaseTranslationResponse>({
17
- url: `${BASE_TRANSLATION_URL}/draft`,
14
+ /** DraftBaseI18n 翻译请求中的单个文本。 */
15
+ DraftBaseI18n(request: DraftBaseI18nRequest): Promise<DraftBaseI18nResponse> {
16
+ return service<DraftBaseI18nRequest, DraftBaseI18nResponse>({
17
+ url: `${BASE_I18N_URL}/draft`,
18
18
  method: "post",
19
19
  data: request
20
20
  });
21
21
  }
22
22
 
23
- /** UpdateBaseTranslation 修改或新增单条翻译信息。 */
24
- UpdateBaseTranslation(request: UpdateBaseTranslationRequest): Promise<Empty> {
25
- return service<UpdateBaseTranslationRequest, Empty>({
26
- url: BASE_TRANSLATION_URL,
23
+ /** UpdateBaseI18n 修改或新增单条翻译信息。 */
24
+ UpdateBaseI18n(request: UpdateBaseI18nRequest): Promise<Empty> {
25
+ return service<UpdateBaseI18nRequest, Empty>({
26
+ url: BASE_I18N_URL,
27
27
  method: "put",
28
28
  data: request
29
29
  });
@@ -0,0 +1,32 @@
1
+ import service from "@liujitcn/kratos-admin-core/request";
2
+ import type {
3
+ BaseLoginPolicy,
4
+ GetBaseLoginPolicyRequest,
5
+ UpdateBaseLoginPolicyRequest
6
+ } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_login_policy";
7
+
8
+ const LOGIN_POLICY_URL = "/v1/admin/base/login-policy";
9
+
10
+ /** BaseLoginPolicyService Admin登录来源策略服务。 */
11
+ export class BaseLoginPolicyServiceImpl {
12
+ /** 查询登录来源策略。 */
13
+ GetBaseLoginPolicy(request: GetBaseLoginPolicyRequest): Promise<BaseLoginPolicy> {
14
+ return service<GetBaseLoginPolicyRequest, BaseLoginPolicy>({
15
+ url: LOGIN_POLICY_URL,
16
+ method: "get",
17
+ params: request
18
+ });
19
+ }
20
+
21
+ /** 更新登录来源策略。 */
22
+ UpdateBaseLoginPolicy(request: UpdateBaseLoginPolicyRequest): Promise<BaseLoginPolicy> {
23
+ return service<UpdateBaseLoginPolicyRequest["policy"], BaseLoginPolicy>({
24
+ url: LOGIN_POLICY_URL,
25
+ method: "put",
26
+ data: request.policy
27
+ });
28
+ }
29
+ }
30
+
31
+ /** defBaseLoginPolicyService Admin登录来源策略服务实例。 */
32
+ export const defBaseLoginPolicyService = new BaseLoginPolicyServiceImpl();
@@ -0,0 +1,70 @@
1
+ import service from "@liujitcn/kratos-admin-core/request";
2
+ import type {
3
+ BaseMessageDetail,
4
+ BaseMessageForm,
5
+ CancelBaseMessageScheduleRequest,
6
+ BaseMessageService,
7
+ CreateBaseMessageRequest,
8
+ CreateBaseMessageResponse,
9
+ DeleteBaseMessageRequest,
10
+ GetBaseMessageRequest,
11
+ PageBaseMessageRequest,
12
+ PageBaseMessageResponse,
13
+ PublishBaseMessageRequest,
14
+ RevokeBaseMessageRequest,
15
+ RetryBaseMessageDispatchRequest,
16
+ UpdateBaseMessageRequest
17
+ } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_message";
18
+ import type { Empty } from "@liujitcn/kratos-admin-system/rpc/google/protobuf/empty";
19
+
20
+ const MESSAGE_URL = "/v1/admin/base/message";
21
+
22
+ /** 站内信管理服务实现。 */
23
+ export class BaseMessageServiceImpl implements BaseMessageService {
24
+ /** 分页查询消息。 */
25
+ PageBaseMessage(request: PageBaseMessageRequest): Promise<PageBaseMessageResponse> {
26
+ return service({ url: MESSAGE_URL, method: "get", params: request });
27
+ }
28
+
29
+ /** 查询消息详情。 */
30
+ GetBaseMessage(request: GetBaseMessageRequest): Promise<BaseMessageDetail> {
31
+ return service({ url: `${MESSAGE_URL}/${request.id}`, method: "get" });
32
+ }
33
+
34
+ /** 创建消息草稿。 */
35
+ CreateBaseMessage(request: CreateBaseMessageRequest): Promise<CreateBaseMessageResponse> {
36
+ return service<BaseMessageForm | undefined, CreateBaseMessageResponse>({ url: MESSAGE_URL, method: "post", data: request.base_message });
37
+ }
38
+
39
+ /** 更新消息草稿。 */
40
+ UpdateBaseMessage(request: UpdateBaseMessageRequest): Promise<Empty> {
41
+ return service({ url: `${MESSAGE_URL}/${request.base_message?.id ?? ""}`, method: "put", data: request.base_message });
42
+ }
43
+
44
+ /** 删除消息草稿。 */
45
+ DeleteBaseMessage(request: DeleteBaseMessageRequest): Promise<Empty> {
46
+ return service({ url: `${MESSAGE_URL}/${request.id}`, method: "delete" });
47
+ }
48
+
49
+ /** 发布消息。 */
50
+ PublishBaseMessage(request: PublishBaseMessageRequest): Promise<Empty> {
51
+ return service({ url: `${MESSAGE_URL}/${request.id}/publish`, method: "put", data: request });
52
+ }
53
+
54
+ /** 取消定时发布。 */
55
+ CancelBaseMessageSchedule(request: CancelBaseMessageScheduleRequest): Promise<Empty> {
56
+ return service({ url: `${MESSAGE_URL}/${request.id}/schedule/cancel`, method: "put", data: request });
57
+ }
58
+
59
+ /** 撤回消息。 */
60
+ RevokeBaseMessage(request: RevokeBaseMessageRequest): Promise<Empty> {
61
+ return service({ url: `${MESSAGE_URL}/${request.id}/revoke`, method: "put", data: request });
62
+ }
63
+
64
+ /** 重试消息投递任务。 */
65
+ RetryBaseMessageDispatch(request: RetryBaseMessageDispatchRequest): Promise<Empty> {
66
+ return service({ url: `${MESSAGE_URL}/dispatch/${request.id}/retry`, method: "put", data: request });
67
+ }
68
+ }
69
+
70
+ export const defBaseMessageService = new BaseMessageServiceImpl();
@@ -0,0 +1,57 @@
1
+ import service from "@liujitcn/kratos-admin-core/request";
2
+ import type {
3
+ BaseMessageCategoryForm,
4
+ BaseMessageCategoryService,
5
+ CreateBaseMessageCategoryRequest,
6
+ DeleteBaseMessageCategoryRequest,
7
+ GetBaseMessageCategoryRequest,
8
+ OptionBaseMessageCategoryRequest,
9
+ PageBaseMessageCategoryRequest,
10
+ PageBaseMessageCategoryResponse,
11
+ SetBaseMessageCategoryStatusRequest,
12
+ UpdateBaseMessageCategoryRequest
13
+ } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_message_category";
14
+ import type { SelectOptionResponse } from "@liujitcn/kratos-admin-system/rpc/common/v1/common";
15
+ import type { Empty } from "@liujitcn/kratos-admin-system/rpc/google/protobuf/empty";
16
+
17
+ const MESSAGE_CATEGORY_URL = "/v1/admin/base/message-category";
18
+
19
+ /** 消息分类管理服务实现。 */
20
+ export class BaseMessageCategoryServiceImpl implements BaseMessageCategoryService {
21
+ /** 查询消息分类选项。 */
22
+ OptionBaseMessageCategory(request: OptionBaseMessageCategoryRequest): Promise<SelectOptionResponse> {
23
+ return service({ url: `${MESSAGE_CATEGORY_URL}/option`, method: "get", params: request });
24
+ }
25
+
26
+ /** 分页查询消息分类。 */
27
+ PageBaseMessageCategory(request: PageBaseMessageCategoryRequest): Promise<PageBaseMessageCategoryResponse> {
28
+ return service({ url: MESSAGE_CATEGORY_URL, method: "get", params: request });
29
+ }
30
+
31
+ /** 查询消息分类详情。 */
32
+ GetBaseMessageCategory(request: GetBaseMessageCategoryRequest): Promise<BaseMessageCategoryForm> {
33
+ return service({ url: `${MESSAGE_CATEGORY_URL}/${request.id}`, method: "get" });
34
+ }
35
+
36
+ /** 创建消息分类。 */
37
+ CreateBaseMessageCategory(request: CreateBaseMessageCategoryRequest): Promise<Empty> {
38
+ return service({ url: MESSAGE_CATEGORY_URL, method: "post", data: request.base_message_category });
39
+ }
40
+
41
+ /** 更新消息分类。 */
42
+ UpdateBaseMessageCategory(request: UpdateBaseMessageCategoryRequest): Promise<Empty> {
43
+ return service({ url: `${MESSAGE_CATEGORY_URL}/${request.base_message_category?.id ?? ""}`, method: "put", data: request.base_message_category });
44
+ }
45
+
46
+ /** 删除消息分类。 */
47
+ DeleteBaseMessageCategory(request: DeleteBaseMessageCategoryRequest): Promise<Empty> {
48
+ return service({ url: `${MESSAGE_CATEGORY_URL}/${request.id}`, method: "delete" });
49
+ }
50
+
51
+ /** 设置消息分类状态。 */
52
+ SetBaseMessageCategoryStatus(request: SetBaseMessageCategoryStatusRequest): Promise<Empty> {
53
+ return service({ url: `${MESSAGE_CATEGORY_URL}/${request.id}/status`, method: "put", data: request });
54
+ }
55
+ }
56
+
57
+ export const defBaseMessageCategoryService = new BaseMessageCategoryServiceImpl();
@@ -0,0 +1,33 @@
1
+ import service from "@liujitcn/kratos-admin-core/request";
2
+ import type {
3
+ BaseSession,
4
+ GetCurrentBaseSessionRequest,
5
+ RevokeAllBaseSessionsRequest
6
+ } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_session";
7
+ import type { Empty } from "@liujitcn/kratos-admin-system/rpc/google/protobuf/empty";
8
+
9
+ const SESSION_URL = "/v1/admin/base/session";
10
+
11
+ /** BaseSessionService Admin会话管理服务。 */
12
+ export class BaseSessionServiceImpl {
13
+ /** 查询当前用户会话。 */
14
+ GetCurrentBaseSession(request: GetCurrentBaseSessionRequest): Promise<BaseSession> {
15
+ return service<GetCurrentBaseSessionRequest, BaseSession>({
16
+ url: `${SESSION_URL}/current`,
17
+ method: "get",
18
+ params: request
19
+ });
20
+ }
21
+
22
+ /** 撤销当前用户全部会话。 */
23
+ RevokeAllBaseSessions(request: RevokeAllBaseSessionsRequest): Promise<Empty> {
24
+ return service<RevokeAllBaseSessionsRequest, Empty>({
25
+ url: `${SESSION_URL}/revoke-all`,
26
+ method: "put",
27
+ data: request
28
+ });
29
+ }
30
+ }
31
+
32
+ /** defBaseSessionService Admin会话管理服务实例。 */
33
+ export const defBaseSessionService = new BaseSessionServiceImpl();
@@ -0,0 +1,102 @@
1
+ import service from "@liujitcn/kratos-admin-core/request";
2
+ import type {
3
+ CreateOauthClientRequest,
4
+ DeleteOauthClientRequest,
5
+ GetOauthClientCredentialsRequest,
6
+ GetOauthClientRequest,
7
+ OauthClientCredentials,
8
+ OauthClientForm,
9
+ OauthClientService,
10
+ OptionOauthClientApiRequest,
11
+ OptionOauthClientApiResponse,
12
+ PageOauthClientRequest,
13
+ PageOauthClientResponse,
14
+ RotateOauthClientCredentialsRequest,
15
+ SetOauthClientStatusRequest,
16
+ UpdateOauthClientRequest
17
+ } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/oauth_client";
18
+ import type { Empty } from "@liujitcn/kratos-admin-system/rpc/google/protobuf/empty";
19
+
20
+ const OAUTH_CLIENT_URL = "/v1/admin/base/oauth-client";
21
+
22
+ /** 开放授权客户端管理服务实现。 */
23
+ export class OauthClientServiceImpl implements OauthClientService {
24
+ /** 查询可授权的开发接口。 */
25
+ OptionOauthClientApi(request: OptionOauthClientApiRequest): Promise<OptionOauthClientApiResponse> {
26
+ return service<OptionOauthClientApiRequest, OptionOauthClientApiResponse>({
27
+ url: `${OAUTH_CLIENT_URL}/api`,
28
+ method: "get",
29
+ params: request
30
+ });
31
+ }
32
+
33
+ /** 查询开放授权客户端分页列表。 */
34
+ PageOauthClient(request: PageOauthClientRequest): Promise<PageOauthClientResponse> {
35
+ return service<PageOauthClientRequest, PageOauthClientResponse>({
36
+ url: OAUTH_CLIENT_URL,
37
+ method: "get",
38
+ params: request
39
+ });
40
+ }
41
+
42
+ /** 查询开放授权客户端详情。 */
43
+ GetOauthClient(request: GetOauthClientRequest): Promise<OauthClientForm> {
44
+ return service<GetOauthClientRequest, OauthClientForm>({
45
+ url: `${OAUTH_CLIENT_URL}/${request.id}`,
46
+ method: "get"
47
+ });
48
+ }
49
+
50
+ /** 查询开放授权客户端非敏感凭据元数据。 */
51
+ GetOauthClientCredentials(request: GetOauthClientCredentialsRequest): Promise<OauthClientCredentials> {
52
+ return service<GetOauthClientCredentialsRequest, OauthClientCredentials>({
53
+ url: `${OAUTH_CLIENT_URL}/${request.id}/credentials`,
54
+ method: "get"
55
+ });
56
+ }
57
+
58
+ /** 轮换开放授权客户端凭据并一次性返回新值。 */
59
+ RotateOauthClientCredentials(request: RotateOauthClientCredentialsRequest): Promise<OauthClientCredentials> {
60
+ return service<RotateOauthClientCredentialsRequest, OauthClientCredentials>({
61
+ url: `${OAUTH_CLIENT_URL}/${request.id}/credentials/rotate`,
62
+ method: "post"
63
+ });
64
+ }
65
+
66
+ /** 创建开放授权客户端。 */
67
+ CreateOauthClient(request: CreateOauthClientRequest): Promise<Empty> {
68
+ return service<OauthClientForm | undefined, Empty>({
69
+ url: OAUTH_CLIENT_URL,
70
+ method: "post",
71
+ data: request.oauth_client
72
+ });
73
+ }
74
+
75
+ /** 更新开放授权客户端。 */
76
+ UpdateOauthClient(request: UpdateOauthClientRequest): Promise<Empty> {
77
+ return service<OauthClientForm | undefined, Empty>({
78
+ url: `${OAUTH_CLIENT_URL}/${request.oauth_client?.id ?? ""}`,
79
+ method: "put",
80
+ data: request.oauth_client
81
+ });
82
+ }
83
+
84
+ /** 删除开放授权客户端。 */
85
+ DeleteOauthClient(request: DeleteOauthClientRequest): Promise<Empty> {
86
+ return service<DeleteOauthClientRequest, Empty>({
87
+ url: `${OAUTH_CLIENT_URL}/${request.id}`,
88
+ method: "delete"
89
+ });
90
+ }
91
+
92
+ /** 设置开放授权客户端状态。 */
93
+ SetOauthClientStatus(request: SetOauthClientStatusRequest): Promise<Empty> {
94
+ return service<SetOauthClientStatusRequest, Empty>({
95
+ url: `${OAUTH_CLIENT_URL}/${request.id}/status`,
96
+ method: "put",
97
+ data: request
98
+ });
99
+ }
100
+ }
101
+
102
+ export const defOauthClientService = new OauthClientServiceImpl();
@@ -0,0 +1,105 @@
1
+ <template>
2
+ <div class="table-box">
3
+ <ProTable ref="proTable" row-key="id" :columns="resolvedColumns" :request-api="requestTable" />
4
+
5
+ <ProDialog v-model="dialog.visible" :title="config.detailTitle" width="1280px" @close="handleCloseDialog">
6
+ <el-descriptions border :column="2" class="detail-container">
7
+ <el-descriptions-item v-for="field in config.detailFields" :key="field.key" :label="field.label" :span="field.span ?? 1">
8
+ <pre v-if="field.code" class="code-block">{{ formatField(field) }}</pre>
9
+ <span v-else>{{ formatField(field) }}</span>
10
+ </el-descriptions-item>
11
+ </el-descriptions>
12
+
13
+ <template #footer>
14
+ <el-button @click="handleCloseDialog">{{ config.closeText }}</el-button>
15
+ </template>
16
+ </ProDialog>
17
+ </div>
18
+ </template>
19
+
20
+ <script setup lang="ts">
21
+ import { computed, reactive, ref, unref } from "vue";
22
+ import type { ColumnProps, ProTableInstance } from "@liujitcn/kratos-admin-core/components/ProTable/interface";
23
+ import ProTable from "@liujitcn/kratos-admin-core/components/ProTable";
24
+ import ProDialog from "@liujitcn/kratos-admin-core/components/Dialog/ProDialog.vue";
25
+ import { buildPageRequest } from "@liujitcn/kratos-admin-core/table";
26
+ import { formatJson } from "@liujitcn/kratos-admin-core/format";
27
+
28
+ /** 审计详情字段配置。 */
29
+ export interface AuditLogDetailField {
30
+ /** 详情对象中对应的字段名。 */
31
+ key: string;
32
+ /** 字段在详情弹窗中的显示名称。 */
33
+ label: string;
34
+ /** 字段占用的描述列数,未设置时使用一列。 */
35
+ span?: number;
36
+ /** 是否按格式化 JSON 的代码块展示。 */
37
+ code?: boolean;
38
+ }
39
+
40
+ /** 审计列表页面配置。 */
41
+ export interface AuditLogTableConfig {
42
+ /** 审计列表表格的列定义。 */
43
+ columns: ColumnProps[];
44
+ /** 详情弹窗标题。 */
45
+ detailTitle: string;
46
+ /** 详情弹窗关闭按钮文案。 */
47
+ closeText: string;
48
+ /** 详情字段和展示格式定义。 */
49
+ detailFields: AuditLogDetailField[];
50
+ /** 分页查询函数,返回列表和总数。 */
51
+ request: (params: Record<string, unknown>) => Promise<{ list: Record<string, unknown>[]; total: number }>;
52
+ /** 按日志编号读取详情。 */
53
+ get: (id: number) => Promise<Record<string, unknown>>;
54
+ }
55
+
56
+ const props = defineProps<{ config: AuditLogTableConfig }>();
57
+ const proTable = ref<ProTableInstance>();
58
+ const detail = reactive<Record<string, unknown>>({});
59
+ const dialog = reactive({ visible: false });
60
+ const resolvedColumns = computed(() => unref(props.config.columns));
61
+
62
+ /** 请求审计日志分页数据。 */
63
+ async function requestTable(params: Record<string, unknown>) {
64
+ const result = await props.config.request(buildPageRequest(params));
65
+ return { data: { list: result.list, total: result.total } };
66
+ }
67
+
68
+ /** 打开审计详情弹窗。 */
69
+ async function handleOpenDialog(id: number) {
70
+ const value = await props.config.get(id);
71
+ Object.keys(detail).forEach(key => delete detail[key]);
72
+ Object.assign(detail, value);
73
+ dialog.visible = true;
74
+ }
75
+
76
+ /** 关闭并清理审计详情弹窗。 */
77
+ function handleCloseDialog() {
78
+ dialog.visible = false;
79
+ Object.keys(detail).forEach(key => delete detail[key]);
80
+ }
81
+
82
+ /** 格式化详情字段,JSON 内容使用统一脱敏展示格式。 */
83
+ function formatField(field: AuditLogDetailField) {
84
+ const value = detail[field.key];
85
+ if (value === undefined || value === null || value === "") return "--";
86
+ if (field.code) return formatJson(String(value));
87
+ return String(value);
88
+ }
89
+
90
+ defineExpose({ handleOpenDialog, proTable });
91
+ </script>
92
+
93
+ <style scoped>
94
+ .detail-container {
95
+ width: 100%;
96
+ }
97
+
98
+ .code-block {
99
+ max-height: 360px;
100
+ margin: 0;
101
+ overflow: auto;
102
+ white-space: pre-wrap;
103
+ word-break: break-word;
104
+ }
105
+ </style>