vxe-gird前端日期段查询,通过手工sql是有数据,但是在前端无数据。
前端查询的时候,日期是返回这种数组:
["2023-11-01 20:00:00","2023-11-02 20:00:00"]
1、那么有二种方式,一直是直接传给服务端,由服务端去处理。
@RequestParam(value = "createDate[]", required = false) String[] createDates 用这种形式放到controller的参数列表里就可以。
2、前端处理好了,传给后端,然后返回。
查询方法中的参数,
let createDate_b = form.createDates != null ? form.createDates[0].toString().replace(/\"/g, '') : null;
let createDate_e = form.createDates != null ? form.createDates[1].toString().replace(/\"/g, '') : null;
然后
参数中处理如下:
createDate_b: dayjs(new Date(createDate_b)).format('YYYY-MM-DD HH:mm:ss'), createDate_e: dayjs(new Date(createDate_e)).format('YYYY-MM-DD HH:mm:ss'),
这样参数的格式就正常了。
分析下具体的原因:
表面看参数是对的,但实际上,其实参数二侧多了一个"",导致查询不出数据来。
正常的参数,如下,(String)前面没有双引号。
整体查询方法:
import dayjs, { Dayjs } from 'dayjs'; import weekday from 'dayjs/plugin/weekday'; import localeData from 'dayjs/plugin/localeData'; dayjs.extend(weekday); dayjs.extend(localeData);
proxyConfig: { ajax: { query: async ({ page, form }) => { let createDate_b = null; let createDate_e = null; if (form.createDates != null) { createDate_b = form.createDates != null ? form.createDates[0].toString().replace(/\"/g, '') : null; createDate_e = form.createDates != null ? form.createDates[1].toString().replace(/\"/g, '') : null; } let params = { page: page.currentPage, pageSize: page.pageSize, createDate_b: createDate_b != null ? dayjs(new Date(createDate_b)).format('YYYY-MM-DD HH:mm:ss') : null, createDate_e: createDate_e != null ? dayjs(new Date(createDate_e)).format('YYYY-MM-DD HH:mm:ss') : null, }; return getflows(params); }, queryAll: async ({ form }) => { return await getflows(form); }, }, },
道法自然