瀏覽代碼

清单搜索功能

laiguoran 3 年之前
父節點
當前提交
bf1aaad62b
共有 2 個文件被更改,包括 957 次插入864 次删除
  1. 66 3
      app/public/js/change_information_set.js
  2. 891 861
      app/view/change/information_modal.ejs

+ 66 - 3
app/public/js/change_information_set.js

@@ -1136,12 +1136,40 @@ $(document).ready(() => {
     });
     $('#list-input').on('blur', function () {
         const select = parseInt($('#select-list').val());
-        const value = $(this).val();
+        const value = _.trim($(this).val());
+        const valueList = _.slice(_.without(_.uniq(value.split(' ')), ''), 0, 10);
+        console.log(valueList);
+        // 判断是否存在多个分词,以换行或空格分隔,多个则显示左侧菜单
+        if (value !== '' && valueList.length > 1) {
+            if (_.without(_.uniq(value.split(' ')), '').length > 10) {
+                toastr.warning('最多筛选以空格分割的前10个不重复关键词');
+            }
+            $('#table-list').addClass('col-9').removeClass('col-12');
+            $('#table-list').siblings('.col-3').show();
+            $('#list-search-keyword').html('<a href="javascript:void(0);" data-keyword="" class="list-group-item list-group-item-action active">全部</a>');
+            for (const v of valueList) {
+                $('#list-search-keyword').append(`<a href="javascript:void(0);" data-keyword="${v}" class="list-group-item list-group-item-action">${v}</a>`);
+            }
+        } else {
+            $('#table-list').addClass('col-12').removeClass('col-9');
+            $('#table-list').siblings('.col-3').hide();
+            $('#list-search-keyword').html('<a href="javascript:void(0);" data-keyword="" class="list-group-item list-group-item-action active">全部</a>');
+        }
         let showListData = changeListData;
         if (select === 1 && value !== '') {
             $(this).siblings('a').show();
             showListData = _.filter(changeListData, function (c) {
-                return ((c.code && c.code.indexOf(value) !== -1) || (c.name && c.name.indexOf(value) !== -1)) && c.cid;
+                let flag = false;
+                if (c.cid) {
+                    for(const v of valueList) {
+                        if ((c.code && c.code.indexOf(v) !== -1) || (c.name && c.name.indexOf(v) !== -1)) {
+                            flag = true;
+                            break;
+                        }
+                    }
+                }
+                return flag;
+                // return ((c.code && c.code.indexOf(value) !== -1) || (c.name && c.name.indexOf(value) !== -1)) && c.cid;
             });
         } else if (select === 1 && value === '') {
             $(this).siblings('a').hide();
@@ -1151,7 +1179,15 @@ $(document).ready(() => {
         } else if (value !== '') {
             $(this).siblings('a').show();
             showListData = _.filter(changeListData, function (c) {
-                return (c.code && c.code.indexOf(value) !== -1) || (c.name && c.name.indexOf(value) !== -1);
+                let flag = false;
+                for(const v of valueList) {
+                    if ((c.code && c.code.indexOf(v) !== -1) || (c.name && c.name.indexOf(v) !== -1)) {
+                        flag = true;
+                        break;
+                    }
+                }
+                return flag;
+                // return (c.code && c.code.indexOf(value) !== -1) || (c.name && c.name.indexOf(value) !== -1);
             });
         } else {
             $(this).siblings('a').hide();
@@ -1163,6 +1199,29 @@ $(document).ready(() => {
         $('#code-list').html('');
         $('#code-select-all').prop('checked', false);
     });
+    // 检索关键字切换
+    $('body').on('click', '#list-search-keyword a', function () {
+        if (!$(this).hasClass('active')) {
+            const keyword = $(this).attr('data-keyword');
+            console.log(keyword);
+            $(this).siblings().removeClass('active');
+            $(this).addClass('active');
+            if (keyword === '') {
+                $('#list-input').blur();
+            } else {
+                const select = parseInt($('#select-list').val());
+                const showListData = _.filter(changeListData, function (c) {
+                    return ((c.code && c.code.indexOf(keyword) !== -1) || (c.name && c.name.indexOf(keyword) !== -1)) && (select === 1 ? c.cid : 1);
+                });
+                makeListTable(changeListData, showListData);
+                $('#table-list-select tr').removeClass('table-warning');
+                $('#code-input').val('');
+                $('#code-input').siblings('a').hide();
+                $('#code-list').html('');
+                $('#code-select-all').prop('checked', false);
+            }
+        }
+    });
     // 回车提交
     $('#code-input').on('keypress', function () {
         if(window.event.keyCode === 13) {
@@ -1194,6 +1253,10 @@ $(document).ready(() => {
             makeListTable(changeListData, showListData);
             $('#table-list-select tr').removeClass('table-warning');
             $('#code-list').html('');
+            $('#table-list').addClass('col-12').removeClass('col-9');
+            $('#table-list').siblings('.col-3').hide();
+            $('#list-search-keyword').html('');
+            $('#list-search-keyword').siblings('a').addClass('active');
         } else {
             makeCodeTable();
         }

文件差異過大導致無法顯示
+ 891 - 861
app/view/change/information_modal.ejs