Ver código fonte

优化代码生成器
生成表:显示表描述、默认命名空间为CodeGen配置项中第一个
外键配置:显示表描述、显示字段描述
生成实体、生成种子数据:默认命名空间为配置项中的第一个

高级CV工程师 2 anos atrás
pai
commit
0cd11b5e78

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs

@@ -419,7 +419,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
                 Type = MenuTypeEnum.Dir,
                 Icon = "robot",
                 Path = "/" + className.ToLower(),
-                Component = "LAYOUT",
+                Component = "Layout",
             };
             // 若先前存在则删除本级和下级
             var menuList0 = await _db.Queryable<SysMenu>().Where(u => u.Title == menuType0.Title && u.Type == menuType0.Type).ToListAsync();

+ 4 - 4
Web/src/views/system/codeGen/component/editCodeGenDialog.vue

@@ -46,7 +46,7 @@
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
 						<el-form-item label="生成表" prop="tableName" :rules="[{ required: true, message: '生成表不能为空', trigger: 'blur' }]">
 							<el-select v-model="state.ruleForm.tableName" @change="tableChanged" value-key="value" filterable clearable class="w100">
-								<el-option v-for="item in state.tableData" :key="item.entityName" :label="item.entityName + ' ( ' + item.tableName + ' )'" :value="item" />
+								<el-option v-for="item in state.tableData" :key="item.entityName" :label="item.entityName + ' ( ' + item.tableName + ' )' + item.tableComment" :value="item" />
 							</el-select>
 						</el-form-item>
 					</el-col>
@@ -76,7 +76,7 @@
 						<el-form-item label="命名空间" prop="nameSpace" :rules="[{ required: true, message: '请选择命名空间', trigger: 'blur' }]">
 							<!-- <el-input v-model="state.ruleForm.nameSpace" clearable placeholder="请输入" /> -->
 							<el-select v-model="state.ruleForm.nameSpace" filterable clearable class="w100" placeholder="命名空间">
-								<el-option v-for="(item,index) in props.applicationNamespaces" :key="index" :label="item" :value="item" />
+								<el-option v-for="(item, index) in props.applicationNamespaces" :key="index" :label="item" :value="item" />
 							</el-select>
 						</el-form-item>
 					</el-col>
@@ -134,7 +134,7 @@ const ruleFormRef = ref();
 const state = reactive({
 	isShowDialog: false,
 	ruleForm: {} as UpdateCodeGenInput,
-	tableData: [] as any,	
+	tableData: [] as any,
 	dbData: [] as any,
 	menuData: [] as Array<SysMenu>,
 	codeGenTypeList: [] as any,
@@ -171,7 +171,7 @@ const dbChanged = async () => {
 };
 
 // table改变
-const tableChanged = (item: any) => {	
+const tableChanged = (item: any) => {
 	state.ruleForm.tableName = item.entityName;
 	state.ruleForm.busName = item.tableComment;
 };

+ 2 - 2
Web/src/views/system/codeGen/component/fkDialog.vue

@@ -19,14 +19,14 @@
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
 						<el-form-item label="数据库表" prop="tableName">
 							<el-select v-model="state.ruleForm.tableName" filterable clearable @change="TableChanged()" class="w100">
-								<el-option v-for="item in state.tableData" :key="item.entityName" :label="item.entityName + ' ( ' + item.tableName + ' )'" :value="item.tableName" />
+								<el-option v-for="item in state.tableData" :key="item.entityName" :label="item.entityName + ' ( ' + item.tableName + ' )' + item.tableComment" :value="item.tableName" />
 							</el-select>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
 						<el-form-item label="显示字段" prop="columnName">
 							<el-select v-model="state.ruleForm.columnName" class="w100">
-								<el-option v-for="item in state.columnData" :key="item.columnName" :label="item.columnName" :value="item.columnName" />
+								<el-option v-for="item in state.columnData" :key="item.columnName" :label="item.columnName + ' ' + item.columnComment" :value="item.columnName" />
 							</el-select>
 						</el-form-item>
 					</el-col>

+ 1 - 1
Web/src/views/system/codeGen/index.vue

@@ -143,7 +143,7 @@ const handleCurrentChange = (val: number) => {
 // 打开表增加页面
 const openAddDialog = () => {
 	state.editMenuTitle = '增加';
-	EditCodeGenRef.value?.openDialog({ authorName: 'Admin.NET', generateType: '200' });
+	EditCodeGenRef.value?.openDialog({ authorName: 'Admin.NET', generateType: '200', nameSpace: state.applicationNamespaces[0] });
 };
 
 // 打开表编辑页面

+ 3 - 2
Web/src/views/system/database/component/genEntity.vue

@@ -30,7 +30,7 @@
 						<el-form-item label="存放位置" prop="position">
 							<!-- <el-input v-model="state.ruleForm.position" placeholder="存放位置" clearable>Admin.NET.Application</el-input> -->
 							<el-select v-model="state.ruleForm.position" filterable clearable class="w100" placeholder="存放位置">
-								<el-option v-for="(item,index) in props.applicationNamespaces" :key="index" :label="item" :value="item" />
+								<el-option v-for="(item, index) in props.applicationNamespaces" :key="index" :label="item" :value="item" />
 							</el-select>
 						</el-form-item>
 					</el-col>
@@ -74,7 +74,8 @@ const openDialog = (row: any) => {
 	state.ruleForm.configId = row.configId;
 	state.ruleForm.tableName = row.tableName;
 	state.ruleForm.entityName = upperFirst(camelCase(row.tableName));
-	state.ruleForm.baseClassName = 'EntityBase';	
+	state.ruleForm.baseClassName = 'EntityBase';
+	state.ruleForm.position = row.position;
 	state.isShowDialog = true;
 };
 

+ 1 - 0
Web/src/views/system/database/component/genSeedData.vue

@@ -68,6 +68,7 @@ onMounted(async () => {
 const openDialog = (row: any) => {
 	state.ruleForm.configId = row.configId;
 	state.ruleForm.tableName = row.tableName;
+	state.ruleForm.position = row.position;
 	state.isShowDialog = true;
 };
 

+ 2 - 0
Web/src/views/system/database/index.vue

@@ -165,6 +165,7 @@ const openGenDialog = () => {
 	var table: any = {
 		configId: state.configId,
 		tableName: state.tableName,
+		position: state.appNamespaces[0],
 	};
 	genEntityRef.value?.openDialog(table);
 };
@@ -175,6 +176,7 @@ const openGenSeedDataDialog = () => {
 	var table: any = {
 		configId: state.configId,
 		tableName: state.tableName,
+		position: state.appNamespaces[0],
 	};
 	genSeedDataRef.value?.openDialog(table);
 };