From 83b02c918a02f548ac5fbe189891867a00a53fc2 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 13 三月 2021 14:11:59 +0800
Subject: [PATCH] #
---
src/main/webapp/views/custOrder/custOrder.html | 2
src/main/webapp/static/layui/lay/modules/tableX.js | 645 +++++++++++++++++++++++++++++++++++++
src/main/webapp/static/layui/lay/modules/contextMenu.js | 228 +++++++++++++
src/main/webapp/static/js/custOrder/custOrder.js | 108 ++---
4 files changed, 921 insertions(+), 62 deletions(-)
diff --git a/src/main/webapp/static/js/custOrder/custOrder.js b/src/main/webapp/static/js/custOrder/custOrder.js
index 2fd9c5f..0434960 100644
--- a/src/main/webapp/static/js/custOrder/custOrder.js
+++ b/src/main/webapp/static/js/custOrder/custOrder.js
@@ -14,18 +14,15 @@
}
});
}
-
layui.config({
- base: '../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
-}).extend({
- index: 'lib/index' //涓诲叆鍙fā鍧�
-}).use(['table', 'laydate', 'form'], function(){
+ base: baseUrl + "/static/layui/lay/modules/" // 閰嶇疆妯″潡鎵�鍦ㄧ殑鐩綍
+}).use(['table', 'laydate', 'form', 'tableX'], function(){
var table = layui.table;
var $ = layui.jquery;
var layer = layui.layer;
var layDate = layui.laydate;
var form = layui.form;
- var admin = layui.admin;
+ var tableX = layui.tableX;
// 鏁版嵁娓叉煋
tableIns = table.render({
@@ -116,20 +113,6 @@
table.on('toolbar(custOrder)', function (obj) {
var checkStatus = table.checkStatus(obj.config.id);
switch(obj.event) {
- case 'addData':
- layer.open({
- type: 2,
- title: '鏂板',
- maxmin: true,
- area: [top.detailWidth, top.detailHeight],
- content: 'custOrder_detail.html',
- success: function(layero, index){
- layer.getChildFrame('#data-detail-submit-edit', index).hide();
- clearFormVal(layer.getChildFrame('#detail', index));
- layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
- }
- });
- break;
case 'deleteData':
var data = checkStatus.data;
if (data.length === 0){
@@ -203,7 +186,7 @@
switch (obj.event) {
// 鎷h揣
case 'stockOut':
-
+ var loadIndex = layer.load(2);
$.ajax({
url: baseUrl + "/work/stock/out/preview",
headers: {'token': localStorage.getItem('token')},
@@ -213,29 +196,51 @@
}),
method: 'POST',
success: function (res) {
- console.log(res);
+ layer.close(loadIndex);
+ // 鎴愬姛
+ if (res.code === 200){
+ layer.open({
+ type: 1
+ ,title: false
+ ,closeBtn: false
+ ,offset: '100px'
+ ,area: '300px;'
+ ,shade: 0.5
+ ,id: 'LAY_layuipro'
+ ,btn: ['椹笂鎷h揣', '绋嶅悗澶勭悊']
+ ,btnAlign: 'c'
+ ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
+ ,content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">浣犵煡閬撳悧锛熶翰锛�<br>layer 鈮� layui<br><br>layer鍙槸浣滀负Layui鐨勪竴涓脊灞傛ā鍧楋紝鐢变簬鍏剁敤鎴峰熀鏁拌緝澶э紝鎵�浠ュ父甯镐細鏈変汉浠ヤ负layui鏄痩ayerui<br><br>layer铏界劧宸茶 Layui 鏀剁紪涓哄唴缃殑寮瑰眰妯″潡锛屼絾浠嶇劧浼氫綔涓轰竴涓嫭绔嬬粍浠跺叏鍔涚淮鎶ゃ�佸崌绾с��<br><br>鎴戜滑姝ゅ悗鐨勫緛閫旀槸鏄熻景澶ф捣 ^_^</div>'
+ ,success: function(layero){
+ var btn = layero.find('.layui-layer-btn');
+ btn.find('.layui-layer-btn0').attr({
+ href: 'http://www.layui.com/'
+ ,target: '_blank'
+ });
+ }
+ });
+ // 缂烘枡
+ } else if (res.code === 20001) {
+ layer.confirm(res.msg, {
+ shadeClose: true
+ , area: ['400px']
+ , btn: ['搴撳瓨璋冩嫧', '鍙栨秷']
+ }, function() {
+ // todo 搴撳瓨璋冩嫧
+ layer.closeAll();
+ }, function() {
+ // printPakouts(data.number);
+ layer.closeAll();
+ }
+ )
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 1})
+ }
}
})
- // layer.open({
- // type: 1
- // ,title: false
- // ,closeBtn: false
- // ,offset: '100px'
- // ,area: '300px;'
- // ,shade: 0.5
- // ,id: 'LAY_layuipro'
- // ,btn: ['鐏�熷洿瑙�', '娈嬪繊鎷掔粷']
- // ,btnAlign: 'c'
- // ,moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
- // ,content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">浣犵煡閬撳悧锛熶翰锛�<br>layer 鈮� layui<br><br>layer鍙槸浣滀负Layui鐨勪竴涓脊灞傛ā鍧楋紝鐢变簬鍏剁敤鎴峰熀鏁拌緝澶э紝鎵�浠ュ父甯镐細鏈変汉浠ヤ负layui鏄痩ayerui<br><br>layer铏界劧宸茶 Layui 鏀剁紪涓哄唴缃殑寮瑰眰妯″潡锛屼絾浠嶇劧浼氫綔涓轰竴涓嫭绔嬬粍浠跺叏鍔涚淮鎶ゃ�佸崌绾с��<br><br>鎴戜滑姝ゅ悗鐨勫緛閫旀槸鏄熻景澶ф捣 ^_^</div>'
- // ,success: function(layero){
- // var btn = layero.find('.layui-layer-btn');
- // btn.find('.layui-layer-btn0').attr({
- // href: 'http://www.layui.com/'
- // ,target: '_blank'
- // });
- // }
- // });
+
// layer.confirm(data.number + ' 璁㈠崟寮�濮嬫嫞璐э紵', {shadeClose: true}, function(){
// layer.closeAll();
@@ -280,25 +285,6 @@
// }
// })
// });
- break;
- // 璇︽儏
- case 'detail':
- layer.open({
- type: 2,
- title: '璇︽儏',
- maxmin: true,
- area: [top.detailWidth, top.detailHeight],
- shadeClose: true,
- content: 'custOrder_detail.html',
- success: function(layero, index){
- setFormVal(layer.getChildFrame('#detail', index), data, true);
- top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
- layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
- layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
- layero.find('iframe')[0].contentWindow.layui.form.render('select');
- layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
- }
- });
break;
// 鎵撳嵃
case 'print':
diff --git a/src/main/webapp/static/layui/lay/modules/contextMenu.js b/src/main/webapp/static/layui/lay/modules/contextMenu.js
new file mode 100644
index 0000000..2655031
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/contextMenu.js
@@ -0,0 +1,228 @@
+/** 鍙抽敭鑿滃崟妯″潡 date:2019-02-08 License By http://easyweb.vip */
+layui.define(["jquery"], function (exports) {
+ var $ = layui.jquery;
+
+ var contextMenu = {
+ // 缁戝畾鍏冪礌
+ bind: function (elem, items) {
+ $(elem).bind('contextmenu', function (e) {
+ contextMenu.show(items, e.clientX, e.clientY, e);
+ return false;
+ });
+ },
+ // 鍦ㄦ寚瀹氬潗鏍囨樉绀鸿彍鍗�
+ show: function (items, x, y, e) {
+ var xy = 'left: ' + x + 'px; top: ' + y + 'px;';
+ var htmlStr = '<div class="ctxMenu" style="' + xy + '">';
+ htmlStr += contextMenu.getHtml(items, '');
+ htmlStr += ' </div>';
+ contextMenu.remove();
+ $('body').append(htmlStr);
+ // 璋冩暣婧㈠嚭浣嶇疆
+ var $ctxMenu = $('.ctxMenu');
+ if (x + $ctxMenu.outerWidth() > contextMenu.getPageWidth()) {
+ x -= $ctxMenu.outerWidth();
+ }
+ if (y + $ctxMenu.outerHeight() > contextMenu.getPageHeight()) {
+ y = y - $ctxMenu.outerHeight();
+ if (y < 0) {
+ y = 0;
+ }
+ }
+ $ctxMenu.css({'top': y, 'left': x});
+ // 娣诲姞item鐐瑰嚮浜嬩欢
+ contextMenu.setEvents(items, e);
+ // 鏄剧ず瀛愯彍鍗曚簨浠�
+ $('.ctxMenu-item').on('mouseenter', function (e) {
+ e.stopPropagation();
+ $(this).parent().find('.ctxMenu-sub').css('display', 'none');
+ if (!$(this).hasClass('haveMore')) return;
+ var $item = $(this).find('>a');
+ var $sub = $(this).find('>.ctxMenu-sub');
+ var top = $item.offset().top - $('body,html').scrollTop();
+ var left = $item.offset().left + $item.outerWidth() - $('body,html').scrollLeft();
+ if (left + $sub.outerWidth() > contextMenu.getPageWidth()) {
+ left = $item.offset().left - $sub.outerWidth();
+ }
+ if (top + $sub.outerHeight() > contextMenu.getPageHeight()) {
+ top = top - $sub.outerHeight() + $item.outerHeight();
+ if (top < 0) {
+ top = 0;
+ }
+ }
+ $(this).find('>.ctxMenu-sub').css({
+ 'top': top,
+ 'left': left,
+ 'display': 'block'
+ });
+ })/*.on('mouseleave', function () {
+ $(this).find('>.ctxMenu-sub').css('display', 'none');
+ })*/;
+ },
+ // 绉婚櫎鎵�鏈�
+ remove: function () {
+ var ifs = parent.window.frames;
+ for (var i = 0; i < ifs.length; i++) {
+ var tif = ifs[i];
+ try {
+ tif.layui.jquery('body>.ctxMenu').remove();
+ } catch (e) {
+ }
+ }
+ try {
+ parent.layui.jquery('body>.ctxMenu').remove();
+ } catch (e) {
+ }
+ },
+ // 璁剧疆浜嬩欢鐩戝惉
+ setEvents: function (items, event) {
+ $('.ctxMenu').off('click').on('click', '[lay-id]', function (e) {
+ var itemId = $(this).attr('lay-id');
+ var item = getItemById(itemId, items);
+ item.click && item.click(e, event);
+ });
+
+ function getItemById(id, list) {
+ for (var i = 0; i < list.length; i++) {
+ var one = list[i];
+ if (id == one.itemId) {
+ return one;
+ } else if (one.subs && one.subs.length > 0) {
+ var temp = getItemById(id, one.subs);
+ if (temp) {
+ return temp;
+ }
+ }
+ }
+ }
+ },
+ // 鏋勫缓鏃犻檺绾�
+ getHtml: function (items, pid) {
+ var htmlStr = '';
+ for (var i = 0; i < items.length; i++) {
+ var item = items[i];
+ item.itemId = 'ctxMenu-' + pid + i;
+ if (item.subs && item.subs.length > 0) {
+ htmlStr += '<div class="ctxMenu-item haveMore" lay-id="' + item.itemId + '">';
+ htmlStr += '<a>';
+ if (item.icon) {
+ htmlStr += '<i class="' + item.icon + ' ctx-icon"></i>';
+ }
+ htmlStr += item.name;
+ htmlStr += '<i class="layui-icon layui-icon-right icon-more"></i>';
+ htmlStr += '</a>';
+ htmlStr += '<div class="ctxMenu-sub" style="display: none;">';
+ htmlStr += contextMenu.getHtml(item.subs, pid + i);
+ htmlStr += '</div>';
+ } else {
+ htmlStr += '<div class="ctxMenu-item" lay-id="' + item.itemId + '">';
+ htmlStr += '<a>';
+ if (item.icon) {
+ htmlStr += '<i class="' + item.icon + ' ctx-icon"></i>';
+ }
+ htmlStr += item.name;
+ htmlStr += '</a>';
+ }
+ htmlStr += '</div>';
+ if (item.hr == true) {
+ htmlStr += '<hr/>';
+ }
+ }
+ return htmlStr;
+ },
+ // 鑾峰彇css浠g爜
+ getCommonCss: function () {
+ var cssStr = '.ctxMenu, .ctxMenu-sub {';
+ cssStr += ' max-width: 250px;';
+ cssStr += ' min-width: 110px;';
+ cssStr += ' background: white;';
+ cssStr += ' border-radius: 2px;';
+ cssStr += ' padding: 5px 0;';
+ cssStr += ' white-space: nowrap;';
+ cssStr += ' position: fixed;';
+ cssStr += ' z-index: 2147483647;';
+ cssStr += ' box-shadow: 0 2px 4px rgba(0, 0, 0, .12);';
+ cssStr += ' border: 1px solid #d2d2d2;';
+ cssStr += ' overflow: visible;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu-item {';
+ cssStr += ' position: relative;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu-item > a {';
+ cssStr += ' font-size: 14px;';
+ cssStr += ' color: #666;';
+ cssStr += ' padding: 0 26px 0 35px;';
+ cssStr += ' cursor: pointer;';
+ cssStr += ' display: block;';
+ cssStr += ' line-height: 36px;';
+ cssStr += ' text-decoration: none;';
+ cssStr += ' position: relative;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu-item > a:hover {';
+ cssStr += ' background: #f2f2f2;';
+ cssStr += ' color: #666;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu-item > a > .icon-more {';
+ cssStr += ' position: absolute;';
+ cssStr += ' right: 5px;';
+ cssStr += ' top: 0;';
+ cssStr += ' font-size: 12px;';
+ cssStr += ' color: #666;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu-item > a > .ctx-icon {';
+ cssStr += ' position: absolute;';
+ cssStr += ' left: 12px;';
+ cssStr += ' top: 0;';
+ cssStr += ' font-size: 15px;';
+ cssStr += ' color: #666;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu hr {';
+ cssStr += ' background-color: #e6e6e6;';
+ cssStr += ' clear: both;';
+ cssStr += ' margin: 5px 0;';
+ cssStr += ' border: 0;';
+ cssStr += ' height: 1px;';
+ cssStr += ' }';
+
+ cssStr += ' .ctx-ic-lg {';
+ cssStr += ' font-size: 18px !important;';
+ cssStr += ' left: 11px !important;';
+ cssStr += ' }';
+ return cssStr;
+ },
+ // 鑾峰彇娴忚鍣ㄩ珮搴�
+ getPageHeight: function () {
+ return document.documentElement.clientHeight || document.body.clientHeight;
+ },
+ // 鑾峰彇娴忚鍣ㄥ搴�
+ getPageWidth: function () {
+ return document.documentElement.clientWidth || document.body.clientWidth;
+ },
+ };
+
+ // 鐐瑰嚮浠绘剰浣嶇疆鍏抽棴鑿滃崟
+ $(document).off('click.ctxMenu').on('click.ctxMenu', function () {
+ contextMenu.remove();
+ });
+
+ // 鐐瑰嚮鏈夊瓙鑿滃崟鐨勮妭鐐逛笉鍏抽棴鑿滃崟
+ $(document).off('click.ctxMenuMore').on('click.ctxMenuMore', '.ctxMenu-item', function (e) {
+ if ($(this).hasClass('haveMore')) {
+ if (e !== void 0) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ } else {
+ contextMenu.remove();
+ }
+ });
+
+ $('head').append('<style id="ew-css-ctx">' + contextMenu.getCommonCss() + '</style>');
+ exports("contextMenu", contextMenu);
+});
\ No newline at end of file
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/custOrder/custOrder.html b/src/main/webapp/views/custOrder/custOrder.html
index 56e8d16..4f36cf7 100644
--- a/src/main/webapp/views/custOrder/custOrder.html
+++ b/src/main/webapp/views/custOrder/custOrder.html
@@ -31,7 +31,7 @@
<option value="1">寰呭鐞�</option>
<option value="2">鏈嫞璐�</option>
<option value="3">鍙栨秷</option>
- <option value="3">宸插畬鎴�</option>
+ <option value="4">宸插畬鎴�</option>
</select>
</div>
</div>
--
Gitblit v1.9.1