Jeecg前后端如何实现高级查询功能,详细文档介绍?
- 内容介绍
- 文章标签
- 相关推荐
本文共计507个文字,预计阅读时间需要3分钟。
Jeecg高级查询前端构建器,整合Vue代码在页面JSuperQuery中,下方是使用demo:
1.在合适的位置输入标签+j-super-query:fieldList=fieldList @handleSuperQuery=handleSuperQuery /
2.参数配置:参数=类型“
Jeecg高级查询前端构造器,具体Vue代码在前端页面JSuperQuery中,下方是使用demo
1.在适合的地方放入标签
<j-super-query :fieldList="fieldList" @handleSuperQuery="handleSuperQuery"/>
2.参数配置
参数 类型 必填 说明 fieldList array √ 需要查询的列集合示例如下,type类型有:date/datetime/string/int/number callback array 回调函数名称(非必须)默认handleSuperQuery3.fieldList结构示例:
fieldList:[
{
type: "string",
value: "name",
text: "姓名"
}, {
type: "date",
value: "birthday",
text: "生日"
}, {
type: "int",
value: "age",
text: "年龄"
}
]
4.页面代码概述:
//插入代码后 components
import JSuperQuery from "@comp/jeecg/JSuperQuery";
export default {
name:'testJSuperQuery',
components:{
JSuperQuery,
}
}
5.list页面data中定义属性
fieldList:[ { type: "string", value: "name", text: "姓名" }, { type: "date", value: "birthday", text: "生日" }, { type: "int", value: "age", text: "年龄" }], superQueryFlag:false, superQueryParams:"", superQueryMatchType:"",
6.list页面声明回调函数 handleSuperQuery(默认)
//官方文档中没有matchType,导致matchType进入后台无论是"and"或者是"or"都显示"and",下方是已解决方案
handleSuperQuery(arg,matchType) {
if(!arg){
this.superQueryParams=''
this.superQueryFlag = false
}else{
this.superQueryFlag = true
this.superQueryParams=JSON.stringify(arg)
this.superQueryMatchType = matchType
}
this.loadData(1)
}
7.改造list页面方法 //要分清查询是查询 高级查询是高级查询 方法不是同一个
searchQuery() { let sqp = {} if(this.superQueryParams){ sqp['superQueryParams']=encodeURI(this.superQueryParams) sqp['superQueryMatchType'] = this.superQueryMatchType //这一行是官方文档中不存在的 } var param = Object.assign(sqp, this.queryParam, this.isorter ,this.filters); param.field = this.getQueryField(); param.pageNo = this.ipagination.current; param.pageSize = this.ipagination.pageSize; return filterObj(param); //使用filterObj方法需要 import {filterObj} from "location" },
8.后台Mybatis-plus使用
//切记需使用Mybatis-plus
public Result<IPage<Entity>> superQuery(Entity entity,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {
Result<IPage<Entity>> result = new Result<>();
QueryWrapper<Entity> wrapper = QueryGenerator.initQueryWrapper(entity, req.getParameterMap());
Page<Entity> page = new Page<>(pageNo, pageSize);
Page<Entity> pageList = service.page(page, wrapper);
result.setSuccess(true);
result.setResult(pageList);
return result;
}
本文共计507个文字,预计阅读时间需要3分钟。
Jeecg高级查询前端构建器,整合Vue代码在页面JSuperQuery中,下方是使用demo:
1.在合适的位置输入标签+j-super-query:fieldList=fieldList @handleSuperQuery=handleSuperQuery /
2.参数配置:参数=类型“
Jeecg高级查询前端构造器,具体Vue代码在前端页面JSuperQuery中,下方是使用demo
1.在适合的地方放入标签
<j-super-query :fieldList="fieldList" @handleSuperQuery="handleSuperQuery"/>
2.参数配置
参数 类型 必填 说明 fieldList array √ 需要查询的列集合示例如下,type类型有:date/datetime/string/int/number callback array 回调函数名称(非必须)默认handleSuperQuery3.fieldList结构示例:
fieldList:[
{
type: "string",
value: "name",
text: "姓名"
}, {
type: "date",
value: "birthday",
text: "生日"
}, {
type: "int",
value: "age",
text: "年龄"
}
]
4.页面代码概述:
//插入代码后 components
import JSuperQuery from "@comp/jeecg/JSuperQuery";
export default {
name:'testJSuperQuery',
components:{
JSuperQuery,
}
}
5.list页面data中定义属性
fieldList:[ { type: "string", value: "name", text: "姓名" }, { type: "date", value: "birthday", text: "生日" }, { type: "int", value: "age", text: "年龄" }], superQueryFlag:false, superQueryParams:"", superQueryMatchType:"",
6.list页面声明回调函数 handleSuperQuery(默认)
//官方文档中没有matchType,导致matchType进入后台无论是"and"或者是"or"都显示"and",下方是已解决方案
handleSuperQuery(arg,matchType) {
if(!arg){
this.superQueryParams=''
this.superQueryFlag = false
}else{
this.superQueryFlag = true
this.superQueryParams=JSON.stringify(arg)
this.superQueryMatchType = matchType
}
this.loadData(1)
}
7.改造list页面方法 //要分清查询是查询 高级查询是高级查询 方法不是同一个
searchQuery() { let sqp = {} if(this.superQueryParams){ sqp['superQueryParams']=encodeURI(this.superQueryParams) sqp['superQueryMatchType'] = this.superQueryMatchType //这一行是官方文档中不存在的 } var param = Object.assign(sqp, this.queryParam, this.isorter ,this.filters); param.field = this.getQueryField(); param.pageNo = this.ipagination.current; param.pageSize = this.ipagination.pageSize; return filterObj(param); //使用filterObj方法需要 import {filterObj} from "location" },
8.后台Mybatis-plus使用
//切记需使用Mybatis-plus
public Result<IPage<Entity>> superQuery(Entity entity,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {
Result<IPage<Entity>> result = new Result<>();
QueryWrapper<Entity> wrapper = QueryGenerator.initQueryWrapper(entity, req.getParameterMap());
Page<Entity> page = new Page<>(pageNo, pageSize);
Page<Entity> pageList = service.page(page, wrapper);
result.setSuccess(true);
result.setResult(pageList);
return result;
}

