@liujitcn/kratos-admin-system 0.0.31 → 0.0.32

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 (306) hide show
  1. package/README.md +34 -20
  2. package/dist/package/declarations/src/api/base/{notification.d.ts → v1/notification.d.ts} +3 -1
  3. package/dist/package/declarations/src/api/system/admin/v1/base_api_log.d.ts +10 -0
  4. package/dist/package/declarations/src/api/system/{base_area.d.ts → admin/v1/base_area.d.ts} +1 -1
  5. package/dist/package/declarations/src/api/system/{base_config.d.ts → admin/v1/base_config.d.ts} +5 -1
  6. package/dist/package/declarations/src/api/system/admin/v1/base_data_access_log.d.ts +10 -0
  7. package/dist/package/declarations/src/api/system/admin/v1/base_dict.d.ts +20 -0
  8. package/dist/package/declarations/src/api/system/admin/v1/base_dict_item.d.ts +18 -0
  9. package/dist/package/declarations/src/api/system/{base_job.d.ts → admin/v1/base_job.d.ts} +4 -5
  10. package/dist/package/declarations/src/api/system/admin/v1/base_job_log.d.ts +9 -0
  11. package/dist/package/declarations/src/api/system/{base_language.d.ts → admin/v1/base_language.d.ts} +3 -3
  12. package/dist/package/declarations/src/api/system/admin/v1/base_log.d.ts +8 -0
  13. package/dist/package/declarations/src/api/system/admin/v1/base_login_log.d.ts +10 -0
  14. package/dist/package/declarations/src/api/system/admin/v1/base_login_policy.d.ts +19 -0
  15. package/dist/package/declarations/src/api/system/admin/v1/base_operation_log.d.ts +10 -0
  16. package/dist/package/declarations/src/api/system/admin/v1/base_permission_log.d.ts +10 -0
  17. package/dist/package/declarations/src/api/system/admin/v1/base_policy_evaluation_log.d.ts +10 -0
  18. package/dist/package/declarations/src/api/system/admin/v1/base_table_archive.d.ts +20 -0
  19. package/dist/package/declarations/src/api/system/admin/v1/base_table_archive_record.d.ts +11 -0
  20. package/dist/package/declarations/src/api/system/admin/v1/base_table_archive_restore.d.ts +14 -0
  21. package/dist/package/declarations/src/api/system/admin/v1/base_table_backup.d.ts +20 -0
  22. package/dist/package/declarations/src/api/system/admin/v1/base_table_backup_record.d.ts +11 -0
  23. package/dist/package/declarations/src/api/system/admin/v1/base_table_backup_restore.d.ts +14 -0
  24. package/dist/package/declarations/src/api/system/admin/v1/base_table_source.d.ts +11 -0
  25. package/dist/package/declarations/src/api/system/admin/v1/cache.d.ts +7 -0
  26. package/dist/package/declarations/src/api/system/base_redact_field.d.ts +20 -0
  27. package/dist/package/declarations/src/api/system/base_redact_policy.d.ts +19 -0
  28. package/dist/package/declarations/src/api/system/base_redact_rule.d.ts +22 -0
  29. package/dist/package/declarations/src/components/ChangePasswordForm.vue.d.ts +3 -0
  30. package/dist/package/declarations/src/components/DynamicI18nCell.vue.d.ts +5 -1
  31. package/dist/package/declarations/src/components/ForcedPasswordDialog.vue.d.ts +3 -0
  32. package/dist/package/declarations/src/components/{AuditLogTable.vue.d.ts → LogTable.vue.d.ts} +14 -7
  33. package/dist/package/declarations/src/components/dynamicI18n.d.ts +4 -7
  34. package/dist/package/declarations/src/components/log.d.ts +20 -0
  35. package/dist/package/declarations/src/config/base-log-fallback.d.ts +7 -0
  36. package/dist/package/declarations/src/config/database-backup.d.ts +12 -0
  37. package/dist/package/declarations/src/config/index.d.ts +7 -0
  38. package/dist/package/declarations/src/config/types.d.ts +56 -0
  39. package/dist/package/declarations/src/locales/generated.d.ts +1084 -500
  40. package/dist/package/declarations/src/rpc/base/v1/login.d.ts +5 -3
  41. package/dist/package/declarations/src/rpc/base/v1/notification.d.ts +25 -0
  42. package/dist/package/declarations/src/rpc/system/admin/v1/auth.d.ts +13 -0
  43. package/dist/package/declarations/src/rpc/system/admin/v1/base_api.d.ts +2 -0
  44. package/dist/package/declarations/src/rpc/system/admin/v1/base_api_log.d.ts +84 -0
  45. package/dist/package/declarations/src/rpc/system/admin/v1/base_config.d.ts +38 -0
  46. package/dist/package/declarations/src/rpc/system/admin/v1/base_data_access_log.d.ts +112 -0
  47. package/dist/package/declarations/src/rpc/system/admin/v1/base_dict.d.ts +0 -101
  48. package/dist/package/declarations/src/rpc/system/admin/v1/base_dict_item.d.ts +107 -0
  49. package/dist/package/declarations/src/rpc/system/admin/v1/base_job.d.ts +5 -56
  50. package/dist/package/declarations/src/rpc/system/admin/v1/base_job_log.d.ts +60 -0
  51. package/dist/package/declarations/src/rpc/system/admin/v1/base_log.d.ts +77 -0
  52. package/dist/package/declarations/src/rpc/system/admin/v1/base_login_log.d.ts +92 -0
  53. package/dist/package/declarations/src/rpc/system/admin/v1/base_login_policy.d.ts +169 -41
  54. package/dist/package/declarations/src/rpc/system/admin/v1/base_operation_log.d.ts +106 -0
  55. package/dist/package/declarations/src/rpc/system/admin/v1/base_permission_log.d.ts +118 -0
  56. package/dist/package/declarations/src/rpc/system/admin/v1/base_policy_evaluation_log.d.ts +119 -0
  57. package/dist/package/declarations/src/rpc/system/admin/v1/base_redact_common.d.ts +9 -0
  58. package/dist/package/declarations/src/rpc/system/admin/v1/base_redact_field.d.ts +161 -0
  59. package/dist/package/declarations/src/rpc/system/admin/v1/base_redact_policy.d.ts +150 -0
  60. package/dist/package/declarations/src/rpc/system/admin/v1/base_redact_rule.d.ts +111 -0
  61. package/dist/package/declarations/src/rpc/system/admin/v1/base_table_archive.d.ts +90 -0
  62. package/dist/package/declarations/src/rpc/system/admin/v1/base_table_archive_record.d.ts +82 -0
  63. package/dist/package/declarations/src/rpc/system/admin/v1/base_table_archive_restore.d.ts +76 -0
  64. package/dist/package/declarations/src/rpc/system/admin/v1/base_table_backup.d.ts +74 -0
  65. package/dist/package/declarations/src/rpc/system/admin/v1/base_table_backup_record.d.ts +69 -0
  66. package/dist/package/declarations/src/rpc/system/admin/v1/base_table_backup_restore.d.ts +76 -0
  67. package/dist/package/declarations/src/rpc/system/admin/v1/base_table_source.d.ts +16 -0
  68. package/dist/package/declarations/src/rpc/system/admin/v1/base_user.d.ts +15 -0
  69. package/dist/package/declarations/src/rpc/system/admin/v1/cache.d.ts +47 -0
  70. package/dist/package/declarations/src/rpc/system/admin/v1/code_gen_column.d.ts +2 -0
  71. package/dist/package/declarations/src/rpc/system/admin/v1/code_gen_table.d.ts +8 -0
  72. package/dist/package/declarations/src/rpc/system/common/v1/common.d.ts +26 -0
  73. package/dist/package/declarations/src/rpc/system/config/v1/system_config.d.ts +8 -0
  74. package/dist/package/declarations/src/{api/system → utils}/code_gen_i18n.d.ts +1 -2
  75. package/dist/package/declarations/src/{api/system → utils}/code_gen_sse.d.ts +1 -1
  76. package/dist/package/declarations/src/utils/notification-response.d.ts +5 -0
  77. package/dist/package/declarations/src/{api/system → utils}/ops_monitoring_sse.d.ts +1 -1
  78. package/dist/package/declarations/src/{api/system → utils}/runtime_log_sse.d.ts +1 -1
  79. package/dist/package/declarations/src/views/base/backup-management/archive-config/index.vue.d.ts +3 -0
  80. package/dist/package/declarations/src/views/base/backup-management/archive-record/index.vue.d.ts +3 -0
  81. package/dist/package/declarations/src/views/base/backup-management/archive-restore/index.vue.d.ts +3 -0
  82. package/dist/package/declarations/src/views/base/backup-management/backup-config/index.vue.d.ts +3 -0
  83. package/dist/package/declarations/src/views/base/backup-management/backup-record/index.vue.d.ts +3 -0
  84. package/dist/package/declarations/src/views/base/backup-management/backup-restore/index.vue.d.ts +3 -0
  85. package/dist/package/declarations/src/views/base/login-policy/format.d.ts +2 -0
  86. package/dist/package/declarations/src/views/base/redact-field/index.vue.d.ts +3 -0
  87. package/dist/package/declarations/src/views/base/redact-policy/index.vue.d.ts +3 -0
  88. package/dist/package/declarations/src/views/base/redact-rule/index.vue.d.ts +3 -0
  89. package/dist/package/declarations/src/views/base/runtime-config/index.vue.d.ts +3 -0
  90. package/dist/package/declarations/src/views/tool/cache/index.vue.d.ts +3 -0
  91. package/dist/package/src/api/base/v1/notification.ts +99 -0
  92. package/dist/package/src/api/system/admin/v1/base_api_log.ts +33 -0
  93. package/dist/package/src/api/system/{base_area.ts → admin/v1/base_area.ts} +1 -1
  94. package/dist/package/src/api/system/{base_config.ts → admin/v1/base_config.ts} +20 -0
  95. package/dist/package/src/api/system/admin/v1/base_data_access_log.ts +33 -0
  96. package/dist/package/src/api/system/{base_dict.ts → admin/v1/base_dict.ts} +0 -60
  97. package/dist/package/src/api/system/admin/v1/base_dict_item.ts +72 -0
  98. package/dist/package/src/api/system/{base_job.ts → admin/v1/base_job.ts} +11 -22
  99. package/dist/package/src/api/system/admin/v1/base_job_log.ts +32 -0
  100. package/dist/package/src/api/system/{base_language.ts → admin/v1/base_language.ts} +3 -3
  101. package/dist/package/src/api/system/admin/v1/base_log.ts +23 -0
  102. package/dist/package/src/api/system/admin/v1/base_login_log.ts +33 -0
  103. package/dist/package/src/api/system/admin/v1/base_login_policy.ts +67 -0
  104. package/dist/package/src/api/system/{base_message.ts → admin/v1/base_message.ts} +29 -9
  105. package/dist/package/src/api/system/{base_message_category.ts → admin/v1/base_message_category.ts} +30 -7
  106. package/dist/package/src/api/system/admin/v1/base_operation_log.ts +33 -0
  107. package/dist/package/src/api/system/admin/v1/base_permission_log.ts +33 -0
  108. package/dist/package/src/api/system/admin/v1/base_policy_evaluation_log.ts +33 -0
  109. package/dist/package/src/api/system/admin/v1/base_table_archive.ts +70 -0
  110. package/dist/package/src/api/system/admin/v1/base_table_archive_record.ts +33 -0
  111. package/dist/package/src/api/system/admin/v1/base_table_archive_restore.ts +44 -0
  112. package/dist/package/src/api/system/admin/v1/base_table_backup.ts +70 -0
  113. package/dist/package/src/api/system/admin/v1/base_table_backup_record.ts +33 -0
  114. package/dist/package/src/api/system/admin/v1/base_table_backup_restore.ts +44 -0
  115. package/dist/package/src/api/system/admin/v1/base_table_source.ts +33 -0
  116. package/dist/package/src/api/system/admin/v1/cache.ts +22 -0
  117. package/dist/package/src/api/system/{code_gen_column.ts → admin/v1/code_gen_column.ts} +19 -3
  118. package/dist/package/src/api/system/{code_gen_table.ts → admin/v1/code_gen_table.ts} +13 -4
  119. package/dist/package/src/api/system/base_redact_field.ts +25 -0
  120. package/dist/package/src/api/system/base_redact_policy.ts +24 -0
  121. package/dist/package/src/api/system/base_redact_rule.ts +27 -0
  122. package/dist/package/src/components/Ai.vue +1 -1
  123. package/dist/package/src/components/ChangePasswordForm.vue +143 -0
  124. package/dist/package/src/components/DynamicI18nCell.vue +28 -8
  125. package/dist/package/src/components/DynamicI18nEditor.vue +1 -1
  126. package/dist/package/src/components/ForcedPasswordDialog.vue +40 -0
  127. package/dist/package/src/components/LogTable.vue +190 -0
  128. package/dist/package/src/components/Notification.vue +112 -7
  129. package/dist/package/src/components/dynamicI18n.ts +5 -9
  130. package/dist/package/src/components/log.ts +87 -0
  131. package/dist/package/src/config/base-log-fallback.ts +26 -0
  132. package/dist/package/src/config/database-backup.ts +57 -0
  133. package/dist/package/src/config/index.ts +26 -0
  134. package/dist/package/src/config/types.ts +59 -0
  135. package/dist/package/src/locales/README.md +2 -1
  136. package/dist/package/src/locales/en-US.json +285 -127
  137. package/dist/package/src/locales/ja-JP.json +285 -127
  138. package/dist/package/src/locales/zh-CN.json +285 -127
  139. package/dist/package/src/locales/zh-TW.json +285 -127
  140. package/dist/package/src/module.ts +3 -1
  141. package/dist/package/src/rpc/base/v1/login.ts +4 -2
  142. package/dist/package/src/rpc/base/v1/notification.ts +28 -0
  143. package/dist/package/src/rpc/system/admin/v1/auth.ts +13 -0
  144. package/dist/package/src/rpc/system/admin/v1/base_api.ts +2 -0
  145. package/dist/package/src/rpc/system/admin/v1/base_api_log.ts +102 -0
  146. package/dist/package/src/rpc/system/admin/v1/base_config.ts +42 -0
  147. package/dist/package/src/rpc/system/admin/v1/base_data_access_log.ts +135 -0
  148. package/dist/package/src/rpc/system/admin/v1/base_dict.ts +0 -112
  149. package/dist/package/src/rpc/system/admin/v1/base_dict_item.ts +126 -0
  150. package/dist/package/src/rpc/system/admin/v1/base_job.ts +5 -62
  151. package/dist/package/src/rpc/system/admin/v1/base_job_log.ts +75 -0
  152. package/dist/package/src/rpc/system/admin/v1/base_log.ts +90 -0
  153. package/dist/package/src/rpc/system/admin/v1/base_login_log.ts +113 -0
  154. package/dist/package/src/rpc/system/admin/v1/base_login_policy.ts +191 -42
  155. package/dist/package/src/rpc/system/admin/v1/base_operation_log.ts +127 -0
  156. package/dist/package/src/rpc/system/admin/v1/base_permission_log.ts +142 -0
  157. package/dist/package/src/rpc/system/admin/v1/base_policy_evaluation_log.ts +143 -0
  158. package/dist/package/src/rpc/system/admin/v1/base_redact_common.ts +17 -0
  159. package/dist/package/src/rpc/system/admin/v1/base_redact_field.ts +182 -0
  160. package/dist/package/src/rpc/system/admin/v1/base_redact_policy.ts +174 -0
  161. package/dist/package/src/rpc/system/admin/v1/base_redact_rule.ts +131 -0
  162. package/dist/package/src/rpc/system/admin/v1/base_table_archive.ts +109 -0
  163. package/dist/package/src/rpc/system/admin/v1/base_table_archive_record.ts +95 -0
  164. package/dist/package/src/rpc/system/admin/v1/base_table_archive_restore.ts +93 -0
  165. package/dist/package/src/rpc/system/admin/v1/base_table_backup.ts +91 -0
  166. package/dist/package/src/rpc/system/admin/v1/base_table_backup_record.ts +82 -0
  167. package/dist/package/src/rpc/system/admin/v1/base_table_backup_restore.ts +91 -0
  168. package/dist/package/src/rpc/system/admin/v1/base_table_source.ts +26 -0
  169. package/dist/package/src/rpc/system/admin/v1/base_user.ts +15 -0
  170. package/dist/package/src/rpc/system/admin/v1/cache.ts +59 -0
  171. package/dist/package/src/rpc/system/admin/v1/code_gen_column.ts +2 -0
  172. package/dist/package/src/rpc/system/admin/v1/code_gen_table.ts +8 -0
  173. package/dist/package/src/rpc/system/common/v1/common.ts +35 -0
  174. package/dist/package/src/rpc/system/config/v1/system_config.ts +16 -0
  175. package/dist/package/src/{api/system → utils}/code_gen_i18n.ts +1 -1
  176. package/dist/package/src/{api/system → utils}/code_gen_sse.ts +1 -1
  177. package/dist/package/src/utils/notification-response.ts +22 -0
  178. package/dist/package/src/{api/system → utils}/ops_monitoring_sse.ts +1 -1
  179. package/dist/package/src/{api/system → utils}/runtime_log_sse.ts +1 -1
  180. package/dist/package/src/views/ai/chat/components/AiMarkdown.vue +1 -1
  181. package/dist/package/src/views/ai/chat/components/ChatPanel.vue +2 -4
  182. package/dist/package/src/views/ai/chat/components/XSender.vue +1 -1
  183. package/dist/package/src/views/ai/chat/index.vue +3 -3
  184. package/dist/package/src/views/ai/chat/message.ts +3 -8
  185. package/dist/package/src/views/base/api/index.vue +4 -4
  186. package/dist/package/src/views/base/api-log/index.vue +56 -45
  187. package/dist/package/src/views/base/area/index.vue +1 -1
  188. package/dist/package/src/views/base/backup-management/archive-config/index.vue +151 -0
  189. package/dist/package/src/views/base/backup-management/archive-record/index.vue +44 -0
  190. package/dist/package/src/views/base/backup-management/archive-restore/index.vue +59 -0
  191. package/dist/package/src/views/base/backup-management/backup-config/index.vue +119 -0
  192. package/dist/package/src/views/base/backup-management/backup-record/index.vue +41 -0
  193. package/dist/package/src/views/base/backup-management/backup-restore/index.vue +66 -0
  194. package/dist/package/src/views/base/config/index.vue +16 -25
  195. package/dist/package/src/views/base/dashboard/index.vue +68 -66
  196. package/dist/package/src/views/base/data-access-log/index.vue +64 -52
  197. package/dist/package/src/views/base/dept/index.vue +11 -11
  198. package/dist/package/src/views/base/dict/index.vue +5 -5
  199. package/dist/package/src/views/base/dict/item.vue +12 -12
  200. package/dist/package/src/views/base/file/index.vue +220 -16
  201. package/dist/package/src/views/base/job/index.vue +5 -5
  202. package/dist/package/src/views/base/job/log.vue +38 -11
  203. package/dist/package/src/views/base/language/index.vue +1 -1
  204. package/dist/package/src/views/base/login-log/index.vue +49 -45
  205. package/dist/package/src/views/base/login-policy/format.ts +4 -0
  206. package/dist/package/src/views/base/login-policy/index.vue +496 -185
  207. package/dist/package/src/views/base/menu/index.vue +17 -17
  208. package/dist/package/src/views/base/message/index.vue +149 -19
  209. package/dist/package/src/views/base/message-category/index.vue +41 -10
  210. package/dist/package/src/views/base/migration/index.vue +2 -2
  211. package/dist/package/src/views/base/oauth-client/index.vue +19 -9
  212. package/dist/package/src/views/base/operation-log/index.vue +54 -50
  213. package/dist/package/src/views/base/permission-log/index.vue +57 -52
  214. package/dist/package/src/views/base/policy-evaluation-log/index.vue +61 -50
  215. package/dist/package/src/views/base/post/index.vue +11 -11
  216. package/dist/package/src/views/base/redact-field/index.vue +59 -0
  217. package/dist/package/src/views/base/redact-policy/index.vue +92 -0
  218. package/dist/package/src/views/base/redact-rule/index.vue +51 -0
  219. package/dist/package/src/views/base/role/index.vue +9 -9
  220. package/dist/package/src/views/base/runtime-config/index.vue +479 -0
  221. package/dist/package/src/views/base/tenant/index.vue +9 -9
  222. package/dist/package/src/views/base/user/components/dept-tree.vue +1 -1
  223. package/dist/package/src/views/base/user/index.vue +86 -47
  224. package/dist/package/src/views/message/inbox/index.vue +38 -11
  225. package/dist/package/src/views/profile/components/base.vue +84 -8
  226. package/dist/package/src/views/profile/components/password.vue +2 -228
  227. package/dist/package/src/views/profile/components/security.vue +3 -3
  228. package/dist/package/src/views/profile/components/session.vue +10 -2
  229. package/dist/package/src/views/profile/index.vue +10 -9
  230. package/dist/package/src/views/tool/api-doc/index.vue +3 -3
  231. package/dist/package/src/views/tool/cache/index.vue +352 -0
  232. package/dist/package/src/views/tool/code-gen/code-preview/index.vue +4 -4
  233. package/dist/package/src/views/tool/code-gen/columns/index.vue +16 -16
  234. package/dist/package/src/views/tool/code-gen/components/CodeGenLocaleEditor.vue +2 -2
  235. package/dist/package/src/views/tool/code-gen/components/CodeGenProgressDialog.vue +2 -2
  236. package/dist/package/src/views/tool/code-gen/config.ts +2 -0
  237. package/dist/package/src/views/tool/code-gen/preview/index.vue +9 -9
  238. package/dist/package/src/views/tool/code-gen/proto/index.vue +10 -12
  239. package/dist/package/src/views/tool/code-gen/table/index.vue +71 -15
  240. package/dist/package/src/views/tool/ops-monitoring/index.vue +31 -96
  241. package/dist/package/src/views/tool/project-doc/index.vue +2 -2
  242. package/dist/package/src/views/tool/runtime-log/index.vue +6 -6
  243. package/package.json +7 -2
  244. package/dist/package/declarations/src/api/system/base_audit_log.d.ts +0 -55
  245. package/dist/package/declarations/src/api/system/base_dict.d.ts +0 -32
  246. package/dist/package/declarations/src/api/system/base_login_policy.d.ts +0 -10
  247. package/dist/package/declarations/src/components/auditLog.d.ts +0 -9
  248. package/dist/package/declarations/src/rpc/system/admin/v1/base_audit_log.d.ts +0 -640
  249. package/dist/package/src/api/base/notification.ts +0 -69
  250. package/dist/package/src/api/system/base_audit_log.ts +0 -168
  251. package/dist/package/src/api/system/base_login_policy.ts +0 -32
  252. package/dist/package/src/components/AuditLogTable.vue +0 -105
  253. package/dist/package/src/components/auditLog.ts +0 -46
  254. package/dist/package/src/rpc/system/admin/v1/base_audit_log.ts +0 -737
  255. /package/dist/package/declarations/src/api/base/{ai_message.d.ts → v1/ai_message.d.ts} +0 -0
  256. /package/dist/package/declarations/src/api/base/{ai_session.d.ts → v1/ai_session.d.ts} +0 -0
  257. /package/dist/package/declarations/src/api/base/{ai_tool.d.ts → v1/ai_tool.d.ts} +0 -0
  258. /package/dist/package/declarations/src/api/base/{oauth.d.ts → v1/oauth.d.ts} +0 -0
  259. /package/dist/package/declarations/src/api/base/{sse.d.ts → v1/sse.d.ts} +0 -0
  260. /package/dist/package/declarations/src/api/system/{auth.d.ts → admin/v1/auth.d.ts} +0 -0
  261. /package/dist/package/declarations/src/api/system/{base_api.d.ts → admin/v1/base_api.d.ts} +0 -0
  262. /package/dist/package/declarations/src/api/system/{base_dashboard.d.ts → admin/v1/base_dashboard.d.ts} +0 -0
  263. /package/dist/package/declarations/src/api/system/{base_dept.d.ts → admin/v1/base_dept.d.ts} +0 -0
  264. /package/dist/package/declarations/src/api/system/{base_file.d.ts → admin/v1/base_file.d.ts} +0 -0
  265. /package/dist/package/declarations/src/api/system/{base_i18n.d.ts → admin/v1/base_i18n.d.ts} +0 -0
  266. /package/dist/package/declarations/src/api/system/{base_menu.d.ts → admin/v1/base_menu.d.ts} +0 -0
  267. /package/dist/package/declarations/src/api/system/{base_message.d.ts → admin/v1/base_message.d.ts} +0 -0
  268. /package/dist/package/declarations/src/api/system/{base_message_category.d.ts → admin/v1/base_message_category.d.ts} +0 -0
  269. /package/dist/package/declarations/src/api/system/{base_migration.d.ts → admin/v1/base_migration.d.ts} +0 -0
  270. /package/dist/package/declarations/src/api/system/{base_post.d.ts → admin/v1/base_post.d.ts} +0 -0
  271. /package/dist/package/declarations/src/api/system/{base_role.d.ts → admin/v1/base_role.d.ts} +0 -0
  272. /package/dist/package/declarations/src/api/system/{base_session.d.ts → admin/v1/base_session.d.ts} +0 -0
  273. /package/dist/package/declarations/src/api/system/{base_tenant.d.ts → admin/v1/base_tenant.d.ts} +0 -0
  274. /package/dist/package/declarations/src/api/system/{base_user.d.ts → admin/v1/base_user.d.ts} +0 -0
  275. /package/dist/package/declarations/src/api/system/{code_gen.d.ts → admin/v1/code_gen.d.ts} +0 -0
  276. /package/dist/package/declarations/src/api/system/{code_gen_column.d.ts → admin/v1/code_gen_column.d.ts} +0 -0
  277. /package/dist/package/declarations/src/api/system/{code_gen_proto.d.ts → admin/v1/code_gen_proto.d.ts} +0 -0
  278. /package/dist/package/declarations/src/api/system/{code_gen_table.d.ts → admin/v1/code_gen_table.d.ts} +0 -0
  279. /package/dist/package/declarations/src/api/system/{oauth_client.d.ts → admin/v1/oauth_client.d.ts} +0 -0
  280. /package/dist/package/declarations/src/api/system/{ops_monitoring.d.ts → admin/v1/ops_monitoring.d.ts} +0 -0
  281. /package/dist/package/declarations/src/api/system/{project_document.d.ts → admin/v1/project_document.d.ts} +0 -0
  282. /package/dist/package/declarations/src/api/system/{runtime_log.d.ts → admin/v1/runtime_log.d.ts} +0 -0
  283. /package/dist/package/src/api/base/{ai_message.ts → v1/ai_message.ts} +0 -0
  284. /package/dist/package/src/api/base/{ai_session.ts → v1/ai_session.ts} +0 -0
  285. /package/dist/package/src/api/base/{ai_tool.ts → v1/ai_tool.ts} +0 -0
  286. /package/dist/package/src/api/base/{oauth.ts → v1/oauth.ts} +0 -0
  287. /package/dist/package/src/api/base/{sse.ts → v1/sse.ts} +0 -0
  288. /package/dist/package/src/api/system/{auth.ts → admin/v1/auth.ts} +0 -0
  289. /package/dist/package/src/api/system/{base_api.ts → admin/v1/base_api.ts} +0 -0
  290. /package/dist/package/src/api/system/{base_dashboard.ts → admin/v1/base_dashboard.ts} +0 -0
  291. /package/dist/package/src/api/system/{base_dept.ts → admin/v1/base_dept.ts} +0 -0
  292. /package/dist/package/src/api/system/{base_file.ts → admin/v1/base_file.ts} +0 -0
  293. /package/dist/package/src/api/system/{base_i18n.ts → admin/v1/base_i18n.ts} +0 -0
  294. /package/dist/package/src/api/system/{base_menu.ts → admin/v1/base_menu.ts} +0 -0
  295. /package/dist/package/src/api/system/{base_migration.ts → admin/v1/base_migration.ts} +0 -0
  296. /package/dist/package/src/api/system/{base_post.ts → admin/v1/base_post.ts} +0 -0
  297. /package/dist/package/src/api/system/{base_role.ts → admin/v1/base_role.ts} +0 -0
  298. /package/dist/package/src/api/system/{base_session.ts → admin/v1/base_session.ts} +0 -0
  299. /package/dist/package/src/api/system/{base_tenant.ts → admin/v1/base_tenant.ts} +0 -0
  300. /package/dist/package/src/api/system/{base_user.ts → admin/v1/base_user.ts} +0 -0
  301. /package/dist/package/src/api/system/{code_gen.ts → admin/v1/code_gen.ts} +0 -0
  302. /package/dist/package/src/api/system/{code_gen_proto.ts → admin/v1/code_gen_proto.ts} +0 -0
  303. /package/dist/package/src/api/system/{oauth_client.ts → admin/v1/oauth_client.ts} +0 -0
  304. /package/dist/package/src/api/system/{ops_monitoring.ts → admin/v1/ops_monitoring.ts} +0 -0
  305. /package/dist/package/src/api/system/{project_document.ts → admin/v1/project_document.ts} +0 -0
  306. /package/dist/package/src/api/system/{runtime_log.ts → admin/v1/runtime_log.ts} +0 -0
@@ -0,0 +1,66 @@
1
+ <template>
2
+ <div class="table-box">
3
+ <ProTable ref="proTable" row-key="id" :columns="columns" :request-api="requestTable" />
4
+ <el-card class="restore-card">
5
+ <template #header>{{ t("system.backup.backup.restore.manual") }}</template>
6
+ <ProForm ref="formRef" :model="formData" :fields="formFields" :rules="formRules" label-width="160px" />
7
+ <el-button v-if="BUTTONS['base:table-backup-restore:execute']" type="primary" :loading="submitting" @click="submitRestore">{{ t("system.backup.action.restore") }}</el-button>
8
+ </el-card>
9
+ </div>
10
+ </template>
11
+
12
+ <script setup lang="ts">
13
+ import { computed, onMounted, reactive, ref } from "vue";
14
+ import { ElMessage } from "element-plus";
15
+ import ProTable from "@liujitcn/kratos-admin-core/components/ProTable";
16
+ import ProForm from "@liujitcn/kratos-admin-core/components/ProForm/index.vue";
17
+ import type { ColumnProps, ProTableInstance } from "@liujitcn/kratos-admin-core/components/ProTable/interface";
18
+ import type { ProFormField, ProFormInstance, ProFormOption } from "@liujitcn/kratos-admin-core/components/ProForm/interface";
19
+ import { buildPageRequest } from "@liujitcn/kratos-admin-core/table";
20
+ import { useAuthButtons } from "@liujitcn/kratos-admin-core/auth";
21
+ import { t } from "@liujitcn/kratos-admin-core";
22
+ import { defBaseTableBackupRestoreService } from "@liujitcn/kratos-admin-system/api/system/admin/v1/base_table_backup_restore";
23
+ import { defBaseTableSourceService } from "@liujitcn/kratos-admin-system/api/system/admin/v1/base_table_source";
24
+ import { BaseTableBackupRestoreMode, BaseTableBackupRestoreStatus, type BaseTableBackupRestore } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_table_backup_restore";
25
+
26
+ defineOptions({ name: "BaseTableBackupRestore", inheritAttrs: false });
27
+ const proTable = ref<ProTableInstance>();
28
+ const { BUTTONS } = useAuthButtons();
29
+ const formRef = ref<ProFormInstance>();
30
+ const submitting = ref(false);
31
+ const sourceOptions = ref<ProFormOption[]>([]);
32
+ const formData = reactive<BaseTableBackupRestore>({ id: 0, backup_record_id: 0, source_name: "", target_source_name: "default", target_database: "", restore_mode: BaseTableBackupRestoreMode.BASE_TABLE_BACKUP_RESTORE_MODE_VERIFY_ONLY, operator_id: 0, status: BaseTableBackupRestoreStatus.BASE_TABLE_BACKUP_RESTORE_STATUS_PENDING, error: "", started_at: "", finished_at: "" });
33
+ const modeOptions = computed<ProFormOption[]>(() => [{ label: t("system.backup.restore.mode.verify_only"), value: BaseTableBackupRestoreMode.BASE_TABLE_BACKUP_RESTORE_MODE_VERIFY_ONLY }, { label: t("system.backup.restore.mode.full"), value: BaseTableBackupRestoreMode.BASE_TABLE_BACKUP_RESTORE_MODE_FULL }]);
34
+ const formFields = computed<ProFormField[]>(() => [{ prop: "backup_record_id", label: t("system.backup.field.backup_record_id"), component: "input-number", props: { min: 0, precision: 0 } }, { prop: "target_source_name", label: t("system.backup.field.target_source_name"), component: "select", options: sourceOptions.value, props: { filterable: true, placeholder: t("system.backup.placeholder.source_name") } }, { prop: "target_database", label: t("system.backup.field.target_database"), component: "input" }, { prop: "restore_mode", label: t("system.backup.field.restore_mode"), component: "select", options: modeOptions.value }]);
35
+ const formRules = computed(() => ({
36
+ backup_record_id: [
37
+ { required: true, message: t("system.backup.validation.backup_record_id"), trigger: "blur" },
38
+ { type: "number", min: 1, message: t("system.backup.validation.backup_record_id_positive"), trigger: "change" }
39
+ ],
40
+ target_source_name: [{ required: true, message: t("system.backup.validation.target_source_name"), trigger: "blur" }],
41
+ target_database: [{ required: true, message: t("system.backup.validation.target_database"), trigger: "blur" }]
42
+ }));
43
+ const columns = computed<ColumnProps[]>(() => [{ prop: "id", label: t("system.backup.field.id"), width: 90 }, { prop: "backup_record_id", label: t("system.backup.field.backup_record_id"), width: 130 }, { prop: "source_name", label: t("system.backup.field.source_name"), minWidth: 130 }, { prop: "target_source_name", label: t("system.backup.field.target_source_name"), minWidth: 130 }, { prop: "target_database", label: t("system.backup.field.target_database"), minWidth: 150 }, { prop: "restore_mode", label: t("system.backup.field.restore_mode"), width: 120, render: scope => modeOptions.value.find(item => item.value === scope.row.restore_mode)?.label ?? String(scope.row.restore_mode) }, { prop: "status", label: t("common.field.status"), width: 110 }, { prop: "error", label: t("system.backup.field.error"), minWidth: 220 }, { prop: "started_at", label: t("system.backup.field.started_at"), minWidth: 170 }, { prop: "finished_at", label: t("system.backup.field.finished_at"), minWidth: 170 }]);
44
+
45
+ /** 请求备份恢复记录分页列表。 */
46
+ async function requestTable(params: Record<string, unknown>) { const data = await defBaseTableBackupRestoreService.PageBaseTableBackupRestore(buildPageRequest(params)); return { data: { list: data.base_table_backup_restores ?? [], total: data.total } }; }
47
+ /** 手工提交备份恢复请求。 */
48
+ async function submitRestore() {
49
+ if (!(await formRef.value?.validate())) return;
50
+ if (!Number.isInteger(formData.backup_record_id) || formData.backup_record_id < 1) {
51
+ ElMessage.warning(t("system.backup.validation.backup_record_id_positive"));
52
+ return;
53
+ }
54
+ submitting.value = true;
55
+ try {
56
+ await defBaseTableBackupRestoreService.ExecuteBaseTableBackupRestore({ base_table_backup_restore: { ...formData } });
57
+ ElMessage.success(t("system.backup.message.restore_submitted"));
58
+ proTable.value?.getTableList();
59
+ } finally {
60
+ submitting.value = false;
61
+ }
62
+ }
63
+ /** 加载备份恢复可用的目标数据源。 */
64
+ async function loadSourceOptions() { const data = await defBaseTableSourceService.OptionBaseTableSource({}); sourceOptions.value = (data.value ?? []).map(value => ({ label: value, value })); if (!sourceOptions.value.some(item => item.value === formData.target_source_name)) formData.target_source_name = String(sourceOptions.value[0]?.value ?? ""); }
65
+ onMounted(() => void loadSourceOptions());
66
+ </script>
@@ -30,7 +30,7 @@
30
30
  <UploadImg v-model:image-url="formData.value" upload-type="config" />
31
31
  </template>
32
32
  <template #richTextValue>
33
- <WangEditor v-model:value="formData.value" />
33
+ <WangEditor v-model:value="formData.value" upload-type="config" />
34
34
  </template>
35
35
  <template #dictValue>
36
36
  <Dict
@@ -57,19 +57,10 @@
57
57
  />
58
58
  </template>
59
59
  <template #nameI18ns>
60
- <DynamicI18nEditor
61
- v-model="nameI18nValues"
62
- :source="formData.name"
63
- :maxlength="100"
64
- />
60
+ <DynamicI18nEditor v-model="nameI18nValues" :source="formData.name" :maxlength="100" />
65
61
  </template>
66
62
  <template #valueI18ns>
67
- <DynamicI18nEditor
68
- v-model="valueI18nValues"
69
- :source="formData.value"
70
- :maxlength="10000"
71
- multiline
72
- />
63
+ <DynamicI18nEditor v-model="valueI18nValues" :source="formData.value" :maxlength="10000" multiline />
73
64
  </template>
74
65
  </FormDialog>
75
66
  </div>
@@ -83,11 +74,12 @@ import ProTable from "@liujitcn/kratos-admin-core/components/ProTable";
83
74
  import FormDialog from "@liujitcn/kratos-admin-core/components/Dialog/FormDialog.vue";
84
75
  import type { ProFormField, ProFormOption } from "@liujitcn/kratos-admin-core/components/ProForm/interface";
85
76
  import DictLabel from "@liujitcn/kratos-admin-core/components/Dict/DictLabel.vue";
77
+ import RichTextPreview from "@liujitcn/kratos-admin-core/components/RichTextPreview/index.vue";
86
78
  import UploadImg from "@liujitcn/kratos-admin-core/components/Upload/Img.vue";
87
79
  import WangEditor from "@liujitcn/kratos-admin-core/components/WangEditor/index.vue";
88
80
  import { useAuthButtons } from "@liujitcn/kratos-admin-core/auth";
89
- import { defBaseConfigService } from "@liujitcn/kratos-admin-system/api/system/base_config";
90
- import { loadEnabledBaseLanguages } from "@liujitcn/kratos-admin-system/api/system/base_language";
81
+ import { defBaseConfigService } from "@liujitcn/kratos-admin-system/api/system/admin/v1/base_config";
82
+ import { loadEnabledBaseLanguages } from "@liujitcn/kratos-admin-system/api/system/admin/v1/base_language";
91
83
  import type {
92
84
  BaseConfig,
93
85
  BaseConfigForm,
@@ -96,16 +88,13 @@ import type {
96
88
  import type { BaseI18n } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_i18n";
97
89
  import { BaseConfigSite } from "@liujitcn/kratos-admin-system/rpc/base/v1/config";
98
90
  import { Status } from "@liujitcn/kratos-admin-system/rpc/common/v1/enum";
99
- import { BaseConfigType } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_config";
91
+ import { BaseConfigHiddenStatus, BaseConfigType } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_config";
100
92
  import { I18nTargetType } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_i18n";
101
93
  import { buildPageRequest, normalizeSelectedIds } from "@liujitcn/kratos-admin-core/table";
102
94
  import { t } from "@liujitcn/kratos-admin-core";
103
95
  import DynamicI18nEditor from "@liujitcn/kratos-admin-system/components/DynamicI18nEditor.vue";
104
96
  import DynamicI18nCell from "@liujitcn/kratos-admin-system/components/DynamicI18nCell.vue";
105
- import {
106
- getEditableLanguageOptions,
107
- type DynamicI18nValue
108
- } from "@liujitcn/kratos-admin-system/components/dynamicI18n";
97
+ import { getEditableLanguageOptions, type DynamicI18nValue } from "@liujitcn/kratos-admin-system/components/dynamicI18n";
109
98
 
110
99
  /** 系统配置编辑表单状态,新增时枚举字段保持为空,避免把未知值 0 显示为下拉文本。 */
111
100
  type BaseConfigFormState = Omit<BaseConfigForm, "site" | "type"> & {
@@ -142,6 +131,8 @@ const formData = reactive<BaseConfigFormState>({
142
131
  key: "",
143
132
  /** 配置value */
144
133
  value: "",
134
+ /** 隐藏状态。 */
135
+ hidden_status: BaseConfigHiddenStatus.BASE_CONFIG_HIDDEN_STATUS_VISIBLE,
145
136
  /** 状态 */
146
137
  status: Status.STATUS_ENABLE,
147
138
  /** 配置名称非主语言翻译。 */
@@ -152,9 +143,7 @@ const formData = reactive<BaseConfigFormState>({
152
143
 
153
144
  /** 将配置值翻译记录转换为编辑器值,缺少记录时保留可编辑的空行。 */
154
145
  function normalizeConfigI18ns(targetType: I18nTargetType): DynamicI18nValue[] {
155
- const records = targetType === I18nTargetType.I18N_TARGET_TYPE_BASE_CONFIG_NAME
156
- ? formData.name_i18ns
157
- : formData.value_i18ns;
146
+ const records = targetType === I18nTargetType.I18N_TARGET_TYPE_BASE_CONFIG_NAME ? formData.name_i18ns : formData.value_i18ns;
158
147
  return getEditableLanguageOptions()
159
148
  .map(item => item.value)
160
149
  .map(locale => {
@@ -435,7 +424,8 @@ function renderConfigNameCell(row: BaseConfig) {
435
424
  source: row.name,
436
425
  targetType: I18nTargetType.I18N_TARGET_TYPE_BASE_CONFIG_NAME,
437
426
  targetId: row.id,
438
- i18ns: row.i18ns
427
+ i18ns: row.i18ns,
428
+ editable: !!BUTTONS.value["base:config:update"]
439
429
  });
440
430
  }
441
431
 
@@ -470,7 +460,7 @@ function renderConfigValuePreview(row: BaseConfig) {
470
460
  previewSrcList: [row.value],
471
461
  previewTeleported: true,
472
462
  fit: "contain",
473
- style: { width: "180px", height: "120px", borderRadius: "4px" }
463
+ style: { width: "180px", height: "120px", borderRadius: "var(--admin-page-radius)" }
474
464
  })
475
465
  : h("span", { class: "config-value-preview" }, t("system.base.config.message.image_missing"));
476
466
  }
@@ -490,7 +480,7 @@ function renderConfigValuePreview(row: BaseConfig) {
490
480
 
491
481
  if (row.type === BaseConfigType.BASE_CONFIG_TYPE_RICH_TEXT) {
492
482
  return row.value
493
- ? h("div", { class: "config-rich-text-preview", innerHTML: row.value })
483
+ ? h(RichTextPreview, { class: "config-rich-text-preview", modelValue: row.value })
494
484
  : h("span", { class: "config-value-preview" }, t("system.base.config.message.rich_text_missing"));
495
485
  }
496
486
 
@@ -573,6 +563,7 @@ function resetForm() {
573
563
  formData.type = undefined;
574
564
  formData.key = "";
575
565
  formData.value = "";
566
+ formData.hidden_status = BaseConfigHiddenStatus.BASE_CONFIG_HIDDEN_STATUS_VISIBLE;
576
567
  formData.name_i18ns = [];
577
568
  formData.value_i18ns = [];
578
569
  formData.status = Status.STATUS_ENABLE;
@@ -1,35 +1,33 @@
1
1
  <template>
2
2
  <main class="dashboard-page">
3
- <header class="dashboard-header">
4
- <div>
5
- <h1>{{ t("system.dashboard.title") }}</h1>
6
- <p>{{ t("system.dashboard.updated_at", { time: updatedAt }) }}</p>
7
- </div>
8
- <el-button :loading="loading" @click="loadDashboard">
9
- <el-icon><Refresh /></el-icon>
10
- {{ t("core.table.refresh") }}
11
- </el-button>
12
- </header>
13
-
14
3
  <el-skeleton v-if="loading && !overview" :rows="3" animated />
15
4
  <template v-else>
16
5
  <section class="metric-grid" :aria-label="t('system.dashboard.overview')">
17
- <el-card v-for="metric in metrics" :key="metric.key" shadow="never" class="metric-card">
18
- <span class="metric-label">{{ metric.label }}</span>
19
- <strong class="metric-value">{{ metric.value }}</strong>
6
+ <el-card
7
+ v-for="metric in metrics"
8
+ :key="metric.key"
9
+ :class="['metric-card', `metric-card--${metric.tone}`, 'admin-page-card']"
10
+ >
11
+ <div class="metric-content">
12
+ <span class="metric-label">{{ metric.label }}</span>
13
+ <strong class="metric-value">{{ metric.value }}</strong>
14
+ </div>
15
+ <div class="metric-icon" aria-hidden="true">
16
+ <el-icon><component :is="metric.icon" /></el-icon>
17
+ </div>
20
18
  </el-card>
21
19
  </section>
22
20
 
23
21
  <section class="chart-grid">
24
- <el-card shadow="never" class="chart-card chart-card-wide">
22
+ <el-card class="chart-card chart-card-wide admin-page-card">
25
23
  <template #header>{{ t("system.dashboard.login_trend") }}</template>
26
24
  <div class="chart-wrap"><ECharts :option="loginTrendOption" height="320" /></div>
27
25
  </el-card>
28
- <el-card shadow="never" class="chart-card">
26
+ <el-card class="chart-card admin-page-card">
29
27
  <template #header>{{ t("system.dashboard.login_distribution") }}</template>
30
28
  <div class="chart-wrap"><ECharts :option="loginDistributionOption" height="320" /></div>
31
29
  </el-card>
32
- <el-card shadow="never" class="chart-card">
30
+ <el-card class="chart-card admin-page-card">
33
31
  <template #header>{{ t("system.dashboard.operation_distribution") }}</template>
34
32
  <div class="chart-wrap"><ECharts :option="operationDistributionOption" height="320" /></div>
35
33
  </el-card>
@@ -41,7 +39,7 @@
41
39
  <script setup lang="ts">
42
40
  import { computed, onMounted, ref } from "vue";
43
41
  import ECharts from "@liujitcn/kratos-admin-core/components/ECharts/index.vue";
44
- import { defBaseDashboardService } from "@liujitcn/kratos-admin-system/api/system/base_dashboard";
42
+ import { defBaseDashboardService } from "@liujitcn/kratos-admin-system/api/system/admin/v1/base_dashboard";
45
43
  import type {
46
44
  BaseDashboardDistributionItem,
47
45
  BaseDashboardOverview,
@@ -49,18 +47,17 @@ import type {
49
47
  } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_dashboard";
50
48
  import { t } from "@liujitcn/kratos-admin-core";
51
49
 
52
- const loading = ref(false);
50
+ const loading = ref(true);
53
51
  const overview = ref<BaseDashboardOverview>();
54
52
  const trend = ref<BaseDashboardTrendPoint[]>([]);
55
53
  const loginDistribution = ref<BaseDashboardDistributionItem[]>([]);
56
54
  const operationDistribution = ref<BaseDashboardDistributionItem[]>([]);
57
- const updatedAt = ref("");
58
55
 
59
56
  const metrics = computed(() => [
60
- { key: "users", label: t("system.dashboard.users"), value: overview.value?.user_count ?? 0 },
61
- { key: "roles", label: t("system.dashboard.roles"), value: overview.value?.role_count ?? 0 },
62
- { key: "logins", label: t("system.dashboard.today_logins"), value: overview.value?.today_login_count ?? 0 },
63
- { key: "operations", label: t("system.dashboard.today_operations"), value: overview.value?.today_operation_count ?? 0 }
57
+ { key: "users", label: t("system.dashboard.users"), value: overview.value?.user_count ?? 0, icon: User, tone: "primary" },
58
+ { key: "roles", label: t("system.dashboard.roles"), value: overview.value?.role_count ?? 0, icon: UserFilled, tone: "success" },
59
+ { key: "logins", label: t("system.dashboard.today_logins"), value: overview.value?.today_login_count ?? 0, icon: Timer, tone: "warning" },
60
+ { key: "operations", label: t("system.dashboard.today_operations"), value: overview.value?.today_operation_count ?? 0, icon: Operation, tone: "danger" }
64
61
  ]);
65
62
 
66
63
  const loginTrendOption = computed(() => ({
@@ -87,9 +84,8 @@ async function loadDashboard() {
87
84
  trend.value = trendResponse.points ?? [];
88
85
  loginDistribution.value = loginResponse.items ?? [];
89
86
  operationDistribution.value = operationResponse.items ?? [];
90
- updatedAt.value = new Date().toLocaleString();
91
87
  } catch {
92
- ElMessage.error(t("system.dashboard.load_failed"));
88
+ // 请求层已展示具体错误(包括强制改密跳转),页面不再重复弹出笼统提示。
93
89
  } finally {
94
90
  loading.value = false;
95
91
  }
@@ -98,8 +94,8 @@ async function loadDashboard() {
98
94
  /** 将审计技术枚举名转换为当前语言的展示文案。 */
99
95
  function distributionItemLabel(label: string) {
100
96
  const mappings = [
101
- ["BASE_OPERATION_ACTION_", "system.base.audit.operation_action."],
102
- ["BASE_AUDIT_RESULT_", "system.base.audit.result."]
97
+ ["BASE_OPERATION_ACTION_", "system.base.log.operation_action."],
98
+ ["BASE_LOG_RESULT_", "system.base.log.result."]
103
99
  ];
104
100
  const mapping = mappings.find(([prefix]) => label.startsWith(prefix));
105
101
  if (!mapping) return label;
@@ -121,78 +117,84 @@ onMounted(loadDashboard);
121
117
 
122
118
  <style scoped>
123
119
  .dashboard-page {
124
- padding: 20px;
125
- }
126
-
127
- .dashboard-header {
128
- display: flex;
129
- align-items: center;
130
- justify-content: space-between;
131
- gap: 16px;
132
- margin-bottom: 20px;
133
- }
134
-
135
- .dashboard-header h1 {
136
- margin: 0;
137
- color: var(--el-text-color-primary);
138
- font-size: 22px;
139
- font-weight: 600;
120
+ min-width: 0;
140
121
  }
141
-
142
- .dashboard-header p {
143
- margin: 6px 0 0;
144
- color: var(--el-text-color-secondary);
145
- font-size: 13px;
146
- }
147
-
148
122
  .metric-grid,
149
123
  .chart-grid {
150
124
  display: grid;
151
- gap: 16px;
125
+ gap: 10px;
152
126
  }
153
-
154
127
  .metric-grid {
155
128
  grid-template-columns: repeat(4, minmax(0, 1fr));
156
- margin-bottom: 16px;
129
+ margin-bottom: 10px;
157
130
  }
158
-
159
131
  .metric-card :deep(.el-card__body) {
132
+ display: flex;
133
+ gap: 16px;
134
+ align-items: center;
135
+ justify-content: space-between;
136
+ min-height: 92px;
137
+ }
138
+ .metric-content {
160
139
  display: flex;
161
140
  flex-direction: column;
162
141
  gap: 10px;
163
- min-height: 92px;
164
- justify-content: center;
142
+ min-width: 0;
165
143
  }
166
-
167
144
  .metric-label {
168
- color: var(--el-text-color-secondary);
169
145
  font-size: 13px;
146
+ color: var(--el-text-color-secondary);
170
147
  }
171
-
172
148
  .metric-value {
173
- color: var(--el-text-color-primary);
174
149
  font-size: 28px;
175
150
  line-height: 1;
151
+ color: var(--el-text-color-primary);
152
+ }
153
+ .metric-icon {
154
+ display: flex;
155
+ flex: 0 0 48px;
156
+ align-items: center;
157
+ justify-content: center;
158
+ width: 48px;
159
+ height: 48px;
160
+ color: var(--metric-color);
161
+ background: var(--metric-bg);
162
+ border-radius: var(--admin-page-radius);
163
+ }
164
+ .metric-icon .el-icon {
165
+ font-size: 24px;
166
+ }
167
+ .metric-card--primary {
168
+ --metric-color: var(--el-color-primary);
169
+ --metric-bg: var(--el-color-primary-light-9);
170
+ }
171
+ .metric-card--success {
172
+ --metric-color: var(--el-color-success);
173
+ --metric-bg: var(--el-color-success-light-9);
174
+ }
175
+ .metric-card--warning {
176
+ --metric-color: var(--el-color-warning);
177
+ --metric-bg: var(--el-color-warning-light-9);
178
+ }
179
+ .metric-card--danger {
180
+ --metric-color: var(--el-color-danger);
181
+ --metric-bg: var(--el-color-danger-light-9);
176
182
  }
177
-
178
183
  .chart-grid {
179
184
  grid-template-columns: repeat(2, minmax(0, 1fr));
180
185
  }
181
-
182
186
  .chart-card-wide {
183
187
  grid-column: 1 / -1;
184
188
  }
185
-
186
189
  .chart-wrap {
187
190
  height: 320px;
188
191
  }
189
192
 
190
- @media (max-width: 960px) {
193
+ @media (width <= 960px) {
191
194
  .metric-grid,
192
195
  .chart-grid {
193
196
  grid-template-columns: 1fr;
194
197
  }
195
-
196
198
  .chart-card-wide {
197
199
  grid-column: auto;
198
200
  }
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <AuditLogTable ref="page" :config="config" />
2
+ <LogTable ref="page" :config="config" />
3
3
  </template>
4
4
 
5
5
  <script setup lang="ts">
@@ -7,67 +7,79 @@ import { computed, ref } from "vue";
7
7
  import type { ColumnProps } from "@liujitcn/kratos-admin-core/components/ProTable/interface";
8
8
  import { t } from "@liujitcn/kratos-admin-core";
9
9
  import { buildPageRequest } from "@liujitcn/kratos-admin-core/table";
10
- import AuditLogTable, { type AuditLogTableConfig } from "@liujitcn/kratos-admin-system/components/AuditLogTable.vue";
11
- import { auditDateSearch, auditDetailColumn, auditEnumLabel, createAuditEnumOptions } from "@liujitcn/kratos-admin-system/components/auditLog";
12
- import { defBaseDataAccessLogService } from "@liujitcn/kratos-admin-system/api/system/base_audit_log";
13
- import { BaseAuditResult, BaseDataAccessType } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_audit_log";
14
- import type { BaseDataAccessLog, PageBaseDataAccessLogRequest } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_audit_log";
10
+ import LogTable, { type LogTableConfig } from "@liujitcn/kratos-admin-system/components/LogTable.vue";
11
+ import {
12
+ createLogEnumOptions,
13
+ formatLogCount,
14
+ formatLogDuration,
15
+ logDateSearch,
16
+ logDetailColumn,
17
+ logEnumLabel,
18
+ requestLogTrace
19
+ } from "@liujitcn/kratos-admin-system/components/log";
20
+ import { defBaseDataAccessLogService } from "@liujitcn/kratos-admin-system/api/system/admin/v1/base_data_access_log";
21
+ import { BaseLogResult } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_log";
22
+ import { BaseDataAccessType } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_data_access_log";
23
+ import type { BaseDataAccessLog, PageBaseDataAccessLogRequest } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_data_access_log";
15
24
 
16
25
  defineOptions({ name: "BaseDataAccessLog", inheritAttrs: false });
17
26
 
18
- const page = ref<InstanceType<typeof AuditLogTable>>();
19
- const resultOptions = computed(() => createAuditEnumOptions([
20
- [BaseAuditResult.BASE_AUDIT_RESULT_SUCCESS, t("system.base.audit.result.success")],
21
- [BaseAuditResult.BASE_AUDIT_RESULT_FAILURE, t("system.base.audit.result.failure")],
22
- [BaseAuditResult.BASE_AUDIT_RESULT_ERROR, t("system.base.audit.result.error")]
27
+ const page = ref<InstanceType<typeof LogTable>>();
28
+ const resultOptions = computed(() => createLogEnumOptions([
29
+ [BaseLogResult.BASE_LOG_RESULT_UNSPECIFIED, t("system.base.log.result.unspecified")],
30
+ [BaseLogResult.BASE_LOG_RESULT_SUCCESS, t("system.base.log.result.success")],
31
+ [BaseLogResult.BASE_LOG_RESULT_FAILURE, t("system.base.log.result.failure")],
32
+ [BaseLogResult.BASE_LOG_RESULT_ERROR, t("system.base.log.result.error")]
23
33
  ]));
24
- const accessTypeOptions = computed(() => createAuditEnumOptions([
25
- [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_LIST, t("system.base.audit.access_type.list")],
26
- [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_DETAIL, t("system.base.audit.access_type.detail")],
27
- [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_QUERY, t("system.base.audit.access_type.query")],
28
- [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_EXPORT, t("system.base.audit.access_type.export")],
29
- [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_DOWNLOAD, t("system.base.audit.access_type.download")],
30
- [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_IMPORT, t("system.base.audit.access_type.import")]
34
+ const accessTypeOptions = computed(() => createLogEnumOptions([
35
+ [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_UNSPECIFIED, t("system.base.log.access_type.unspecified")],
36
+ [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_LIST, t("system.base.log.access_type.list")],
37
+ [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_DETAIL, t("system.base.log.access_type.detail")],
38
+ [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_QUERY, t("system.base.log.access_type.query")],
39
+ [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_EXPORT, t("system.base.log.access_type.export")],
40
+ [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_DOWNLOAD, t("system.base.log.access_type.download")],
41
+ [BaseDataAccessType.BASE_DATA_ACCESS_TYPE_IMPORT, t("system.base.log.access_type.import")]
31
42
  ]));
32
43
  const columns = computed<ColumnProps[]>(() => [
33
- { prop: "resource_type", label: t("system.base.audit.field.resource_type"), minWidth: 150, search: { el: "input" } },
34
- { prop: "table_name", label: t("system.base.audit.field.table_name"), minWidth: 150 },
35
- { prop: "access_type", label: t("system.base.audit.field.access_type"), minWidth: 120, search: { el: "select", enum: accessTypeOptions.value }, render: scope => auditEnumLabel(accessTypeOptions.value, (scope.row as BaseDataAccessLog).access_type) },
36
- { prop: "affected_rows", label: t("system.base.audit.field.affected_rows"), minWidth: 110 },
37
- { prop: "sensitive", label: t("system.base.audit.field.sensitive"), minWidth: 110, search: { el: "switch" }, render: scope => (scope.row as BaseDataAccessLog).sensitive ? t("common.value.yes") : t("common.value.no") },
38
- { prop: "result", label: t("system.base.audit.field.result"), minWidth: 110, search: { el: "select", enum: resultOptions.value }, render: scope => auditEnumLabel(resultOptions.value, (scope.row as BaseDataAccessLog).result) },
39
- { prop: "occurred_at", label: t("system.base.audit.field.occurred_at"), minWidth: 190, search: auditDateSearch(t) },
40
- auditDetailColumn(t("common.action.view"), id => page.value?.handleOpenDialog(id))
44
+ { prop: "resource_type", label: t("system.base.log.field.resource_type"), minWidth: 150, search: { el: "input" } },
45
+ { prop: "table_name", label: t("system.base.log.field.table_name"), minWidth: 150 },
46
+ { prop: "access_type", label: t("system.base.log.field.access_type"), minWidth: 120, search: { el: "select", enum: accessTypeOptions.value }, render: scope => logEnumLabel(accessTypeOptions.value, (scope.row as BaseDataAccessLog).access_type) },
47
+ { prop: "affected_rows", label: t("system.base.log.field.affected_rows"), minWidth: 110 },
48
+ { prop: "sensitive", label: t("system.base.log.field.sensitive"), minWidth: 110, search: { el: "switch" }, render: scope => (scope.row as BaseDataAccessLog).sensitive ? t("common.value.yes") : t("common.value.no") },
49
+ { prop: "result", label: t("system.base.log.field.result"), minWidth: 110, search: { el: "select", enum: resultOptions.value }, render: scope => logEnumLabel(resultOptions.value, (scope.row as BaseDataAccessLog).result) },
50
+ { prop: "occurred_at", label: t("system.base.log.field.occurred_at"), minWidth: 190, search: logDateSearch(t) },
51
+ logDetailColumn(t("common.action.view"), id => page.value?.handleOpenDialog(id))
41
52
  ]);
42
53
 
43
- const config = computed<AuditLogTableConfig>(() => ({
54
+ const config = computed<LogTableConfig>(() => ({
44
55
  columns: columns.value,
45
- detailTitle: t("system.base.audit.data_access.title.detail"),
56
+ detailTitle: t("system.base.log.data_access.title.detail"),
46
57
  closeText: t("common.action.close"),
58
+ trace: requestLogTrace,
47
59
  detailFields: [
48
- { key: "id", label: t("system.base.audit.field.id") },
49
- { key: "tenant_id", label: t("system.base.audit.field.tenant_id") },
50
- { key: "tenant_code", label: t("system.base.audit.field.tenant_code") },
51
- { key: "user_id", label: t("system.base.audit.field.user_id") },
52
- { key: "user_name", label: t("system.base.audit.field.user_name") },
53
- { key: "resource_type", label: t("system.base.audit.field.resource_type") },
54
- { key: "resource_id", label: t("system.base.audit.field.resource_id") },
55
- { key: "access_type", label: t("system.base.audit.field.access_type") },
56
- { key: "data_source", label: t("system.base.audit.field.data_source") },
57
- { key: "table_name", label: t("system.base.audit.field.table_name") },
58
- { key: "field_scope", label: t("system.base.audit.field.field_scope"), span: 2, code: true },
59
- { key: "data_scope", label: t("system.base.audit.field.data_scope") },
60
- { key: "affected_rows", label: t("system.base.audit.field.affected_rows") },
61
- { key: "sensitive", label: t("system.base.audit.field.sensitive") },
62
- { key: "sql_digest", label: t("system.base.audit.field.sql_digest") },
63
- { key: "sql_text", label: t("system.base.audit.field.sql_text"), span: 2, code: true },
64
- { key: "result", label: t("system.base.audit.field.result") },
65
- { key: "reason_code", label: t("system.base.audit.field.reason_code") },
66
- { key: "latency_ms", label: t("system.base.audit.field.latency_ms") },
67
- { key: "request_id", label: t("system.base.audit.field.request_id") },
68
- { key: "trace_id", label: t("system.base.audit.field.trace_id") },
69
- { key: "occurred_at", label: t("system.base.audit.field.occurred_at") },
70
- { key: "created_at", label: t("system.base.audit.field.created_at") }
60
+ { key: "id", label: t("system.base.log.field.id") },
61
+ { key: "tenant_id", label: t("system.base.log.field.tenant_id") },
62
+ { key: "tenant_code", label: t("system.base.log.field.tenant_code") },
63
+ { key: "user_id", label: t("system.base.log.field.user_id") },
64
+ { key: "user_name", label: t("system.base.log.field.user_name") },
65
+ { key: "resource_type", label: t("system.base.log.field.resource_type") },
66
+ { key: "resource_id", label: t("system.base.log.field.resource_id") },
67
+ { key: "access_type", label: t("system.base.log.field.access_type"), enum: accessTypeOptions.value },
68
+ { key: "data_source", label: t("system.base.log.field.data_source") },
69
+ { key: "table_name", label: t("system.base.log.field.table_name") },
70
+ { key: "field_scope", label: t("system.base.log.field.field_scope"), span: 2, code: true },
71
+ { key: "data_scope", label: t("system.base.log.field.data_scope") },
72
+ { key: "affected_rows", label: t("system.base.log.field.affected_rows"), format: value => formatLogCount(value, t) },
73
+ { key: "sensitive", label: t("system.base.log.field.sensitive"), format: value => (value ? t("common.value.yes") : t("common.value.no")) },
74
+ { key: "sql_digest", label: t("system.base.log.field.sql_digest") },
75
+ { key: "sql_text", label: t("system.base.log.field.sql_text"), span: 2, code: true },
76
+ { key: "result", label: t("system.base.log.field.result"), enum: resultOptions.value },
77
+ { key: "latency_ms", label: t("system.base.log.field.latency_ms"), format: value => formatLogDuration(value, t) },
78
+ { key: "reason_code", label: t("system.base.log.field.reason_code") },
79
+ { key: "request_id", label: t("system.base.log.field.request_id") },
80
+ { key: "trace_id", label: t("system.base.log.field.trace_id") },
81
+ { key: "occurred_at", label: t("system.base.log.field.occurred_at") },
82
+ { key: "created_at", label: t("system.base.log.field.created_at") }
71
83
  ],
72
84
  request: requestTable,
73
85
  get: getDetail
@@ -78,7 +90,7 @@ async function requestTable(params: Record<string, unknown>) {
78
90
  return { list: response.base_data_access_logs as unknown as Record<string, unknown>[], total: response.total };
79
91
  }
80
92
 
81
- async function getDetail(id: number) {
93
+ async function getDetail(id: string) {
82
94
  return (await defBaseDataAccessLogService.GetBaseDataAccessLog({ id })) as unknown as Record<string, unknown>;
83
95
  }
84
96
  </script>
@@ -16,7 +16,7 @@
16
16
  <FormDialog
17
17
  v-model="dialog.visible"
18
18
  ref="formDialogRef"
19
- :title="t(dialog.titleKey, { resource: t('system.base.dept.resource') })"
19
+ :title="t(dialog.titleKey, { resource: t('common.field.department') })"
20
20
  width="600px"
21
21
  :model="formData"
22
22
  :fields="formFields"
@@ -36,8 +36,8 @@ import ProTable from "@liujitcn/kratos-admin-core/components/ProTable";
36
36
  import FormDialog from "@liujitcn/kratos-admin-core/components/Dialog/FormDialog.vue";
37
37
  import type { ProFormField, ProFormOption } from "@liujitcn/kratos-admin-core/components/ProForm/interface";
38
38
  import { useAuthButtons } from "@liujitcn/kratos-admin-core/auth";
39
- import { defBaseDeptService } from "@liujitcn/kratos-admin-system/api/system/base_dept";
40
- import { defBaseTenantService } from "@liujitcn/kratos-admin-system/api/system/base_tenant";
39
+ import { defBaseDeptService } from "@liujitcn/kratos-admin-system/api/system/admin/v1/base_dept";
40
+ import { defBaseTenantService } from "@liujitcn/kratos-admin-system/api/system/admin/v1/base_tenant";
41
41
  import { useUserStore } from "@liujitcn/kratos-admin-core/stores/runtime";
42
42
  import type { BaseDept, BaseDeptForm } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_dept";
43
43
  import type { SelectOptionResponse_Option, TreeOptionResponse_Option } from "@liujitcn/kratos-admin-system/rpc/common/v1/common";
@@ -139,7 +139,7 @@ const formFields = computed<ProFormField[]>(() => [
139
139
  label: t("common.field.tenant"),
140
140
  component: "select",
141
141
  props: {
142
- placeholder: t("common.validation.required_select", { field: t("common.field.tenant") }),
142
+ placeholder: t("common.placeholder.select"),
143
143
  filterable: true,
144
144
  disabled: Boolean(formData.id),
145
145
  onChange: handleFormTenantChange
@@ -427,7 +427,7 @@ function handleSubmit() {
427
427
  request.then(() => {
428
428
  ElMessage.success(
429
429
  t(submitData.id ? "common.message.update_success" : "common.message.create_success", {
430
- resource: t("system.base.dept.resource")
430
+ resource: t("common.field.department")
431
431
  })
432
432
  );
433
433
  handleCloseDialog();
@@ -447,7 +447,7 @@ async function handleBeforeSetStatus(row: BaseDept) {
447
447
  await ElMessageBox.confirm(
448
448
  t("common.dialog.status_change", {
449
449
  action: text,
450
- resource: t("system.base.dept.resource"),
450
+ resource: t("common.field.department"),
451
451
  field: t("system.base.dept.field.name"),
452
452
  value: deptName
453
453
  }),
@@ -486,9 +486,9 @@ function handleDelete(selected?: number | string | Array<number | string> | Base
486
486
 
487
487
  const confirmMessage = deptList.length
488
488
  ? deptList.length === 1
489
- ? `${t("common.dialog.delete_single", { resource: t("system.base.dept.resource") })}\n${t("common.dialog.resource_field", { field: t("system.base.dept.field.name"), value: deptList[0].name || `ID:${deptList[0].id}` })}`
490
- : t("common.dialog.delete_batch", { count: deptList.length, unit: "", resource: t("system.base.dept.resource") })
491
- : t("common.dialog.delete_selected", { resource: t("system.base.dept.resource") });
489
+ ? `${t("common.dialog.delete_single", { resource: t("common.field.department") })}\n${t("common.dialog.resource_field", { field: t("system.base.dept.field.name"), value: deptList[0].name || `ID:${deptList[0].id}` })}`
490
+ : t("common.dialog.delete_batch", { count: deptList.length, unit: "", resource: t("common.field.department") })
491
+ : t("common.dialog.delete_selected", { resource: t("common.field.department") });
492
492
 
493
493
  ElMessageBox.confirm(confirmMessage, t("common.title.warning"), {
494
494
  confirmButtonText: t("common.action.confirm"),
@@ -497,12 +497,12 @@ function handleDelete(selected?: number | string | Array<number | string> | Base
497
497
  }).then(
498
498
  () => {
499
499
  defBaseDeptService.DeleteBaseDept({ id: deptIds }).then(() => {
500
- ElMessage.success(t("common.message.delete_success", { resource: t("system.base.dept.resource") }));
500
+ ElMessage.success(t("common.message.delete_success", { resource: t("common.field.department") }));
501
501
  refreshTable();
502
502
  });
503
503
  },
504
504
  () => {
505
- ElMessage.info(t("common.dialog.cancel_delete", { resource: t("system.base.dept.resource") }));
505
+ ElMessage.info(t("common.dialog.cancel_delete", { resource: t("common.field.department") }));
506
506
  }
507
507
  );
508
508
  }