From 5d82e2220ff8d69d51feee29e4c8351dca773135 Mon Sep 17 00:00:00 2001 From: duhe <226547893@qq.com> Date: 星期一, 31 三月 2025 12:35:37 +0800 Subject: [PATCH] 1 --- WebTM/layuiadmin/modules/tableSelect.js | 101 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 82 insertions(+), 19 deletions(-) diff --git a/WebTM/layuiadmin/modules/tableSelect.js b/WebTM/layuiadmin/modules/tableSelect.js index d0a2659..d2adcb0 100644 --- a/WebTM/layuiadmin/modules/tableSelect.js +++ b/WebTM/layuiadmin/modules/tableSelect.js @@ -10,7 +10,7 @@ table = layui.table, form = layui.form; var tableSelect = function () { - this.v = '1.3.0'; + this.v = '1.4.0'; }; /** @@ -20,12 +20,12 @@ var elem = $(opt.elem); //榛樿璁剧疆 - opt.searchKey = opt.searchKey || 'keyword'; + opt.searchKey = opt.searchKey || 'keyword';//鍙涓敤锛屽垎鍓� opt.table.page = opt.table.page || false; opt.table.height = opt.table.height || 290; - elem.off('click').on('click', function(e) { + elem.off('keyup').on('keyup', function(e) { e.stopPropagation(); - if($('div.tableSelect').length >= 1){ + if ($('div.tableSelect').length >= 1 || elem.val().length<=2) { return false; } @@ -43,7 +43,7 @@ //娓叉煋TABLE opt.table.elem = "#"+tableName; opt.table.id = tableName; - //鑻ユ病鏈墂here琛ㄧず涓哄墠绔垎椤� + //鑻ユ病鏈塽rl琛ㄧず涓哄墠绔垎椤� if (opt.table.url != undefined) { opt.table.where['sWhere'] = opt.sWhere } else { @@ -67,7 +67,12 @@ //} var tableSelect_table = table.render(opt.table); - + //璁╀竴娆″姞杞芥樉绀烘暟鎹� + let executed = false; + if (elem.val().length == 3 && !executed) { + executed = true; + search(); + } //jump鍒嗛〉瑙﹀彂鍑芥暟 //function jump(obj, first) { // table.reload(tableName); @@ -148,16 +153,16 @@ if (tr.length == 0) { tableElem.find('tr:first').children('td').eq(0).click(); } else { - tr.children('td').click(); - tr['prev']().children('td').click(); + tr.children('td').eq(0).click(); + tr['prev']().children('td').eq(0).click(); } break; case "ArrowDown"://涓嬮敭 if (tr.length == 0) { - tr = tableElem.find('tr:first').children('td').eq(0).click(); + tableElem.find('tr:first').children('td').eq(0).click(); } else { - tr.children('td').click(); - tr['next']().children('td').click(); + tr.children('td').eq(0).click(); + tr['next']().children('td').eq(0).click(); } break; case "Enter"://鍥炶溅 @@ -167,13 +172,31 @@ } }) - //杈撳叆妗嗚緭鍏ユ墽琛� - elem.off('input').on('input', function (e) { - // 闃绘琛ㄥ崟鎻愪氦锛堝鏋滆緭鍏ユ鍦ㄨ〃鍗曞唴锛� - e.preventDefault(); + // 闃叉姈鍑芥暟 + function debounce(func, wait) { + let timeout; + return function () { + const context = this, args = arguments; + clearTimeout(timeout); + timeout = setTimeout(() => func.apply(context, args), wait); + }; + } + //鎼滅储鍑芥暟 + function search() { + var searchKeyList = opt.searchKey.split(',');//鑾峰彇鏌ユ壘鐨勫叧閿瓧鎼滅储妗� + //鎷兼帴sql瀛楃涓� + var sWhereStr = " and (" + searchKeyList.forEach(function (value, index) { + if (index == 0) { + sWhereStr += (value + " like '%" + elem.val() + "%' ") + } else { + sWhereStr += ("or " + value + " like '%" + elem.val() + "%' ") + } + }) + sWhereStr += ")" //鍚庣鍒嗛〉鎼滅储 if (opt.table.where != undefined) { - opt.table.where['sWhere'] = opt.sWhere + " and " + opt.searchKey + " like '%" + elem.val() + "%' "; + opt.table.where['sWhere'] = opt.sWhere + sWhereStr; tableSelect_table.reload({ where: opt.table.where, page: { @@ -181,13 +204,46 @@ } }); } else { - var sWhere = opt.sWhere + " and " + opt.searchKey + " like '%" + elem.val() + "%' "; + var sWhere = opt.sWhere + sWhereStr; + tableSelect_table.reload({ + data: opt.ajaxSelect(sWhere) + }); + } + } + + //杈撳叆妗嗚緭鍏ユ墽琛� + elem.off('input').on('input', debounce( + function (e) { + // 闃绘琛ㄥ崟鎻愪氦锛堝鏋滆緭鍏ユ鍦ㄨ〃鍗曞唴锛� + e.preventDefault(); + var searchKeyList = opt.searchKey.split(',');//鑾峰彇鏌ユ壘鐨勫叧閿瓧鎼滅储妗� + //鎷兼帴sql瀛楃涓� + var sWhereStr = " and (" + searchKeyList.forEach(function (value, index) { + if (index == 0) { + sWhereStr += (value + " like '%" + elem.val() + "%' ") + } else { + sWhereStr += ("or " + value + " like '%" + elem.val() + "%' ") + } + }) + sWhereStr +=")" + //鍚庣鍒嗛〉鎼滅储 + if (opt.table.where != undefined) { + opt.table.where['sWhere'] = opt.sWhere + sWhereStr; + tableSelect_table.reload({ + where: opt.table.where, + page: { + curr: 1 + } + }); + } else { + var sWhere = opt.sWhere + sWhereStr; tableSelect_table.reload({ data: opt.ajaxSelect(sWhere) }); } - }) + },200)) //鍙屽嚮琛岄�変腑 table.on('rowDouble('+tableName+')', function(obj){ @@ -224,7 +280,13 @@ //鎸夐挳閫変腑 tableBox.find('.tableSelect_btn_select').on('click', function() { var checkStatus = table.checkStatus(tableName); - selectDone(checkStatus); + if (checkStatus.data.length > 0) { + selectDone(checkStatus); + } else { + tableBox.remove(); + delete table.cache[tableName]; + } + }) //鍐欏�煎洖璋冨拰鍏抽棴 @@ -232,6 +294,7 @@ opt.done(elem, checkStatus); tableBox.remove(); delete table.cache[tableName]; + $(opt.elem).blur(); } //鐐瑰嚮鍏朵粬鍖哄煙鍏抽棴 -- Gitblit v1.9.1