Просмотр исходного кода

Bug:多个TreeSelector控件如果使用同一个Entity,生成的函数会重名,已经模板中加入了已定义对象的判断方法。

yzp 3 лет назад
Родитель
Сommit
15fd6bab37

+ 6 - 3
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/Manage.js.vm

@@ -1,4 +1,5 @@
-import request from '/@@/utils/request';
+@{Dictionary<string, int> definedObjects = new Dictionary<string, int>();}
+import request from '/@@/utils/request';
 enum Api {
   Add@(@Model.ClassName) = '/api/@(@Model.LowerClassName)/add',
   Delete@(@Model.ClassName) = '/api/@(@Model.LowerClassName)/delete',
@@ -7,7 +8,8 @@ enum Api {
   @foreach (var column in Model.TableField){
 if(@column.EffectType == "fk"){
   @:Get@(@column.FkEntityName)@(@column.ColumnName)Dropdown = '/api/@(@Model.LowerClassName)/@(@column.FkEntityName)@(@column.ColumnName)Dropdown',
-}else if(@column.EffectType == "ApiTreeSelect"){
+}else if(@column.EffectType == "ApiTreeSelect" && !definedObjects.ContainsKey("Get@(@column.FkEntityName)Tree")){
+  @{definedObjects.Add("Get@(@column.FkEntityName)Tree", 1);}
   @:Get@(@column.FkEntityName)Tree = '/@(@Model.LowerClassName)/@(@column.FkEntityName)Tree',
 }else if(@column.EffectType == "Upload"){
   @:Upload@(@column.ColumnName) = '/api/@(@Model.LowerClassName)/Upload@(@column.ColumnName)',
@@ -54,7 +56,8 @@ export const page@(@Model.ClassName) = (params?: any) =>
 		@:url: Api.Get@(@column.FkEntityName)@(@column.ColumnName)Dropdown,
 		@:method: 'get'
 		@:});
-	}else if(@column.EffectType == "ApiTreeSelect"){
+	}else if(@column.EffectType == "ApiTreeSelect" && !definedObjects.ContainsKey("get@(@column.FkEntityName)Tree")){
+		@{definedObjects.Add("get@(@column.FkEntityName)Tree", 1);}
 @:export const get@(@column.FkEntityName)Tree = () =>
 		@:request({
 		@:url: Api.Get@(@column.FkEntityName)Tree,

+ 9 - 8
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/Service.cs.vm

@@ -1,5 +1,6 @@
 using @(@Model.NameSpace).Const;
-
+@{string joinTableName = "u";}
+@{Dictionary<string, int> definedObjects = new Dictionary<string, int>();}
 namespace @Model.NameSpace;
 /// <summary>
 /// @(@Model.BusName)服务
@@ -37,19 +38,18 @@ if (@column.QueryWhether == "Y"){
     }
 } 
 }
-@{string tableName = "u";}
 @if(Model.IsJoinTable){
                     @://处理外键和TreeSelector相关字段的连接
     @foreach (var column in Model.TableField){
         if(@column.EffectType == "fk"){
-            tableName += ", " + column.ColumnName.ToLower();
-                    @:.LeftJoin<@(@column.FkEntityName)>((@(@tableName)) => u.@(@column.ColumnName) == @(@column.ColumnName.ToLower()).Id )
+            joinTableName += ", " + column.ColumnName.ToLower();
+                    @:.LeftJoin<@(@column.FkEntityName)>((@(@joinTableName)) => u.@(@column.ColumnName) == @(@column.ColumnName.ToLower()).Id )
         } else if(@column.EffectType == "ApiTreeSelect"){
-            tableName += ", " + column.ColumnName.ToLower();
-                    @:.LeftJoin<@(@column.FkEntityName)>((@(@tableName)) => u.@(@column.ColumnName) == @(@column.ColumnName.ToLower()).@(@column.ValueColumn) )
+            joinTableName += ", " + column.ColumnName.ToLower();
+                    @:.LeftJoin<@(@column.FkEntityName)>((@(@joinTableName)) => u.@(@column.ColumnName) == @(@column.ColumnName.ToLower()).@(@column.ValueColumn) )
         }
     }
-                    @:.Select((@(@tableName))=> new @(@Model.ClassName)Output{
+                    @:.Select((@(@joinTableName))=> new @(@Model.ClassName)Output{
 @foreach (var column in Model.TableField){
                         @:@(@column.ColumnName) = u.@(@column.ColumnName), 
                         if(@column.EffectType == "fk"){   
@@ -200,7 +200,8 @@ if(@column.EffectType == "Upload"){
 
 
 @foreach (var column in Model.TableField){
-if(@column.EffectType == "ApiTreeSelect"){
+if(@column.EffectType == "ApiTreeSelect" && !definedObjects.ContainsKey("@(@column.FkEntityName)Tree")){
+    @{definedObjects.Add("@(@column.FkEntityName)Tree", 1);}
     @:[HttpGet("/@(@Model.LowerClassName)/@(@column.FkEntityName)Tree")]
     @:public async Task<dynamic> @(@column.FkEntityName)Tree()
     @:{

+ 1 - 1
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/index.vue.vm

@@ -103,7 +103,7 @@
         </el-table-column>
         }
         else {
-        @: <el-table-column prop="@column.LowerColumnName" label="@column.ColumnComment" width="@(column.ColumnComment!=null && column.ColumnComment.Length > 5 ? column.ColumnComment.Length * 15 : 120)" fixed="" show-overflow-tooltip="" />
+        @: <el-table-column prop="@column.LowerColumnName" label="@column.ColumnComment" width="@(column.ColumnComment!=null && column.ColumnComment.Length > 5 ? column.ColumnComment.Length * 15 : 120)" show-overflow-tooltip="" />
         }
         }
         }