From f849fe0808bb3b38f60c24492d6d4595e9b7fa82 Mon Sep 17 00:00:00 2001
From: 18516761980 <56479841@qq.com>
Date: 星期二, 21 六月 2022 17:32:04 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/luxiaotao1123/zy-asrs into hylyasrs

---
 src/main/webapp/static/layui/lay/modules/tableX.js          |  645 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/webapp/views/docType/docType.html                  |   10 
 src/main/java/com/zy/asrs/controller/DocTypeController.java |    3 
 src/main/java/com/zy/asrs/controller/OutController.java     |   10 
 4 files changed, 667 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/DocTypeController.java b/src/main/java/com/zy/asrs/controller/DocTypeController.java
index ee3ff8f..72ce073 100644
--- a/src/main/java/com/zy/asrs/controller/DocTypeController.java
+++ b/src/main/java/com/zy/asrs/controller/DocTypeController.java
@@ -105,7 +105,8 @@
     public R query(String condition) {
         EntityWrapper<DocType> wrapper = new EntityWrapper<>();
         wrapper.like("doc_name", condition);
-        Page<DocType> page = docTypeService.selectPage(new Page<>(0, 10), wrapper);
+        wrapper.eq("status", 1);
+        Page<DocType> page = docTypeService.selectPage(new Page<>(0, 30), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
         for (DocType docType : page.getRecords()){
             Map<String, Object> map = new HashMap<>();
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 4effe43..0d2ba7d 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -14,9 +14,11 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2022/3/26
@@ -40,6 +42,14 @@
     @Autowired
     private BasDevpService basDevpService;
 
+
+    @PostMapping("/out/pakout/orderDetlIds/auth")
+    @ManagerAuth
+    public R pakoutOrderDetlIds(@RequestParam Long orderId) throws InterruptedException {
+        Thread.sleep(200);
+        return R.ok().add(orderDetlService.selectByOrderId(orderId).stream().map(OrderDetl::getId).distinct().collect(Collectors.toList()));
+    }
+
     @PostMapping("/out/pakout/preview/auth")
     @ManagerAuth
     public R pakoutPreview(@RequestBody List<Long> ids) {
diff --git a/src/main/webapp/static/layui/lay/modules/tableX.js b/src/main/webapp/static/layui/lay/modules/tableX.js
new file mode 100644
index 0000000..90953ec
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/tableX.js
@@ -0,0 +1,645 @@
+锘�/** 琛ㄦ牸鎵╁睍妯″潡 date:2020-02-29   License By http://easyweb.vip */
+layui.define(['layer', 'table', 'laytpl', 'contextMenu'], function (exports) {
+    var $ = layui.jquery;
+    var layer = layui.layer;
+    var table = layui.table;
+    var laytpl = layui.laytpl;
+    var contextMenu = layui.contextMenu;
+    var device = layui.device();
+    var tbSearchAttr = 'tb-search';  // 鍓嶇鎼滅储灞炴��
+    var tbRefreshAttr = 'tb-refresh';  // 鍒锋柊鎸夐挳灞炴��
+    var tbExportAttr = 'tb-export';  // 瀵煎嚭鎸夐挳灞炴��
+    var txFieldPre = 'txField_';  // templte鍒梖iled鍓嶇紑
+    var tableX = {};
+
+    /* 鍚堝苟鐩稿悓鍗曞厓鏍� */
+    tableX.merges = function (tableId, indexs, fields, sort) {
+        if (typeof fields === 'boolean') {
+            sort = fields;
+            fields = undefined;
+        }
+        var $tb = $('[lay-filter="' + tableId + '"]+.layui-table-view>.layui-table-box>.layui-table-body>table');
+        var $trs = $tb.find('>tbody>tr');
+        // 寰幆鍚堝苟姣忎竴鍒�
+        for (var i = 0; i < indexs.length; i++) {
+            if (fields) {
+                merge(tableId, indexs[i], fields[i]);
+            } else {
+                merge(tableId, indexs[i]);
+            }
+        }
+        $trs.find('[del="true"]').remove();  // 绉婚櫎澶氫綑鐨勫崟鍏冩牸
+        // 鐩戝惉鎺掑簭浜嬩欢
+        if (sort === undefined || sort) {
+            table.on('sort(' + tableId + ')', function () {
+                tableX.merges(tableId, indexs, fields, false);
+            });
+        }
+
+        // 鍚堝苟涓�鍒�
+        function merge(tableId, index, field) {
+            var data = table.cache[tableId];
+            if (data.length > 0) {
+                var lastValue, spanNum = 1;
+                if (field) {
+                    lastValue = data[0][field];
+                } else {
+                    lastValue = $trs.eq(0).find('td').eq(index).find('.layui-table-cell').html();
+                }
+                for (var i = 1; i < data.length; i++) {
+                    var currentValue;
+                    if (field) {
+                        currentValue = data[i][field];
+                    } else {
+                        currentValue = $trs.eq(i).find('td').eq(index).find('.layui-table-cell').html();
+                    }
+                    if (currentValue === lastValue) {
+                        spanNum++;
+                        if (i === data.length - 1) {
+                            $trs.eq(i - spanNum + 1).find('td').eq(index).attr('rowspan', spanNum);
+                            for (var j = 1; j < spanNum; j++) {
+                                $trs.eq(i - j + 1).find('td').eq(index).attr('del', 'true');
+                            }
+                        }
+                    } else {
+                        $trs.eq(i - spanNum).find('td').eq(index).attr('rowspan', spanNum);
+                        for (var k = 1; k < spanNum; k++) {
+                            $trs.eq(i - k).find('td').eq(index).attr('del', 'true');
+                        }
+                        spanNum = 1;
+                        lastValue = currentValue;
+                    }
+                }
+            }
+        }
+    };
+
+    /* 琛ㄦ牸琛岀粦瀹氶紶鏍囧彸閿� */
+    tableX.bindCtxMenu = function (tableId, items) {
+        var data = table.cache[tableId];
+        var elem = '#' + tableId + '+.layui-table-view .layui-table-body tr';
+        $(elem).bind('contextmenu', function (event) {
+            var $this = $(this);
+            $(elem).removeClass('layui-table-click');
+            $this.addClass('layui-table-click');
+            var ctxItems;
+            if (typeof items === 'function') ctxItems = items(data[$this.data('index')], event.currentTarget);
+            else ctxItems = items;
+
+            function getCtxItems(menus) {
+                if (!menus) return;
+                var result = [];
+                for (var i = 0; i < menus.length; i++) {
+                    result.push({
+                        icon: menus[i].icon,
+                        name: menus[i].name,
+                        _click: menus[i].click,
+                        click: function (e, e2) {
+                            var $tr = $(e2.currentTarget);
+                            this._click && this._click(data[$tr.data('index')], e2.currentTarget);
+                            $tr.removeClass('layui-table-click');
+                        },
+                        subs: getCtxItems(menus[i].subs)
+                    });
+                }
+                return result;
+            }
+
+            contextMenu.show(getCtxItems(ctxItems), event.clientX, event.clientY, event);
+            return false;
+        });
+    };
+
+    /* 瀵煎嚭浠绘剰鏁版嵁 */
+    tableX.exportData = function (param) {
+        var cols = param.cols;  // 琛ㄥご
+        var data = param.data;  // 鏁版嵁
+        var fileName = param.fileName;  // 鏂囦欢鍚�
+        var fileType = param.expType;  // 绫诲瀷锛寈ls銆乧sv
+        var option = param.option;  // url鏂瑰紡鍔犺浇鐨勯厤缃�
+        option || (option = {});
+        if (device.ie) return layer.msg('涓嶆敮鎸乮e瀵煎嚭');
+        // data涓簎rl鍏堣姹傛暟鎹�
+        if (typeof data === 'string') {
+            var loadIndex = layer.load(2);
+            option.url = data;
+            tableX.loadUrl(option, function (res) {
+                layer.close(loadIndex);
+                param.data = res;
+                tableX.exportData(param);
+            });
+            return;
+        }
+        // 鍒楀弬鏁拌ˉ鍏�
+        for (var i = 0; i < cols.length; i++) {
+            for (var j = 0; j < cols[i].length; j++) {
+                if (cols[i][j].type === undefined) {
+                    cols[i][j].type = 'normal';
+                }
+                if (cols[i][j].hide === undefined) {
+                    cols[i][j].hide = false;
+                }
+            }
+        }
+        var titles = [], fields = [], expData = [];
+        // 鑾峰彇琛ㄥご鍜岃〃澶村瓧娈靛悕
+        table.eachCols(undefined, function (i, item) {
+            if (item.type === 'normal' && !item.hide) {
+                titles.push(item.title || '');
+                fields.push(item.field || (txFieldPre + i));
+            }
+        }, cols);
+        // 鑾峰彇templet鍚庣殑鏁版嵁
+        var fullData = tableX.parseTbData(cols, tableX.deepClone(data), true);
+        for (var n = 0; n < fullData.length; n++) {
+            var rowItem = [];
+            for (var m = 0; m < fields.length; m++) {
+                var text = fullData[n][fields[m]];
+                text && (text = text.toString().replace(/,/g, '锛�'));
+                rowItem.push(text);
+            }
+            expData.push(rowItem.join(','));
+        }
+        // 鍒涘缓涓嬭浇鏂囦欢鐨刟鏍囩
+        var alink = document.createElement('a');
+        var type = ({csv: 'text/csv', xls: 'application/vnd.ms-excel'})[fileType || 'xls'];
+        var content = encodeURIComponent(titles.join(',') + '\r\n' + expData.join('\r\n'));
+        alink.href = 'data:' + type + ';charset=utf-8,\ufeff' + content;
+        alink.download = (fileName || 'table') + '.' + (fileType || 'xls');
+        document.body.appendChild(alink);
+        alink.click();
+        document.body.removeChild(alink);
+    };
+
+    /* 瀵煎嚭琛ㄦ牸鏁版嵁(楂樼骇) */
+    tableX.exportDataX = function (param) {
+        layui.use('excel', function () {
+            var excel = layui.excel;
+            var cols = param.cols;  // 琛ㄥご
+            var data = param.data;  // 鏁版嵁
+            var fileName = param.fileName;  // 鏂囦欢鍚�
+            var fileType = param.expType;  // 绫诲瀷锛寈ls銆亁lsx
+            var option = param.option;  // url鏂瑰紡鍔犺浇鐨勯厤缃�
+            option || (option = {});
+            fileType || (fileType = 'xlsx');
+            // data涓簎rl鍏堣姹傛暟鎹�
+            if (data && typeof data === 'string') {
+                var loadIndex = layer.load(2);
+                option.url = data;
+                tableX.loadUrl(option, function (res) {
+                    layer.close(loadIndex);
+                    param.data = res;
+                    tableX.exportDataX(param);
+                });
+                return;
+            }
+            // 鍒楀弬鏁拌ˉ鍏�
+            for (var i = 0; i < cols.length; i++) {
+                for (var j = 0; j < cols[i].length; j++) {
+                    if (cols[i][j].type === undefined) {
+                        cols[i][j].type = 'normal';
+                    }
+                    if (cols[i][j].hide === undefined) {
+                        cols[i][j].hide = false;
+                    }
+                }
+            }
+            // 鑾峰彇琛ㄥご鍜岃〃澶村瓧娈靛悕
+            var titles = {}, fields = [];
+            table.eachCols(undefined, function (i, item) {
+                if (item.type === 'normal' && !item.hide) {
+                    var field = item.field || (txFieldPre + i);
+                    fields.push(field);
+                    titles[field] = item.title || '';
+                }
+            }, cols);
+            // 鏍煎紡鍖栨暟鎹�
+            var fullData = tableX.parseTbData(cols, tableX.deepClone(data), true);
+            var expData = excel.filterExportData(fullData, fields);
+            expData.unshift(titles);
+            excel.exportExcel({sheet1: expData}, (fileName || 'table') + '.' + fileType, fileType);
+        });
+    };
+
+    /* 鍚庣瀵煎嚭鏁版嵁鎷兼帴鍙傛暟 */
+    tableX.exportDataBack = function (url, where, method) {
+        where || (where = {});
+        if (!method || method.toString().toLowerCase() === 'get') {
+            var param = '';
+            for (var f in where) {
+                if (!param) {
+                    param = ('?' + f + '=' + where[f]);
+                } else {
+                    param += ('&' + f + '=' + where[f]);
+                }
+            }
+            window.open(url + param);
+        } else {
+            var htmlStr = '<html><body><form id="eFrom" action="' + url + '" method="' + method + '">';
+            for (var f2 in where) {
+                htmlStr += ('<textarea name="' + f2 + '">' + where[f2] + '</textarea>');
+            }
+            htmlStr += '</form></body></html>';
+            $('#exportFrame').remove();
+            $('body').append('<iframe id="exportFrame" style="display: none;"></iframe>');
+            var eFrame = document.getElementById('exportFrame');
+            var eWindow = eFrame.contentWindow;
+            var eDocument = eWindow.document;
+            eWindow.focus();
+            eDocument.open();
+            eDocument.write(htmlStr);
+            eDocument.close();
+            eDocument.getElementById('eFrom').submit();
+        }
+    };
+
+    /* 娓叉煋琛ㄦ牸锛屽悗绔帓搴� */
+    tableX.render = function (param) {
+        var tableId = $(param.elem).attr('lay-filter');
+        param.autoSort = false;  // 鍏抽棴榛樿鎺掑簭
+        var insTb = table.render(param);  // 娓叉煋琛ㄦ牸
+        // 鎺掑簭鐩戝惉
+        table.on('sort(' + tableId + ')', function (obj) {
+            var sortField = obj.field, sortType = obj.type; // 鎺掑簭瀛楁銆佺被鍨�
+            var sortWhere = $.extend(param.where, {sort: sortField, order: sortType});
+            insTb.reload({where: sortWhere, page: {curr: 1}});
+        });
+        return insTb;
+    };
+
+    /* 娓叉煋琛ㄦ牸锛屽墠绔垎椤� */
+    tableX.renderFront = function (param) {
+        var insTb, tableId = $(param.elem).attr('lay-filter');
+        param.autoSort = false;  // 鍏抽棴榛樿鎺掑簭
+        // 娌℃湁field鐨則emplet鍒楄ˉ涓婏紝鍥犱负鎺掑簭蹇呴』鏈塮iled瀛楁锛屽惁鍒欑偣鍑绘帓搴忎細鎶ラ敊
+        for (var i = 0; i < param.cols.length; i++) {
+            for (var j = 0; j < param.cols[i].length; j++) {
+                if (param.cols[i][j].templet && !param.cols[i][j].field) {
+                    param.cols[i][j].field = txFieldPre + i + '_' + j;
+                }
+            }
+        }
+        if (param.url) {  // url鏂瑰紡
+            var xParam = tableX.deepClone(param);
+            xParam.data = [];
+            xParam.url = undefined;
+            insTb = table.render(xParam);  // 鍏堟覆鏌撹〃鏍肩粨鏋�
+            // 鎻愪緵鍒锋柊鏂规硶
+            insTb.reloadUrl = function (p) {
+                var reParam = tableX.deepClone(param);
+                p && (reParam = $.extend(reParam, p));
+                $(param.elem + '+.layui-table-view>.layui-table-box').append('<div class="layui-table-init"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i></div>');
+                // 鑾峰彇url鏁版嵁
+                tableX.loadUrl(reParam, function (data) {
+                    insTb.reload({url: '', data: data, page: {curr: 1}});
+                    tableX.putTbData(tableId, tableX.parseTbData(reParam.cols, data));  // 缂撳瓨鏁版嵁
+                    $('input[' + tbSearchAttr + '="' + tableId + '"]').val('');  // 娓呯┖鎼滅储杈撳叆妗�
+                    window.tbX.cacheSearch[tableId] = undefined;  // 閲嶇疆鎼滅储缁撴灉
+                });
+            };
+            insTb.reloadUrl();
+        } else {
+            insTb = table.render(param);  // 娓叉煋琛ㄦ牸
+            // 鎻愪緵鍒锋柊鐨勬柟娉�
+            insTb.reloadData = function (p) {
+                insTb.reload(p);
+                tableX.parseTbData(param.cols, p.data);  // 瑙f瀽temple鍒�
+                tableX.putTbData(tableId, p.data);
+                $('input[' + tbSearchAttr + '="' + tableId + '"]').val('');  // 娓呯┖鎼滅储杈撳叆妗�
+                window.tbX.cacheSearch[tableId] = undefined;  // 閲嶇疆鎼滅储缁撴灉
+            };
+            tableX.putTbData(tableId, tableX.parseTbData(param.cols, param.data));  // 缂撳瓨鏁版嵁
+        }
+        tableX.renderAllTool(insTb);  // 娓叉煋宸ュ叿缁勪欢
+        return insTb;
+    };
+
+    /* 鍔犺浇琛ㄦ牸鏁版嵁 */
+    tableX.loadUrl = function (options, callback) {
+        // 鍝嶅簲鏁版嵁鐨勮嚜瀹氫箟鏍煎紡
+        options.response = $.extend({
+            statusName: 'code',
+            statusCode: 0,
+            msgName: 'msg',
+            dataName: 'data',
+            countName: 'count'
+        }, options.response);
+        var response = options.response;
+        var where = options.where;   // 鍙傛暟
+        if (options.contentType && options.contentType.indexOf('application/json') === 0) {
+            where = JSON.stringify(where);  // 鎻愪氦 json 鏍煎紡
+        }
+        $.ajax({
+            type: options.method || 'get',
+            url: options.url,
+            contentType: options.contentType,
+            data: where,
+            dataType: 'json',
+            headers: options.headers || {},
+            success: function (res) {
+                // 濡傛灉鏈夋暟鎹В鏋愮殑鍥炶皟锛屽垯鑾峰緱鍏惰繑鍥炵殑鏁版嵁
+                if (typeof options.parseData === 'function') {
+                    res = options.parseData(res) || res;
+                }
+                // 妫�鏌ユ暟鎹牸寮忔槸鍚︾鍚堣鑼�
+                if (res[response.statusName] != response.statusCode) {
+                    var msgText = res[response.msgName] || ('杩斿洖鐨勬暟鎹笉绗﹀悎瑙勮寖锛屾纭殑鎴愬姛鐘舵�佺爜 (' + response.statusName + ') 搴斾负锛�' + response.statusCode);
+                    layer.msg(msgText, {icon: 2});
+                } else {
+                    callback(res[response.dataName]);
+                }
+            },
+            error: function (e, m) {
+                layer.msg('鏁版嵁鎺ュ彛璇锋眰寮傚父锛�' + m, {icon: 2});
+            }
+        });
+    };
+
+    /* 瑙f瀽鏁版嵁琛ㄦ牸templet鍒� */
+    tableX.parseTbData = function (cols, dataList, overwrite) {
+        var templets = [];  // 闇�瑕佽В鏋愮殑鍒�
+        table.eachCols(undefined, function (i, item) {
+            if (item.templet) {
+                var one = {field: ((item.field && (overwrite || item.field.indexOf(txFieldPre) === 0)) ? item.field : ('txField_' + i))};
+                if (typeof item.templet === 'string') {
+                    one.templet = function (d) {  // templet鍒椾娇鐢╨aytpl娓叉煋
+                        var rsStr = undefined;
+                        laytpl($(item.templet).html()).render(d, function (html) {
+                            rsStr = html;
+                        });
+                        return rsStr;
+                    }
+                } else {
+                    one.templet = item.templet;
+                }
+                templets.push(one);
+            }
+        }, cols);
+        for (var i = 0; i < dataList.length; i++) {
+            var current = dataList[i];
+            for (var j = 0; j < templets.length; j++) {
+                var htmlStr = '<div>' + templets[j].templet(current) + '</div>';
+                current[templets[j].field] = $(htmlStr).not('.export-hide').text().replace(/(^\s*)|(\s*$)/g, '');  // 鍘婚櫎鍓嶅悗绌烘牸
+            }
+        }
+        return dataList;
+    };
+
+    /* 缂撳瓨琛ㄦ牸鐨勬暟鎹� */
+    tableX.putTbData = function (tableId, dataList) {
+        window.tbX.cache[tableId] = dataList;
+    };
+
+    /* 鑾峰彇琛ㄦ牸缂撳瓨鐨勬暟鎹� */
+    tableX.getTbData = function (tableId) {
+        var dataList = window.tbX.cache[tableId];
+        return tableX.deepClone(dataList || table.cache[tableId]);
+    };
+
+    /* 鎼滅储鏁版嵁 */
+    tableX.filterData = function (dataList, searchName, searchValue) {
+        var newList = [], sfs;
+        for (var i = 0; i < dataList.length; i++) {
+            var obj = dataList[i];
+            if (!sfs) {  // 鎼滅储鐨勫瓧娈�
+                if (!searchName) {
+                    sfs = [];
+                    for (var f in obj) {
+                        if (!obj.hasOwnProperty(f)) continue;
+                        sfs.push(f);
+                    }
+                } else {
+                    sfs = searchName.split(',');
+                }
+            }
+            for (var j = 0; j < sfs.length; j++) {
+                if (tableX.isContains(obj[sfs[j]], searchValue)) {
+                    newList.push(obj);
+                    break;
+                }
+            }
+        }
+        return newList;
+    };
+
+    /* 瀛楃涓叉槸鍚﹀寘鍚� */
+    tableX.isContains = function (str1, str2) {
+        str1 || (str1 = '');
+        str2 || (str2 = '');
+        str1 = str1.toString().toLowerCase();
+        str2 = str2.toString().toLowerCase();
+        if (str1 === str2 || str1.indexOf(str2) >= 0) {
+            return true;
+        }
+        return false;
+    };
+
+    /* 娓叉煋鎵�鏈夌粍浠� */
+    tableX.renderAllTool = function (insTb) {
+        renderRefresh(insTb);  // 鍒锋柊
+        renderFrontSort(insTb);  // 鎺掑簭
+        renderFrontSearch(insTb);  // 鎼滅储
+        renderExport(insTb);  // 瀵煎嚭
+    };
+
+    /* 娣卞害鍏嬮殕瀵硅薄 */
+    tableX.deepClone = function (obj) {
+        var result;
+        var oClass = tableX.isClass(obj);
+        if (oClass === 'Object') {
+            result = {};
+        } else if (oClass === 'Array') {
+            result = [];
+        } else {
+            return obj;
+        }
+        for (var key in obj) {
+            if (!obj.hasOwnProperty(key)) continue;
+            var copy = obj[key];
+            if (tableX.isClass(copy) === 'Object') {
+                result[key] = arguments.callee(copy);//閫掑綊璋冪敤
+            } else if (tableX.isClass(copy) === 'Array') {
+                result[key] = arguments.callee(copy);
+            } else {
+                result[key] = obj[key];
+            }
+        }
+        return result;
+    };
+
+    /* 鑾峰彇鍙橀噺绫诲瀷 */
+    tableX.isClass = function (o) {
+        if (o === null)
+            return 'Null';
+        if (o === undefined)
+            return 'Undefined';
+        return Object.prototype.toString.call(o).slice(8, -1);
+    };
+
+    // 鍒涘缓鏁版嵁缂撳瓨瀵硅薄
+    window.tbX || (window.tbX = {});
+    window.tbX.cache || (window.tbX.cache = {});
+    window.tbX.cacheSearch || (window.tbX.cacheSearch = {});
+
+    // 鍓嶇鎼滅储
+    var renderFrontSearch = function (insTb) {
+        var tableId = insTb.config.id, $input = $('input[' + tbSearchAttr + '="' + tableId + '"]');
+        if (!($input && $input.length > 0)) {
+            return;
+        }
+        if (!$input.attr('placeholder')) {
+            $input.attr('placeholder', '杈撳叆鍏抽敭瀛楁寜鍥炶溅閿悳绱�');
+        }
+        $input.off('keydown').on('keydown', function (event) {
+            if (event.keyCode !== 13) {
+                return;
+            }
+            var searchName = $input.attr('name');  // 鎼滅储鐨勫瓧娈靛悕锛岀敤閫楀彿鍒嗛殧
+            var searchValue = $input.val().replace(/(^\s*)|(\s*$)/g, '');  // 鎼滅储鍏抽敭瀛�
+            var loadIndex = layer.msg('鎼滅储涓�..', {icon: 16, shade: 0.01, time: 0});
+            var dataList = tableX.getTbData(tableId);
+            var newDataList = tableX.filterData(dataList, searchName, searchValue);
+            window.tbX.cacheSearch[tableId] = newDataList;  // 缂撳瓨鎼滅储鍚庣殑鏁版嵁鐢ㄤ簬鎺掑簭
+            insTb.reload({url: '', data: newDataList, page: {curr: 1}});
+            layer.close(loadIndex);
+        });
+    };
+
+    // 鍓嶇鎺掑簭
+    var renderFrontSort = function (insTb) {
+        var tableId = insTb.config.id;
+        table.on('sort(' + tableId + ')', function (obj) {
+            var sortField = obj.field, sortType = obj.type; // 鎺掑簭瀛楁銆佺被鍨�
+            var loadIndex = layer.msg('鍔犺浇涓�..', {icon: 16, shade: 0.01, time: 0});
+            var dataList = window.tbX.cacheSearch[tableId];  // 琛ㄦ牸鎼滅储鍚庣殑鏁版嵁
+            dataList || (dataList = tableX.getTbData(tableId));
+            if (sortType) {
+                dataList = dataList.sort(function (o1, o2) {
+                    var o1Str = o1[sortField], o2Str = o2[sortField];
+                    if (sortType === 'asc') {  // 鍗囧簭
+                        return (o1Str === o2Str) ? 0 : ((o1Str < o2Str) ? -1 : 1);
+                    } else {  // 闄嶅簭
+                        return (o1Str === o2Str) ? 0 : ((o1Str < o2Str) ? 1 : -1);
+                    }
+                });
+            }
+            insTb.reload({initSort: obj, url: '', data: dataList, page: {curr: 1}});
+            layer.close(loadIndex);
+        });
+    };
+
+    // 琛ㄦ牸鍒锋柊鎸夐垥
+    var renderRefresh = function (insTb) {
+        $('[' + tbRefreshAttr + '="' + insTb.config.id + '"]').off('click').on('click', function () {
+            if (insTb.reloadUrl) {
+                insTb.reloadUrl();
+            } else {
+                insTb.reload({page: {curr: 1}});
+            }
+        });
+    };
+
+    // 娓叉煋瀵煎嚭鎸夐挳
+    var renderExport = function (insTb) {
+        var tableId = insTb.config.id;
+        $('[' + tbExportAttr + '="' + tableId + '"]').off('click').on('click', function (event) {
+            if ($(this).find('.tbx-dropdown-menu').length > 0) {
+                return;
+            }
+            if (event !== void 0) {
+                event.preventDefault();
+                event.stopPropagation();
+            }
+            var htmlStr = '<div class="tbx-dropdown-menu">';
+            htmlStr += '      <div class="tbx-dropdown-menu-item" data-type="check">瀵煎嚭閫変腑鏁版嵁</div>';
+            htmlStr += '      <div class="tbx-dropdown-menu-item" data-type="current">瀵煎嚭褰撳墠椤垫暟鎹�</div>';
+            htmlStr += '      <div class="tbx-dropdown-menu-item" data-type="all">瀵煎嚭鍏ㄩ儴鏁版嵁</div>';
+            htmlStr += '   </div>';
+            $(this).append(htmlStr);
+            $(this).addClass('tbx-dropdown-btn');
+            $(this).parent().css('position', 'relative');
+            $(this).parent().css('z-index', '9998');
+            $('.tbx-dropdown-menu').off('click').on('click', '.tbx-dropdown-menu-item', function (event) {
+                var type = $(this).data('type');
+                if (type === 'check') {
+                    var checkRows = table.checkStatus(tableId);
+                    if (checkRows.data.length === 0) {
+                        layer.msg('璇烽�夋嫨瑕佸鍑虹殑鏁版嵁', {icon: 2});
+                    } else {
+                        $('.tbx-dropdown-menu').remove();
+                        tableX.exportData({
+                            fileName: insTb.config.title,
+                            cols: insTb.config.cols,
+                            data: checkRows.data
+                        });
+                    }
+                } else if (type === 'current') {
+                    tableX.exportData({
+                        fileName: insTb.config.title,
+                        cols: insTb.config.cols,
+                        data: table.cache[tableId]
+                    });
+                } else if (type === 'all') {
+                    tableX.exportData({
+                        fileName: insTb.config.title,
+                        cols: insTb.config.cols,
+                        data: tableX.getTbData(tableId)
+                    });
+                }
+                if (event !== void 0) {
+                    event.preventDefault();
+                    event.stopPropagation();
+                }
+            });
+        });
+        $(document).off('click.tbxDropHide').on('click.tbxDropHide', function () {
+            $('.tbx-dropdown-menu').remove();
+        });
+    };
+
+    /* css鏍峰紡 */
+    var getCommonCss = function () {
+        var cssStr = '.tbx-dropdown-btn {';
+        cssStr += '        position: relative;';
+        cssStr += '   }';
+        cssStr += '   .tbx-dropdown-btn:hover {';
+        cssStr += '        opacity: 1';
+        cssStr += '   }';
+        cssStr += '   .tbx-dropdown-menu {';
+        cssStr += '        position: absolute;';
+        cssStr += '        top: 100%;';
+        cssStr += '        right: 0;';
+        cssStr += '        padding: 5px 0;';
+        cssStr += '        margin: 5px 0 0 0;';
+        cssStr += '        overflow: visible;';
+        cssStr += '        min-width: 110px;';
+        cssStr += '        background: #fff;';
+        cssStr += '        border-radius: 2px;';
+        cssStr += '        box-shadow: 0 2px 4px rgba(0, 0, 0, .12);';
+        cssStr += '        border: 1px solid #d2d2d2;';
+        cssStr += '        z-index: 9998;';
+        cssStr += '        cursor: default;';
+        cssStr += '   }';
+        cssStr += '   .tbx-dropdown-menu .tbx-dropdown-menu-item {';
+        cssStr += '        display: block;';
+        cssStr += '        color: #555;';
+        cssStr += '        font-size: 14px;';
+        cssStr += '        padding: 10px 15px;';
+        cssStr += '        text-decoration: none;';
+        cssStr += '        white-space: nowrap;';
+        cssStr += '        cursor: pointer;';
+        cssStr += '        user-select: none;';
+        cssStr += '        line-height: normal;';
+        cssStr += '   }';
+        cssStr += '   .tbx-dropdown-menu .tbx-dropdown-menu-item:hover {';
+        cssStr += '        background-color: #eeeeee;';
+        cssStr += '   }';
+        cssStr += '   .export-show {';
+        cssStr += '        display: none;';
+        cssStr += '   }';
+        return cssStr;
+    };
+
+    $('head').append('<style id="ew-css-tbx" type="text/css">' + getCommonCss() + '</style>');
+    exports("tableX", tableX);
+});
\ No newline at end of file
diff --git a/src/main/webapp/views/docType/docType.html b/src/main/webapp/views/docType/docType.html
index 61b26ef..597d2f4 100644
--- a/src/main/webapp/views/docType/docType.html
+++ b/src/main/webapp/views/docType/docType.html
@@ -91,6 +91,16 @@
                     </div>
                 </div>
                 <div class="layui-form-item">
+                    <label class="layui-form-label layui-form-required">鐘舵��</label>
+                    <div class="layui-input-block">
+                        <select name="status" lay-vertype="tips" lay-verify="required" required="">
+                            <option value="">璇烽�夋嫨鐘舵��</option>
+                            <option value="1">姝e父</option>
+                            <option value="0">绂佺敤</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="layui-form-item">
                     <label class="layui-form-label">澶囨敞: </label>
                     <div class="layui-input-block">
                         <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�">

--
Gitblit v1.9.1