refactor(table): 重构搜索表单的HTML结构和事件处理

- 简化搜索表单的HTML结构,移除外层div,直接使用fieldset
- 将表单监听逻辑提取为独立的listenTableSearch方法
- 改进搜索表单的显示/隐藏逻辑,使用layui-hide类控制
- 统一搜索按钮的样式和事件绑定方式
This commit is contained in:
augushong
2026-01-31 12:25:53 +08:00
parent 90e7d7b8f2
commit 5a8fb54175
2 changed files with 46 additions and 50 deletions

View File

@@ -458,27 +458,20 @@
}
});
var html = '';
html += '<div class="search-form">\n';
html += ' <fieldset class="table-search-fieldset">\n';
html += ' <legend>搜索信息</legend>\n';
html += ' <div style="margin: 10px">\n';
html += ' <form class="layui-form layui-form-pane" action="" lay-filter="' + tableId + '_filter_form" id="' + tableId + '_filter_form">\n';
html += ' <div class="layui-form-item">\n';
html += '<fieldset id="searchFieldset_' + tableId + '" class="table-search-fieldset layui-hide">\n';
html += ' <legend>条件搜索</legend>\n';
html += ' <form class="layui-form layui-form-pane form-search" lay-filter="' + tableId + '_filter_form">\n';
html += formHtml;
html += ' <div class="layui-inline">\n';
html += ' <button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="' + tableId + '_filter_form_submit" data-table-filter="' + tableId + '" data-table-target="' + tableId + '">\n';
html += ' <i class="layui-icon layui-icon-search"></i> 搜 索\n';
html += ' </button>\n';
html += ' <button type="reset" class="layui-btn layui-btn-primary" data-table-reset="' + tableId + '"><i class="layui-icon layui-icon-refresh"></i> 重 置</button>\n';
html += ' </div>\n';
html += ' </div>\n';
html += ' </form>\n';
html += ' <div class="layui-form-item layui-inline" style="margin-left: 115px">\n';
html += ' <button type="submit" class="layui-btn layui-btn-normal" data-type="tableSearch" data-table="' + tableId + '" lay-submit lay-filter="' + tableId + '_filter"> 搜 索</button>\n';
html += ' <button type="reset" class="layui-btn layui-btn-primary" data-table-reset="' + tableId + '"> 重 置 </button>\n';
html += ' </div>\n';
html += ' </fieldset>\n';
html += '</div>\n';
html += ' </form>\n';
html += '</fieldset>\n';
if ($(elem).prev().hasClass("search-form")) {
$(elem).prev().remove();
var searchFieldsetId = '#searchFieldset_' + tableId;
if ($(searchFieldsetId).length) {
$(searchFieldsetId).remove();
}
$(elem).before(html);
@@ -488,8 +481,11 @@
laydate.render(val);
});
// 监听表单提交事件
form.on('submit(' + tableId + '_filter_form_submit)', function (data) {
admin.table.listenTableSearch(tableId);
return options;
},
listenTableSearch: function (tableId) {
form.on('submit(' + tableId + '_filter)', function (data) {
var dataField = data.field;
var formatFilter = {},
formatOp = {};
@@ -517,7 +513,6 @@
}, 'data');
return false;
});
return options;
},
renderLayout: function (options) {
var tableId = options.id;
@@ -1236,14 +1231,17 @@
},
listenToolbar: function (layFilter, tableId) {
table.on('toolbar(' + layFilter + ')', function (obj) {
var options = obj.config;
var tableId = obj.config.id;
var item = obj.event;
switch (item) {
case 'TABLE_SEARCH':
if (!$('#' + tableId + '_filter_form').is(':visible')) {
$('#' + tableId + '_filter_form').removeClass('layui-hide');
$('#' + tableId + '_filter_form').show();
var searchFieldsetId = 'searchFieldset_' + tableId;
var _that = $("#" + searchFieldsetId);
if (_that.hasClass("layui-hide")) {
_that.removeClass('layui-hide');
} else {
$('#' + tableId + '_filter_form').hide();
_that.addClass('layui-hide');
}
break;
case 'TABLE_LAYOUT':

View File

@@ -779,27 +779,20 @@
}
});
var html = '';
html += '<div class="search-form">\n';
html += ' <fieldset class="table-search-fieldset">\n';
html += ' <legend>搜索信息</legend>\n';
html += ' <div style="margin: 10px">\n';
html += ' <form class="layui-form layui-form-pane" action="" lay-filter="' + tableId + '_filter_form" id="' + tableId + '_filter_form">\n';
html += ' <div class="layui-form-item">\n';
html += '<fieldset id="searchFieldset_' + tableId + '" class="table-search-fieldset layui-hide">\n';
html += ' <legend>条件搜索</legend>\n';
html += ' <form class="layui-form layui-form-pane form-search" lay-filter="' + tableId + '_filter_form">\n';
html += formHtml;
html += ' <div class="layui-inline">\n';
html += ' <button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="' + tableId + '_filter_form_submit" data-table-filter="' + tableId + '" data-table-target="' + tableId + '">\n';
html += ' <i class="layui-icon layui-icon-search"></i> 搜 索\n';
html += ' </button>\n';
html += ' <button type="reset" class="layui-btn layui-btn-primary" data-table-reset="' + tableId + '"><i class="layui-icon layui-icon-refresh"></i> 重 置</button>\n';
html += ' </div>\n';
html += ' </div>\n';
html += ' </form>\n';
html += ' <div class="layui-form-item layui-inline" style="margin-left: 115px">\n';
html += ' <button type="submit" class="layui-btn layui-btn-normal" data-type="tableSearch" data-table="' + tableId + '" lay-submit lay-filter="' + tableId + '_filter"> 搜 索</button>\n';
html += ' <button type="reset" class="layui-btn layui-btn-primary" data-table-reset="' + tableId + '"> 重 置 </button>\n';
html += ' </div>\n';
html += ' </fieldset>\n';
html += '</div>\n';
html += ' </form>\n';
html += '</fieldset>\n';
if ($(elem).prev().hasClass("search-form")) {
$(elem).prev().remove();
var searchFieldsetId = '#searchFieldset_' + tableId;
if ($(searchFieldsetId).length) {
$(searchFieldsetId).remove();
}
$(elem).before(html);
@@ -809,8 +802,11 @@
laydate.render(val);
});
// 监听表单提交事件
form.on('submit(' + tableId + '_filter_form_submit)', function (data) {
admin.table.listenTableSearch(tableId);
return options;
},
listenTableSearch: function (tableId) {
form.on('submit(' + tableId + '_filter)', function (data) {
var dataField = data.field;
var formatFilter = {},
formatOp = {};
@@ -838,7 +834,6 @@
}, 'data');
return false;
});
return options;
},
renderLayout: function (options) {
var tableId = options.id;
@@ -1557,14 +1552,17 @@
},
listenToolbar: function (layFilter, tableId) {
table.on('toolbar(' + layFilter + ')', function (obj) {
var options = obj.config;
var tableId = obj.config.id;
var item = obj.event;
switch (item) {
case 'TABLE_SEARCH':
if (!$('#' + tableId + '_filter_form').is(':visible')) {
$('#' + tableId + '_filter_form').removeClass('layui-hide');
$('#' + tableId + '_filter_form').show();
var searchFieldsetId = 'searchFieldset_' + tableId;
var _that = $("#" + searchFieldsetId);
if (_that.hasClass("layui-hide")) {
_that.removeClass('layui-hide');
} else {
$('#' + tableId + '_filter_form').hide();
_that.addClass('layui-hide');
}
break;
case 'TABLE_LAYOUT':