新增time_limit查询;新增number_limit查询;新增同一个字段多个搜索项;

This commit is contained in:
2022-04-27 17:35:32 +08:00
parent 48ada69be8
commit 97c991e916
4 changed files with 252 additions and 154 deletions

View File

@@ -187,7 +187,6 @@ class AdminController extends BaseController
}
$this->validateRule->failException(true)->check($data);
} else if (is_array($this->validateRule)) {
parent::validate($data, $this->validateRule, $message, $batch);
} else {
@@ -226,6 +225,13 @@ class AdminController extends BaseController
continue;
}
$op = isset($ops[$key]) && !empty($ops[$key]) ? $ops[$key] : '%*%';
if (strpos($key, '[') === 0) {
$key = str_replace('[', '', $key);
$key = explode(']', $key)[0];
}
if ($this->relationSearch && count(explode('.', $key)) == 1) {
$key = "{$tableName}.{$key}";
}
@@ -242,6 +248,18 @@ class AdminController extends BaseController
case '%*':
$where[] = [$key, 'LIKE', "%{$val}"];
break;
case 'min':
$where[] = [$key, '>=', $val];
break;
case 'max':
$where[] = [$key, '<=', $val];
break;
case 'min_date':
$where[] = [$key, '>=', strtotime($val)];
break;
case 'max_date':
$where[] = [$key, '<=', strtotime($val)];
break;
case 'range':
[$beginTime, $endTime] = explode(' - ', $val);
$where[] = [$key, '>=', strtotime($beginTime)];

View File

@@ -2,7 +2,8 @@
@import url("../../plugs/font-awesome-4.7.0/css/font-awesome.min.css");
@import url("../css/iconfont.css");
html, body {
html,
body {
height : 100%;
background: #f2f2f2;
}
@@ -96,7 +97,8 @@ html, body {
/*.layuimini-form>.layui-form-item>.layui-form-label {width:120px !important;}*/
/*.layuimini-form>.layui-form-item>.layui-input-block {margin-left:150px !important;}*/
.layuimini-form > .layui-form-item > .layui-input-block tip, .layuimini-form > .layui-form-item > .layui-inline tip {
.layuimini-form>.layui-form-item>.layui-input-block tip,
.layuimini-form>.layui-form-item>.layui-inline tip {
display : inline-block;
margin-top : 10px;
line-height: 15px;
@@ -232,7 +234,8 @@ table样式
border-color: #e6e6e6;
}
.layuimini-container .layui-table-page, .layui-table-total {
.layuimini-container .layui-table-page,
.layui-table-total {
border-width: 0px 0 0;
}
@@ -267,6 +270,7 @@ table样式
height : 32px;
padding : 2px 8px;
line-height: 1em;
font-size : 12px;
}
.form-search .layui-form-select dl {
@@ -611,3 +615,11 @@ table样式
.search-hide-item {
display: none;
}
.form-item-time-limit .layui-input-inline {
display: flex;
width : 274px;
}
.form-item-number-limit .layui-input-inline {
display: flex;
}

View File

@@ -21,7 +21,9 @@ define(["jquery", "easy-admin"], function ($, ea) {
limit: 50,
cols: [[
{ type: 'checkbox' },
{ field: 'id', title: 'id' },
{ field: 'id', title: 'id', search: 'number_limit' },
{ field: 'id', title: 'id模糊匹配', trueHide: true, fieldAlias: '[id]like' },
{ field: 'id', title: '最大id', trueHide: true, fieldAlias: '[id]max', searchOp: 'max' },
{
field: 'uid', title: 'uid', minWidth: 120,
},
@@ -36,11 +38,9 @@ define(["jquery", "easy-admin"], function ($, ea) {
var className = 'log-group log-group-' + (currentUidIndex % 2)
return '<div class="' + className + '">' + data.content + '</div>'
}
},
{ field: 'create_time', title: 'create_time', minWidth: 160 },
{ field: 'create_time', title: '记录时间', minWidth: 160, search: 'time_limit' },
{ field: 'app_name', title: 'app_name' },
{ field: 'controller_name', title: 'controller_name', },
{ field: 'action_name', title: 'action_name' },

View File

@@ -288,6 +288,14 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
// 判断是否有操作列表权限
options.cols = admin.table.renderOperat(options.cols, options.elem);
// 判断是否有操作列表权限
options.cols = admin.table.renderTrueHide(options.cols, options.elem);
// 初始化表格
var newTable = table.render(options);
@@ -363,6 +371,15 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
d.searchOp = d.searchOp || '%*%';
d.timeType = d.timeType || 'datetime';
d.elemIdName = d.fieldAlias;
if (typeof d.fieldAlias == 'string' && d.fieldAlias.indexOf('[') == 0) {
var fieldPlusArr = d.fieldAlias.replace('[').split(']');
d.elemIdName = fieldPlusArr.join('-')
}
if (d.defaultSearchValue.length > 0) {
if (d.searchValue.length == 0) {
d.searchValue = d.defaultSearchValue;
@@ -385,7 +402,7 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
formHtml += '\t<div class="layui-form-item layui-inline ' + formSearchHideClass + ' ">\n' +
'<label class="layui-form-label">' + d.title + '</label>\n' +
'<div class="layui-input-inline">\n' +
'<input id="c-' + d.fieldAlias + '" name="' + d.fieldAlias + '" data-search-op="' + d.searchOp + '" value="' + d.searchValue + '" placeholder="' + d.searchTip + '" class="layui-input">\n' +
'<input id="c-' + d.elemIdName + '" name="' + d.fieldAlias + '" data-search-op="' + d.searchOp + '" value="' + d.searchValue + '" placeholder="' + d.searchTip + '" class="layui-input">\n' +
'</div>\n' +
'</div>';
break;
@@ -403,7 +420,7 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
formHtml += '\t<div class="layui-form-item layui-inline ' + formSearchHideClass + ' ">\n' +
'<label class="layui-form-label">' + d.title + '</label>\n' +
'<div class="layui-input-inline">\n' +
'<select class="layui-select" id="c-' + d.fieldAlias + '" name="' + d.fieldAlias + '" data-search-op="' + d.searchOp + '" >\n' +
'<select class="layui-select" id="c-' + d.elemIdName + '" name="' + d.fieldAlias + '" data-search-op="' + d.searchOp + '" >\n' +
'<option value="">- 全部 -</option> \n' +
selectHtml +
'</select>\n' +
@@ -415,7 +432,7 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
formHtml += '\t<div class="layui-form-item layui-inline ' + formSearchHideClass + ' ">\n' +
'<label class="layui-form-label">' + d.title + '</label>\n' +
'<div class="layui-input-inline">\n' +
'<input id="c-' + d.fieldAlias + '" name="' + d.fieldAlias + '" data-search-op="' + d.searchOp + '" value="' + d.searchValue + '" placeholder="' + d.searchTip + '" class="layui-input">\n' +
'<input id="c-' + d.elemIdName + '" name="' + d.fieldAlias + '" data-search-op="' + d.searchOp + '" value="' + d.searchValue + '" placeholder="' + d.searchTip + '" class="layui-input">\n' +
'</div>\n' +
'</div>';
break;
@@ -424,7 +441,27 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
formHtml += '\t<div class="layui-form-item layui-inline ' + formSearchHideClass + ' ">\n' +
'<label class="layui-form-label">' + d.title + '</label>\n' +
'<div class="layui-input-inline">\n' +
'<input id="c-' + d.fieldAlias + '" name="' + d.fieldAlias + '" data-search-op="' + d.searchOp + '" value="' + d.searchValue + '" placeholder="' + d.searchTip + '" class="layui-input">\n' +
'<input id="c-' + d.elemIdName + '" name="' + d.fieldAlias + '" data-search-op="' + d.searchOp + '" value="' + d.searchValue + '" placeholder="' + d.searchTip + '" class="layui-input">\n' +
'</div>\n' +
'</div>';
break;
case 'time_limit':
d.searchOp = '=';
formHtml += '\t<div class="layui-form-item form-item-time-limit layui-inline ' + formSearchHideClass + ' ">\n' +
'<label class="layui-form-label">' + d.title + '</label>\n' +
'<div class="layui-input-inline">\n' +
'<input id="c-' + d.elemIdName + '-min_date" name="[' + d.fieldAlias + ']min_date" data-search-op="min_date" value="' + d.searchValue + '" placeholder="' + d.searchTip + '最小值" class="layui-input">\n' +
'<input id="c-' + d.elemIdName + '-max_date" name="[' + d.fieldAlias + ']max_date" data-search-op="max_date" value="' + d.searchValue + '" placeholder="' + d.searchTip + '最大值" class="layui-input">\n' +
'</div>\n' +
'</div>';
break;
case 'number_limit':
d.searchOp = '=';
formHtml += '\t<div class="layui-form-item form-item-number-limit layui-inline ' + formSearchHideClass + ' ">\n' +
'<label class="layui-form-label">' + d.title + '</label>\n' +
'<div class="layui-input-inline">\n' +
'<input id="c-' + d.elemIdName + '-min" name="[' + d.fieldAlias + ']min" data-search-op="min" type="text" value="' + d.searchValue + '" placeholder="' + d.searchTip + '最小值" class="layui-input">\n' +
'<input id="c-' + d.elemIdName + '-max" name="[' + d.fieldAlias + ']max" data-search-op="max" type="text" value="' + d.searchValue + '" placeholder="' + d.searchTip + '最大值" class="layui-input">\n' +
'</div>\n' +
'</div>';
break;
@@ -456,6 +493,10 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
if (ncV.search === 'time') {
laydate.render({ type: ncV.timeType, elem: '[name="' + ncV.fieldAlias + '"]' });
}
if (ncV.search === 'time_limit') {
laydate.render({ type: ncV.timeType, elem: '[name="[' + ncV.fieldAlias + ']min_date"]' });
laydate.render({ type: ncV.timeType, elem: '[name="[' + ncV.fieldAlias + ']max_date"]' });
}
});
}
@@ -509,9 +550,27 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
data[dk].pop()
}
}
}
return data;
},
renderTrueHide(data, elem) {
var newData = [];
for (dk in data) {
var newCol = [];
var col = data[dk];
col.forEach(colItem => {
if (!colItem.trueHide) {
newCol.push(colItem)
}
});
newData.push(newCol)
}
return newData;
},
buildToolbarHtml: function (toolbar, tableId) {
var html = '';
toolbar.class = toolbar.class || '';
@@ -864,7 +923,16 @@ define(["jquery", "tableSelect", "ckeditor"], function ($, tableSelect, undefine
$.each(dataField, function (key, val) {
if (val !== '') {
formatFilter[key] = val;
var op = $('#c-' + key).attr('data-search-op');
var elemId = key;
if (key.indexOf('[') == 0) {
var keyArr = key.replace('[', '').split(']');
elemId = keyArr[0] + '-' + keyArr[1];
}
var op = $('#c-' + elemId).attr('data-search-op');
op = op || '%*%';
formatOp[key] = op;
}