From 4f91d3b4d5fdf596a0697c4fa96da4a3f05b9616 Mon Sep 17 00:00:00 2001
From: llj <132905093+newwwwwwtree@users.noreply.github.com>
Date: 星期三, 24 十二月 2025 17:03:11 +0800
Subject: [PATCH] 1

---
 WebTM/layuiadmin/modules/tableSelect.js |  215 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 150 insertions(+), 65 deletions(-)

diff --git a/WebTM/layuiadmin/modules/tableSelect.js b/WebTM/layuiadmin/modules/tableSelect.js
index d0a2659..1857322 100644
--- a/WebTM/layuiadmin/modules/tableSelect.js
+++ b/WebTM/layuiadmin/modules/tableSelect.js
@@ -10,8 +10,80 @@
         table = layui.table,
         form = layui.form;
     var tableSelect = function () {
-        this.v = '1.3.0';
+        this.v = '1.4.0';
     };
+
+    //鐗╂枡琛ㄦ牸涓嬫媺鎼滅储妗嗕娇鐢ㄦ渚�
+    //tableSelect.render({
+    //    elem: '#HMATERIALNAME',
+    //    checkedKey: 'HItemID',
+    //    searchKey: '鐗╂枡浠g爜,鐗╂枡鍚嶇О',
+    //    sWhere: '',//table鎼滅储sWhere鏉′欢
+    //    table: {
+    //        url: GetWEBURL() + 'Gy_Material/page',
+    //        where: { user: sessionStorage["HMaker"], "Organization": sessionStorage["Organization"] },
+    //        cols: [[
+    //            { type: 'checkbox', fixed: 'left' },
+    //            { field: 'HItemID', title: 'HItemID' },
+    //            { field: '鐗╂枡浠g爜', title: '鐗╂枡浠g爜' },
+    //            { field: '鐗╂枡鍚嶇О', title: '鐗╂枡鍚嶇О' },
+    //        ]],
+    //        page: true,
+    //        limit: 5,
+    //        limits: [5]
+    //    },
+    //    done: function (elem, data) {
+    //        if (data != []) {
+    //            //鑾峰彇鏁版嵁
+    //            /*$("#HMATERIALNAME").blur();//鍗曞厓鏍煎け鍘荤劍鐐�*/
+    //            $("#HMATERIALID").val(data.data[0].HItemID);
+    //            $("#HMATERIALNAME").val(data.data[0].鐗╂枡鍚嶇О);
+    //            get_FastQuery()
+    //        }
+
+    //    }
+    //})
+    //宸ュ簭琛ㄦ牸涓嬫媺鎼滅储妗�
+    //tableSelect.render({
+    //    elem: 'td[data-field="宸ュ簭"] .layui-table-edit',
+    //    searchKey: '宸ュ簭浠g爜,宸ュ簭鍚嶇О',
+    //    sWhere: " and 鏄庣粏鏍囪 = 'Y' and 绂佺敤鏍囪 != 'Y'",//table鎼滅储sWhere鏉′欢
+    //    ajaxSelect: function (sWhere) {
+    //        var data = '';
+    //        $.ajax({
+    //            url: GetWEBURL() + '/Gy_Process/list',
+    //            type: "GET",
+    //            data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
+    //            async: false,
+    //            success: function (data1) {
+    //                if (data1.count == 1) {
+    //                    data = data1.data
+    //                }
+    //            },
+    //            error: function () {
+    //                layer.alert('鑾峰彇鍒楄〃澶辫触锛�', { icon: 15, title: '閫氫俊閿欒' });
+    //            }
+    //        });
+    //        return data;
+    //    },//璁剧疆鍓嶇鍒嗛〉鏃跺彲浠ヨ缃殑
+    //    table: {
+    //        cols: [[
+    //            { type: 'radio', fixed: 'left' },
+    //            { field: 'HItemID', title: 'HItemID', hide: true },
+    //            { field: '宸ュ簭浠g爜', title: '宸ュ簭浠g爜' },
+    //            { field: '宸ュ簭鍚嶇О', title: '宸ュ簭鍚嶇О' },
+    //            { field: 'HProcMulID', title: 'HProcMulID', hide: true },
+    //            { field: '宸ユ鍚嶇О', title: '宸ユ鍚嶇О' }
+    //        ]],
+    //        page: true,
+    //        limit: 5,
+    //        //limits: [5]
+    //    },
+    //    done: function (elem, data) {
+    //        $(".layui-table-edit").blur();//鍗曞厓鏍煎け鍘荤劍鐐�
+    //        //setTableByHMater(obj, data);
+    //    }
+    //})
 
     /**
     * 鍒濆鍖栬〃鏍奸�夋嫨鍣�
@@ -20,12 +92,13 @@
         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 || event.key == "F7" || event.key == "F8" || event.key == "F6") {
                 return false;
             }
 
@@ -43,11 +116,16 @@
             //娓叉煋TABLE
             opt.table.elem = "#"+tableName;
             opt.table.id = tableName;
-            //鑻ユ病鏈墂here琛ㄧず涓哄墠绔垎椤�
-            if (opt.table.url != undefined) {
-                opt.table.where['sWhere'] = opt.sWhere
-            } else {
-                opt.table.data = opt.ajaxSelect(opt.sWhere);
+            //鑻ユ病鏈塽rl琛ㄧず涓哄墠绔垎椤�
+            //if (opt.table.url != undefined) {
+            //    opt.table.where['sWhere'] = opt.sWhere
+            //} else {
+            //    opt.table.data = opt.ajaxSelect(opt.sWhere);
+            //}
+            //璁╀竴娆″姞杞芥樉绀烘暟鎹�
+            //褰撳瓧绗﹂暱搴︾瓑浜�3鏃剁涓�娆″姞杞�
+            if (elem.val().length == 3) {
+                searchFirst()
             }
             opt.table.request={//璁剧疆椤靛弬鏁�
                 pageName: 'page', // 椤电爜鐨勫弬鏁板悕绉帮紝榛樿锛歱age
@@ -61,51 +139,8 @@
                     "data": res.data // 瑙f瀽鏁版嵁鍒楄〃
                 };
             }
-            //鐢╦ump鏇夸唬鍘熸潵琛ㄦ牸pagejump鐢ㄤ簬鏇存柊鎸夐挳閫変腑鏁伴噺姝ゅ姛鑳藉彂鐜版棤鐢ㄥ垹闄�
-            //opt.table.done = function (res, curr, count, origin) {
-            //    this.page.jump = jump;
-            //}
 
             var tableSelect_table = table.render(opt.table);
-
-            //jump鍒嗛〉瑙﹀彂鍑芥暟
-            //function jump(obj, first) {
-            //    table.reload(tableName);
-            //    //鏇存柊鎸夐挳
-            //    updataButton(table.checkStatus(tableName).data.length)
-            //}
-
-			//鏇存柊閫変腑鏁伴噺
-			function updataButton (n) {
-				tableBox.find('.tableSelect_btn_select span').html(n==0?'':'('+n+')')
-            }
-            
-            //鏁扮粍鍘婚噸
-			function uniqueObjArray(arr, type){
-                var newArr = [];
-                var tArr = [];
-                if(arr.length == 0){
-                    return arr;
-                }else{
-                    if(type){
-                        for(var i=0;i<arr.length;i++){
-                            if(!tArr[arr[i][type]]){
-                                newArr.push(arr[i]);
-                                tArr[arr[i][type]] = true;
-                            }
-                        }
-                        return newArr;
-                    }else{
-                        for(var i=0;i<arr.length;i++){
-                            if(!tArr[arr[i]]){
-                                newArr.push(arr[i]);
-                                tArr[arr[i]] = true;
-                            }
-                        }
-                        return newArr;
-                    }
-                }
-            }
 
 			//FIX浣嶇疆濡備綍涓嬮潰鏀句笉涓嬫斁涓婇潰
 			var overHeight = (elem.offset().top + elem.outerHeight() + tableBox.outerHeight() - $(window).scrollTop()) > $(window).height();
@@ -148,16 +183,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 +202,56 @@
                 }
                 
             })
-            //杈撳叆妗嗚緭鍏ユ墽琛�
-            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 searchFirst() {
+                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;
+                } else {
+                    var sWhere = opt.sWhere + sWhereStr;
+                    opt.table.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: {
@@ -181,13 +259,13 @@
                         }
                     });
                 } else {
-                    var sWhere = opt.sWhere + " and " + opt.searchKey + " like '%" + elem.val() + "%' ";
+                    var sWhere = opt.sWhere + sWhereStr;
                     tableSelect_table.reload({
                         data: opt.ajaxSelect(sWhere)
                     });
                 }
                 
-            })
+            },500))
 
             //鍙屽嚮琛岄�変腑
             table.on('rowDouble('+tableName+')', function(obj){
@@ -224,7 +302,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 +316,7 @@
                 opt.done(elem, checkStatus);
                 tableBox.remove();
                 delete table.cache[tableName];
+                $(opt.elem).blur();
             }
             
             //鐐瑰嚮鍏朵粬鍖哄煙鍏抽棴

--
Gitblit v1.9.1