动态增加查询配置(子查询、明细表查询)

[vue3代码]写在生成的[表.vue]文件中,[vue2代码]写在[表.jsx]文件methods方法中;二选一实现
前端增加配置
vue3代码
const onInit=($vm)=> {
gridRef=$vm;
//增加查询参数配置
searchFormOptions.push([
{"title":"名称1","field":"字段1","type":"like"},//模糊查询
{"title":"名称2","field":"字段2","type":"select",dataKey:"字典编号"},//下拉框
{"title":"名称3","field":"字段3","type":"selectList",dataKey:"字典编号"}//下拉框多选
]);
//也可以使用js的splice语法将查询配置放在表单任意位置,如:放在查询表单第1行,第2个配置后面
// searchFormOptions[1].splice(2,0,...[{查询配置},{}])//注意有三个...
//要是看不懂什么意思,搜js的splice语法
//增加查询字段默认值
searchFormFields.字段1=null;
searchFormFields.字段2=null;
searchFormFields.字段3=[];//注意下拉框多选,日期等多个值的这里默认应该是数组
}
vue2代码
onInit() {
//增加查询参数配置
this.searchFormOptions.push([
{"title":"名称1","field":"字段1","type":"like"},//模糊查询
{"title":"名称2","field":"字段2","type":"select",dataKey:"字典编号"},//下拉框
{"title":"名称3","field":"字段3","type":"selectList",dataKey:"字典编号"}//下拉框多选
]);
//也可以使用js的splice语法将查询配置放在表单任意位置,如:放在查询表单第1行,第2个配置后面
// this.searchFormOptions[1].splice(2,0,...[{查询配置},{}])//注意有三个...
//要是看不懂什么意思,搜js的splice语法
//增加查询字段默认值
this.searchFormFields.字段1=null;
this.searchFormFields.字段2=null;
this.searchFormFields.字段3=[];//注意下拉框多选,日期等多个值的这里默认应该是数组
}
后台自定义查询(子查询)
//重写【表Service.cs】的查询方法实现
public override PageGridData<表> GetPageData(PageDataOptions pageData)
{
QueryRelativeList = (List<SearchParameters> parameters) =>
{
//设置查询条件
QueryRelativeExpression = (IQueryable<表> queryable) =>
{
string value1 = parameters.Where(x => x.Name == "字段1").Select(s => s.Value).FirstOrDefault();
//EF版查询
if (!string.IsNullOrEmpty(value1))
{
//自定义查询
//queryable= queryable.Where(x => 条件);
//明细表查询:关联其他表或者子表查询
//var subQuery = repository.DbContext.Set<其他表>().Where(x => true);
////进行子查询
//queryable = queryable.Any(c => subQuery.Any(x => x.字段 == c字段 && 接着写条件));
}
//sqlsugar后台查询
if (!string.IsNullOrEmpty(value1))
{
//自定义查询
//queryable= queryable.Where(x => 条件);
//明细表查询:关联其他表或者子表查询
//queryable = queryable.Any(c => SqlFunc.Subqueryable<其他表>().Any(x =>x.字段==c字段&&条件).Any());
}
//其他自定义字段操作同上
//string value2 = parameters.Where(x => x.Name == "字段2").Select(s => s.Value).FirstOrDefault();
return queryable;
};
// 后台查询更多说明:http://doc.volcore.xyz/dev/后台基础代码扩展实现.html#查询
};
return base.GetPageData(pageData);
}