jeecg-boot框架用代码生成器生成的表单业务列表,查询结构默认用create_time字段排序。在jeecg-boot中,系统默认每一张表都具备create_by create_time update_by update time 字段。所以在前端的JeecgListMixin.js文件中就直接定义了排序参数:

    1. /* 排序参数 */
    2. isorter:{
    3. column: 'createTime',
    4. order: 'desc',
    5. },

    然后在获取查询参数的时候直接使用了isorter

    1. getQueryParams() {
    2. //获取查询条件
    3. let sqp = {}
    4. if(this.superQueryParams){
    5. sqp['superQueryParams']=encodeURI(this.superQueryParams)
    6. sqp['superQueryMatchType'] = this.superQueryMatchType
    7. }
    8. //下面一行直接使用了 this.isorter
    9. var param = Object.assign(sqp, this.queryParam, this.isorter ,this.filters);
    10. param.field = this.getQueryField();
    11. param.pageNo = this.ipagination.current;
    12. param.pageSize = this.ipagination.pageSize;
    13. return filterObj(param);
    14. },

    最终后端组合成的sql语句中会包含 order by create_time desc

    这种处理方式会导致查询没有create_time字段的表会报异常。修改方法也很简单,重写一个JeecgListMixin文件,比如叫JeecgListMixinForMe.js,复制JeecgListMixin的内容,修改其中的getQueryParams方法

    1. getQueryParams() {
    2. //获取查询条件
    3. let sqp = {}
    4. if(this.superQueryParams){
    5. sqp['superQueryParams']=encodeURI(this.superQueryParams)
    6. sqp['superQueryMatchType'] = this.superQueryMatchType
    7. }
    8. //下面一行直接使用了 this.isorter
    9. var param = Object.assign(sqp, this.queryParam, {} ,this.filters);
    10. param.field = this.getQueryField();
    11. param.pageNo = this.ipagination.current;
    12. param.pageSize = this.ipagination.pageSize;
    13. return filterObj(param);
    14. },

    把this.isorter设置成空值。这样就不会执行order by 。但是这同时也会让list中的点击表头列名排序的功能失效。
    要想页面表格初始化数据的时候不按照create_time排序,同时又不丢失根据表头字段排序的功能,可以修改成这样:

    1. /* 排序参数 */
    2. isorter:{
    3. column: '',
    4. order: '',
    5. },

    同时,getQueryParams函数中恢复原样

    1. //下面一行直接使用了 this.isorter
    2. var param = Object.assign(sqp, this.queryParam, this.isorter ,this.filters);

    将自己的组件文件修改成import JeecgListMixinForMe

    1. import '@/assets/less/TableExpand.less'
    2. import { mixinDevice } from '@/utils/mixin'
    3. import { JeecgListMixin } from '@/mixins/JeecgListMixinForEfence'

    更多的修改自定义还可以结合后端代码,主要是org.jeecg.common.system.query.QueryGenerator中的doMultiFieldsOrder()方法。