From 71c23380861a24ab097dbb43470cc68ee2d2f169 Mon Sep 17 00:00:00 2001 From: wolfcode Date: Fri, 1 Aug 2025 17:08:46 +0800 Subject: [PATCH] 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 --- app/common/controller/AdminController.php | 5 +++++ public/static/plugs/easy-admin/easy-admin.js | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/common/controller/AdminController.php b/app/common/controller/AdminController.php index 01d0d5a..906e5f4 100644 --- a/app/common/controller/AdminController.php +++ b/app/common/controller/AdminController.php @@ -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}"]; } diff --git a/public/static/plugs/easy-admin/easy-admin.js b/public/static/plugs/easy-admin/easy-admin.js index b0c9494..30c778b 100644 --- a/public/static/plugs/easy-admin/easy-admin.js +++ b/public/static/plugs/easy-admin/easy-admin.js @@ -432,6 +432,16 @@ define(["jquery", "tableSelect", "switchSelect", "miniTheme", "xmSelect", "lazyl ` break; + case 'datetime': + // 适用于日期格式:yyyy-MM-dd HH:mm:ss + d.searchOp = 'datetime'; + formHtml += '
\n' + + '\n' + + '
\n' + + '\n' + + '
\n' + + '
'; + 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()