Selaa lähdekoodia

1、生成的查询界面加入SearchKey条件,对所有支持模糊查询的字段进行查询,有效减少查询界面中的元素。

yzp 2 vuotta sitten
vanhempi
commit
6e59e05d4b

+ 45 - 26
Admin.NET/Admin.NET.Web.Entry/wwwroot/Template/Service.cs.vm

@@ -1,6 +1,14 @@
 using @(@Model.NameSpace).Const;
-@{string joinTableName = "u";}
-@{Dictionary<string, int> definedObjects = new Dictionary<string, int>();}
+@{
+    string joinTableName = "u";
+    Dictionary<string, int> definedObjects = new Dictionary<string, int>();
+    bool haveLikeCdt = false;
+    foreach (var column in Model.TableField){
+        if (column.QueryWhether == "Y" && column.QueryType == "like"){
+            haveLikeCdt = true;
+        }
+    }
+}
 namespace @Model.NameSpace;
 /// <summary>
 /// @(@Model.BusName)服务
@@ -24,50 +32,61 @@ public class @(@Model.ClassName)Service : IDynamicApiController, ITransient
     public async Task<SqlSugarPagedList<@(@Model.ClassName)Output>> Page(@(@Model.ClassName)Input input)
     {
         var query= _rep.AsQueryable()
+@{string conditionFlag = "";}
+@if (haveLikeCdt) {
+            @:.WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
+    @foreach (var column in Model.TableField){
+        if (@column.QueryWhether == "Y" && column.QueryType == "like"){
+                @:@(conditionFlag)u.@(@column.PropertyName).Contains(input.SearchKey.Trim())
+            conditionFlag="|| ";
+        }
+    }
+            @:)
+}
 @foreach (var column in Model.TableField){
 if (@column.QueryWhether == "Y"){
     if (@column.NetType?.TrimEnd('?') == "string"){
         if(@column.QueryType == "like"){
-                    @:.WhereIF(!string.IsNullOrWhiteSpace(input.@column.PropertyName), u => u.@(@column.PropertyName).Contains(input.@(@column.PropertyName).Trim()))
+            @:.WhereIF(!string.IsNullOrWhiteSpace(input.@column.PropertyName), u => u.@(@column.PropertyName).Contains(input.@(@column.PropertyName).Trim()))
         }else{
-                    @:.WhereIF(!string.IsNullOrWhiteSpace(input.@column.PropertyName), u => u.@(@column.PropertyName) @column.QueryType input.@(@column.PropertyName))
+            @:.WhereIF(!string.IsNullOrWhiteSpace(input.@column.PropertyName), u => u.@(@column.PropertyName) @column.QueryType input.@(@column.PropertyName))
         }
     }else if(@column.NetType?.TrimEnd('?') == "int" || @column.NetType?.TrimEnd('?') == "long"){
-                    @:.WhereIF(input.@column.PropertyName>0, u => u.@(@column.PropertyName) @column.QueryType input.@(@column.PropertyName))
+            @:.WhereIF(input.@column.PropertyName>0, u => u.@(@column.PropertyName) @column.QueryType input.@(@column.PropertyName))
     }else if(@column.NetType?.TrimEnd('?') == "DateTime" && @column.QueryType == "~"){
     }
 } 
 }
 @if(Model.IsJoinTable){
-                    @://处理外键和TreeSelector相关字段的连接
+            @://处理外键和TreeSelector相关字段的连接
     @foreach (var column in Model.TableField){
         if(@column.EffectType == "fk"){
             joinTableName += ", " + column.PropertyName.ToLower();
-                    @:.LeftJoin<@(@column.FkEntityName)>((@(@joinTableName)) => u.@(@column.PropertyName) == @(@column.PropertyName.ToLower()).Id )
+            @:.LeftJoin<@(@column.FkEntityName)>((@(@joinTableName)) => u.@(@column.PropertyName) == @(@column.PropertyName.ToLower()).Id )
         } else if(@column.EffectType == "ApiTreeSelect"){
             joinTableName += ", " + column.PropertyName.ToLower();
-                    @:.LeftJoin<@(@column.FkEntityName)>((@(@joinTableName)) => u.@(@column.PropertyName) == @(@column.PropertyName.ToLower()).@(@column.ValueColumn) )
+            @:.LeftJoin<@(@column.FkEntityName)>((@(@joinTableName)) => u.@(@column.PropertyName) == @(@column.PropertyName.ToLower()).@(@column.ValueColumn) )
         }
     }
-                    @:.Select((@(@joinTableName))=> new @(@Model.ClassName)Output{
+            @:.Select((@(@joinTableName))=> new @(@Model.ClassName)Output{
 @foreach (var column in Model.TableField){
-                        @:@(@column.PropertyName) = u.@(@column.PropertyName), 
-                        if(@column.EffectType == "fk"){   
-                        @:@(@column.PropertyName)@(@column.FkColumnName) = @(@column.PropertyName.ToLower()).@(@column.FkColumnName),
-                        } else if(@column.EffectType == "ApiTreeSelect"){   
-                        @:@(@column.PropertyName)@(@column.DisplayColumn) = @(@column.PropertyName.ToLower()).@(@column.DisplayColumn),
-                        }
-}
-                    @:})
+                @:@(@column.PropertyName) = u.@(@column.PropertyName), 
+                if(@column.EffectType == "fk"){   
+                @:@(@column.PropertyName)@(@column.FkColumnName) = @(@column.PropertyName.ToLower()).@(@column.FkColumnName),
+                } else if(@column.EffectType == "ApiTreeSelect"){   
+                @:@(@column.PropertyName)@(@column.DisplayColumn) = @(@column.PropertyName.ToLower()).@(@column.DisplayColumn),
+                }
+}
+            @:})
 @foreach (var column in Model.TableField){
     if(@column.EffectType == "fk"){   
  
     }else if(@column.EffectType == "Upload"){
-                    @://.Mapper(c => c.@(@column.PropertyName)Attachment, c => c.@(@column.PropertyName))
+            @://.Mapper(c => c.@(@column.PropertyName)Attachment, c => c.@(@column.PropertyName))
     }
 }
 } else {
-                    @:.Select<@(@Model.ClassName)Output>()
+            @:.Select<@(@Model.ClassName)Output>()
 }
 ;
 @foreach (var column in Model.TableField){
@@ -75,13 +94,13 @@ if (@column.QueryWhether == "Y"){
     if(@column.NetType?.TrimEnd('?') == "DateTime" && @column.QueryType == "~"){
         @:if(input.@(@column.PropertyName)Range != null && input.@(@column.PropertyName)Range.Count >0)
         @:{
-                @:DateTime? start= input.@(@column.PropertyName)Range[0]; 
-                @:query = query.WhereIF(start.HasValue, u => u.@column.PropertyName > start);
-                @:if (input.@(@column.PropertyName)Range.Count >1 && input.@(@column.PropertyName)Range[1].HasValue)
-                @:{
-                    @:var end = input.@(@column.PropertyName)Range[1].Value.AddDays(1);
-                    @:query = query.Where(u => u.@(@column.PropertyName) < end);
-                @:}
+            @:DateTime? start= input.@(@column.PropertyName)Range[0]; 
+            @:query = query.WhereIF(start.HasValue, u => u.@column.PropertyName > start);
+            @:if (input.@(@column.PropertyName)Range.Count >1 && input.@(@column.PropertyName)Range[1].HasValue)
+            @:{
+                @:var end = input.@(@column.PropertyName)Range[1].Value.AddDays(1);
+                @:query = query.Where(u => u.@(@column.PropertyName) < end);
+            @:}
         @:} 
     }
 }

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

@@ -1,10 +1,25 @@
-@{var pkField = Model.TableField.Where(c => c.ColumnKey == "True").FirstOrDefault();}
-@{string pkFieldName = LowerFirstLetter(pkField.PropertyName);}
+@{
+  var pkField = Model.TableField.Where(c => c.ColumnKey == "True").FirstOrDefault();
+  string pkFieldName = LowerFirstLetter(pkField.PropertyName);
+  Dictionary<string, int> definedObjects = new Dictionary<string, int>();
+  bool haveLikeCdt = false;
+  foreach (var column in Model.TableField){
+      if (column.QueryWhether == "Y" && column.QueryType == "like"){
+          haveLikeCdt = true;
+      }
+  }
+}
 <template>
   <div class="@(@Model.LowerClassName)-container">
     <el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
       @if(Model.QueryWhetherList.Count > 0){
       @:<el-form :model="queryParams" ref="queryForm" :inline="true">
+        @if(haveLikeCdt){
+        @:<el-form-item label="关键字">
+          @:<el-input v-model="queryParams.searchKey" clearable="" placeholder="请输入模糊查询关键字"/>
+          @:
+        </el-form-item>
+        }
         foreach (var column in Model.QueryWhetherList){
         if(@column.EffectType == "Input" || @column.EffectType == "InputTextArea"){
         @:<el-form-item label="@column.ColumnComment">