@liujitcn/kratos-admin-system 0.0.20 → 0.0.23
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 +51 -50
- package/dist/package/declarations/src/api/system/base_language.d.ts +52 -0
- package/dist/package/declarations/src/api/system/base_translation.d.ts +10 -0
- package/dist/package/declarations/src/api/system/code_gen_i18n.d.ts +8 -0
- package/dist/package/declarations/src/api/system/ops_monitoring.d.ts +19 -0
- package/dist/package/declarations/src/api/system/ops_monitoring_sse.d.ts +12 -0
- package/dist/package/declarations/src/components/DynamicTranslationCell.vue.d.ts +16 -0
- package/dist/package/declarations/src/components/DynamicTranslationEditor.vue.d.ts +20 -0
- package/dist/package/declarations/src/components/dynamicTranslation.d.ts +38 -0
- package/dist/package/declarations/src/locales/generated.d.ts +6536 -0
- package/dist/package/declarations/src/rpc/base/v1/ai_session.d.ts +12 -2
- package/dist/package/declarations/src/rpc/base/v1/ai_tool.d.ts +9 -1
- package/dist/package/declarations/src/rpc/base/v1/config.d.ts +35 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/auth.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_config.d.ts +23 -2
- package/dist/package/declarations/src/rpc/system/admin/v1/base_dict.d.ts +9 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_job.d.ts +9 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_language.d.ts +119 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_menu.d.ts +6 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_migration.d.ts +6 -6
- package/dist/package/declarations/src/rpc/system/admin/v1/base_role.d.ts +13 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_translation.d.ts +75 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_user.d.ts +11 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/code_gen.d.ts +13 -11
- package/dist/package/declarations/src/rpc/system/admin/v1/code_gen_column.d.ts +7 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/code_gen_table.d.ts +24 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/common.d.ts +13 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/ops_monitoring.d.ts +222 -0
- package/dist/package/declarations/src/views/base/language/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/tool/code-gen/components/CodeGenLocaleEditor.vue.d.ts +23 -0
- package/dist/package/declarations/src/views/tool/code-gen/config.d.ts +7 -7
- package/dist/package/declarations/src/views/tool/ops-monitoring/index.vue.d.ts +3 -0
- package/dist/package/src/api/base/ai_message.ts +7 -12
- package/dist/package/src/api/base/sse.ts +3 -1
- package/dist/package/src/api/system/base_language.ts +135 -0
- package/dist/package/src/api/system/base_translation.ts +33 -0
- package/dist/package/src/api/system/code_gen_column.ts +17 -3
- package/dist/package/src/api/system/code_gen_i18n.ts +18 -0
- package/dist/package/src/api/system/code_gen_table.ts +12 -4
- package/dist/package/src/api/system/ops_monitoring.ts +88 -0
- package/dist/package/src/api/system/ops_monitoring_sse.ts +49 -0
- package/dist/package/src/components/DynamicTranslationCell.vue +249 -0
- package/dist/package/src/components/DynamicTranslationEditor.vue +197 -0
- package/dist/package/src/components/dynamicTranslation.ts +66 -0
- package/dist/package/src/locales/README.md +30 -0
- package/dist/package/src/locales/en-US.json +933 -0
- package/dist/package/src/locales/es-ES.json +933 -0
- package/dist/package/src/locales/fr-FR.json +933 -0
- package/dist/package/src/locales/generated.ts +22 -0
- package/dist/package/src/locales/ja-JP.json +933 -0
- package/dist/package/src/locales/ko-KR.json +933 -0
- package/dist/package/src/locales/zh-CN.json +933 -0
- package/dist/package/src/locales/zh-TW.json +933 -0
- package/dist/package/src/module.ts +6 -2
- package/dist/package/src/rpc/base/v1/ai_session.ts +13 -2
- package/dist/package/src/rpc/base/v1/ai_tool.ts +10 -1
- package/dist/package/src/rpc/base/v1/config.ts +47 -0
- package/dist/package/src/rpc/system/admin/v1/auth.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_config.ts +24 -2
- package/dist/package/src/rpc/system/admin/v1/base_dict.ts +9 -0
- package/dist/package/src/rpc/system/admin/v1/base_job.ts +10 -1
- package/dist/package/src/rpc/system/admin/v1/base_language.ts +141 -0
- package/dist/package/src/rpc/system/admin/v1/base_menu.ts +6 -1
- package/dist/package/src/rpc/system/admin/v1/base_migration.ts +8 -8
- package/dist/package/src/rpc/system/admin/v1/base_role.ts +14 -1
- package/dist/package/src/rpc/system/admin/v1/base_translation.ts +90 -0
- package/dist/package/src/rpc/system/admin/v1/base_user.ts +12 -1
- package/dist/package/src/rpc/system/admin/v1/code_gen.ts +16 -12
- package/dist/package/src/rpc/system/admin/v1/code_gen_column.ts +8 -0
- package/dist/package/src/rpc/system/admin/v1/code_gen_table.ts +27 -1
- package/dist/package/src/rpc/system/admin/v1/common.ts +21 -0
- package/dist/package/src/rpc/system/admin/v1/ops_monitoring.ts +255 -0
- package/dist/package/src/views/ai/chat/components/AiMarkdown.vue +1 -6
- package/dist/package/src/views/ai/chat/components/ChatPanel.vue +75 -58
- package/dist/package/src/views/ai/chat/components/SessionPanel.vue +20 -9
- package/dist/package/src/views/ai/chat/components/XSender.vue +36 -23
- package/dist/package/src/views/ai/chat/index.vue +58 -41
- package/dist/package/src/views/ai/chat/message.ts +29 -27
- package/dist/package/src/views/base/api/index.vue +121 -84
- package/dist/package/src/views/base/area/index.vue +81 -32
- package/dist/package/src/views/base/config/index.vue +300 -96
- package/dist/package/src/views/base/dept/index.vue +110 -62
- package/dist/package/src/views/base/dict/index.vue +145 -62
- package/dist/package/src/views/base/dict/item.vue +155 -64
- package/dist/package/src/views/base/job/index.vue +134 -82
- package/dist/package/src/views/base/job/log.vue +24 -25
- package/dist/package/src/views/base/language/index.vue +260 -0
- package/dist/package/src/views/base/log/index.vue +68 -46
- package/dist/package/src/views/base/menu/index.vue +344 -200
- package/dist/package/src/views/base/migration/index.vue +49 -29
- package/dist/package/src/views/base/post/index.vue +128 -60
- package/dist/package/src/views/base/role/index.vue +145 -79
- package/dist/package/src/views/base/tenant/index.vue +132 -64
- package/dist/package/src/views/base/user/components/dept-tree.vue +2 -1
- package/dist/package/src/views/base/user/index.vue +194 -116
- package/dist/package/src/views/profile/components/base.vue +45 -28
- package/dist/package/src/views/profile/components/password.vue +45 -30
- package/dist/package/src/views/profile/components/security.vue +90 -54
- package/dist/package/src/views/profile/index.vue +10 -9
- package/dist/package/src/views/tool/api-doc/index.vue +6 -2
- package/dist/package/src/views/tool/code-gen/code-preview/index.vue +32 -16
- package/dist/package/src/views/tool/code-gen/columns/index.vue +382 -273
- package/dist/package/src/views/tool/code-gen/columns/option-copy.ts +1 -6
- package/dist/package/src/views/tool/code-gen/components/CodeGenLocaleEditor.vue +118 -0
- package/dist/package/src/views/tool/code-gen/components/CodeGenProgressDialog.vue +65 -36
- package/dist/package/src/views/tool/code-gen/components/CodePreviewPane.vue +8 -5
- package/dist/package/src/views/tool/code-gen/config.ts +116 -79
- package/dist/package/src/views/tool/code-gen/preview/data.ts +19 -17
- package/dist/package/src/views/tool/code-gen/preview/index.vue +96 -59
- package/dist/package/src/views/tool/code-gen/proto/index.vue +110 -62
- package/dist/package/src/views/tool/code-gen/table/index.vue +201 -121
- package/dist/package/src/views/tool/ops-monitoring/index.vue +1175 -0
- package/dist/package/src/views/tool/project-doc/index.vue +17 -15
- package/package.json +6 -2
- package/dist/package/declarations/src/rpc/base/v1/enum.d.ts +0 -43
- package/dist/package/declarations/src/rpc/system/common/v1/enum.d.ts +0 -67
- package/dist/package/src/rpc/base/v1/enum.ts +0 -54
- package/dist/package/src/rpc/system/common/v1/enum.ts +0 -80
|
@@ -6,24 +6,24 @@
|
|
|
6
6
|
<div class="code-gen-toolbar">
|
|
7
7
|
<!-- 展示当前 Proto 配置对应的业务表。 -->
|
|
8
8
|
<div class="code-gen-proto-toolbar__meta">
|
|
9
|
-
<span class="code-gen-proto-toolbar__table-name" :title="formData.name"
|
|
9
|
+
<span class="code-gen-proto-toolbar__table-name" :title="formData.name">
|
|
10
|
+
{{ t("system.code.gen.column.value.table_name", { name: formData.name }) }}
|
|
11
|
+
</span>
|
|
10
12
|
<span class="code-gen-proto-toolbar__table-comment" :title="formData.comment || '--'">
|
|
11
|
-
|
|
13
|
+
{{ t("system.code.gen.column.value.table_comment", { comment: formData.comment || "--" }) }}
|
|
12
14
|
</span>
|
|
13
15
|
</div>
|
|
14
|
-
<el-button type="primary" :icon="Document" :disabled="!canEdit" @click="handleSaveProtoMethods()"
|
|
16
|
+
<el-button type="primary" :icon="Document" :disabled="!canEdit" @click="handleSaveProtoMethods()">
|
|
17
|
+
{{ t("common.action.save") }}
|
|
18
|
+
</el-button>
|
|
15
19
|
</div>
|
|
16
20
|
|
|
17
|
-
<ProTable
|
|
18
|
-
row-key="sort"
|
|
19
|
-
:data="protoChecks"
|
|
20
|
-
:columns="protoColumns"
|
|
21
|
-
:pagination="false"
|
|
22
|
-
:tool-button="false"
|
|
23
|
-
>
|
|
21
|
+
<ProTable row-key="sort" :data="protoChecks" :columns="protoColumns" :pagination="false" :tool-button="false">
|
|
24
22
|
<template #exists="{ row }">
|
|
25
23
|
<div class="code-gen-proto-status">
|
|
26
|
-
<el-tag :type="row.exists ? 'success' : 'warning'">
|
|
24
|
+
<el-tag :type="row.exists ? 'success' : 'warning'">
|
|
25
|
+
{{ t(row.exists ? "system.code.gen.proto.status.exists" : "system.code.gen.proto.status.missing") }}
|
|
26
|
+
</el-tag>
|
|
27
27
|
<span class="code-gen-proto-cell__secondary" :title="row.message">{{ row.message }}</span>
|
|
28
28
|
</div>
|
|
29
29
|
</template>
|
|
@@ -38,23 +38,23 @@
|
|
|
38
38
|
</template>
|
|
39
39
|
<div class="code-gen-proto-capability-popover">
|
|
40
40
|
<div class="code-gen-proto-capability-popover__item">
|
|
41
|
-
<span
|
|
41
|
+
<span>{{ t("system.code.gen.proto.field.method_comment") }}</span>
|
|
42
42
|
<span class="code-gen-proto-capability-popover__value">{{ row.method_comment || "--" }}</span>
|
|
43
43
|
</div>
|
|
44
44
|
<div class="code-gen-proto-capability-popover__item">
|
|
45
|
-
<span
|
|
45
|
+
<span>{{ t("system.code.gen.proto.field.method_name") }}</span>
|
|
46
46
|
<code>{{ row.method_name || "--" }}</code>
|
|
47
47
|
</div>
|
|
48
48
|
<div class="code-gen-proto-capability-popover__item">
|
|
49
|
-
<span>
|
|
49
|
+
<span>{{ t("system.code.gen.proto.field.proto_path") }}</span>
|
|
50
50
|
<code class="code-gen-proto-capability-popover__path">{{ row.proto_file_path || "--" }}</code>
|
|
51
51
|
</div>
|
|
52
52
|
<div class="code-gen-proto-capability-popover__item">
|
|
53
|
-
<span
|
|
53
|
+
<span>{{ t("system.code.gen.proto.field.service_comment") }}</span>
|
|
54
54
|
<span class="code-gen-proto-capability-popover__value">{{ row.service_comment || "--" }}</span>
|
|
55
55
|
</div>
|
|
56
56
|
<div class="code-gen-proto-capability-popover__item">
|
|
57
|
-
<span
|
|
57
|
+
<span>{{ t("system.code.gen.proto.field.service_name") }}</span>
|
|
58
58
|
<code>{{ row.service_name || "--" }}</code>
|
|
59
59
|
</div>
|
|
60
60
|
<pre class="code-gen-proto-capability-popover__preview"><code>{{ resolveProtoDefinition(row) }}</code></pre>
|
|
@@ -63,7 +63,9 @@
|
|
|
63
63
|
</template>
|
|
64
64
|
<template #generate_when_missing="{ row }">
|
|
65
65
|
<div class="code-gen-proto-generate">
|
|
66
|
-
<el-checkbox v-model="row.generate_when_missing" :disabled="row.exists || !canEdit"
|
|
66
|
+
<el-checkbox v-model="row.generate_when_missing" :disabled="row.exists || !canEdit">
|
|
67
|
+
{{ t("system.code.gen.proto.action.generate_api") }}
|
|
68
|
+
</el-checkbox>
|
|
67
69
|
<el-button
|
|
68
70
|
v-if="showProtoConfigButton(row)"
|
|
69
71
|
type="primary"
|
|
@@ -73,18 +75,18 @@
|
|
|
73
75
|
:disabled="!canEdit"
|
|
74
76
|
@click="openProtoConfigDialog(row)"
|
|
75
77
|
>
|
|
76
|
-
|
|
78
|
+
{{ t("system.code.gen.proto.action.configure") }}
|
|
77
79
|
</el-button>
|
|
78
80
|
</div>
|
|
79
81
|
</template>
|
|
80
82
|
</ProTable>
|
|
81
83
|
</template>
|
|
82
|
-
<el-empty v-else description="
|
|
84
|
+
<el-empty v-else :description="t('system.code.gen.column.message.select_record')" />
|
|
83
85
|
</el-card>
|
|
84
86
|
|
|
85
87
|
<ProDialog
|
|
86
88
|
v-model="configDialog.visible"
|
|
87
|
-
:title="
|
|
89
|
+
:title="configDialogTitle"
|
|
88
90
|
width="min(520px, calc(100vw - 32px))"
|
|
89
91
|
destroy-on-close
|
|
90
92
|
:show-close="false"
|
|
@@ -96,16 +98,16 @@
|
|
|
96
98
|
<template #header="{ titleId, titleClass }">
|
|
97
99
|
<div class="code-gen-config-dialog__header">
|
|
98
100
|
<span :id="titleId" :class="titleClass">
|
|
99
|
-
{{
|
|
101
|
+
{{ configDialogTitle }}
|
|
100
102
|
</span>
|
|
101
103
|
<el-button
|
|
102
104
|
type="primary"
|
|
103
105
|
:icon="Document"
|
|
104
106
|
:disabled="!canEdit"
|
|
105
|
-
aria-label="
|
|
107
|
+
:aria-label="t('system.code.gen.column.action.save_and_close')"
|
|
106
108
|
@click="handleSaveProtoConfigDialog"
|
|
107
109
|
>
|
|
108
|
-
|
|
110
|
+
{{ t("common.action.save") }}
|
|
109
111
|
</el-button>
|
|
110
112
|
</div>
|
|
111
113
|
</template>
|
|
@@ -124,6 +126,7 @@
|
|
|
124
126
|
import { computed, onMounted, reactive, ref, watch } from "vue";
|
|
125
127
|
import { Document, Setting } from "@element-plus/icons-vue";
|
|
126
128
|
import { useRoute, useRouter } from "vue-router";
|
|
129
|
+
import { t } from "@liujitcn/kratos-admin-core";
|
|
127
130
|
import ProDialog from "@liujitcn/kratos-admin-core/components/Dialog/ProDialog.vue";
|
|
128
131
|
import ProForm from "@liujitcn/kratos-admin-core/components/ProForm/index.vue";
|
|
129
132
|
import type { ProFormField, ProFormOption } from "@liujitcn/kratos-admin-core/components/ProForm/interface";
|
|
@@ -134,7 +137,11 @@ import { useTabsStore } from "@liujitcn/kratos-admin-core/stores/runtime";
|
|
|
134
137
|
import { defCodeGenColumnService } from "@liujitcn/kratos-admin-system/api/system/code_gen_column";
|
|
135
138
|
import { defCodeGenProtoService } from "@liujitcn/kratos-admin-system/api/system/code_gen_proto";
|
|
136
139
|
import { defCodeGenTableService } from "@liujitcn/kratos-admin-system/api/system/code_gen_table";
|
|
137
|
-
import type {
|
|
140
|
+
import type {
|
|
141
|
+
CodeGenProto,
|
|
142
|
+
CodeGenProtoCheck,
|
|
143
|
+
CodeGenProtoConfig
|
|
144
|
+
} from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/code_gen_proto";
|
|
138
145
|
import type { CodeGenDatabaseTable, CodeGenTableForm } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/code_gen_table";
|
|
139
146
|
import { createDefaultCodeGenTableForm } from "../config";
|
|
140
147
|
|
|
@@ -155,21 +162,21 @@ const targetColumnOptions = reactive<Record<string, ProFormOption[]>>({});
|
|
|
155
162
|
const loadingTargetColumns = reactive(new Set<string>());
|
|
156
163
|
const formData = reactive<CodeGenTableForm>(createDefaultCodeGenTableForm());
|
|
157
164
|
|
|
158
|
-
const
|
|
159
|
-
crud: "
|
|
160
|
-
page_tree: "
|
|
161
|
-
left_tree: "
|
|
162
|
-
entity_option: "
|
|
163
|
-
field_option: "
|
|
164
|
-
field_status: "
|
|
165
|
+
const triggerTypeLabelKeys: Record<string, string> = {
|
|
166
|
+
crud: "system.code.gen.proto.trigger.crud",
|
|
167
|
+
page_tree: "system.code.gen.proto.trigger.page_tree",
|
|
168
|
+
left_tree: "system.code.gen.proto.trigger.left_tree",
|
|
169
|
+
entity_option: "system.code.gen.proto.trigger.entity_option",
|
|
170
|
+
field_option: "system.code.gen.proto.trigger.field_option",
|
|
171
|
+
field_status: "system.code.gen.proto.trigger.field_status"
|
|
165
172
|
};
|
|
166
173
|
|
|
167
|
-
const
|
|
168
|
-
crud: "
|
|
169
|
-
list: "
|
|
170
|
-
option: "
|
|
171
|
-
tree: "
|
|
172
|
-
status: "
|
|
174
|
+
const apiKindLabelKeys: Record<string, string> = {
|
|
175
|
+
crud: "system.code.gen.proto.api_kind.crud",
|
|
176
|
+
list: "system.code.gen.proto.api_kind.list",
|
|
177
|
+
option: "system.code.gen.proto.api_kind.option",
|
|
178
|
+
tree: "system.code.gen.proto.api_kind.tree",
|
|
179
|
+
status: "system.code.gen.proto.api_kind.status"
|
|
173
180
|
};
|
|
174
181
|
|
|
175
182
|
/** Proto 类型配置弹窗上下文。 */
|
|
@@ -193,57 +200,93 @@ const configDialog = reactive<CodeGenProtoConfigDialog>({
|
|
|
193
200
|
});
|
|
194
201
|
|
|
195
202
|
/** Proto 检查结果表格列配置。 */
|
|
196
|
-
const protoColumns
|
|
197
|
-
{
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
+
const protoColumns = computed<ColumnProps[]>(() => [
|
|
204
|
+
{
|
|
205
|
+
prop: "trigger_type",
|
|
206
|
+
label: t("system.code.gen.proto.field.trigger_type"),
|
|
207
|
+
minWidth: 150,
|
|
208
|
+
render: scope => resolveTriggerTypeLabel(String(scope.row.trigger_type))
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
prop: "api_kind",
|
|
212
|
+
label: t("system.code.gen.proto.field.api_kind"),
|
|
213
|
+
minWidth: 150,
|
|
214
|
+
render: scope => resolveAPIKindLabel(String(scope.row.api_kind))
|
|
215
|
+
},
|
|
216
|
+
{ prop: "proto_info", label: t("system.code.gen.proto.field.capability"), minWidth: 290 },
|
|
217
|
+
{ prop: "exists", label: t("system.code.gen.table.field.status"), minWidth: 210 },
|
|
218
|
+
{ prop: "generate_when_missing", label: t("system.code.gen.proto.field.generate_setting"), minWidth: 230 }
|
|
219
|
+
]);
|
|
203
220
|
|
|
204
221
|
/** 将 Proto 配置对象适配为 ProForm 所需的通用表单模型。 */
|
|
205
222
|
const protoConfigFormModel = computed<Record<string, any>>(() => configDialog.config as Record<string, any>);
|
|
223
|
+
const configDialogTitle = computed(() =>
|
|
224
|
+
t("system.code.gen.proto.title.config", {
|
|
225
|
+
method: configDialog.methodName,
|
|
226
|
+
kind: resolveAPIKindLabel(configDialog.apiKind)
|
|
227
|
+
})
|
|
228
|
+
);
|
|
206
229
|
|
|
207
230
|
/** Proto 配置弹窗的动态表单字段。 */
|
|
208
231
|
const protoConfigFields = computed<ProFormField[]>(() => [
|
|
209
232
|
{
|
|
210
233
|
prop: "parent_column",
|
|
211
|
-
label: "
|
|
234
|
+
label: t("system.code.gen.proto.field.parent_column"),
|
|
212
235
|
component: "select",
|
|
213
236
|
options: () => configColumnOptions.value,
|
|
214
|
-
props: () => ({
|
|
237
|
+
props: () => ({
|
|
238
|
+
loading: configDialogLoading.value,
|
|
239
|
+
filterable: true,
|
|
240
|
+
clearable: true,
|
|
241
|
+
placeholder: t("system.code.gen.proto.placeholder.parent_column")
|
|
242
|
+
}),
|
|
215
243
|
visible: () => configDialog.apiKind === "tree"
|
|
216
244
|
},
|
|
217
245
|
{
|
|
218
246
|
prop: "label_column",
|
|
219
|
-
label: "
|
|
247
|
+
label: t("system.code.gen.proto.field.label_column"),
|
|
220
248
|
component: "select",
|
|
221
249
|
options: () => configColumnOptions.value,
|
|
222
|
-
props: () => ({
|
|
250
|
+
props: () => ({
|
|
251
|
+
loading: configDialogLoading.value,
|
|
252
|
+
filterable: true,
|
|
253
|
+
clearable: true,
|
|
254
|
+
placeholder: t("system.code.gen.proto.placeholder.label_column")
|
|
255
|
+
}),
|
|
223
256
|
visible: () => ["option", "tree"].includes(configDialog.apiKind)
|
|
224
257
|
},
|
|
225
258
|
{
|
|
226
259
|
prop: "value_column",
|
|
227
|
-
label: "
|
|
260
|
+
label: t("system.code.gen.proto.field.value_column"),
|
|
228
261
|
component: "select",
|
|
229
262
|
options: () => configColumnOptions.value,
|
|
230
|
-
props: () => ({
|
|
263
|
+
props: () => ({
|
|
264
|
+
loading: configDialogLoading.value,
|
|
265
|
+
filterable: true,
|
|
266
|
+
clearable: true,
|
|
267
|
+
placeholder: t("system.code.gen.proto.placeholder.value_column")
|
|
268
|
+
}),
|
|
231
269
|
visible: () => ["option", "tree"].includes(configDialog.apiKind)
|
|
232
270
|
},
|
|
233
271
|
{
|
|
234
272
|
prop: "lazy",
|
|
235
|
-
label: "
|
|
273
|
+
label: t("system.code.gen.proto.field.load_mode"),
|
|
236
274
|
component: "checkbox",
|
|
237
|
-
checkboxLabel: "
|
|
275
|
+
checkboxLabel: t("system.code.gen.column.value.lazy_children"),
|
|
238
276
|
props: () => ({ disabled: configDialog.apiKind !== "tree" }),
|
|
239
277
|
visible: () => configDialog.apiKind === "tree"
|
|
240
278
|
},
|
|
241
279
|
{
|
|
242
280
|
prop: "status_column",
|
|
243
|
-
label: "
|
|
281
|
+
label: t("system.code.gen.proto.field.status_column"),
|
|
244
282
|
component: "select",
|
|
245
283
|
options: () => configColumnOptions.value,
|
|
246
|
-
props: () => ({
|
|
284
|
+
props: () => ({
|
|
285
|
+
loading: configDialogLoading.value,
|
|
286
|
+
filterable: true,
|
|
287
|
+
clearable: true,
|
|
288
|
+
placeholder: t("system.code.gen.proto.placeholder.status_column")
|
|
289
|
+
}),
|
|
247
290
|
visible: () => configDialog.apiKind === "status"
|
|
248
291
|
}
|
|
249
292
|
]);
|
|
@@ -305,7 +348,9 @@ async function handleQuery() {
|
|
|
305
348
|
*/
|
|
306
349
|
function syncWorkspaceTitle() {
|
|
307
350
|
const tableTitle = formData.comment || formData.name;
|
|
308
|
-
const title = tableTitle
|
|
351
|
+
const title = tableTitle
|
|
352
|
+
? t("system.code.gen.proto.title.workspace_with_table", { table: tableTitle })
|
|
353
|
+
: t("system.code.gen.proto.title.workspace");
|
|
309
354
|
tabsStore.setTabsTitle(title);
|
|
310
355
|
document.title = `${title} - ${import.meta.env.VITE_GLOB_APP_TITLE}`;
|
|
311
356
|
}
|
|
@@ -337,12 +382,14 @@ function resolveColumnNameOptions(row: CodeGenProtoCheck) {
|
|
|
337
382
|
|
|
338
383
|
/** 返回触发来源的展示文案。 */
|
|
339
384
|
function resolveTriggerTypeLabel(triggerType: string) {
|
|
340
|
-
|
|
385
|
+
const key = triggerTypeLabelKeys[triggerType];
|
|
386
|
+
return key ? t(key) : triggerType;
|
|
341
387
|
}
|
|
342
388
|
|
|
343
389
|
/** 返回接口类型的展示文案。 */
|
|
344
390
|
function resolveAPIKindLabel(apiKind: string) {
|
|
345
|
-
|
|
391
|
+
const key = apiKindLabelKeys[apiKind];
|
|
392
|
+
return key ? t(key) : apiKind;
|
|
346
393
|
}
|
|
347
394
|
|
|
348
395
|
/** 返回生成 RPC 的请求与响应类型签名。 */
|
|
@@ -353,9 +400,10 @@ function resolveProtoRPCSignature(row: CodeGenProtoCheck) {
|
|
|
353
400
|
switch (row.api_kind) {
|
|
354
401
|
case "list":
|
|
355
402
|
case "tree":
|
|
356
|
-
responseType =
|
|
357
|
-
|
|
358
|
-
|
|
403
|
+
responseType =
|
|
404
|
+
row.api_kind === "tree" && ["entity_option", "field_option", "left_tree"].includes(row.trigger_type)
|
|
405
|
+
? ".common.v1.TreeOptionResponse"
|
|
406
|
+
: `${methodName}Response`;
|
|
359
407
|
break;
|
|
360
408
|
case "option":
|
|
361
409
|
responseType = ".common.v1.SelectOptionResponse";
|
|
@@ -475,7 +523,7 @@ function validateProtoConfigs() {
|
|
|
475
523
|
item => !item.exists && item.generate_when_missing && needsProtoConfig(item.api_kind) && !hasCompleteProtoConfig(item)
|
|
476
524
|
);
|
|
477
525
|
if (!row) return true;
|
|
478
|
-
ElMessage.warning(
|
|
526
|
+
ElMessage.warning(t("system.code.gen.proto.message.configure_first", { method: row.method_name }));
|
|
479
527
|
openProtoConfigDialog(row);
|
|
480
528
|
return false;
|
|
481
529
|
}
|
|
@@ -521,7 +569,7 @@ async function handleSaveProtoMethods(showMessage = true) {
|
|
|
521
569
|
table_id: formData.id,
|
|
522
570
|
code_gen_protos: codeGenProtos
|
|
523
571
|
});
|
|
524
|
-
if (showMessage) ElMessage.success("
|
|
572
|
+
if (showMessage) ElMessage.success(t("system.code.gen.proto.message.save_success"));
|
|
525
573
|
// 路由切换前保留当前页签地址,避免误删目标页签。
|
|
526
574
|
const currentPath = route.fullPath;
|
|
527
575
|
await router.push("/code/gen/table");
|