瀏覽代碼

!1091 生成代码时可设置是否生成菜单
Merge pull request !1091 from KaneLeung/next

zuohuaijun 1 年之前
父節點
當前提交
98fe4c333c

+ 7 - 1
Admin.NET/Admin.NET.Core/Entity/SysCodeGen.cs

@@ -86,10 +86,16 @@ public partial class SysCodeGen : EntityBase
     public string? BusName { get; set; }
 
     /// <summary>
+    /// 是否生成菜单
+    /// </summary>
+    [SugarColumn(ColumnDescription = "是否生成菜单")]
+    public bool GenerateMenu { get; set; } = true;
+
+    /// <summary>
     /// 菜单编码
     /// </summary>
     [SugarColumn(ColumnDescription = "菜单编码")]
-    public long MenuPid { get; set; }
+    public long? MenuPid { get; set; }
 
     /// <summary>
     /// 支持打印类型

+ 9 - 4
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenInput.cs

@@ -77,9 +77,14 @@ public class CodeGenInput : BasePageInput
     public virtual string MenuApplication { get; set; }
 
     /// <summary>
+    /// 是否生成菜单
+    /// </summary>
+    public virtual bool GenerateMenu { get; set; }
+
+    /// <summary>
     /// 菜单父级
     /// </summary>
-    public virtual long MenuPid { get; set; }
+    public virtual long? MenuPid { get; set; }
 
     /// <summary>
     /// 支持打印类型
@@ -143,10 +148,10 @@ public class AddCodeGenInput : CodeGenInput
     //public override string TableComment { get; set; }
 
     /// <summary>
-    /// 菜单父级
+    /// 是否生成菜单
     /// </summary>
-    [Required(ErrorMessage = "菜单父级不能为空")]
-    public override long MenuPid { get; set; }
+    [Required(ErrorMessage = "是否生成菜单不能为空")]
+    public override bool GenerateMenu { get; set; }
 }
 
 public class DeleteCodeGenInput

+ 6 - 1
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenOutput.cs

@@ -62,9 +62,14 @@ public class CodeGenOutput
     public string MenuApplication { get; set; }
 
     /// <summary>
+    /// 是否生成菜单
+    /// </summary>
+    public bool GenerateMenu { get; set; }
+
+    /// <summary>
     /// 菜单父级
     /// </summary>
-    public long MenuPid { get; set; }
+    public long? MenuPid { get; set; }
 
     /// <summary>
     /// 支持打印类型

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

@@ -360,8 +360,8 @@ public class SysCodeGenService : IDynamicApiController, ITransient
                 Directory.CreateDirectory(dirPath);
             File.WriteAllText(targetPathList[i], tResult, Encoding.UTF8);
         }
-
-        await AddMenu(input.TableName, input.BusName, input.MenuPid, tableFieldList);
+        if (input.GenerateMenu)
+            await AddMenu(input.TableName, input.BusName, input.MenuPid ?? 0, tableFieldList);
         // 非ZIP压缩返回空
         if (!input.GenerateType.StartsWith('1'))
             return null;

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

@@ -34,6 +34,15 @@
 								<el-option label="HG" :value="'12'" />
 								<el-option label="ClickHouse" :value="'13'" />
 								<el-option label="GBase" :value="'14'" />
+								<el-option label="Odbc" :value="'15'" />
+								<el-option label="OceanBaseForOracle" :value="'16'" />
+								<el-option label="TDengine" :value="'17'" />
+								<el-option label="GaussDB" :value="'18'" />
+								<el-option label="OceanBase" :value="'19'" />
+								<el-option label="Tidb" :value="'20'" />
+								<el-option label="Vastbase" :value="'21'" />
+								<el-option label="PolarDB" :value="'22'" />
+								<el-option label="Doris" :value="'23'" />
 								<el-option label="Custom" :value="'900'" />
 							</el-select>
 						</el-form-item>
@@ -56,11 +65,20 @@
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="生成菜单" prop="generateMenu">
+							<el-radio-group v-model="state.ruleForm.generateMenu">
+								<el-radio :value="true">是</el-radio>
+								<el-radio :value="false">否</el-radio>
+							</el-radio-group>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
 						<el-form-item label="父级菜单" prop="menuPid">
 							<el-cascader
 								:options="state.menuData"
 								:props="{ checkStrictly: true, emitPath: false, value: 'id', label: 'title' }"
 								placeholder="请选择上级菜单"
+								:disabled="!state.ruleForm.generateMenu"
 								clearable
 								class="w100"
 								v-model="state.ruleForm.menuPid"
@@ -214,3 +232,9 @@ const submit = () => {
 // 导出对象
 defineExpose({ openDialog });
 </script>
+
+<style lang="scss" scoped>
+:deep(.el-dialog__body) {
+	min-height: 450px;
+}
+</style>

+ 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', nameSpace: state.applicationNamespaces[0] });
+	EditCodeGenRef.value?.openDialog({ authorName: 'Admin.NET', generateType: '200', nameSpace: state.applicationNamespaces[0], generateMenu: true });
 };
 
 // 打开表编辑页面

+ 9 - 0
Web/src/views/system/tenant/component/editTenant.vue

@@ -65,6 +65,15 @@
 								<el-option label="HG" :value="12" />
 								<el-option label="ClickHouse" :value="13" />
 								<el-option label="GBase" :value="14" />
+								<el-option label="Odbc" :value="'15'" />
+								<el-option label="OceanBaseForOracle" :value="'16'" />
+								<el-option label="TDengine" :value="'17'" />
+								<el-option label="GaussDB" :value="'18'" />
+								<el-option label="OceanBase" :value="'19'" />
+								<el-option label="Tidb" :value="'20'" />
+								<el-option label="Vastbase" :value="'21'" />
+								<el-option label="PolarDB" :value="'22'" />
+								<el-option label="Doris" :value="'23'" />
 								<el-option label="Custom" :value="900" />
 							</el-select>
 						</el-form-item>

+ 9 - 0
Web/src/views/system/tenant/index.vue

@@ -56,6 +56,15 @@
 						<el-tag v-else-if="scope.row.dbType === 12"> HG </el-tag>
 						<el-tag v-else-if="scope.row.dbType === 13"> ClickHouse </el-tag>
 						<el-tag v-else-if="scope.row.dbType === 14"> GBase </el-tag>
+						<el-tag v-else-if="scope.row.dbType === 15"> Odbc </el-tag>
+						<el-tag v-else-if="scope.row.dbType === 16"> OceanBaseForOracle </el-tag>
+						<el-tag v-else-if="scope.row.dbType === 17"> TDengine </el-tag>
+						<el-tag v-else-if="scope.row.dbType === 18"> GaussDB </el-tag>
+						<el-tag v-else-if="scope.row.dbType === 19"> OceanBase </el-tag>
+						<el-tag v-else-if="scope.row.dbType === 20"> Tidb </el-tag>
+						<el-tag v-else-if="scope.row.dbType === 21"> Vastbase </el-tag>
+						<el-tag v-else-if="scope.row.dbType === 22"> PolarDB </el-tag>
+						<el-tag v-else-if="scope.row.dbType === 23"> Doris </el-tag>
 						<el-tag v-else-if="scope.row.dbType === 900"> Custom </el-tag>
 					</template>
 				</el-table-column>