mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-10 03:42:49 +08:00
新增time_limit查询;新增number_limit查询;新增同一个字段多个搜索项;
This commit is contained in:
@@ -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)];
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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' },
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user