update 优化 代码生成 增加多前端模板选择

This commit is contained in:
疯狂的狮子Li
2026-06-03 15:58:34 +08:00
parent ee613d59c4
commit fb889c02db
3 changed files with 29 additions and 0 deletions
+3
View File
@@ -6,6 +6,7 @@ export interface TableVO extends BaseEntity {
tableComment: string;
className: string;
tplCategory: string;
frontendType: string;
packageName: string;
moduleName: string;
businessName: string;
@@ -80,6 +81,7 @@ export interface DbTableVO {
tableComment: string;
className?: any;
tplCategory?: any;
frontendType?: string;
packageName?: any;
moduleName?: any;
businessName?: any;
@@ -181,6 +183,7 @@ export interface DbTableForm extends BaseEntity {
tableComment: string;
className: string;
tplCategory: string;
frontendType: string;
packageName: string;
moduleName: string;
businessName: string;
+2
View File
@@ -220,11 +220,13 @@ onMounted(async () => {
uniqueFields: detail.info.uniqueFields ?? [],
enableSort: detail.info.enableSort ?? false,
sortField: detail.info.sortField ?? '',
frontendType: detail.info.frontendType ?? 'vue',
treeRootValue: detail.info.treeRootValue ?? '0',
treeAncestorsField: detail.info.treeAncestorsField ?? '',
treeOrderField: detail.info.treeOrderField ?? '',
...detail.info
};
info.value.frontendType ||= 'vue';
const response = await getDictOptionselect();
dictOptions.value = response.data;
});
+24
View File
@@ -82,6 +82,22 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="frontendType">
<template #label>
前端模板
<el-tooltip content="对应后端 resources/vm 下的模板目录,例如 vue、react" placement="top">
<el-icon><question-filled /></el-icon>
</el-tooltip>
</template>
<el-radio-group v-model="infoForm.frontendType">
<el-radio v-for="item in frontendTypeOptions" :key="item.value" :value="item.value">
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<h4 class="form-header">增强选项</h4>
@@ -311,6 +327,10 @@ interface MenuOptionsType {
const menuOptions = ref<Array<MenuOptionsType>>([]);
const formRef = ref<FormInstance>();
const frontendTypeOptions = [
{ label: 'Vue', value: 'vue' },
{ label: 'React', value: 'react' }
];
const props = defineProps({
info: propTypes.any.isRequired,
@@ -328,6 +348,10 @@ const sortableColumns = computed(() =>
// 表单校验
const rules = ref({
tplCategory: [{ required: true, message: '请选择生成模板', trigger: 'blur' }],
frontendType: [
{ required: true, message: '请选择前端模板', trigger: 'change' },
{ pattern: /^[A-Za-z0-9_-]+$/, message: '仅支持字母、数字、下划线和中划线', trigger: 'change' }
],
packageName: [{ required: true, message: '请输入生成包路径', trigger: 'blur' }],
moduleName: [{ required: true, message: '请输入生成模块名', trigger: 'blur' }],
businessName: [{ required: true, message: '请输入生成业务名', trigger: 'blur' }],