feat(search): add datetime range search functionality

- Implement datetime range search for admin controller
- Add support for datetime range in easy-admin search filter
- Update form rendering to handle datetime range input
This commit is contained in:
wolfcode
2025-08-01 17:08:46 +08:00
parent 3d652114a9
commit 71c2338086
2 changed files with 16 additions and 1 deletions

View File

@@ -208,6 +208,11 @@ class AdminController extends BaseController
$where[] = [$key, '>=', strtotime($beginTime)];
$where[] = [$key, '<=', strtotime($endTime)];
break;
case 'datetime':
[$beginTime, $endTime] = explode(' - ', $val);
$where[] = [$key, '>=', $beginTime];
$where[] = [$key, '<=', $endTime];
break;
default:
$where[] = [$key, $op, "%{$val}"];
}

View File

@@ -432,6 +432,16 @@ define(["jquery", "tableSelect", "switchSelect", "miniTheme", "xmSelect", "lazyl
</div>
</div>`
break;
case 'datetime':
// 适用于日期格式yyyy-MM-dd HH:mm:ss
d.searchOp = 'datetime';
formHtml += '<div class="layui-form-item layui-inline">\n' +
'<label class="layui-form-label">' + d.title + '</label>\n' +
'<div class="layui-input-inline">\n' +
'<input style="width: 275px;font-size: 0.82rem" id="c-' + d.fieldAlias + '" name="' + d.fieldAlias + '" data-search-op="' + d.searchOp + '" value="' + d.searchValue + '" placeholder="' + d.searchTip + '" class="layui-input">\n' +
'</div>\n' +
'</div>';
break;
}
newCols.push(d);
}
@@ -464,7 +474,7 @@ define(["jquery", "tableSelect", "switchSelect", "miniTheme", "xmSelect", "lazyl
})
form.render();
$.each(newCols, function (ncI, ncV) {
if (ncV.search === 'range') {
if (ncV.search === 'range' || ncV.search === 'datetime') {
laydate.render({
range: true, type: ncV.timeType, elem: '[name="' + ncV.fieldAlias + '"]', rangeLinked: true,
shortcuts: getRangeShortcuts()