@liujitcn/kratos-admin-system 0.0.38 → 0.0.40
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.
- package/README.md +22 -0
- package/dist/package/declarations/src/api/system/admin/v1/base_config.d.ts +1 -5
- package/dist/package/declarations/src/api/system/admin/v1/base_login_log.d.ts +3 -1
- package/dist/package/declarations/src/api/system/admin/v1/base_session.d.ts +7 -1
- package/dist/package/declarations/src/components/DynamicI18nCell.vue.d.ts +2 -8
- package/dist/package/declarations/src/components/DynamicI18nEditor.vue.d.ts +20 -3
- package/dist/package/declarations/src/components/dynamicI18n.d.ts +2 -2
- package/dist/package/declarations/src/locales/generated.d.ts +5770 -5686
- package/dist/package/declarations/src/rpc/base/v1/login.d.ts +2 -0
- package/dist/package/declarations/src/rpc/base/v1/notification.d.ts +1 -1
- package/dist/package/declarations/src/rpc/base/v1/oauth.d.ts +4 -0
- package/dist/package/declarations/src/rpc/base/v1/oauth_client.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_api_log.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_config.d.ts +4 -40
- package/dist/package/declarations/src/rpc/system/admin/v1/base_data_access_log.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_i18n.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_log.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_login_log.d.ts +10 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_login_policy.d.ts +8 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_message.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_message_category.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_migration.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_operation_log.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_permission_log.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_policy_evaluation_log.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_redact_output_policy.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_redact_storage_policy.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_session.d.ts +41 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_table_archive.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_table_archive_record.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_table_archive_restore.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_table_backup.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_table_backup_record.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_table_backup_restore.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_table_source.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/cache.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/oauth_client.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/ops_monitoring.d.ts +1 -1
- package/dist/package/declarations/src/utils/code-gen-progress.d.ts +3 -0
- package/dist/package/declarations/src/views/profile/components/login-log.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/tool/code-gen/components/CodeGenGenerateConfirm.vue.d.ts +11 -0
- package/dist/package/declarations/src/views/tool/code-gen/components/CodeGenLocaleEditor.vue.d.ts +5 -9
- package/dist/package/declarations/src/views/tool/code-gen/config.d.ts +3 -0
- package/dist/package/src/api/base/v1/sse.ts +11 -2
- package/dist/package/src/api/system/admin/v1/base_config.ts +0 -20
- package/dist/package/src/api/system/admin/v1/base_login_log.ts +10 -0
- package/dist/package/src/api/system/admin/v1/base_session.ts +32 -1
- package/dist/package/src/components/DynamicI18nCell.vue +55 -220
- package/dist/package/src/components/DynamicI18nEditor.vue +150 -146
- package/dist/package/src/components/dynamicI18n.ts +10 -6
- package/dist/package/src/config/index.ts +1 -3
- package/dist/package/src/locales/en-US.json +1444 -1435
- package/dist/package/src/locales/ja-JP.json +1448 -1439
- package/dist/package/src/locales/zh-CN.json +1444 -1435
- package/dist/package/src/locales/zh-TW.json +1445 -1436
- package/dist/package/src/rpc/base/v1/ai_message.ts +1 -1
- package/dist/package/src/rpc/base/v1/ai_session.ts +1 -1
- package/dist/package/src/rpc/base/v1/ai_tool.ts +1 -1
- package/dist/package/src/rpc/base/v1/config.ts +1 -1
- package/dist/package/src/rpc/base/v1/login.ts +3 -1
- package/dist/package/src/rpc/base/v1/notification.ts +2 -2
- package/dist/package/src/rpc/base/v1/oauth.ts +5 -1
- package/dist/package/src/rpc/base/v1/oauth_client.ts +2 -2
- package/dist/package/src/rpc/base/v1/sse.ts +1 -1
- package/dist/package/src/rpc/common/v1/analytics.ts +1 -1
- package/dist/package/src/rpc/common/v1/common.ts +1 -1
- package/dist/package/src/rpc/common/v1/enum.ts +1 -1
- package/dist/package/src/rpc/common/v1/types.ts +1 -1
- package/dist/package/src/rpc/google/protobuf/empty.ts +1 -1
- package/dist/package/src/rpc/google/protobuf/timestamp.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/auth.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_api.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_api_log.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_area.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_config.ts +4 -44
- package/dist/package/src/rpc/system/admin/v1/base_dashboard.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_data_access_log.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_dept.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_dict.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_dict_item.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_file.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_i18n.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_job.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_job_log.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_language.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_log.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_login_log.ts +12 -2
- package/dist/package/src/rpc/system/admin/v1/base_login_policy.ts +11 -1
- package/dist/package/src/rpc/system/admin/v1/base_menu.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_message.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_message_category.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_migration.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_operation_log.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_permission_log.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_policy_evaluation_log.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_post.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_redact_common.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_redact_output_policy.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_redact_rule.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_redact_storage_policy.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_role.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_session.ts +47 -1
- package/dist/package/src/rpc/system/admin/v1/base_table_archive.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_table_archive_record.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_table_archive_restore.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_table_backup.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_table_backup_record.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_table_backup_restore.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_table_source.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_tenant.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_third_account.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_user.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/cache.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/code_gen.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/code_gen_column.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/code_gen_proto.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/code_gen_table.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/common.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/oauth_client.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/ops_monitoring.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/runtime_log.ts +1 -1
- package/dist/package/src/rpc/system/common/v1/common.ts +1 -1
- package/dist/package/src/rpc/system/config/v1/system_config.ts +1 -1
- package/dist/package/src/utils/code-gen-progress.ts +15 -0
- package/dist/package/src/views/base/config/index.vue +183 -48
- package/dist/package/src/views/base/dict/index.vue +6 -9
- package/dist/package/src/views/base/dict/item.vue +6 -15
- package/dist/package/src/views/base/job/index.vue +16 -17
- package/dist/package/src/views/base/login-policy/index.vue +28 -0
- package/dist/package/src/views/base/menu/index.vue +78 -15
- package/dist/package/src/views/base/online-session/index.vue +116 -0
- package/dist/package/src/views/base/user/index.vue +20 -8
- package/dist/package/src/views/profile/components/login-log.vue +123 -0
- package/dist/package/src/views/profile/components/session.vue +46 -61
- package/dist/package/src/views/profile/index.vue +13 -9
- package/dist/package/src/views/tool/code-gen/code-preview/index.vue +5 -15
- package/dist/package/src/views/tool/code-gen/columns/index.vue +17 -25
- package/dist/package/src/views/tool/code-gen/components/CodeGenGenerateConfirm.vue +115 -0
- package/dist/package/src/views/tool/code-gen/components/CodeGenLocaleEditor.vue +27 -186
- package/dist/package/src/views/tool/code-gen/components/CodeGenProgressDialog.vue +2 -0
- package/dist/package/src/views/tool/code-gen/config.ts +15 -1
- package/dist/package/src/views/tool/code-gen/table/index.vue +100 -45
- package/package.json +3 -2
- package/dist/package/declarations/src/config/database-backup.d.ts +0 -12
- package/dist/package/src/config/database-backup.ts +0 -57
- package/dist/package/src/views/base/runtime-config/index.vue +0 -479
- /package/dist/package/declarations/src/views/base/{runtime-config → online-session}/index.vue.d.ts +0 -0
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
v-model="dialog.visible"
|
|
16
16
|
ref="formDialogRef"
|
|
17
17
|
:title="dialogTitle"
|
|
18
|
-
width="
|
|
19
|
-
label-width="
|
|
18
|
+
width="min(1440px, calc(100vw - 32px))"
|
|
19
|
+
label-width="180px"
|
|
20
20
|
top="4vh"
|
|
21
21
|
:model="formData"
|
|
22
22
|
:fields="formFields"
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
:confirm-loading="saving"
|
|
25
25
|
:gutter="16"
|
|
26
26
|
:col-span="12"
|
|
27
|
+
:form-props="{ class: 'code-gen-table-form' }"
|
|
27
28
|
@confirm="handleSubmit"
|
|
28
29
|
@close="handleCloseDialog"
|
|
29
30
|
>
|
|
@@ -31,8 +32,14 @@
|
|
|
31
32
|
<CodeGenLocaleEditor
|
|
32
33
|
:model-value="formData.i18n_config"
|
|
33
34
|
:source-comment="formData.comment"
|
|
34
|
-
:
|
|
35
|
-
|
|
35
|
+
@update:model-value="value => (formData.i18n_config = value)"
|
|
36
|
+
/>
|
|
37
|
+
</template>
|
|
38
|
+
<template #leftTreeI18nConfig>
|
|
39
|
+
<CodeGenLocaleEditor
|
|
40
|
+
:model-value="formData.i18n_config"
|
|
41
|
+
:source-comment="formData.left_tree_config?.comment"
|
|
42
|
+
field="left_tree_comment"
|
|
36
43
|
@update:model-value="value => (formData.i18n_config = value)"
|
|
37
44
|
/>
|
|
38
45
|
</template>
|
|
@@ -49,7 +56,7 @@
|
|
|
49
56
|
</template>
|
|
50
57
|
|
|
51
58
|
<script setup lang="ts">
|
|
52
|
-
import { computed, nextTick, reactive, ref } from "vue";
|
|
59
|
+
import { computed, h, onBeforeUnmount, nextTick, reactive, ref } from "vue";
|
|
53
60
|
import { useRouter } from "vue-router";
|
|
54
61
|
import {
|
|
55
62
|
CirclePlus,
|
|
@@ -88,8 +95,11 @@ import { CodeGenTableStatus } from "@liujitcn/kratos-admin-system/rpc/system/adm
|
|
|
88
95
|
import { buildPageRequest, normalizeSelectedIds } from "@liujitcn/kratos-admin-core/table";
|
|
89
96
|
import { t } from "@liujitcn/kratos-admin-core";
|
|
90
97
|
import CodeGenProgressDialog from "../components/CodeGenProgressDialog.vue";
|
|
98
|
+
import { loadEnabledBaseLanguages } from "@liujitcn/kratos-admin-system/api/system/admin/v1/base_language";
|
|
91
99
|
import CodeGenLocaleEditor from "../components/CodeGenLocaleEditor.vue";
|
|
100
|
+
import CodeGenGenerateConfirm from "../components/CodeGenGenerateConfirm.vue";
|
|
92
101
|
import {
|
|
102
|
+
withCodeGenLocaleDefaults,
|
|
93
103
|
codeGenPageTypeOptions,
|
|
94
104
|
codeGenTableRules,
|
|
95
105
|
createDefaultCodeGenLeftTreeConfig,
|
|
@@ -222,20 +232,13 @@ const formFields = computed<ProFormField[]>(() => [
|
|
|
222
232
|
},
|
|
223
233
|
{
|
|
224
234
|
prop: "comment",
|
|
235
|
+
suffixSlotName: "tableI18nConfig",
|
|
225
236
|
label: t("system.code.gen.table.field.comment"),
|
|
226
237
|
component: "input",
|
|
227
238
|
colSpan: 24,
|
|
228
239
|
labelTooltip: t("system.code.gen.table.tooltip.comment"),
|
|
229
240
|
props: { placeholder: t("system.code.gen.table.placeholder.comment") }
|
|
230
241
|
},
|
|
231
|
-
{
|
|
232
|
-
prop: "i18n_config",
|
|
233
|
-
label: t("system.code.gen.i18n.field.i18ns"),
|
|
234
|
-
component: "slot",
|
|
235
|
-
slotName: "tableI18nConfig",
|
|
236
|
-
colSpan: 24,
|
|
237
|
-
labelTooltip: t("system.code.gen.i18n.tooltip.table")
|
|
238
|
-
},
|
|
239
242
|
{
|
|
240
243
|
prop: "business_module",
|
|
241
244
|
label: t("system.code.gen.table.field.business_module"),
|
|
@@ -263,6 +266,7 @@ const formFields = computed<ProFormField[]>(() => [
|
|
|
263
266
|
prop: "page_type",
|
|
264
267
|
label: t("system.code.gen.table.field.page_type"),
|
|
265
268
|
component: "segmented",
|
|
269
|
+
colSpan: 16,
|
|
266
270
|
options: pageTypeOptions.value,
|
|
267
271
|
labelTooltip: t("system.code.gen.table.tooltip.page_type"),
|
|
268
272
|
props: { onChange: handlePageTypeChange }
|
|
@@ -312,6 +316,7 @@ const formFields = computed<ProFormField[]>(() => [
|
|
|
312
316
|
},
|
|
313
317
|
{
|
|
314
318
|
prop: "left_tree_config.comment",
|
|
319
|
+
suffixSlotName: "leftTreeI18nConfig",
|
|
315
320
|
label: t("system.code.gen.table.field.left_tree_comment"),
|
|
316
321
|
component: "input",
|
|
317
322
|
labelTooltip: t("system.code.gen.table.tooltip.left_tree_comment"),
|
|
@@ -387,9 +392,9 @@ const formFields = computed<ProFormField[]>(() => [
|
|
|
387
392
|
label: t("system.code.gen.table.field.gen_backend"),
|
|
388
393
|
component: "switch",
|
|
389
394
|
labelTooltip: t("system.code.gen.table.tooltip.gen_backend"),
|
|
390
|
-
//
|
|
395
|
+
// 生成开关按两列排列,减少表单横向空置并保持开关内容紧凑。
|
|
391
396
|
rowBreakBefore: true,
|
|
392
|
-
colSpan:
|
|
397
|
+
colSpan: 12,
|
|
393
398
|
props: { activeText: t("system.code.gen.value.generate"), inactiveText: t("system.code.gen.value.skip") }
|
|
394
399
|
},
|
|
395
400
|
{
|
|
@@ -397,14 +402,15 @@ const formFields = computed<ProFormField[]>(() => [
|
|
|
397
402
|
label: t("system.code.gen.table.field.gen_frontend"),
|
|
398
403
|
component: "switch",
|
|
399
404
|
labelTooltip: t("system.code.gen.table.tooltip.gen_frontend"),
|
|
400
|
-
colSpan:
|
|
405
|
+
colSpan: 12,
|
|
401
406
|
props: { activeText: t("system.code.gen.value.generate"), inactiveText: t("system.code.gen.value.skip") }
|
|
402
407
|
},
|
|
403
408
|
{
|
|
404
409
|
prop: "gen_sql",
|
|
405
410
|
label: t("system.code.gen.table.field.gen_sql"),
|
|
406
411
|
component: "switch",
|
|
407
|
-
colSpan:
|
|
412
|
+
colSpan: 12,
|
|
413
|
+
rowBreakBefore: false,
|
|
408
414
|
labelTooltip: t("system.code.gen.table.tooltip.gen_sql"),
|
|
409
415
|
props: { activeText: t("system.code.gen.value.generate"), inactiveText: t("system.code.gen.value.skip") }
|
|
410
416
|
},
|
|
@@ -412,7 +418,7 @@ const formFields = computed<ProFormField[]>(() => [
|
|
|
412
418
|
prop: "status",
|
|
413
419
|
label: t("system.code.gen.table.field.status"),
|
|
414
420
|
component: "dict",
|
|
415
|
-
colSpan:
|
|
421
|
+
colSpan: 12,
|
|
416
422
|
props: { code: "code_gen_table_status", codeType: "number", type: "radio" },
|
|
417
423
|
labelTooltip: t("system.code.gen.table.tooltip.status")
|
|
418
424
|
},
|
|
@@ -595,6 +601,37 @@ async function handleOpenCodePreview(tableId: number) {
|
|
|
595
601
|
await router.push(`/code/gen/code/preview/${tableId}`);
|
|
596
602
|
}
|
|
597
603
|
|
|
604
|
+
let releaseGenerationHotUpdates: (() => void) | undefined;
|
|
605
|
+
|
|
606
|
+
/** 等待开发服务器暂停热更新,避免生成文件的中间状态反复刷新页面。 */
|
|
607
|
+
async function holdGenerationHotUpdates() {
|
|
608
|
+
const hot = import.meta.hot;
|
|
609
|
+
if (!hot || releaseGenerationHotUpdates) return;
|
|
610
|
+
await new Promise<void>(resolve => {
|
|
611
|
+
const held = () => {
|
|
612
|
+
clearTimeout(timeout);
|
|
613
|
+
hot.off("admin:codegen-held", held);
|
|
614
|
+
releaseGenerationHotUpdates = () => hot.send("admin:codegen-release", {});
|
|
615
|
+
resolve();
|
|
616
|
+
};
|
|
617
|
+
const timeout = setTimeout(() => {
|
|
618
|
+
hot.off("admin:codegen-held", held);
|
|
619
|
+
hot.send("admin:codegen-release", {});
|
|
620
|
+
resolve();
|
|
621
|
+
}, 2000);
|
|
622
|
+
hot.on("admin:codegen-held", held);
|
|
623
|
+
hot.send("admin:codegen-hold", {});
|
|
624
|
+
});
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
/** 任务结束且结果弹窗关闭后恢复开发热更新。 */
|
|
628
|
+
function releaseGenerationUpdates() {
|
|
629
|
+
releaseGenerationHotUpdates?.();
|
|
630
|
+
releaseGenerationHotUpdates = undefined;
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
onBeforeUnmount(releaseGenerationUpdates);
|
|
634
|
+
|
|
598
635
|
/** 创建单项或批量代码生成任务。 */
|
|
599
636
|
async function handleGenerate(selected: CodeGenGenerateTarget) {
|
|
600
637
|
const tables = Array.isArray(selected) ? selected : [selected];
|
|
@@ -608,7 +645,7 @@ async function handleGenerate(selected: CodeGenGenerateTarget) {
|
|
|
608
645
|
return;
|
|
609
646
|
}
|
|
610
647
|
generating.value = true;
|
|
611
|
-
let missingI18ns: string[] = [];
|
|
648
|
+
let missingI18ns: Array<{ name: string; items: string[] }> = [];
|
|
612
649
|
try {
|
|
613
650
|
const previewEntries = await Promise.all(
|
|
614
651
|
tables.map(async table => ({
|
|
@@ -616,44 +653,31 @@ async function handleGenerate(selected: CodeGenGenerateTarget) {
|
|
|
616
653
|
preview: await defCodeGenService.PreviewCodeGen({ table_id: table.id, output_paths: undefined })
|
|
617
654
|
}))
|
|
618
655
|
);
|
|
619
|
-
missingI18ns = previewEntries
|
|
620
|
-
(preview
|
|
621
|
-
|
|
656
|
+
missingI18ns = previewEntries
|
|
657
|
+
.map(({ table, preview }) => ({ name: table.name, items: preview.missing_i18ns ?? [] }))
|
|
658
|
+
.filter(group => group.items.length);
|
|
622
659
|
} finally {
|
|
623
660
|
generating.value = false;
|
|
624
661
|
}
|
|
625
|
-
if (missingI18ns.length) {
|
|
626
|
-
try {
|
|
627
|
-
await ElMessageBox.alert(
|
|
628
|
-
t("system.code.gen.preview.message.missing_i18ns", {
|
|
629
|
-
items: missingI18ns.join(t("system.code.gen.preview.value.list_separator"))
|
|
630
|
-
}),
|
|
631
|
-
t("common.title.warning"),
|
|
632
|
-
{
|
|
633
|
-
confirmButtonText: t("common.action.close"),
|
|
634
|
-
type: "warning"
|
|
635
|
-
}
|
|
636
|
-
);
|
|
637
|
-
} catch {
|
|
638
|
-
// 关闭提示框与点击关闭按钮语义一致。
|
|
639
|
-
}
|
|
640
|
-
return;
|
|
641
|
-
}
|
|
642
662
|
const message =
|
|
643
663
|
tables.length === 1
|
|
644
664
|
? t("system.code.gen.table.dialog.generate_one", { name: tables[0].name })
|
|
645
665
|
: t("system.code.gen.table.dialog.generate_batch", { count: tables.length });
|
|
646
666
|
try {
|
|
647
|
-
|
|
648
|
-
|
|
667
|
+
const content = h(CodeGenGenerateConfirm, { message, groups: missingI18ns });
|
|
668
|
+
await ElMessageBox.confirm(content, t("system.code.gen.table.dialog.generate_title"), {
|
|
669
|
+
confirmButtonText: t("system.code.gen.action.generate"),
|
|
649
670
|
cancelButtonText: t("common.action.cancel"),
|
|
650
|
-
|
|
671
|
+
customClass: "code-gen-generate-confirm",
|
|
672
|
+
showClose: true,
|
|
673
|
+
closeOnClickModal: false
|
|
651
674
|
});
|
|
652
675
|
} catch {
|
|
653
676
|
return;
|
|
654
677
|
}
|
|
655
678
|
generating.value = true;
|
|
656
679
|
try {
|
|
680
|
+
await holdGenerationHotUpdates();
|
|
657
681
|
const data = await defCodeGenService.StartCodeGenTask({
|
|
658
682
|
table_ids: tables.map(table => table.id)
|
|
659
683
|
});
|
|
@@ -665,6 +689,7 @@ async function handleGenerate(selected: CodeGenGenerateTarget) {
|
|
|
665
689
|
handleProgressDialogVisibleChange(true);
|
|
666
690
|
} catch (error) {
|
|
667
691
|
generating.value = false;
|
|
692
|
+
releaseGenerationUpdates();
|
|
668
693
|
throw error;
|
|
669
694
|
}
|
|
670
695
|
}
|
|
@@ -710,11 +735,13 @@ function handleProgressDialogVisibleChange(visible: boolean) {
|
|
|
710
735
|
return;
|
|
711
736
|
}
|
|
712
737
|
window.sessionStorage.removeItem(codeGenProgressDialogVisibleStorageKey);
|
|
738
|
+
if (!generating.value) releaseGenerationUpdates();
|
|
713
739
|
}
|
|
714
740
|
|
|
715
741
|
/** 生成任务结束后刷新列表。 */
|
|
716
742
|
function handleProgressCompleted() {
|
|
717
743
|
generating.value = false;
|
|
744
|
+
if (!progressDialogVisible.value) releaseGenerationUpdates();
|
|
718
745
|
window.sessionStorage.removeItem(codeGenProgressDialogVisibleStorageKey);
|
|
719
746
|
progressSelectedTableIds.value = [];
|
|
720
747
|
proTable.value?.clearSelection();
|
|
@@ -752,6 +779,7 @@ function removeProgressSelectedTableIds() {
|
|
|
752
779
|
|
|
753
780
|
/** 请求代码生成表配置列表。 */
|
|
754
781
|
async function requestCodeGenTable(params: PageCodeGenTableRequest) {
|
|
782
|
+
await loadEnabledBaseLanguages();
|
|
755
783
|
const data = await defCodeGenTableService.PageCodeGenTable(buildPageRequest(params));
|
|
756
784
|
return { data: { ...data, list: data.code_gen_tables ?? [] } };
|
|
757
785
|
}
|
|
@@ -862,7 +890,15 @@ async function handleSubmit() {
|
|
|
862
890
|
if (!valid) return;
|
|
863
891
|
if (!formData.parent_menu_id) return;
|
|
864
892
|
|
|
865
|
-
const payload: CodeGenTableForm = {
|
|
893
|
+
const payload: CodeGenTableForm = {
|
|
894
|
+
...formData,
|
|
895
|
+
parent_menu_id: formData.parent_menu_id,
|
|
896
|
+
i18n_config: withCodeGenLocaleDefaults(
|
|
897
|
+
formData.i18n_config,
|
|
898
|
+
formData.comment,
|
|
899
|
+
formData.page_type === "left_tree" ? formData.left_tree_config?.comment : ""
|
|
900
|
+
)
|
|
901
|
+
};
|
|
866
902
|
saving.value = true;
|
|
867
903
|
try {
|
|
868
904
|
if (formData.id) {
|
|
@@ -970,14 +1006,14 @@ function resolveDefaultColumn(columns: CodeGenDatabaseColumn[], columnName: stri
|
|
|
970
1006
|
return columns.some(item => item.name === columnName) ? columnName : "";
|
|
971
1007
|
}
|
|
972
1008
|
|
|
973
|
-
/** 转换菜单树为 ProForm
|
|
1009
|
+
/** 转换菜单树为 ProForm 树形选择项,仅允许八位编号的一至三级目录承载生成页面。 */
|
|
974
1010
|
function convertMenuOptions(options: BaseMenu[]): ProFormOption[] {
|
|
975
1011
|
return options
|
|
976
1012
|
.filter(item => item.type === BaseMenuType.BASE_MENU_TYPE_FOLDER)
|
|
977
1013
|
.map(item => ({
|
|
978
1014
|
label: item.meta?.title || item.name || item.path,
|
|
979
1015
|
value: item.id,
|
|
980
|
-
disabled: item.id <
|
|
1016
|
+
disabled: item.id < 10000000 || item.id > 99999999 || item.id % 100 !== 0,
|
|
981
1017
|
children: convertMenuOptions(item.children ?? [])
|
|
982
1018
|
}));
|
|
983
1019
|
}
|
|
@@ -1022,6 +1058,25 @@ function ensureLeftTreeConfig() {
|
|
|
1022
1058
|
</script>
|
|
1023
1059
|
|
|
1024
1060
|
<style scoped lang="scss">
|
|
1061
|
+
@media (max-width: 767px) {
|
|
1062
|
+
:deep(.code-gen-table-form) {
|
|
1063
|
+
.el-col {
|
|
1064
|
+
flex: 0 0 100%;
|
|
1065
|
+
max-width: 100%;
|
|
1066
|
+
}
|
|
1067
|
+
.el-form-item {
|
|
1068
|
+
flex-direction: column;
|
|
1069
|
+
}
|
|
1070
|
+
.el-form-item__label {
|
|
1071
|
+
justify-content: flex-start;
|
|
1072
|
+
width: auto !important;
|
|
1073
|
+
}
|
|
1074
|
+
.el-form-item__content {
|
|
1075
|
+
margin-left: 0 !important;
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1025
1080
|
/* 固定操作列表头与普通表头使用同一主题背景,并保持行内操作单行展示。 */
|
|
1026
1081
|
:deep(.code-gen-table) {
|
|
1027
1082
|
--el-table-header-bg-color: var(--el-fill-color-light);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liujitcn/kratos-admin-system",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.40",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "kratos-admin system management module",
|
|
7
7
|
"license": "MIT",
|
|
@@ -11,11 +11,12 @@
|
|
|
11
11
|
"url": "git@github.com:liujitcn/kratos-admin.git"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
+
"@lucide/vue": "^1.39.0",
|
|
14
15
|
"@microsoft/fetch-event-source": "^2.0.1",
|
|
15
16
|
"sortablejs": "^1.15.2",
|
|
16
17
|
"swagger-ui-dist": "^5.32.9",
|
|
17
18
|
"vue-element-plus-x": "^2.0.3",
|
|
18
|
-
"@liujitcn/kratos-admin-core": "0.0.
|
|
19
|
+
"@liujitcn/kratos-admin-core": "0.0.40"
|
|
19
20
|
},
|
|
20
21
|
"peerDependencies": {
|
|
21
22
|
"@element-plus/icons-vue": "^2.3.1",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { RuntimeConfigDefinition } from "./types";
|
|
2
|
-
/** 数据库备份配置模型。 */
|
|
3
|
-
export interface DatabaseBackupConfig {
|
|
4
|
-
enabled: boolean;
|
|
5
|
-
integrity_key: string;
|
|
6
|
-
encryption_key: string;
|
|
7
|
-
directory: string;
|
|
8
|
-
gzip: boolean;
|
|
9
|
-
retention_count: number;
|
|
10
|
-
}
|
|
11
|
-
/** 数据库备份配置定义。 */
|
|
12
|
-
export declare const databaseBackupConfig: RuntimeConfigDefinition<DatabaseBackupConfig>;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Coin } from "@element-plus/icons-vue";
|
|
2
|
-
import type { RuntimeConfigDefinition } from "./types";
|
|
3
|
-
|
|
4
|
-
/** 数据库备份配置模型。 */
|
|
5
|
-
export interface DatabaseBackupConfig {
|
|
6
|
-
enabled: boolean;
|
|
7
|
-
integrity_key: string;
|
|
8
|
-
encryption_key: string;
|
|
9
|
-
directory: string;
|
|
10
|
-
gzip: boolean;
|
|
11
|
-
retention_count: number;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/** 数据库备份配置定义。 */
|
|
15
|
-
export const databaseBackupConfig: RuntimeConfigDefinition<DatabaseBackupConfig> = {
|
|
16
|
-
key: "databaseBackup",
|
|
17
|
-
titleKey: "system.base.runtime_config.backup.title",
|
|
18
|
-
descriptionKey: "system.base.runtime_config.backup.description",
|
|
19
|
-
icon: Coin,
|
|
20
|
-
createModel: () => ({
|
|
21
|
-
enabled: false,
|
|
22
|
-
integrity_key: "",
|
|
23
|
-
encryption_key: "",
|
|
24
|
-
directory: "./backups",
|
|
25
|
-
gzip: true,
|
|
26
|
-
retention_count: 7
|
|
27
|
-
}),
|
|
28
|
-
fields: [
|
|
29
|
-
{ prop: "enabled", labelKey: "system.base.runtime_config.field.enabled", component: "switch" },
|
|
30
|
-
{
|
|
31
|
-
prop: "integrity_key",
|
|
32
|
-
labelKey: "system.base.runtime_config.field.integrity_key",
|
|
33
|
-
component: "password",
|
|
34
|
-
props: { showPassword: true, autocomplete: "new-password" }
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
prop: "encryption_key",
|
|
38
|
-
labelKey: "system.base.runtime_config.field.encryption_key",
|
|
39
|
-
component: "password",
|
|
40
|
-
props: { showPassword: true, autocomplete: "new-password" }
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
prop: "directory",
|
|
44
|
-
labelKey: "system.base.runtime_config.field.directory",
|
|
45
|
-
component: "input",
|
|
46
|
-
rules: [{ required: true, messageKey: "system.base.runtime_config.validation.directory", trigger: "blur" }]
|
|
47
|
-
},
|
|
48
|
-
{ prop: "gzip", labelKey: "system.base.runtime_config.field.gzip", component: "switch" },
|
|
49
|
-
{
|
|
50
|
-
prop: "retention_count",
|
|
51
|
-
labelKey: "system.base.runtime_config.field.retention_count",
|
|
52
|
-
component: "input-number",
|
|
53
|
-
props: { min: 1, max: 1000, controls: true },
|
|
54
|
-
rules: [{ type: "number", min: 1, messageKey: "system.base.runtime_config.validation.retention_count", trigger: "blur" }]
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
};
|