@liujitcn/kratos-admin-system 0.0.20 → 0.0.21

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 (86) hide show
  1. package/README.md +51 -50
  2. package/dist/package/declarations/src/api/system/base_language.d.ts +51 -0
  3. package/dist/package/declarations/src/api/system/base_translation.d.ts +7 -0
  4. package/dist/package/declarations/src/api/system/code_gen_i18n.d.ts +8 -0
  5. package/dist/package/declarations/src/components/DynamicTranslationCell.vue.d.ts +39 -0
  6. package/dist/package/declarations/src/components/DynamicTranslationEditor.vue.d.ts +23 -0
  7. package/dist/package/declarations/src/components/dynamicTranslation.d.ts +44 -0
  8. package/dist/package/declarations/src/rpc/system/admin/v1/base_config.d.ts +5 -0
  9. package/dist/package/declarations/src/rpc/system/admin/v1/base_dict.d.ts +79 -0
  10. package/dist/package/declarations/src/rpc/system/admin/v1/base_language.d.ts +114 -0
  11. package/dist/package/declarations/src/rpc/system/admin/v1/base_menu.d.ts +40 -0
  12. package/dist/package/declarations/src/rpc/system/admin/v1/base_translation.d.ts +102 -0
  13. package/dist/package/declarations/src/rpc/system/admin/v1/code_gen.d.ts +2 -0
  14. package/dist/package/declarations/src/rpc/system/admin/v1/code_gen_column.d.ts +7 -0
  15. package/dist/package/declarations/src/rpc/system/admin/v1/code_gen_table.d.ts +13 -0
  16. package/dist/package/declarations/src/views/tool/code-gen/components/CodeGenLocaleEditor.vue.d.ts +23 -0
  17. package/dist/package/declarations/src/views/tool/code-gen/config.d.ts +7 -7
  18. package/dist/package/declarations/src/views/tool/language/index.vue.d.ts +3 -0
  19. package/dist/package/src/api/base/ai_message.ts +7 -12
  20. package/dist/package/src/api/base/sse.ts +3 -1
  21. package/dist/package/src/api/system/base_language.ts +137 -0
  22. package/dist/package/src/api/system/base_translation.ts +22 -0
  23. package/dist/package/src/api/system/code_gen_column.ts +17 -3
  24. package/dist/package/src/api/system/code_gen_i18n.ts +18 -0
  25. package/dist/package/src/api/system/code_gen_table.ts +12 -4
  26. package/dist/package/src/components/DynamicTranslationCell.vue +176 -0
  27. package/dist/package/src/components/DynamicTranslationEditor.vue +166 -0
  28. package/dist/package/src/components/dynamicTranslation.ts +86 -0
  29. package/dist/package/src/locales/README.md +28 -0
  30. package/dist/package/src/locales/en-US.json +929 -0
  31. package/dist/package/src/locales/es-ES.json +928 -0
  32. package/dist/package/src/locales/fr-FR.json +928 -0
  33. package/dist/package/src/locales/ja-JP.json +929 -0
  34. package/dist/package/src/locales/ko-KR.json +928 -0
  35. package/dist/package/src/locales/zh-CN.json +929 -0
  36. package/dist/package/src/locales/zh-TW.json +928 -0
  37. package/dist/package/src/module.ts +19 -1
  38. package/dist/package/src/rpc/system/admin/v1/base_config.ts +5 -0
  39. package/dist/package/src/rpc/system/admin/v1/base_dict.ts +81 -0
  40. package/dist/package/src/rpc/system/admin/v1/base_language.ts +135 -0
  41. package/dist/package/src/rpc/system/admin/v1/base_menu.ts +41 -0
  42. package/dist/package/src/rpc/system/admin/v1/base_translation.ts +117 -0
  43. package/dist/package/src/rpc/system/admin/v1/code_gen.ts +5 -1
  44. package/dist/package/src/rpc/system/admin/v1/code_gen_column.ts +8 -0
  45. package/dist/package/src/rpc/system/admin/v1/code_gen_table.ts +15 -0
  46. package/dist/package/src/views/ai/chat/components/AiMarkdown.vue +1 -6
  47. package/dist/package/src/views/ai/chat/components/ChatPanel.vue +70 -53
  48. package/dist/package/src/views/ai/chat/components/SessionPanel.vue +20 -9
  49. package/dist/package/src/views/ai/chat/components/XSender.vue +36 -23
  50. package/dist/package/src/views/ai/chat/index.vue +55 -39
  51. package/dist/package/src/views/ai/chat/message.ts +18 -17
  52. package/dist/package/src/views/base/api/index.vue +121 -83
  53. package/dist/package/src/views/base/area/index.vue +81 -31
  54. package/dist/package/src/views/base/config/index.vue +272 -78
  55. package/dist/package/src/views/base/dept/index.vue +110 -61
  56. package/dist/package/src/views/base/dict/index.vue +137 -58
  57. package/dist/package/src/views/base/dict/item.vue +147 -61
  58. package/dist/package/src/views/base/job/index.vue +134 -81
  59. package/dist/package/src/views/base/job/log.vue +21 -22
  60. package/dist/package/src/views/base/log/index.vue +68 -46
  61. package/dist/package/src/views/base/menu/index.vue +257 -156
  62. package/dist/package/src/views/base/migration/index.vue +49 -29
  63. package/dist/package/src/views/base/post/index.vue +128 -59
  64. package/dist/package/src/views/base/role/index.vue +145 -78
  65. package/dist/package/src/views/base/tenant/index.vue +132 -63
  66. package/dist/package/src/views/base/user/components/dept-tree.vue +2 -1
  67. package/dist/package/src/views/base/user/index.vue +192 -112
  68. package/dist/package/src/views/profile/components/base.vue +44 -27
  69. package/dist/package/src/views/profile/components/password.vue +43 -27
  70. package/dist/package/src/views/profile/components/security.vue +89 -53
  71. package/dist/package/src/views/profile/index.vue +10 -9
  72. package/dist/package/src/views/tool/api-doc/index.vue +6 -2
  73. package/dist/package/src/views/tool/code-gen/code-preview/index.vue +30 -14
  74. package/dist/package/src/views/tool/code-gen/columns/index.vue +382 -273
  75. package/dist/package/src/views/tool/code-gen/columns/option-copy.ts +1 -6
  76. package/dist/package/src/views/tool/code-gen/components/CodeGenLocaleEditor.vue +118 -0
  77. package/dist/package/src/views/tool/code-gen/components/CodeGenProgressDialog.vue +65 -36
  78. package/dist/package/src/views/tool/code-gen/components/CodePreviewPane.vue +8 -5
  79. package/dist/package/src/views/tool/code-gen/config.ts +114 -77
  80. package/dist/package/src/views/tool/code-gen/preview/data.ts +19 -17
  81. package/dist/package/src/views/tool/code-gen/preview/index.vue +96 -58
  82. package/dist/package/src/views/tool/code-gen/proto/index.vue +110 -62
  83. package/dist/package/src/views/tool/code-gen/table/index.vue +197 -117
  84. package/dist/package/src/views/tool/language/index.vue +256 -0
  85. package/dist/package/src/views/tool/project-doc/index.vue +17 -15
  86. package/package.json +6 -2
@@ -2,69 +2,92 @@
2
2
  <div class="table-box">
3
3
  <ProTable ref="proTable" row-key="id" :columns="columns" :request-api="requestBaseLogTable" />
4
4
 
5
- <ProDialog v-model="dialog.visible" :title="dialog.title" width="1500px" @close="handleCloseDialog">
5
+ <ProDialog v-model="dialog.visible" :title="t('system.log.title.detail')" width="1500px" @close="handleCloseDialog">
6
6
  <div class="detail-container">
7
- <el-descriptions title="基础信息" border :column="2">
8
- <el-descriptions-item label="操作结果">
7
+ <el-descriptions :title="t('system.log.section.basic')" border :column="2">
8
+ <el-descriptions-item :label="t('system.log.field.result')">
9
9
  <el-tag :type="detail.is_success ? 'success' : 'danger'" effect="light">
10
- {{ detail.is_success ? "成功" : "失败" }}
10
+ {{ t(detail.is_success ? "system.log.status.success" : "system.log.status.failed") }}
11
11
  </el-tag>
12
12
  </el-descriptions-item>
13
- <el-descriptions-item label="状态码">
13
+ <el-descriptions-item :label="t('system.log.field.statusCode')">
14
14
  <el-tag :type="statusCodeColor" effect="light">{{ detail.status_code || "--" }}</el-tag>
15
15
  </el-descriptions-item>
16
- <el-descriptions-item label="耗时">{{ detail.cost_time || "--" }}</el-descriptions-item>
17
- <el-descriptions-item label="操作时间">{{ detail.request_time || "--" }}</el-descriptions-item>
16
+ <el-descriptions-item :label="t('system.log.field.costTime')">{{ detail.cost_time || "--" }}</el-descriptions-item>
17
+ <el-descriptions-item :label="t('system.log.field.requestTime')">{{
18
+ detail.request_time || "--"
19
+ }}</el-descriptions-item>
18
20
  </el-descriptions>
19
21
 
20
- <el-descriptions title="请求信息" border :column="2" direction="vertical" class="mt-4 compact-descriptions">
21
- <el-descriptions-item label="请求ID">{{ detail.request_id || "--" }}</el-descriptions-item>
22
- <el-descriptions-item label="操作方法">
22
+ <el-descriptions
23
+ :title="t('system.log.section.request')"
24
+ border
25
+ :column="2"
26
+ direction="vertical"
27
+ class="mt-4 compact-descriptions"
28
+ >
29
+ <el-descriptions-item :label="t('system.log.field.requestId')">{{ detail.request_id || "--" }}</el-descriptions-item>
30
+ <el-descriptions-item :label="t('system.log.field.operation')">
23
31
  <el-tag effect="plain">{{ detail.operation || "--" }}</el-tag>
24
32
  </el-descriptions-item>
25
- <el-descriptions-item label="请求方法">
33
+ <el-descriptions-item :label="t('system.log.field.method')">
26
34
  <el-tag effect="plain">{{ detail.method || "--" }}</el-tag>
27
35
  </el-descriptions-item>
28
- <el-descriptions-item label="请求路径">{{ detail.path || "--" }}</el-descriptions-item>
29
- <el-descriptions-item v-if="detail.request_uri" label="请求 URI" :span="2">{{
36
+ <el-descriptions-item :label="t('system.log.field.path')">{{ detail.path || "--" }}</el-descriptions-item>
37
+ <el-descriptions-item v-if="detail.request_uri" :label="t('system.log.field.requestUri')" :span="2">{{
30
38
  detail.request_uri
31
39
  }}</el-descriptions-item>
32
- <el-descriptions-item v-if="detail.referer" label="来源页" :span="2">{{ detail.referer }}</el-descriptions-item>
33
- <el-descriptions-item label="请求头" :span="2">
40
+ <el-descriptions-item v-if="detail.referer" :label="t('system.log.field.referer')" :span="2">{{
41
+ detail.referer
42
+ }}</el-descriptions-item>
43
+ <el-descriptions-item :label="t('system.log.field.requestHeader')" :span="2">
34
44
  <pre class="code-block">{{ formatPayload(detail.request_header) }}</pre>
35
45
  </el-descriptions-item>
36
- <el-descriptions-item label="请求体" :span="2">
46
+ <el-descriptions-item :label="t('system.log.field.requestBody')" :span="2">
37
47
  <pre class="code-block">{{ formatPayload(detail.request_body) }}</pre>
38
48
  </el-descriptions-item>
39
- <el-descriptions-item label="请求结果" :span="2">
49
+ <el-descriptions-item :label="t('system.log.field.requestResult')" :span="2">
40
50
  <pre class="code-block">{{ formatPayload(detail.response) }}</pre>
41
51
  </el-descriptions-item>
42
52
  </el-descriptions>
43
53
 
44
- <el-descriptions title="用户信息" border :column="2" class="mt-4">
45
- <el-descriptions-item label="用户ID">{{ detail.user_id || "--" }}</el-descriptions-item>
46
- <el-descriptions-item label="用户名">{{ detail.user_name || "--" }}</el-descriptions-item>
47
- <el-descriptions-item label="客户端IP">{{ detail.client_ip || "--" }}</el-descriptions-item>
48
- <el-descriptions-item label="地理位置">{{ detail.location || "--" }}</el-descriptions-item>
54
+ <el-descriptions :title="t('system.log.section.user')" border :column="2" class="mt-4">
55
+ <el-descriptions-item :label="t('system.log.field.userId')">{{ detail.user_id || "--" }}</el-descriptions-item>
56
+ <el-descriptions-item :label="t('system.log.field.userName')">{{ detail.user_name || "--" }}</el-descriptions-item>
57
+ <el-descriptions-item :label="t('system.log.field.clientIp')">{{ detail.client_ip || "--" }}</el-descriptions-item>
58
+ <el-descriptions-item :label="t('system.log.field.location')">{{ detail.location || "--" }}</el-descriptions-item>
49
59
  </el-descriptions>
50
60
 
51
- <el-descriptions title="客户端信息" border :column="2" direction="vertical" class="mt-4 compact-descriptions">
52
- <el-descriptions-item label="浏览器">
61
+ <el-descriptions
62
+ :title="t('system.log.section.client')"
63
+ border
64
+ :column="2"
65
+ direction="vertical"
66
+ class="mt-4 compact-descriptions"
67
+ >
68
+ <el-descriptions-item :label="t('system.log.field.browser')">
53
69
  {{ [detail.browser_name, detail.browser_version].filter(Boolean).join(" ") || "--" }}
54
70
  </el-descriptions-item>
55
- <el-descriptions-item label="操作系统">
71
+ <el-descriptions-item :label="t('system.log.field.os')">
56
72
  {{ [detail.os_name, detail.os_version].filter(Boolean).join(" ") || "--" }}
57
73
  </el-descriptions-item>
58
- <el-descriptions-item label="客户端名称">{{ detail.client_name || "--" }}</el-descriptions-item>
59
- <el-descriptions-item label="客户端ID">{{ detail.client_id || "--" }}</el-descriptions-item>
74
+ <el-descriptions-item :label="t('system.log.field.clientName')">{{ detail.client_name || "--" }}</el-descriptions-item>
75
+ <el-descriptions-item :label="t('system.log.field.clientId')">{{ detail.client_id || "--" }}</el-descriptions-item>
60
76
  <el-descriptions-item label="User Agent" :span="2">{{ detail.user_agent || "--" }}</el-descriptions-item>
61
77
  </el-descriptions>
62
78
 
63
- <el-alert v-if="!detail.is_success" title="失败原因" type="error" :description="detail.reason" class="mt-4" show-icon />
79
+ <el-alert
80
+ v-if="!detail.is_success"
81
+ :title="t('system.log.field.reason')"
82
+ type="error"
83
+ :description="detail.reason"
84
+ class="mt-4"
85
+ show-icon
86
+ />
64
87
  </div>
65
88
 
66
89
  <template #footer>
67
- <el-button @click="handleCloseDialog">关闭</el-button>
90
+ <el-button @click="handleCloseDialog">{{ t("common.action.close") }}</el-button>
68
91
  </template>
69
92
  </ProDialog>
70
93
  </div>
@@ -80,6 +103,7 @@ import { defBaseLogService } from "@liujitcn/kratos-admin-system/api/system/base
80
103
  import { buildPageRequest } from "@liujitcn/kratos-admin-core/table";
81
104
  import { formatJson } from "@liujitcn/kratos-admin-core/format";
82
105
  import type { BaseLog, PageBaseLogRequest } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_log";
106
+ import { t } from "@liujitcn/kratos-admin-core";
83
107
 
84
108
  defineOptions({
85
109
  name: "BaseLog",
@@ -89,7 +113,6 @@ defineOptions({
89
113
  const proTable = ref<ProTableInstance>();
90
114
 
91
115
  const dialog = reactive({
92
- title: "",
93
116
  visible: false
94
117
  });
95
118
 
@@ -194,22 +217,22 @@ function formatPayload(value: string): string {
194
217
  }
195
218
 
196
219
  /** 日志表格列配置。 */
197
- const columns: ColumnProps[] = [
220
+ const columns = computed<ColumnProps[]>(() => [
198
221
  {
199
222
  prop: "operation",
200
- label: "操作方法",
223
+ label: t("system.log.field.operation"),
201
224
  minWidth: 240,
202
225
  search: { el: "input" }
203
226
  },
204
227
  {
205
228
  prop: "status_code",
206
- label: "状态码",
229
+ label: t("system.log.field.statusCode"),
207
230
  minWidth: 100,
208
231
  search: { el: "input-number", props: { min: 0, controlsPosition: "right" } }
209
232
  },
210
233
  {
211
234
  prop: "request_time",
212
- label: "操作时间",
235
+ label: t("system.log.field.requestTime"),
213
236
  minWidth: 140,
214
237
  search: {
215
238
  el: "date-picker",
@@ -218,27 +241,27 @@ const columns: ColumnProps[] = [
218
241
  editable: false,
219
242
  class: "!w-[240px]",
220
243
  rangeSeparator: "~",
221
- startPlaceholder: "开始时间",
222
- endPlaceholder: "截止时间",
244
+ startPlaceholder: t("system.common.placeholder.startDate"),
245
+ endPlaceholder: t("system.common.placeholder.endDate"),
223
246
  valueFormat: "YYYY-MM-DD"
224
247
  }
225
248
  }
226
249
  },
227
- { prop: "user_name", label: "操作人", minWidth: 80 },
228
- { prop: "client_ip", label: "IP 地址", minWidth: 80 },
229
- { prop: "location", label: "地区", minWidth: 80 },
230
- { prop: "browser_name", label: "浏览器", minWidth: 80 },
231
- { prop: "os_name", label: "终端系统", minWidth: 80 },
232
- { prop: "cost_time", label: "执行时间(ms)", minWidth: 100, align: "right" },
250
+ { prop: "user_name", label: t("system.log.field.userName"), minWidth: 80 },
251
+ { prop: "client_ip", label: t("system.log.field.clientIp"), minWidth: 80 },
252
+ { prop: "location", label: t("system.log.field.location"), minWidth: 80 },
253
+ { prop: "browser_name", label: t("system.log.field.browser"), minWidth: 80 },
254
+ { prop: "os_name", label: t("system.log.field.os"), minWidth: 80 },
255
+ { prop: "cost_time", label: t("system.log.field.costTime"), minWidth: 100, align: "right" },
233
256
  {
234
257
  prop: "detailAction",
235
- label: "操作",
258
+ label: t("system.common.field.action"),
236
259
  width: 100,
237
260
  fixed: "right",
238
261
  cellType: "actions",
239
262
  actions: [
240
263
  {
241
- label: "详情",
264
+ label: t("common.action.view"),
242
265
  type: "primary",
243
266
  link: true,
244
267
  icon: InfoFilled,
@@ -246,7 +269,7 @@ const columns: ColumnProps[] = [
246
269
  }
247
270
  ]
248
271
  }
249
- ];
272
+ ]);
250
273
 
251
274
  /**
252
275
  * 请求系统日志列表,并通过 buildPageRequest 统一处理分页参数。
@@ -261,7 +284,6 @@ async function requestBaseLogTable(params: PageBaseLogRequest) {
261
284
  */
262
285
  function handleOpenDialog(logId?: number) {
263
286
  resetDetail();
264
- dialog.title = "系统日志详情";
265
287
  dialog.visible = true;
266
288
  if (!logId) return;
267
289