From 925aeab4d6dd0476a51fcf22a8f9cf676f074836 Mon Sep 17 00:00:00 2001
From: zrg <z18737863051@163.com>
Date: 星期三, 08 一月 2025 18:03:25 +0800
Subject: [PATCH] 全程追溯报表,优化成层级表格
---
WebTM/views/质量管理/质量报表/QC_FiveMenOneRingList.html | 150 ++-
WebTM/views/质量管理/质量报表/SB_TechnologyParameterList.html | 7
WebTM/views/设备管理/设备报表/Sb_EquipMentCollectionTechParam.html | 4
WebTM/layuiadmin/Scripts/webConfig.js | 6
WebTM/layuiadmin/modules/treeTable.js | 2238 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
WebTM/WebTM.csproj | 3
6 files changed, 2,342 insertions(+), 66 deletions(-)
diff --git a/WebTM/WebTM.csproj b/WebTM/WebTM.csproj
index 1bb9e33..619a88a 100644
--- a/WebTM/WebTM.csproj
+++ b/WebTM/WebTM.csproj
@@ -104,6 +104,8 @@
<Content Include="layuiadmin\ext\tableFilter.js" />
<Content Include="layuiadmin\ext\tableMerge.js" />
<Content Include="layuiadmin\grwebapp.js" />
+ <Content Include="layuiadmin\layui\layui.js" />
+ <Content Include="layuiadmin\modules\treeTable.js" />
<Content Include="layuiadmin\resize\ResizeLeftRight.css" />
<Content Include="layuiadmin\resize\ResizeLeftRight.js" />
<Content Include="layuiadmin\QueryScheme.js" />
@@ -127,7 +129,6 @@
<None Include="Properties\PublishProfiles\JFTM.pubxml" />
<Content Include="layuiadmin\layui\images\device.png" />
<Content Include="layuiadmin\layui\images\erro.png" />
- <Content Include="layuiadmin\layui\layui.js" />
<Content Include="layuiadmin\layui\layui1.js" />
<Content Include="layuiadmin\layui\lay\modules\table-鍓湰.js" />
<Content Include="layuiadmin\layui\lay\modules\table.js" />
diff --git a/WebTM/layuiadmin/Scripts/webConfig.js b/WebTM/layuiadmin/Scripts/webConfig.js
index e0e2cc9..5f6425e 100644
--- a/WebTM/layuiadmin/Scripts/webConfig.js
+++ b/WebTM/layuiadmin/Scripts/webConfig.js
@@ -5,9 +5,9 @@
//var WEBURL = "http://61.164.86.218:8099/ABAPI/";
/*var WEBURL = "http://localhost/API/"; //棰滄檽鍐涙湰鍦伴厤缃�*/
//var WEBURL = "http://localhost:8082/LuBaoAPI/"; //鏉ㄤ箰鏈湴閰嶇疆
- var WEBURL = "http://localhost:8082/API/"; //鏉滆春鏈湴閰嶇疆
- //var WEBURL = "http://localhost:8082/API/"; //寮犵憺骞挎湰鍦伴厤缃�
- var WEBURL = "http://localhost:81/API/" //缈佹稕娑涙湰鍦伴厤缃�
+ //var WEBURL = "http://localhost:8082/API/"; //鏉滆春鏈湴閰嶇疆
+ var WEBURL = "http://localhost:8082/API/"; //寮犵憺骞挎湰鍦伴厤缃�
+ //var WEBURL = "http://localhost:81/API/" //缈佹稕娑涙湰鍦伴厤缃�
//var WEBURL = "http://47.96.97.237/API/"; //鏅轰簯鏈嶅姟鍣�
/* var WEBURL = "http://localhost:8082/LuBaoAPI/"; //浣欐�濇澃鏈湴閰嶇疆*/
//var WEBURL = "http://localhost:8088/ARAPI/"; //浣欐�濇澃鏈湴閰嶇疆(瀹夌憺)
diff --git a/WebTM/layuiadmin/modules/treeTable.js b/WebTM/layuiadmin/modules/treeTable.js
new file mode 100644
index 0000000..235f450
--- /dev/null
+++ b/WebTM/layuiadmin/modules/treeTable.js
@@ -0,0 +1,2238 @@
+/** 鏍戝舰琛ㄦ牸3.x Created by wangfan on 2020-05-12 https://gitee.com/whvse/treetable-lay */
+
+layui.define(['laytpl', 'form', 'util'], function (exports) {
+ var $ = layui.jquery;
+ var laytpl = layui.laytpl;
+ var form = layui.form;
+ var util = layui.util;
+ var device = layui.device();
+ var MOD_NAME = 'treeTable'; // 妯″潡鍚�
+ var _instances = {}; // 璁板綍鎵�鏈夊疄渚�
+
+ /* 琛ㄦ牸榛樿鍙傛暟 */
+ var defaultOption = {
+ elem: undefined, // 瀹瑰櫒
+ cols: undefined, // 鍒楀弬鏁�
+ url: undefined, // url妯″紡璇锋眰
+ method: undefined, // url妯″紡璇锋眰鏂瑰紡
+ where: undefined, // url妯″紡璇锋眰鏉′欢
+ contentType: undefined, // url妯″紡璇锋眰绫诲瀷
+ headers: undefined, // url妯″紡璇锋眰headers
+ parseData: undefined, // url妯″紡澶勭悊璇锋眰鏁版嵁
+ request: {pidName: 'pid'}, // url妯″紡璇锋眰瀛楁鑷畾涔�
+ toolbar: undefined, // 琛ㄥご宸ュ叿鏍�
+ defaultToolbar: undefined, // 琛ㄥご宸ュ叿鏍忓彸渚ф寜閽�
+ width: undefined, // 瀹瑰櫒瀹藉害
+ height: undefined, // 瀹瑰櫒楂樺害
+ cellMinWidth: 90, // 鍗曞厓鏍兼渶灏忓搴�
+ done: undefined, // 鏁版嵁澶勭悊瀹屽洖璋�
+ data: undefined, // 鐩存帴璧嬪�兼暟鎹�
+ title: undefined, // 瀹氫箟table澶ф爣棰橈紝鏂囦欢瀵煎嚭浼氱敤鍒�
+ skin: undefined, // 琛ㄦ牸椋庢牸
+ even: undefined, // 鏄惁寮�鍚殧琛屽彉鑹�
+ size: undefined, // 琛ㄦ牸灏哄
+ text: {
+ none: '鏃犳暟鎹�' // 绌烘暟鎹彁绀�
+ },
+ reqData: undefined, // 鑷畾涔夊姞杞芥暟鎹柟娉�
+ useAdmin: false, // 鏄惁浣跨敤admin.ajax
+ tree: {
+ idName: 'id', // id鐨勫瓧娈靛悕
+ pidName: 'pid', // pid鐨勫瓧娈靛悕
+ childName: 'children', // children鐨勫瓧娈靛悕
+ haveChildName: 'haveChild', // 鏄惁鏈塩hildren鏍囪瘑鐨勫瓧娈靛悕
+ openName: 'open', // 鏄惁榛樿灞曞紑鐨勫瓧娈靛悕
+ iconIndex: 0, // 鍥炬爣鍒楃殑绱㈠紩
+ arrowType: undefined, // 鎶樺彔绠ご绫诲瀷
+ onlyIconControl: undefined, // 浠呯偣鍑诲浘鏍囨帶鍒跺睍寮�鎶樺彔
+ getIcon: function (d) { // 鑷畾涔夊浘鏍�
+ var haveChild = d[this.haveChildName];
+ if (haveChild !== undefined) haveChild = haveChild === true || haveChild === 'true';
+ else if (d[this.childName]) haveChild = d[this.childName].length > 0;
+ if (haveChild) return '<i class="ew-tree-icon layui-icon layui-icon-layer"></i>';
+ else return '<i class="ew-tree-icon layui-icon layui-icon-file"></i>';
+ }
+ }
+ };
+ /* 鍒楅粯璁ゅ弬鏁� */
+ var colDefaultOption = {
+ field: undefined, // 瀛楁鍚�
+ title: undefined, // 鏍囬
+ width: undefined, // 瀹藉害
+ minWidth: undefined, // 鏈�灏忓搴�
+ type: 'normal', // 鍒楃被鍨�
+ fixed: undefined, // 鍥哄畾鍒�
+ hide: undefined, // 鏄惁鍒濆闅愯棌鍒�
+ unresize: undefined, // 绂佺敤鎷栨嫿鍒楀
+ style: undefined, // 鍗曞厓鏍兼牱寮�
+ align: undefined, // 瀵归綈鏂瑰紡
+ colspan: undefined, // 鍗曞厓鏍兼墍鍗犵殑鍒楁暟
+ rowspan: undefined, // 鍗曞厓鏍兼墍鍗犵殑琛屾暟
+ templet: undefined, // 鑷畾涔夋ā鏉�
+ toolbar: undefined, // 宸ュ叿鍒�
+ 'class': undefined, // 鍗曞厓鏍糲lass
+ singleLine: undefined // 鏄惁涓�琛屾樉绀�
+ };
+
+ /** TreeTable绫绘瀯閫犳柟娉� */
+ var TreeTable = function (options) {
+ _instances[options.elem.substring(1)] = this;
+ this.reload(options);
+ };
+
+ /** 鍙傛暟璁剧疆 */
+ TreeTable.prototype.initOptions = function (opt) {
+ var that = this;
+
+ // 澶勭悊鐗规畩鍒�
+ function initCol(item) {
+ if (!item.INIT_OK) item = $.extend({INIT_OK: true}, colDefaultOption, item);
+ // 鐗规畩鍒楀鐞�
+ if (item.type === 'space') { // 绌哄垪
+ if (!item.width) item.width = 15;
+ item.minWidth = item.width;
+ } else if (item.type === 'numbers') { // 搴忓彿鍒�
+ if (!item.width) item.width = 40;
+ item.minWidth = item.width;
+ if (!item.singleLine) item.singleLine = false;
+ if (!item.unresize) item.unresize = true;
+ if (!item.align) item.align = 'center';
+ } else if (item.type === 'checkbox' || item.type === 'radio') { // 澶�/鍗曢�夋鍒�
+ if (!item.width) item.width = 48;
+ item.minWidth = item.width;
+ if (!item.singleLine) item.singleLine = false;
+ if (!item.unresize) item.unresize = true;
+ if (!item.align) item.align = 'center';
+ }
+ if (item.toolbar) item.type = 'tool';
+ return item;
+ }
+
+ // 鍒濆鍖栧垪鍙傛暟
+ if ('Array' !== isClass(opt.cols[0])) opt.cols = [opt.cols];
+
+ // 鎭㈠cols鍙傛暟鍒濆鐘舵��
+ for (var m = 0; m < opt.cols.length; m++) {
+ for (var n = 0; n < opt.cols[m].length; n++) {
+ opt.cols[m][n].INIT_OK = undefined;
+ opt.cols[m][n].key = undefined;
+ opt.cols[m][n].colGroup = undefined;
+ opt.cols[m][n].HAS_PARENT = undefined;
+ opt.cols[m][n].parentKey = undefined;
+ opt.cols[m][n].PARENT_COL_INDEX = undefined;
+ }
+ }
+
+ // cols鍙傛暟澶勭悊
+ var colArrays = [], colIndex = 0;
+ for (var i1 = 0; i1 < opt.cols.length; i1++) {
+ var item1 = opt.cols[i1];
+ for (var i2 = 0; i2 < item1.length; i2++) {
+ var item2 = item1[i2];
+ if (!item2) {
+ item1.splice(i2, 1);
+ continue;
+ }
+ item2 = initCol(item2);
+ // 鍚堝苟鍗曞厓鏍煎鐞�
+ item2.key = i1 + '-' + i2;
+ var CHILD_COLS = undefined;
+ if (item2.colGroup || item2.colspan > 1) {
+ item2.colGroup = true;
+ item2.type = 'group';
+ CHILD_COLS = [];
+ colIndex++;
+ var childIndex = 0;
+ for (var i22 = 0; i22 < opt.cols[i1 + 1].length; i22++) {
+ var item22 = $.extend({INIT_OK: true}, colDefaultOption, opt.cols[i1 + 1][i22]);
+ if (item22.HAS_PARENT || (childIndex > 1 && childIndex == item2.colspan)) {
+ opt.cols[i1 + 1][i22] = item22;
+ continue;
+ }
+ item22.HAS_PARENT = true;
+ item22.parentKey = i1 + '-' + i2;
+ item22.key = (i1 + 1) + '-' + i22;
+ item22.PARENT_COL_INDEX = colIndex;
+ item22 = initCol(item22);
+ CHILD_COLS.push(item22);
+ childIndex = childIndex + parseInt(item22.colspan > 1 ? item22.colspan : 1);
+ opt.cols[i1 + 1][i22] = item22;
+ }
+ }
+ item2.CHILD_COLS = CHILD_COLS;
+ if (!item2.PARENT_COL_INDEX) colArrays.push(item2);
+ opt.cols[i1][i2] = item2;
+ }
+ }
+ this.options = $.extend(true, {}, defaultOption, opt);
+ this.options.colArrays = colArrays;
+
+ // url鍔犺浇妯″紡杞负reqData妯″紡
+ if (this.options.url) {
+ this.options.reqData = function (data, callback) {
+ if (!that.options.where) that.options.where = {};
+ if (data) that.options.where[that.options.request.pidName] = data[that.options.tree.idName];
+ (that.options.useAdmin ? layui.admin : $).ajax({
+ url: that.options.url,
+ data: that.options.contentType && that.options.contentType.indexOf('application/json') === 0 ? JSON.stringify(that.options.where) : that.options.where,
+ headers: that.options.headers,
+ type: that.options.method,
+ dataType: 'json',
+ contentType: that.options.contentType,
+ success: function (res) {
+ if (that.options.parseData) res = that.options.parseData(res);
+ if (res.code == 0) callback(res.data);
+ else callback(res.msg || '鍔犺浇澶辫触');
+ },
+ error: function (xhr) {
+ callback(xhr.status + ' - ' + xhr.statusText);
+ }
+ });
+ };
+ } else if (this.options.data && this.options.data.length > 0 && this.options.tree.isPidData) { // pid褰㈠紡鏁版嵁杞琧hildren褰㈠紡
+ this.options.data = tt.pidToChildren(this.options.data, this.options.tree.idName, this.options.tree.pidName, this.options.tree.childName);
+ }
+
+ // toolbar鍙傛暟澶勭悊
+ if ('default' === this.options.toolbar) {
+ this.options.toolbar = [
+ '<div>',
+ ' <div class="ew-tree-table-tool-item" title="娣诲姞" lay-event="add">',
+ ' <i class="layui-icon layui-icon-add-1"></i>',
+ ' </div>',
+ ' <div class="ew-tree-table-tool-item" title="淇敼" lay-event="update">',
+ ' <i class="layui-icon layui-icon-edit"></i>',
+ ' </div>',
+ ' <div class="ew-tree-table-tool-item" title="鍒犻櫎" lay-event="delete">',
+ ' <i class="layui-icon layui-icon-delete"></i>',
+ ' </div>',
+ '</div>'
+ ].join('');
+ }
+ if (this.options.defaultToolbar === undefined) this.options.defaultToolbar = ['filter', 'exports', 'print'];
+
+ // 鑷畾涔夊浘鏍囧弬鏁板鐞�
+ if (typeof this.options.tree.getIcon === 'string') {
+ var icon = this.options.tree.getIcon;
+ this.options.tree.getIcon = function (d) {
+ if (icon !== 'ew-tree-icon-style2') return icon;
+ var haveChild = d[this.haveChildName];
+ if (haveChild !== undefined) haveChild = haveChild === true || haveChild === 'true';
+ else if (d[this.childName]) haveChild = d[this.childName].length > 0;
+ if (haveChild) return '<i class="ew-tree-icon ew-tree-icon-folder"></i>';
+ else return '<i class="ew-tree-icon ew-tree-icon-file"></i>';
+ }
+ }
+ };
+ /** 鍒濆鍖栬〃鏍� */
+ TreeTable.prototype.init = function () {
+ var options = this.options;
+ var $elem = $(options.elem); // 鍘熷琛ㄦ牸
+ var tbFilter = options.elem.substring(1); // 琛ㄦ牸鐨刦ilter
+ // 绗竴娆$敓鎴愭爲琛ㄦ牸dom
+ $elem.removeAttr('lay-filter');
+ if ($elem.next('.ew-tree-table').length === 0) {
+ $elem.css('display', 'none');
+ $elem.after([
+ '<div class="layui-form ew-tree-table" lay-filter="', tbFilter, '" style="', options.style || '', '">',
+ ' <div class="ew-tree-table-tool" style="display: none;"></div>',
+ ' <div class="ew-tree-table-head">',
+ ' <table class="layui-table"></table>',
+ ' </div>',
+ ' <div class="ew-tree-table-box">',
+ ' <table class="layui-table"></table>',
+ ' <div class="ew-tree-table-loading">',
+ ' <i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i>',
+ ' </div>',
+ ' <div class="ew-tree-table-empty">', options.text.none || '', '</div>',
+ ' </div>',
+ '</div>'
+ ].join(''));
+ }
+ // 鑾峰彇鍚勪釜缁勪欢
+ var components = this.getComponents();
+
+ // 鍩虹鍙傛暟璁剧疆
+ if (options.skin) components.$table.attr('lay-skin', options.skin);
+ if (options.size) components.$table.attr('lay-size', options.size);
+ if (options.even) components.$table.attr('lay-even', options.even);
+
+ // 澶撮儴宸ュ叿鏍�
+ components.$toolbar.empty();
+ if (options.toolbar === false || options.toolbar === undefined) {
+ components.$toolbar.hide();
+ } else {
+ components.$toolbar.show();
+ if (typeof options.toolbar === 'string') {
+ laytpl($(options.toolbar).html()).render({}, function (html) {
+ components.$toolbar.html('<div style="display: inline-block;">' + html + '</div>');
+ });
+ }
+ var tbRights = ['<div class="ew-tree-table-tool-right">'];
+ for (var i = 0; i < options.defaultToolbar.length; i++) {
+ var tbItem;
+ if ('filter' === options.defaultToolbar[i]) {
+ //tbItem = {title: '绛涢��', layEvent: 'LAYTABLE_COLS', icon: 'layui-icon-cols'};
+ } else if ('exports' === options.defaultToolbar[i]) {
+ // tbItem = {title: '瀵煎嚭', layEvent: 'LAYTABLE_EXPORT', icon: 'layui-icon-export'};
+ } else if ('print' === options.defaultToolbar[i]) {
+ // tbItem = {title: '鎵撳嵃', layEvent: 'LAYTABLE_PRINT', icon: 'layui-icon-print'};
+ } else {
+ tbItem = options.defaultToolbar[i];
+ }
+ if (tbItem) {
+ tbRights.push('<div class="ew-tree-table-tool-item"');
+ tbRights.push(' title="' + tbItem.title + '"');
+ tbRights.push(' lay-event="' + tbItem.layEvent + '">');
+ tbRights.push('<i class="layui-icon ' + tbItem.icon + '"></i></div>');
+ }
+ }
+ components.$toolbar.append(tbRights.join('') + '</div>');
+ }
+
+ // 鍥哄畾瀹藉害
+ if (options.width) {
+ components.$view.css('width', options.width);
+ components.$tHeadGroup.css('width', options.width);
+ components.$tBodyGroup.css('width', options.width);
+ }
+ // 琛ㄦ牸灏哄璁剧疆
+ var colgroupHtml = this.resize(true);
+ // 鐢熸垚thead
+ var headHtml = '<thead>' + this.renderBodyTh() + '</thead>';
+
+ // 娓叉煋琛ㄥご鍙婄┖鐨勮〃涓讳綋鐨勭粨鏋�
+ components.$tBodyGroup.children('style').remove();
+ if (options.height) { // 鍥哄畾琛ㄥご
+ components.$tHead.html(colgroupHtml + headHtml);
+ components.$tBody.html(colgroupHtml + '<tbody></tbody>');
+ if (options.height.indexOf('full-') === 0) { // 宸�奸珮搴�
+ var h = parseFloat(options.height.substring(5)) + components.$toolbar.outerHeight()
+ + components.$tHeadGroup.outerHeight() + 1;
+ components.$tBodyGroup.append([
+ '<style>[lay-filter="', tbFilter, '"] .ew-tree-table-box {',
+ ' height: ', getPageHeight() - h, 'px;',
+ ' height: -moz-calc(100vh - ', h, 'px);',
+ ' height: -webkit-calc(100vh - ', h, 'px);',
+ ' height: calc(100vh - ', h, 'px);',
+ '}</style>'
+ ].join(''));
+ components.$tBodyGroup.data('full', h);
+ components.$tBodyGroup.css('height', '');
+ } else { // 鍥哄畾楂樺害
+ components.$tBodyGroup.css('height', options.height);
+ components.$tBodyGroup.data('full', '');
+ }
+ components.$tHeadGroup.show();
+ } else {
+ components.$tHeadGroup.hide();
+ var trH = {lg: 50, sm: 30, md: 38};
+ components.$tBodyGroup.append([
+ '<style>[lay-filter="', tbFilter, '"] .ew-tree-table-box:before {',
+ ' content: "";',
+ ' position: absolute;',
+ ' top: 0; left: 0; right: 0;',
+ ' height: ' + (trH[options.size || 'md'] * options.cols.length) + 'px;',
+ ' background-color: #f2f2f2;',
+ ' border-bottom: 1px solid #e6e6e6;',
+ '}</style>'
+ ].join(''));
+ components.$tBody.html(colgroupHtml + headHtml + '<tbody></tbody>');
+ }
+ form.render('checkbox', tbFilter); // 娓叉煋琛ㄥご鐨勮〃鍗曞厓绱�
+
+ // 榛樿闅愯棌鍒椾慨姝olspan
+ function patchHide($tr) {
+ var parentKey = $tr.data('parent'), pCol;
+ if (!parentKey) return;
+ var $parent = components.$table.children('thead').children('tr').children('[data-key="' + parentKey + '"]');
+ var colspan = $parent.attr('colspan') - 1;
+ $parent.attr('colspan', colspan);
+ if (colspan === 0) $parent.addClass('layui-hide');
+ patchHide($parent);
+ }
+
+ components.$table.children('thead').children('tr').children('th.layui-hide').each(function () {
+ patchHide($(this));
+ });
+
+ // 娓叉煋鏁版嵁
+ if (options.reqData) { // 寮傛鍔犺浇
+ this.options.data = undefined;
+ this.renderBodyAsync();
+ } else if (options.data && options.data.length > 0) {
+ this.renderBodyData(options.data);
+ } else {
+ components.$loading.hide();
+ components.$empty.show();
+ }
+ };
+
+ /** 缁戝畾鍚勯」浜嬩欢 */
+ TreeTable.prototype.bindEvents = function () {
+ var that = this;
+ var options = this.options;
+ var components = this.getComponents();
+ var $allBody = components.$table.children('tbody');
+
+ /* 琛屼簨浠跺叕鍏辫繑鍥炲璞� */
+ var member = function (ext) {
+ // 鑾峰彇琛宒om
+ var $tr = $(this);
+ if (!$tr.is('tr')) {
+ var $temp = $tr.parent('tr');
+ if ($temp.length > 0) $tr = $temp;
+ else $tr = $tr.parentsUntil('tr').last().parent();
+ }
+ var data = that.getDataByTr($tr); // 琛屽搴旀暟鎹�
+ var obj = {
+ tr: $tr,
+ data: data,
+ del: function () { // 鍒犻櫎琛�
+ var index = $tr.data('index');
+ var indent = parseInt($tr.data('indent'));
+ // 鍒犻櫎瀛愮骇
+ $tr.nextAll('tr').each(function () {
+ if (parseInt($(this).data('indent')) <= indent) return false;
+ $(this).remove();
+ });
+ // 鏇存柊鍚庨潰鍚岃緢鐨刬ndex
+ var indexLength = (typeof index === 'number' ? 1 : index.split('-').length);
+ $tr.nextAll('tr').each(function () {
+ var $this = $(this);
+ if (parseInt($this.data('indent')) < indent) return false;
+ var _index = $this.data('index').toString().split('-');
+ _index[indexLength - 1] = parseInt(_index[indexLength - 1]) - 1;
+ $this.data('index', _index.join('-'));
+ });
+ // 鍒犻櫎褰撳墠琛�
+ var $pTr = $tr.prevAll('tr');
+ that.del(undefined, index);
+ $tr.remove();
+ that.renderNumberCol(); // 娓叉煋搴忓彿鍒�
+ // 鑱斿姩鐖剁骇澶氶�夋
+ $pTr.each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd >= indent) return true;
+ that.checkParentCB($(this));
+ indent = tInd;
+ });
+ that.checkChooseAllCB(); // 鑱斿姩鍏ㄩ�夋
+ if (options.data.length === 0) components.$empty.show();
+ updateFixedTbHead(components.$view); // 鏇存柊婊氬姩鏉¤ˉ涓�
+ },
+ update: function (fields) { // 淇敼琛�
+ data = $.extend(true, data, fields);
+ var indent = parseInt($tr.data('indent'));
+ that.renderBodyTr(data, indent, undefined, $tr); // 鏇存柊鐣岄潰
+ form.render(null, components.filter); // 娓叉煋琛ㄥ崟鍏冪礌
+ that.renderNumberCol(); // 娓叉煋搴忓彿鍒�
+ // 鑱斿姩鐖剁骇澶氶�夋
+ $tr.prevAll('tr').each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd >= indent) return true;
+ that.checkParentCB($(this));
+ indent = tInd;
+ });
+ that.checkChooseAllCB(); // 鑱斿姩鍏ㄩ�夋
+ }
+ };
+ return $.extend(obj, ext);
+ };
+
+ // 缁戝畾鎶樺彔灞曞紑浜嬩欢
+ $allBody.off('click.fold').on('click.fold', '.ew-tree-pack', function (e) {
+ layui.stope(e);
+ var $tr = $(this).parentsUntil('tr').last().parent();
+ if ($tr.hasClass('ew-tree-table-loading')) return; // 宸叉槸鍔犺浇涓�
+ var haveChild = $tr.data('have-child');
+ if (haveChild !== true && haveChild !== 'true') return; // 瀛愯妭鐐�
+ var open = $tr.hasClass('ew-tree-table-open');
+ var data = that.getDataByTr($tr);
+ if (!open && !data[options.tree.childName]) {
+ that.renderBodyAsync(data, $tr);
+ } else {
+ data[options.tree.openName] = toggleRow($tr);
+ }
+ });
+
+ // 缁戝畾lay-event浜嬩欢
+ $allBody.off('click.tool').on('click.tool', '*[lay-event]', function (e) {
+ layui.stope(e);
+ var $this = $(this);
+ layui.event.call(this, MOD_NAME, 'tool(' + components.filter + ')', member.call(this, {
+ event: $this.attr('lay-event')
+ }));
+ });
+
+ // 缁戝畾鍗曢�夋浜嬩欢
+ form.on('radio(' + components.radioFilter + ')', function (data) {
+ var d = that.getDataByTr($(data.elem).parentsUntil('tr').last().parent());
+ that.removeAllChecked();
+ d.LAY_CHECKED = true; // 鍚屾椂鏇存柊鏁版嵁
+ d.LAY_INDETERMINATE = false;
+ layui.event.call(this, MOD_NAME, 'checkbox(' + components.filter + ')',
+ {checked: true, data: d, type: 'one'});
+ });
+
+ // 缁戝畾澶嶉�夋浜嬩欢
+ form.on('checkbox(' + components.checkboxFilter + ')', function (data) {
+ var checked = data.elem.checked;
+ var $cb = $(data.elem);
+ var $layCb = $cb.next('.layui-form-checkbox');
+ // 濡傛灉鏄崐閫夌姸鎬侊紝鐐瑰嚮鍏ㄩ��
+ if (!checked && $cb.hasClass('ew-form-indeterminate')) {
+ checked = true;
+ $cb.prop('checked', checked);
+ $layCb.addClass('layui-form-checked');
+ $cb.removeClass('ew-form-indeterminate');
+ }
+ var $tr = $cb.parentsUntil('tr').last().parent();
+ var d = that.getDataByTr($tr);
+ d.LAY_CHECKED = checked; // 鍚屾椂鏇存柊鏁版嵁
+ d.LAY_INDETERMINATE = false;
+ // 鑱斿姩鎿嶄綔
+ if (d[options.tree.childName] && d[options.tree.childName].length > 0) {
+ that.checkSubCB($tr, checked); // 鑱斿姩瀛愮骇
+ }
+ var indent = parseInt($tr.data('indent'));
+ $tr.prevAll('tr').each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd < indent) {
+ that.checkParentCB($(this)); // 鑱斿姩鐖剁骇
+ indent = tInd;
+ }
+ });
+ that.checkChooseAllCB(); // 鑱斿姩鍏ㄩ�夋
+ // 鍥炶皟浜嬩欢
+ layui.event.call(this, MOD_NAME, 'checkbox(' + components.filter + ')',
+ {checked: checked, data: d, type: 'more'});
+ });
+
+ // 缁戝畾鍏ㄩ�夊閫夋浜嬩欢
+ form.on('checkbox(' + components.chooseAllFilter + ')', function (data) {
+ var checked = data.elem.checked;
+ var $cb = $(data.elem);
+ var $layCb = $cb.next('.layui-form-checkbox');
+ if (!options.data || options.data.length === 0) { // 濡傛灉鏁版嵁涓虹┖
+ $cb.prop('checked', false);
+ $layCb.removeClass('layui-form-checked');
+ $cb.removeClass('ew-form-indeterminate');
+ return;
+ }
+ // 濡傛灉鏄崐閫夌姸鎬侊紝鐐瑰嚮鍏ㄩ��
+ if (!checked && $cb.hasClass('ew-form-indeterminate')) {
+ checked = true;
+ $cb.prop('checked', checked);
+ $layCb.addClass('layui-form-checked');
+ $cb.removeClass('ew-form-indeterminate');
+ }
+ layui.event.call(this, MOD_NAME, 'checkbox(' + components.filter + ')', {checked: checked, type: 'all'});
+ that.checkSubCB(components.$tBody.children('tbody'), checked); // 鑱斿姩鎿嶄綔
+ });
+
+ // 缁戝畾琛屽崟鍑讳簨浠�
+ $allBody.off('click.row').on('click.row', 'tr', function () {
+ layui.event.call(this, MOD_NAME, 'row(' + components.filter + ')', member.call(this, {}));
+ });
+
+ // 缁戝畾琛屽弻鍑讳簨浠�
+ $allBody.off('dblclick.rowDouble').on('dblclick.rowDouble', 'tr', function () {
+ layui.event.call(this, MOD_NAME, 'rowDouble(' + components.filter + ')', member.call(this, {}));
+ });
+
+ // 缁戝畾鍗曞厓鏍肩偣鍑讳簨浠�
+ $allBody.off('click.cell').on('click.cell', 'td', function (e) {
+ var $td = $(this);
+ var type = $td.data('type');
+ // 鍒ゆ柇鏄惁鏄閫夋銆佸崟閫夋鍒�
+ if (type === 'checkbox' || type === 'radio') return layui.stope(e);
+ var edit = $td.data('edit');
+ var field = $td.data('field');
+ if (edit) { // 寮�鍚簡鍗曞厓鏍肩紪杈�
+ layui.stope(e);
+ if ($allBody.find('.ew-tree-table-edit').length > 0) return;
+ var index = $td.data('index');
+ var indent = $td.find('.ew-tree-table-indent').length;
+ var d = that.getDataByTr($td.parent());
+ if ('text' === edit || 'number' === edit) { // 鏂囨湰妗�
+ var $input = $('<input type="' + edit + '" class="layui-input ew-tree-table-edit"/>');
+ $input[0].value = d[field];
+ $td.append($input);
+ $input.focus();
+ $input.blur(function () {
+ var value = $(this).val();
+ if (value == d[field]) return $(this).remove();
+ var rs = layui.event.call(this, MOD_NAME, 'edit(' + components.filter + ')', member.call(this,
+ {value: value, field: field}));
+ if (rs === false) {
+ $(this).addClass('layui-form-danger');
+ $(this).focus();
+ } else {
+ d[field] = value; // 鍚屾鏇存柊鏁版嵁
+ var keys = $td.data('key').split('-');
+ that.renderBodyTd(d, indent, index, $td, options.cols[keys[0]][keys[1]]); // 鏇存柊鍗曞厓鏍�
+ }
+ });
+ } else {
+ console.error('涓嶆敮鎸佺殑鍗曞厓鏍肩紪杈戠被鍨�:' + edit);
+ }
+ } else { // 鍥炶皟鍗曞厓鏍肩偣鍑讳簨浠�
+ var rs = layui.event.call(this, MOD_NAME, 'cell(' + components.filter + ')', member.call(this,
+ {td: $td, field: field}));
+ if (rs === false) layui.stope(e);
+ }
+ });
+
+ // 缁戝畾鍗曞厓鏍煎弻鍑讳簨浠�
+ $allBody.off('dblclick.cellDouble').on('dblclick.cellDouble', 'td', function (e) {
+ var $td = $(this);
+ var type = $td.data('type');
+ // 鍒ゆ柇鏄惁鏄閫夋銆佸崟閫夋鍒�
+ if (type === 'checkbox' || type === 'radio') return layui.stope(e);
+ var edit = $td.data('edit');
+ var field = $td.data('field');
+ if (edit) return layui.stope(e); // 寮�鍚簡鍗曞厓鏍肩紪杈�
+ // 鍥炶皟鍗曞厓鏍煎弻鍑讳簨浠�
+ var rs = layui.event.call(this, MOD_NAME, 'cellDouble(' + components.filter + ')', member.call(this,
+ {td: $td, field: field}));
+ if (rs === false) layui.stope(e);
+ });
+
+ // 缁戝畾澶撮儴宸ュ叿鏍忎簨浠�
+ components.$toolbar.off('click.toolbar').on('click.toolbar', '*[lay-event]', function (e) {
+ layui.stope(e);
+ var $this = $(this);
+ var event = $this.attr('lay-event');
+ if ('LAYTABLE_COLS' === event) that.toggleCol();
+ else if ('LAYTABLE_EXPORT' === event) that.exportData('show');
+ else if ('LAYTABLE_PRINT' === event) that.printTable();
+ else layui.event.call(this, MOD_NAME, 'toolbar(' + components.filter + ')', {event: event, elem: $this});
+ });
+
+ // 鍚屾婊氬姩鏉�
+ components.$tBodyGroup.on('scroll', function () {
+ var $this = $(this);
+ components.$tHeadGroup.scrollLeft($this.scrollLeft());
+ });
+
+ // 瀵煎嚭鏁版嵁
+ components.$toolbar.off('click.export').on('click.export', '.layui-table-tool-panel>[data-type]', function () {
+ var type = $(this).data('type');
+ if ('csv' === type || 'xls' === type) that.exportData(type);
+ });
+ components.$toolbar.off('click.panel').on('click.panel', '.layui-table-tool-panel', function (e) {
+ layui.stope(e);
+ });
+
+ // 绛涢�夊垪
+ form.on('checkbox(' + components.colsToggleFilter + ')', function (data) {
+ that.toggleCol(data.elem.checked, undefined, data.value);
+ });
+
+ };
+
+ /** 鑾峰彇鍚勪釜缁勪欢 */
+ TreeTable.prototype.getComponents = function () {
+ var $view = $(this.options.elem).next('.ew-tree-table'); // 瀹瑰櫒
+ var filter = $view.attr('lay-filter'); // 瀹瑰櫒filter
+ var $tHeadGroup = $view.children('.ew-tree-table-head'); // 琛ㄥご閮ㄥ垎瀹瑰櫒
+ var $tBodyGroup = $view.children('.ew-tree-table-box'); // 涓讳綋閮ㄥ垎瀹瑰櫒
+ return {
+ $view: $view,
+ filter: filter,
+ $tHeadGroup: $tHeadGroup,
+ $tBodyGroup: $tBodyGroup,
+ $tHead: $tHeadGroup.children('.layui-table'), // 琛ㄥご琛ㄦ牸
+ $tBody: $tBodyGroup.children('.layui-table'), // 涓讳綋琛ㄦ牸
+ $table: $view.find('.layui-table'), // 鎵�鏈夎〃鏍�
+ $toolbar: $view.children('.ew-tree-table-tool'), // 澶撮儴宸ュ叿鏍�
+ $empty: $tBodyGroup.children('.ew-tree-table-empty'), // 绌鸿鍥�
+ $loading: $tBodyGroup.children('.ew-tree-table-loading'), // 鍔犺浇瑙嗗浘
+ checkboxFilter: 'ew_tb_checkbox_' + filter, // 澶嶉�夋filter
+ radioFilter: 'ew_tb_radio_' + filter, // 鍗曢�夋filter
+ chooseAllFilter: 'ew_tb_choose_all_' + filter, // 鍏ㄩ�夋寜閽甪ilter
+ colsToggleFilter: 'ew_tb_toggle_cols' + filter // 绛涢�夊垪鐨刦ilter
+ };
+ };
+
+ /**
+ * 閬嶅巻琛ㄥご
+ * @param callback
+ * @param obj
+ */
+ TreeTable.prototype.eachCols = function (callback, obj) {
+ if (!obj) obj = this.options.colArrays;
+ for (var i = 0; i < obj.length; i++) {
+ var item = obj[i];
+ callback && callback(i, item);
+ if (item.CHILD_COLS) this.eachCols(callback, item.CHILD_COLS);
+ }
+ };
+
+ /**
+ * 閬嶅巻鏁版嵁
+ * @param callback
+ * @param data
+ */
+ TreeTable.prototype.eachData = function (callback, data) {
+ if (!data) data = this.options.data;
+ for (var i = 0; i < data.length; i++) {
+ var item = data[i];
+ callback && callback(i, item);
+ if (item[this.options.tree.childName]) this.eachData(callback, item[this.options.tree.childName]);
+ }
+ };
+
+ /**
+ * 寮傛鍔犺浇娓叉煋
+ * @param d 鐖剁骇鏁版嵁
+ * @param $tr 鐖剁骇dom
+ */
+ TreeTable.prototype.renderBodyAsync = function (d, $tr) {
+ var that = this;
+ var options = this.options;
+ var components = this.getComponents();
+ // 鏄剧ずloading
+ if ($tr) {
+ $tr.addClass('ew-tree-table-loading');
+ $tr.find('.ew-tree-pack').children('.ew-tree-table-arrow').addClass('layui-anim layui-anim-rotate layui-anim-loop');
+ } else {
+ components.$empty.hide();
+ if (options.data && options.data.length > 0) components.$loading.addClass('ew-loading-float');
+ components.$loading.show();
+ }
+ // 璇锋眰鏁版嵁
+ options.reqData(d, function (data) {
+ if (typeof data !== 'string' && data && data.length > 0 && options.tree.isPidData) {
+ data = tt.pidToChildren(data, options.tree.idName, options.tree.pidName, options.tree.childName);
+ }
+ that.renderBodyData(data, d, $tr); // 娓叉煋鍐呭
+ });
+ };
+
+ /**
+ * 鏍规嵁鏁版嵁娓叉煋body
+ * @param data 鏁版嵁闆嗗悎
+ * @param d 鐖剁骇鏁版嵁
+ * @param $tr 鐖剁骇dom
+ */
+ TreeTable.prototype.renderBodyData = function (data, d, $tr) {
+ var msg;
+ if (typeof data === 'string') {
+ msg = data;
+ data = [];
+ }
+ var that = this;
+ var options = this.options;
+ var components = this.getComponents();
+ // 鏇存柊鍒版暟鎹�
+ if (d === undefined) options.data = data;
+ else d[options.tree.childName] = data;
+ var indent;
+ if ($tr) {
+ indent = parseInt($tr.data('indent')) + 1;
+ d[options.tree.openName] = true;
+ }
+ var htmlStr = this.renderBody(data, indent, d);
+ if ($tr) {
+ // 绉婚櫎鏃om
+ $tr.nextAll('tr').each(function () {
+ if (parseInt($(this).data('indent')) <= (indent - 1)) return false;
+ $(this).remove();
+ });
+ // 娓叉煋鏂癲om
+ $tr.after(htmlStr).addClass('ew-tree-table-open');
+ } else {
+ components.$tBody.children('tbody').html(htmlStr);
+ }
+ form.render(null, components.filter); // 娓叉煋琛ㄥ崟鍏冪礌
+ this.renderNumberCol(); // 娓叉煋搴忓彿鍒�
+ if ($tr) {
+ // 鏇存柊鐖剁骇澶嶉�夋鐘舵��
+ this.checkParentCB($tr);
+ $tr.prevAll('tr').each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd < (indent - 1)) {
+ that.checkParentCB($(this));
+ indent = tInd + 1;
+ }
+ });
+ // 绉婚櫎loading
+ $tr.removeClass('ew-tree-table-loading');
+ var $arrow = $tr.find('.ew-tree-pack').children('.ew-tree-table-arrow');
+ $arrow.removeClass('layui-anim layui-anim-rotate layui-anim-loop');
+ if (msg) { // 鍔犺浇澶辫触
+ $tr.removeClass('ew-tree-table-open');
+ } else if (data && data.length === 0) { // 鏃犲瓙闆�
+ d[options.tree.haveChildName] = false;
+ $tr.data('have-child', false);
+ $arrow.addClass('ew-tree-table-arrow-hide');
+ $arrow.next('.ew-tree-icon').after(options.tree.getIcon(d)).remove();
+ }
+ } else {
+ // 绉婚櫎loading
+ components.$loading.hide();
+ components.$loading.removeClass('ew-loading-float');
+ // 鏄剧ず绌鸿鍥�
+ if (data && data.length > 0) {
+ components.$empty.hide();
+ } else {
+ components.$empty.show();
+ if (msg) components.$empty.text(msg);
+ else components.$empty.html(options.text.none);
+ }
+ }
+ this.checkChooseAllCB(); // 鑱斿姩鍏ㄩ�夋
+ updateFixedTbHead(components.$view); // 婊氬姩鏉¤ˉ涓�
+ options.done && options.done(data);
+ };
+
+ /**
+ * 閫掑綊娓叉煋琛ㄦ牸涓讳綋閮ㄥ垎
+ * @param data 鏁版嵁鍒楄〃
+ * @param indent 缂╄繘澶у皬
+ * @param parent 鐖剁骇
+ * @param h 鐖剁骇鏄惁闅愯棌
+ * @returns {string}
+ */
+ TreeTable.prototype.renderBody = function (data, indent, parent, h) {
+ var options = this.options;
+ if (!indent) indent = 0;
+ var html = '';
+ if (!data || data.length === 0) return html;
+ var hide = parent ? !parent[options.tree.openName] : undefined;
+ if (h) hide = h;//褰撴墍鏈夌埗绾у瓨鍦ㄩ殣钘忔椂锛岄殣钘忔墍鏈夊瓙闆�
+ for (var i = 0; i < data.length; i++) {
+ var d = data[i];
+ d.LAY_INDEX = (parent ? parent.LAY_INDEX + '-' : '') + i;
+ html += this.renderBodyTr(d, indent, hide);
+ // 閫掑綊娓叉煋瀛愰泦
+ html += this.renderBody(d[options.tree.childName], indent + 1, d, h);
+ }
+ return html;
+ };
+
+ /**
+ * 娓叉煋姣忎竴琛屾暟鎹�
+ * @param d 琛屾暟鎹�
+ * @param indent 缂╄繘澶у皬
+ * @param hide 鏄惁闅愯棌
+ * @param $tr
+ * @returns {string}
+ */
+ TreeTable.prototype.renderBodyTr = function (d, indent, hide, $tr) {
+ var that = this;
+ var options = this.options;
+ if (!indent) indent = 0;
+ var haveChild = d[options.tree.haveChildName];
+ if (haveChild === undefined) haveChild = d[options.tree.childName] && d[options.tree.childName].length > 0;
+ if ($tr) {
+ $tr.data('have-child', haveChild ? 'true' : 'false');
+ $tr.data('indent', indent);
+ $tr.removeClass('ew-tree-table-loading');
+ }
+ var html = '<tr';
+ var classNames = '';
+ if (haveChild && d[options.tree.openName]) classNames += 'ew-tree-table-open';
+ if (hide) classNames += 'ew-tree-tb-hide';
+ html += (' class="' + classNames + '"');
+ if (haveChild) html += (' data-have-child="' + haveChild + '"');
+ html += (' data-index="' + d.LAY_INDEX + '"');
+ html += (' data-indent="' + indent + '">');
+ var index = 0;
+ this.eachCols(function (i, col) {
+ if (col.colGroup) return;
+ html += that.renderBodyTd(d, indent, index, $tr ? $tr.children('td').eq(index) : undefined, col);
+ index++;
+ });
+ html += '</tr>';
+ return html;
+ };
+
+ /**
+ * 娓叉煋姣忎竴涓崟鍏冩牸鏁版嵁
+ * @param d 琛屾暟鎹�
+ * @param indent 缂╄繘澶у皬
+ * @param index 绗嚑鍒�
+ * @param $td
+ * @param col
+ * @returns {string}
+ */
+ TreeTable.prototype.renderBodyTd = function (d, indent, index, $td, col) {
+ if (!col||col.colGroup) return '';
+ var options = this.options;
+ var components = this.getComponents();
+ if (!indent) indent = 0;
+ // 鍐呭濉厖
+ var content = '', cell = '', icon = '';
+ if (col.type === 'numbers') { // 搴忓彿鍒�
+ content = '<span class="ew-tree-table-numbers"></span>';
+ } else if (col.type === 'checkbox') { // 澶嶉�夋鍒�
+ content = [
+ '<input type="checkbox"', d.LAY_CHECKED ? ' checked="checked"' : '',
+ ' lay-filter="', components.checkboxFilter, '"',
+ ' lay-skin="primary" class="ew-tree-table-checkbox',
+ d.LAY_INDETERMINATE ? ' ew-form-indeterminate' : '', '" />'
+ ].join('');
+ } else if (col.type === 'radio') { // 鍗曢�夋鍒�
+ content = [
+ '<input type="radio"', d.LAY_CHECKED ? ' checked="checked"' : '',
+ ' lay-filter="', components.radioFilter, '"',
+ ' name="', components.radioFilter, '"',
+ ' class="ew-tree-table-radio" />'
+ ].join('');
+ } else if (col.templet) { // 鑷畾涔夋ā鏉�
+ if (typeof col.templet === 'function') {
+ content = col.templet(d);
+ } else if (typeof col.templet === 'string') {
+ laytpl($(col.templet).html()).render(d, function (html) {
+ content = html;
+ });
+ }
+ } else if (col.toolbar) { // 鎿嶄綔鍒�
+ if (typeof col.toolbar === 'function') {
+ content = col.toolbar(d);
+ } else if (typeof col.toolbar === 'string') {
+ laytpl($(col.toolbar).html()).render(d, function (html) {
+ content = html;
+ });
+ }
+ } else if (col.field && d[col.field] !== undefined && d[col.field] !== null) { // 鏅�氬瓧娈�
+ content = util.escape(d[col.field] === 0 ? '0' : d[col.field]);
+ }
+ // 鍥炬爣鍒楀鐞�
+ if (index === options.tree.iconIndex) {
+ // 缂╄繘
+ for (var i = 0; i < indent; i++) icon += '<span class="ew-tree-table-indent"></span>';
+ icon += '<span class="ew-tree-pack">';
+ // 鍔犵澶�
+ var haveChild = d[options.tree.haveChildName];
+ if (haveChild === undefined) haveChild = d[options.tree.childName] && d[options.tree.childName].length > 0;
+ icon += ('<i class="ew-tree-table-arrow layui-icon' + (haveChild ? '' : ' ew-tree-table-arrow-hide'));
+ icon += (' ' + (options.tree.arrowType || '') + '"></i>');
+ // 鍔犲浘鏍�
+ icon += options.tree.getIcon(d);
+ content = '<span>' + content + '</span>';
+ if (options.tree.onlyIconControl) content = icon + '</span>' + content;
+ else content = icon + content + '</span>';
+ }
+ cell = [
+ '<div class="ew-tree-table-cell', col.singleLine === undefined || col.singleLine ? ' single-line' : '', '"',
+ col.align ? ' align="' + col.align + '"' : '',
+ '>',
+ ' <div class="ew-tree-table-cell-content">', content, '</div>',
+ ' <i class="layui-icon layui-icon-close ew-tree-tips-c"></i>',
+ ' <div class="layui-table-grid-down" style="display: none;"><i class="layui-icon layui-icon-down"></i></div>',
+ '</div>'
+ ].join('');
+
+ if ($td) $td.html(cell);
+
+ var html = '<td';
+ if (col.field) html += (' data-field="' + col.field + '"');
+ if (col.edit) html += (' data-edit="' + col.edit + '"');
+ if (col.type) html += (' data-type="' + col.type + '"');
+ if (col.key) html += (' data-key="' + col.key + '"');
+ if (col.style) html += (' style="' + col.style + '"');
+ if (col['class']) html += (' class="' + col['class'] + (col.hide ? ' layui-hide' : '') + '"');
+ else if (col.hide) html += (' class="layui-hide"');
+ html += ('>' + cell + '</td>');
+ return html;
+ };
+
+ /**
+ * 娓叉煋琛ㄥご
+ * @returns {string}
+ */
+ TreeTable.prototype.renderBodyTh = function () {
+ var options = this.options;
+ var components = this.getComponents();
+ var html = [];
+ $.each(options.cols, function (i1, item1) {
+ html.push('<tr>');
+ $.each(item1, function (i2, item2) {
+ html.push('<th');
+ if (item2.colspan) html.push(' colspan="' + item2.colspan + '"');
+ if (item2.rowspan) html.push(' rowspan="' + item2.rowspan + '"');
+ if (item2.type) html.push(' data-type="' + item2.type + '"');
+ if (item2.key) html.push(' data-key="' + item2.key + '"');
+ if (item2.parentKey) html.push(' data-parent="' + item2.parentKey + '"');
+ if (item2.hide) html.push(' class="layui-hide"');
+ html.push('>');
+ html.push('<div class="ew-tree-table-cell' + (item2.singleLine === undefined || item2.singleLine ? ' single-line' : '') + '"');
+ if (item2.thAlign || item2.align) html.push(' align="' + (item2.thAlign || item2.align) + '"');
+ html.push('>');
+ html.push('<div class="ew-tree-table-cell-content">');
+ // 鏍囬
+ var ca = '<input type="checkbox" lay-filter="' + components.chooseAllFilter + '" lay-skin="primary" class="ew-tree-table-checkbox"/>';
+ if (item2.type === 'checkbox') html.push(ca);
+ else html.push(item2.title || '');
+ html.push('</div><i class="layui-icon layui-icon-close ew-tree-tips-c"></i>');
+ html.push('<div class="layui-table-grid-down" style="display: none;"><i class="layui-icon layui-icon-down"></i></div></div>');
+ // 鍒楀鎷栨嫿
+ if (!item2.colGroup && !item2.unresize) html.push('<span class="ew-tb-resize"></span>');
+ html.push('</th>');
+ });
+ html.push('</tr>');
+ });
+ return html.join('');
+ };
+
+ /** 閲嶇疆琛ㄦ牸灏哄 */
+ TreeTable.prototype.resize = function (returnColgroup) {
+ // 璁$畻琛ㄦ牸瀹藉害銆佹渶灏忓搴︺�佺櫨鍒嗘瘮瀹藉害
+ var options = this.options;
+ var components = this.getComponents();
+ var minWidth = 1, width = 1, needSetWidth = true, mwPercent = 0;
+ this.eachCols(function (i, item) {
+ if (item.colGroup || item.hide) return;
+ if (item.width) {
+ width += (item.width + 1);
+ if (item.minWidth) {
+ if (item.width < item.minWidth) item.width = item.minWidth;
+ } else if (item.width < options.cellMinWidth) item.width = options.cellMinWidth;
+ } else needSetWidth = false;
+ if (item.width) minWidth += (item.width + 1);
+ else if (item.minWidth) {
+ minWidth += (item.minWidth + 1);
+ mwPercent += item.minWidth;
+ } else {
+ minWidth += (options.cellMinWidth + 1);
+ mwPercent += options.cellMinWidth;
+ }
+ });
+ if (minWidth) {
+ components.$tHead.css('min-width', minWidth);
+ components.$tBody.css('min-width', minWidth);
+ } else {
+ components.$tHead.css('min-width', 'auto');
+ components.$tBody.css('min-width', 'auto');
+ }
+ if (needSetWidth) {
+ components.$tHead.css('width', width);
+ components.$tBody.css('width', width);
+ } else {
+ components.$tHead.css('width', '100%');
+ components.$tBody.css('width', '100%');
+ }
+
+ // 鐢熸垚colgroup
+ var colgroupHtml = [];
+ this.eachCols(function (i, item) {
+ if (item.colGroup || item.hide) return;
+ colgroupHtml.push('<col');
+ if (item.width) colgroupHtml.push(' width="' + item.width + '"');
+ else if (item.minWidth) colgroupHtml.push(' width="' + (item.minWidth / mwPercent * 100).toFixed(2) + '%"');
+ else colgroupHtml.push(' width="' + (options.cellMinWidth / mwPercent * 100).toFixed(2) + '%"');
+ if (item.type) colgroupHtml.push(' data-type="' + item.type + '"');
+ if (item.key) colgroupHtml.push(' data-key="' + item.key + '"');
+ colgroupHtml.push('/>');
+ });
+ colgroupHtml = colgroupHtml.join('');
+ if (returnColgroup) return '<colgroup>' + colgroupHtml + '</colgroup>';
+ components.$table.children('colgroup').html(colgroupHtml);
+ };
+
+ /** 鑾峰彇琛屽搴旀暟鎹� */
+ TreeTable.prototype.getDataByTr = function ($tr) {
+ var data, index;
+ if (typeof $tr !== 'string' && typeof $tr !== 'number') {
+ if ($tr) index = $tr.data('index');
+ } else index = $tr;
+ if (index === undefined) return;
+ if (typeof index === 'number') index = [index];
+ else index = index.split('-');
+ for (var i = 0; i < index.length; i++) {
+ if (data) data = data[this.options.tree.childName][index[i]];
+ else data = this.options.data[index[i]];
+ }
+ return data;
+ };
+
+ /**
+ * 鑱斿姩瀛愮骇澶嶉�夋鐘舵��
+ * @param $tr 褰撳墠tr鐨刣om
+ * @param checked
+ */
+ TreeTable.prototype.checkSubCB = function ($tr, checked) {
+ var that = this;
+ var components = this.getComponents();
+ var indent = -1, $trList;
+ if ($tr.is('tbody')) {
+ $trList = $tr.children('tr');
+ } else {
+ indent = parseInt($tr.data('indent'));
+ $trList = $tr.nextAll('tr');
+ }
+ $trList.each(function () {
+ if (parseInt($(this).data('indent')) <= indent) return false;
+ var $cb = $(this).children('td').find('input[lay-filter="' + components.checkboxFilter + '"]');
+ $cb.prop('checked', checked);
+ $cb.removeClass('ew-form-indeterminate');
+ if (checked) $cb.next('.layui-form-checkbox').addClass('layui-form-checked');
+ else $cb.next('.layui-form-checkbox').removeClass('layui-form-checked');
+ var d = that.getDataByTr($(this));
+ d.LAY_CHECKED = checked; // 鍚屾鏇存柊鏁版嵁
+ d.LAY_INDETERMINATE = false;
+ });
+ };
+
+ /**
+ * 鑱斿姩鐖剁骇澶嶉�夋鐘舵��
+ * @param $tr 鐖剁骇鐨刣om
+ */
+ TreeTable.prototype.checkParentCB = function ($tr) {
+ var options = this.options;
+ var components = this.getComponents();
+ var d = this.getDataByTr($tr);
+ var ckNum = 0, unCkNum = 0;
+ if (d[options.tree.childName]) {
+ function checkNum(data) {
+ for (var i = 0; i < data.length; i++) {
+ if (data[i].LAY_CHECKED) ckNum++;
+ else unCkNum++;
+ if (data[i][options.tree.childName]) checkNum(data[i][options.tree.childName]);
+ }
+ }
+
+ checkNum(d[options.tree.childName]);
+ }
+ var $cb = $tr.children('td').find('input[lay-filter="' + components.checkboxFilter + '"]');
+ if (ckNum > 0 && unCkNum === 0) { // 鍏ㄩ��
+ $cb.prop('checked', true);
+ $cb.removeClass('ew-form-indeterminate');
+ $cb.next('.layui-form-checkbox').addClass('layui-form-checked');
+ d.LAY_CHECKED = true; // 鍚屾鏇存柊鏁版嵁
+ d.LAY_INDETERMINATE = false;
+ } else if (ckNum === 0 && unCkNum > 0) { // 鍏ㄤ笉閫�
+ $cb.prop('checked', false);
+ $cb.removeClass('ew-form-indeterminate');
+ $cb.next('.layui-form-checkbox').removeClass('layui-form-checked');
+ d.LAY_CHECKED = false; // 鍚屾鏇存柊鏁版嵁
+ d.LAY_INDETERMINATE = false;
+ } else if (ckNum > 0 && unCkNum > 0) { // 鍗婇��
+ $cb.prop('checked', true);
+ $cb.data('indeterminate', 'true');
+ $cb.addClass('ew-form-indeterminate');
+ $cb.next('.layui-form-checkbox').addClass('layui-form-checked');
+ d.LAY_CHECKED = true; // 鍚屾鏇存柊鏁版嵁
+ d.LAY_INDETERMINATE = true;
+ }
+ };
+
+ /** 鑱斿姩鍏ㄩ�夊閫夋 */
+ TreeTable.prototype.checkChooseAllCB = function () {
+ var options = this.options;
+ var components = this.getComponents();
+ var ckNum = 0, unCkNum = 0;
+
+ function checkNum(data) {
+ for (var i = 0; i < data.length; i++) {
+ if (data[i].LAY_CHECKED) ckNum++;
+ else unCkNum++;
+ if (data[i][options.tree.childName]) checkNum(data[i][options.tree.childName]);
+ }
+ }
+
+ checkNum(options.data);
+
+ var $cb = components.$view.find('input[lay-filter="' + components.chooseAllFilter + '"]');
+ if (ckNum > 0 && unCkNum === 0) { // 鍏ㄩ��
+ $cb.prop('checked', true);
+ $cb.removeClass('ew-form-indeterminate');
+ $cb.next('.layui-form-checkbox').addClass('layui-form-checked');
+ } else if ((ckNum === 0 && unCkNum > 0) || (ckNum === 0 && unCkNum === 0)) { // 鍏ㄤ笉閫�
+ $cb.prop('checked', false);
+ $cb.removeClass('ew-form-indeterminate');
+ $cb.next('.layui-form-checkbox').removeClass('layui-form-checked');
+ } else if (ckNum > 0 && unCkNum > 0) { // 鍗婇��
+ $cb.prop('checked', true);
+ $cb.addClass('ew-form-indeterminate');
+ $cb.next('.layui-form-checkbox').addClass('layui-form-checked');
+ }
+ };
+
+ /** 濉厖搴忓彿鍒� */
+ TreeTable.prototype.renderNumberCol = function () {
+ this.getComponents().$tBody.children('tbody').children('tr').each(function (i) {
+ $(this).children('td').find('.ew-tree-table-numbers').text(i + 1);
+ });
+ };
+
+ /** 鏍规嵁id鑾峰彇tr鐨刬ndex */
+ TreeTable.prototype.getIndexById = function (id) {
+ var options = this.options;
+
+ function each(data, pi) {
+ for (var i = 0; i < data.length; i++) {
+ if (data[i][options.tree.idName] === id) return pi !== undefined ? pi + '-' + i : i;
+ if (data[i][options.tree.childName]) {
+ var res = each(data[i][options.tree.childName], pi !== undefined ? pi + '-' + i : i);
+ //鍊间笉涓簎ndefined鎵峳eturn
+ if (res) return res;
+ }
+ }
+ }
+
+ return each(options.data);
+ };
+
+ /** 灞曞紑鎸囧畾琛� */
+ TreeTable.prototype.expand = function (id, cascade) {
+ var components = this.getComponents();
+ var $tr = components.$table.children('tbody').children('tr[data-index="' + this.getIndexById(id) + '"]');
+ if (!$tr.hasClass('ew-tree-table-open')) $tr.children('td').find('.ew-tree-pack').trigger('click');
+ if (cascade === false) return;
+ // 鑱斿姩鐖剁骇
+ var indent = parseInt($tr.data('indent'));
+ $tr.prevAll('tr').each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd < indent) {
+ if (!$(this).hasClass('ew-tree-table-open')) {
+ $(this).children('td').find('.ew-tree-pack').trigger('click');
+ }
+ indent = tInd;
+ }
+ });
+ };
+
+ /** 鎶樺彔鎸囧畾琛� */
+ TreeTable.prototype.fold = function (id) {
+ var components = this.getComponents();
+ var $tr = components.$table.children('tbody').children('tr[data-index="' + this.getIndexById(id) + '"]');
+ if ($tr.hasClass('ew-tree-table-open')) $tr.children('td').find('.ew-tree-pack').trigger('click');
+ };
+
+ /** 鍏ㄩ儴灞曞紑 */
+ TreeTable.prototype.expandAll = function () {
+ this.getComponents().$table.children('tbody').children('tr').each(function () {
+ if (!$(this).hasClass('ew-tree-table-open')) $(this).children('td').find('.ew-tree-pack').trigger('click');
+ });
+ };
+
+ /** 鍏ㄩ儴鎶樺彔 */
+ TreeTable.prototype.foldAll = function () {
+ this.getComponents().$table.children('tbody').children('tr').each(function () {
+ if ($(this).hasClass('ew-tree-table-open')) $(this).children('td').find('.ew-tree-pack').trigger('click');
+ });
+ };
+
+ /** 鑾峰彇褰撳墠鏁版嵁 */
+ TreeTable.prototype.getData = function () {
+ return this.options.data;
+ };
+
+ /** 閲嶈浇琛ㄦ牸 */
+ TreeTable.prototype.reload = function (opt) {
+ this.initOptions(this.options ? $.extend(true, this.options, opt) : opt);
+ this.init(); // 鍒濆鍖栬〃鏍�
+ this.bindEvents(); // 缁戝畾浜嬩欢
+ };
+
+ /** 鑾峰彇褰撳墠閫変腑琛� */
+ TreeTable.prototype.checkStatus = function (needIndeterminate) {
+ if (needIndeterminate === undefined) needIndeterminate = true;
+ var list = [];
+ this.eachData(function (i, item) {
+ if ((needIndeterminate || !item.LAY_INDETERMINATE) && item.LAY_CHECKED)
+ list.push($.extend({isIndeterminate: item.LAY_INDETERMINATE}, item));
+ });
+ return list;
+ };
+
+ /** 璁剧疆澶�/鍗曢�夋閫変腑 */
+ TreeTable.prototype.setChecked = function (ids) {
+ var that = this;
+ var components = this.getComponents();
+ var $radio = components.$table.find('input[lay-filter="' + components.radioFilter + '"]');
+ if ($radio.length > 0) { // 寮�鍚簡鍗曢�夋
+ $radio.each(function () {
+ var d = that.getDataByTr($(this).parentsUntil('tr').parent());
+ if (d && ids[ids.length - 1] == d[that.options.tree.idName]) {
+ $(this).next('.layui-form-radio').trigger('click');
+ return false;
+ }
+ });
+ } else { // 寮�鍚簡澶嶉�夋
+ components.$table.find('input[lay-filter="' + components.checkboxFilter + '"]').each(function () {
+ var $cb = $(this);
+ var $layCb = $cb.next('.layui-form-checkbox');
+ var checked = $cb.prop('checked');
+ var indeterminate = $cb.hasClass('ew-form-indeterminate');
+ var d = that.getDataByTr($cb.parentsUntil('tr').parent());
+ for (var i = 0; i < ids.length; i++) {
+ if (d && ids[i] == d[that.options.tree.idName]) {
+ if (d[that.options.tree.childName] && d[that.options.tree.childName].length > 0) continue;
+ if (!checked || indeterminate) $layCb.trigger('click');
+ }
+ }
+ });
+ }
+ };
+
+ /** 绉婚櫎鍏ㄩ儴閫変腑 */
+ TreeTable.prototype.removeAllChecked = function () {
+ this.checkSubCB(this.getComponents().$table.children('tbody'), false);
+ };
+
+ /** 瀵煎嚭 */
+ TreeTable.prototype.exportData = function (type) {
+ var components = this.getComponents();
+ if ('show' === type) {
+ components.$toolbar.find('.layui-table-tool-panel').remove();
+ components.$toolbar.find('[lay-event="LAYTABLE_EXPORT"]').append([
+ '<ul class="layui-table-tool-panel">',
+ ' <li data-type="csv">瀵煎嚭鍒� Csv 鏂囦欢</li>',
+ ' <li data-type="xls">瀵煎嚭鍒� Excel 鏂囦欢</li>',
+ '</ul>'
+ ].join(''));
+ } else {
+ if (device.ie) return layer.msg('涓嶆敮鎸乮e瀵煎嚭');
+ if (!type) type = 'xls';
+ var head = [], body = [];
+ this.eachCols(function (i, item) {
+ if (item.type !== 'normal' || item.hide) return;
+ head.push(item.title || '');
+ });
+ components.$tBody.children('tbody').children('tr').each(function () {
+ var items = [];
+ $(this).children('td').each(function () {
+ var $this = $(this);
+ if ($this.data('type') !== 'normal' || $this.hasClass('layui-hide')) return true;
+ items.push($this.text().trim().replace(/,/g, '锛�'));
+ });
+ body.push(items.join(','));
+ });
+ // 鍒涘缓涓嬭浇鏂囦欢鐨刟鏍囩
+ var alink = document.createElement('a');
+ var content = encodeURIComponent(head.join(',') + '\r\n' + body.join('\r\n'));
+ var contentType = ({csv: 'text/csv', xls: 'application/vnd.ms-excel'})[type];
+ alink.href = 'data:' + contentType + ';charset=utf-8,\ufeff' + content;
+ alink.download = (this.options.title || 'table') + '.' + type;
+ document.body.appendChild(alink);
+ alink.click();
+ document.body.removeChild(alink);
+ }
+ };
+
+ /** 鎵撳嵃 */
+ TreeTable.prototype.printTable = function () {
+ var components = this.getComponents();
+ var head = components.$tHead.children('thead').html();
+ if (!head) head = components.$tBody.children('thead').html();
+ var body = components.$tBody.children('tbody').html();
+ var colgroup = components.$tBody.children('colgroup').html();
+ var $html = $([
+ '<table class="ew-tree-table-print">',
+ ' <colgroup>', colgroup, '</colgroup>',
+ ' <thead>', head, '</thead>',
+ ' <tbody>', body, '</tbody>',
+ '</table>'
+ ].join(''));
+
+ // 闅愯棌鐗规畩鍒�
+ $html.find('col[data-type="checkbox"],col[data-type="radio"],col[data-type="tool"]').remove();
+ $html.find('td[data-type="checkbox"],td[data-type="radio"],td[data-type="tool"],.layui-hide').remove();
+
+ function hideCol($temp) {
+ var parentKey = $temp.data('parent'), pCol;
+ if (!parentKey) return;
+ var $parent = $html.children('thead').children('tr').children('[data-key="' + parentKey + '"]');
+ var colspan = parseInt($parent.attr('colspan')) - 1;
+ $parent.attr('colspan', colspan);
+ if (colspan === 0) $parent.remove();
+ hideCol($parent);
+ }
+
+ $html.find('th[data-type="checkbox"],th[data-type="radio"],th[data-type="tool"]').each(function () {
+ hideCol($(this));
+ }).remove();
+
+ // 鎵撳嵃鍐呭鏍峰紡
+ var style = [
+ '<style>',
+ ' /* 鎵撳嵃琛ㄦ牸鏍峰紡 */',
+ ' .ew-tree-table-print {',
+ ' border: none;',
+ ' border-collapse: collapse;',
+ ' width: 100%;',
+ ' table-layout: fixed;',
+ ' }',
+ ' .ew-tree-table-print td, .ew-tree-table-print th {',
+ ' color: #555;',
+ ' font-size: 14px;',
+ ' padding: 9px 15px;',
+ ' word-break: break-all;',
+ ' border: 1px solid #888;',
+ ' text-align: left;',
+ ' }',
+ ' .ew-tree-table-print .ew-tree-table-cell {',
+ ' min-height: 20px;',
+ ' }',
+ ' /* 搴忓彿鍒楁牱寮� */',
+ ' .ew-tree-table-print td[data-type="numbers"], .ew-tree-table-print th[data-type="numbers"] {',
+ ' padding-left: 0;',
+ ' padding-right: 0;',
+ ' }',
+ ' /* 鍗�/澶嶉�夋鍒楁牱寮� */',
+ ' .ew-tree-table-print td[data-type="tool"], .ew-tree-table-print th[data-type="tool"], ',
+ ' .ew-tree-table-print td[data-type="checkbox"], .ew-tree-table-print th[data-type="checkbox"], ',
+ ' .ew-tree-table-print td[data-type="radio"], .ew-tree-table-print th[data-type="radio"] {',
+ ' border: none;',
+ ' }',
+ ' .ew-tree-table-print td.layui-hide + td, .ew-tree-table-print th.layui-hide + th, ',
+ ' .ew-tree-table-print td[data-type="tool"] + td, .ew-tree-table-print th[data-type="tool"] + th, ',
+ ' .ew-tree-table-print td[data-type="checkbox"] + td, .ew-tree-table-print th[data-type="checkbox"] + th, ',
+ ' .ew-tree-table-print td[data-type="radio"] + td, .ew-tree-table-print th[data-type="radio"] + th {',
+ ' border-left: none;',
+ ' }',
+ ' /* 涓嶆樉绀虹殑鍏冪礌 */',
+ ' .layui-hide, ',
+ ' .ew-tree-table-print td[data-type="tool"] *, .ew-tree-table-print th[data-type="tool"] *, ',
+ ' .ew-tree-table-print td[data-type="checkbox"] *, .ew-tree-table-print th[data-type="checkbox"] *, ',
+ ' .ew-tree-table-print td[data-type="radio"] *, .ew-tree-table-print th[data-type="radio"] *, ',
+ ' .layui-table-grid-down, .ew-tree-tips-c, .ew-tree-icon, .ew-tree-table-arrow.ew-tree-table-arrow-hide {',
+ ' display: none;',
+ ' }',
+ ' /* tree缂╄繘 */',
+ ' .ew-tree-table-indent {',
+ ' padding-left: 13px;',
+ ' }',
+ ' /* 绠ご */',
+ ' .ew-tree-table-arrow {',
+ ' position: relative;',
+ ' padding-left: 13px;',
+ ' }',
+ ' .ew-tree-table-arrow:before {',
+ ' content: "";',
+ ' border: 5px solid transparent;',
+ ' border-top-color: #666;',
+ ' position: absolute;',
+ ' left: 0;',
+ ' top: 6px;',
+ ' }',
+ '</style>'
+ ].join('');
+ var pWindow = window.open('', '_blank');
+ pWindow.focus();
+ var pDocument = pWindow.document;
+ pDocument.open();
+ pDocument.write($html[0].outerHTML + style);
+ pDocument.close();
+ pWindow.print();
+ pWindow.close();
+ };
+
+ /** 绛涢�夊垪 */
+ TreeTable.prototype.toggleCol = function (show, field, key) {
+ var components = this.getComponents();
+ if (show === undefined) {
+ components.$toolbar.find('.layui-table-tool-panel').remove();
+ var cols = ['<ul class="layui-table-tool-panel">'];
+ this.eachCols(function (i, item) {
+ if (item.type !== 'normal') return;
+ cols.push('<li><input type="checkbox" lay-skin="primary"');
+ cols.push(' lay-filter="' + components.colsToggleFilter + '"');
+ cols.push(' value="' + item.key + '" title="' + util.escape(item.title || '') + '"');
+ cols.push((item.hide ? '' : ' checked') + '></li>');
+ });
+ components.$toolbar.find('[lay-event="LAYTABLE_COLS"]').append(cols.join('') + '</ul>');
+ form.render('checkbox', components.filter);
+ } else {
+ if (key) {
+ var $td = components.$table.children('tbody').children('tr').children('[data-key="' + key + '"]');
+ var $th = components.$table.children('thead').children('tr').children('[data-key="' + key + '"]');
+ if (show) {
+ $td.removeClass('layui-hide');
+ $th.removeClass('layui-hide');
+ } else {
+ $td.addClass('layui-hide');
+ $th.addClass('layui-hide');
+ }
+ // 鍚屾鏇存柊鏁版嵁
+ var ks = key.split('-');
+ var col = this.options.cols[ks[0]][ks[1]];
+ col.hide = !show;
+
+ // 鏇存柊colspan鏁版嵁
+ function changeParent($temp) {
+ var parentKey = $temp.data('parent'), pCol;
+ if (!parentKey) return;
+ var $parent = components.$table.children('thead').children('tr').children('[data-key="' + parentKey + '"]');
+ var colspan = $parent.attr('colspan');
+ show ? colspan++ : colspan--;
+ $parent.attr('colspan', colspan);
+ if (colspan === 0) $parent.addClass('layui-hide');
+ else $parent.removeClass('layui-hide');
+ changeParent($parent);
+ }
+
+ changeParent($th);
+
+ // 鍚屾eachCols鏁版嵁
+ this.eachCols(function (i, item) {
+ if (item.key === key) item.hide = col.hide;
+ });
+ this.resize(); // 鏇存柊琛ㄦ牸灏哄
+ }
+ }
+ };
+
+ /**
+ * 鎼滅储鏁版嵁
+ * @param ids 鍏抽敭瀛楁垨鏁版嵁id闆嗗悎
+ */
+ TreeTable.prototype.filterData = function (ids) {
+ var components = this.getComponents();
+ components.$loading.show();
+ if (this.options.data.length > 0) components.$loading.addClass('ew-loading-float');
+ var $trList = components.$table.children('tbody').children('tr');
+ var indexList = [];
+ if (typeof ids === 'string') { // 鍏抽敭瀛�
+ $trList.each(function () {
+ var index = $(this).data('index');
+ $(this).children('td').each(function () {
+ if ($(this).text().indexOf(ids) !== -1) {
+ indexList.push(index);
+ return false;
+ }
+ });
+ });
+ } else {
+ for (var i = 0; i < ids.length; i++) {
+ indexList.push(this.getIndexById(ids[i]));
+ }
+ }
+ $trList.addClass('ew-tree-table-filter-hide');
+ for (var j = 0; j < indexList.length; j++) {
+ var $tr = $trList.filter('[data-index="' + indexList[j] + '"]');
+ $tr.removeClass('ew-tree-table-filter-hide');
+ var indent = parseInt($tr.data('indent'));
+ // 鑱斿姩瀛愮骇
+ $tr.nextAll('tr').each(function () {
+ if (parseInt($(this).data('indent')) <= indent) return false;
+ $(this).removeClass('ew-tree-table-filter-hide');
+ });
+ if ($tr.hasClass('ew-tree-table-open')) toggleRow($tr);
+ // 鑱斿姩鐖剁骇
+ $tr.prevAll('tr').each(function () {
+ var tInd = parseInt($(this).data('indent'));
+ if (tInd < indent) {
+ $(this).removeClass('ew-tree-table-filter-hide');
+ if (!$(this).hasClass('ew-tree-table-open')) toggleRow($(this));
+ indent = tInd;
+ }
+ });
+ }
+ // 鏈�鍚庡啀妫�鏌ヤ竴閬�
+ /*$trList.not('.ew-tree-table-filter-hide').not('.ew-tree-tb-hide').each(function () {
+ var index = $(this).data('index'), hide = true;
+ for (var k = 0; k < indexList.length; k++) {
+ if (indexList[k] === index) hide = false;
+ }
+ if (hide) $(this).addClass('ew-tree-table-filter-hide');
+ });*/
+ components.$loading.hide();
+ components.$loading.removeClass('ew-loading-float');
+ if (indexList.length === 0) components.$empty.show();
+ updateFixedTbHead(components.$view); // 鏇存柊婊氬姩鏉¤ˉ涓�
+ };
+
+ /** 閲嶇疆鎼滅储 */
+ TreeTable.prototype.clearFilter = function () {
+ var components = this.getComponents();
+ components.$table.children('tbody').children('tr').removeClass('ew-tree-table-filter-hide');
+ if (this.options.data.length > 0) components.$empty.hide();
+ updateFixedTbHead(components.$view); // 鏇存柊婊氬姩鏉¤ˉ涓�
+ };
+
+ /**
+ * 鍒锋柊鎸囧畾鐖剁骇涓嬬殑鑺傜偣
+ * @param id 鐖剁骇id,绌哄垯鍏ㄩ儴鍒锋柊
+ * @param data 闈炲紓姝ユā寮忔浛鎹㈢殑鏁版嵁
+ */
+ TreeTable.prototype.refresh = function (id, data) {
+ if (isClass(id) === 'Array') {
+ data = id;
+ id = undefined;
+ }
+ var components = this.getComponents();
+ var d, $tr;
+ if (id !== undefined) {
+ $tr = components.$table.children('tbody').children('tr[data-index="' + this.getIndexById(id) + '"]');
+ d = this.getDataByTr($tr);
+ }
+ if (data) { // 鏁版嵁妯″紡
+ if (data.length > 0) components.$loading.addClass('ew-loading-float');
+ components.$loading.show();
+ if (data.length > 0 && this.options.tree.isPidData) { // pid褰㈠紡鏁版嵁
+ this.renderBodyData(tt.pidToChildren(data, this.options.tree.idName, this.options.tree.pidName, this.options.tree.childName), d, $tr);
+ } else {
+ this.renderBodyData(data, d, $tr);
+ }
+ } else { // 寮傛妯″紡
+ this.renderBodyAsync(d, $tr);
+ }
+ };
+
+ /** 鍒犻櫎鏁版嵁 */
+ TreeTable.prototype.del = function (id, index) {
+ if (index === undefined) index = this.getIndexById(id);
+ var indexList = (typeof index === 'number' ? [index] : index.split('-'));
+ var d = this.options.data;
+ if (indexList.length > 1) {
+ for (var i = 0; i < indexList.length - 1; i++) {
+ d = d[parseInt(indexList[i])][this.options.tree.childName];
+ }
+ }
+ d.splice(indexList[indexList.length - 1], 1);
+ };
+
+ /** 鏇存柊鏁版嵁 */
+ TreeTable.prototype.update = function (id, fields) {
+ $.extend(true, this.getDataByTr(this.getIndexById(id)), fields);
+ };
+
+ /** 鎶樺彔/灞曞紑琛� */
+ function toggleRow($tr) {
+ var indent = parseInt($tr.data('indent'));
+ var open = $tr.hasClass('ew-tree-table-open');
+ if (open) { // 鎶樺彔
+ $tr.removeClass('ew-tree-table-open');
+ $tr.nextAll('tr').each(function () {
+ if (parseInt($(this).data('indent')) <= indent) return false;
+ $(this).addClass('ew-tree-tb-hide');
+ });
+ } else { // 灞曞紑
+ $tr.addClass('ew-tree-table-open');
+ var hideInd;
+ $tr.nextAll('tr').each(function () {
+ var ind = parseInt($(this).data('indent'));
+ if (ind <= indent) return false;
+ if (hideInd !== undefined && ind > hideInd) return true;
+ $(this).removeClass('ew-tree-tb-hide');
+ if (!$(this).hasClass('ew-tree-table-open')) hideInd = parseInt($(this).data('indent'));
+ else hideInd = undefined;
+ });
+ }
+ updateFixedTbHead($tr.parentsUntil('.ew-tree-table').last().parent());
+ return open;
+ }
+
+ /** 鍥哄畾琛ㄥご婊氬姩鏉¤ˉ涓� */
+ function updateFixedTbHead($view) {
+ var $headBox = $view.children('.ew-tree-table-head');
+ var $tbBox = $view.children('.ew-tree-table-box');
+ var sWidth = $tbBox.width() - $tbBox.prop('clientWidth');
+ $headBox.css('border-right', (sWidth > 0 ? sWidth : 0) + 'px solid #f2f2f2');
+ }
+
+ // 鐩戝惉绐楀彛澶у皬鏀瑰彉
+ $(window).resize(function () {
+ $('.ew-tree-table').each(function () {
+ updateFixedTbHead($(this));
+ var $tbBox = $(this).children('.ew-tree-table-box');
+ var full = $tbBox.data('full');
+ if (full && device.ie && device.ie < 10) {
+ $tbBox.css('height', getPageHeight() - full);
+ }
+ });
+ });
+
+ /** 琛ㄦ牸婧㈠嚭鐐瑰嚮灞曞紑鍔熻兘 */
+ $(document).on('mouseenter', '.ew-tree-table-cell.single-line', function () {
+ var $content = $(this).children('.ew-tree-table-cell-content');
+ if ($content.prop('scrollWidth') > $content.outerWidth()) $(this).children('.layui-table-grid-down').show();
+ }).on('mouseleave', '.ew-tree-table-cell.single-line', function () {
+ $(this).children('.layui-table-grid-down').hide();
+ });
+ // 鐐瑰嚮绠ご灞曞紑
+ $(document).on('click', '.ew-tree-table-cell>.layui-table-grid-down', function (e) {
+ e.stopPropagation();
+ hideAllTdTips();
+ var $cell = $(this).parent();
+ $cell.addClass('ew-tree-tips-open');
+ $cell.children('.layui-table-grid-down').hide();
+ var tw = $cell.parent().outerWidth() + 4;
+ if ($cell.outerWidth() < tw) $cell.children('.ew-tree-table-cell-content').css({'width': tw, 'max-width': tw});
+ var $box = $cell.parents().filter('.ew-tree-table-box');
+ if ($box.length === 0) $box = $cell.parents().filter('.ew-tree-table-head');
+ if ($box.length === 0) return;
+ if (($cell.outerWidth() + $cell.offset().left) + 20 > $box.offset().left + $box.outerWidth()) {
+ $cell.addClass('ew-show-left');
+ }
+ if (($cell.outerHeight() + $cell.offset().top + 10) > $box.offset().top + $box.outerHeight()) {
+ $cell.addClass('ew-show-bottom');
+ }
+ });
+ // 鐐瑰嚮鍏抽棴鎸夐挳鍏抽棴
+ $(document).on('click', '.ew-tree-table-cell>.ew-tree-tips-c', function () {
+ hideAllTdTips();
+ });
+ // 鐐瑰嚮绌虹櫧閮ㄥ垎鍏抽棴
+ $(document).on('click', function () {
+ hideAllTdTips();
+ $('.ew-tree-table .layui-table-tool-panel').remove();
+ });
+ $(document).on('click', '.ew-tree-table-cell.ew-tree-tips-open', function (e) {
+ e.stopPropagation();
+ });
+
+ /* 鍏抽棴鎵�鏈夊崟鍏冩牸婧㈠嚭鎻愮ず妗� */
+ function hideAllTdTips() {
+ $('.ew-tree-table-cell').removeClass('ew-tree-tips-open ew-show-left ew-show-bottom');
+ $('.ew-tree-table-cell>.ew-tree-table-cell-content').css({'width': '', 'max-width': ''});
+ }
+
+ /** 鎷栨嫿璋冩暣鍒楀 */
+ $(document).on('mousedown', '.ew-tb-resize', function (e) {
+ layui.stope(e);
+ var $this = $(this);
+ $this.attr('move', 'true');
+ var key = $this.parent().data('key');
+ $this.data('x', e.clientX);
+ var w = $this.parent().parent().parent().parent().children('colgroup').children('col[data-key="' + key + '"]').attr('width');
+ if (!w || w.toString().indexOf('%') !== -1) w = $this.parent().outerWidth();
+ $this.data('width', w);
+ $('body').addClass('ew-tree-table-resizing');
+ }).on('mousemove', function (e) {
+ var $rs = $('.ew-tree-table .ew-tb-resize[move="true"]');
+ if ($rs.length === 0) return;
+ layui.stope(e);
+ var x = $rs.data('x');
+ var w = $rs.data('width');
+ var nw = parseFloat(w) + e.clientX - parseFloat(x);
+ if (nw <= 0) nw = 1;
+ // 鏇存柊瀹炰緥options涓殑瀹藉害
+ var ins = _instances[$rs.parentsUntil('.ew-tree-table').last().parent().attr('lay-filter')];
+ var key = $rs.parent().data('key');
+ var ks = key.split('-');
+ ins.options.cols[ks[0]][ks[1]].width = nw;
+ ins.eachCols(function (i, item) {
+ if (item.key === key) item.width = nw;
+ });
+ ins.resize();
+ }).on('mouseup', function (e) {
+ $('.ew-tree-table .ew-tb-resize[move="true"]').attr('move', 'false');
+ $('body').removeClass('ew-tree-table-resizing');
+ }).on('mouseleave', function (e) {
+ $('.ew-tree-table .ew-tb-resize[move="true"]').attr('move', 'false');
+ $('body').removeClass('ew-tree-table-resizing');
+ });
+
+ /** 鑾峰彇椤剁骇鐨刾Id */
+ function getPids(data, idName, pidName) {
+ var pids = [];
+ for (var i = 0; i < data.length; i++) {
+ var hasPid = false;
+ for (var j = 0; j < data.length; j++) {
+ if (data[i][pidName] == data[j][idName]) {
+ hasPid = true;
+ break;
+ }
+ }
+ if (!hasPid) pids.push(data[i][pidName]);
+ }
+ return pids;
+ }
+
+ /** 鍒ゆ柇pId鏄惁鐩哥瓑 */
+ function pidEquals(pId, pIds) {
+ if (isClass(pIds) === 'Array') {
+ for (var i = 0; i < pIds.length; i++)
+ if (pId == pIds[i]) return true;
+ }
+ return pId == pIds;
+ }
+
+ /** 鑾峰彇鍙橀噺绫诲瀷 */
+ function isClass(o) {
+ if (o === null) return 'Null';
+ if (o === undefined) return 'Undefined';
+ return Object.prototype.toString.call(o).slice(8, -1);
+ }
+
+ /** 鑾峰彇娴忚鍣ㄩ珮搴� */
+ function getPageHeight() {
+ return document.documentElement.clientHeight || document.body.clientHeight;
+ }
+
+ /** 瀵瑰鎻愪緵鐨勬柟娉� */
+ var tt = {
+ /* 娓叉煋 */
+ render: function (options) {
+ return new TreeTable(options);
+ },
+ /* 閲嶈浇 */
+ reload: function (id, opt) {
+ _instances[id].reload(opt);
+ },
+ /* 浜嬩欢鐩戝惉 */
+ on: function (events, callback) {
+ return layui.onevent.call(this, MOD_NAME, events, callback);
+ },
+ /* pid杞琧hildren褰㈠紡 */
+ pidToChildren: function (data, idName, pidName, childName, pId) {
+ if (!childName) childName = 'children';
+ var newList = [];
+ for (var i = 0; i < data.length; i++) {
+ if (data[i][idName] == data[i][pidName])
+ return console.error('绗�' + i + '鏉℃暟鎹殑' + idName + '涓�' + pidName + '鐩稿悓', data[i]);
+ if (pId === undefined) pId = getPids(data, idName, pidName);
+ if (pidEquals(data[i][pidName], pId)) {
+ var children = this.pidToChildren(data, idName, pidName, childName, data[i][idName]);
+ if (children.length > 0) data[i][childName] = children;
+ newList.push(data[i]);
+ }
+ }
+ return newList;
+ }
+ };
+
+ /** 娣诲姞鏍峰紡 */
+ $('head').append([
+ '<style id="ew-tree-table-css">',
+ '/** 鏈�澶栧眰瀹瑰櫒 */',
+ '.ew-tree-table {',
+ ' margin: 10px 0;',
+ ' position: relative;',
+ ' border: 1px solid #e6e6e6;',
+ ' border-bottom: none;',
+ ' border-right: none;',
+ '}',
+
+ '.ew-tree-table:before, .ew-tree-table:after, .ew-tree-table .ew-tree-table-head:after {',
+ ' content: "";',
+ ' background-color: #e6e6e6;',
+ ' position: absolute;',
+ ' right: 0;',
+ ' bottom: 0;',
+ '}',
+
+ '.ew-tree-table:before {',
+ ' width: 1px;',
+ ' top: 0;',
+ ' z-index: 1;',
+ '}',
+
+ '.ew-tree-table:after, .ew-tree-table .ew-tree-table-head:after {',
+ ' height: 1px;',
+ ' left: 0;',
+ '}',
+
+ '.ew-tree-table .layui-table {',
+ ' margin: 0;',
+ ' position: relative;',
+ ' table-layout: fixed;',
+ '}',
+
+ '/** 琛ㄦ牸 */',
+ '.ew-tree-table .layui-table td, .ew-tree-table .layui-table th {',
+ ' border-top: none;',
+ ' border-left: none;',
+ ' padding: 0 !important;',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-box {',
+ ' overflow: auto;',
+ ' position: relative;',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-head {',
+ ' overflow: hidden;',
+ ' box-sizing: border-box;',
+ ' background-color: #f2f2f2;',
+ ' position: relative;',
+ '}',
+
+ '/** loading */',
+ '.ew-tree-table div.ew-tree-table-loading {',
+ ' padding: 10px 0;',
+ ' text-align: center;',
+ '}',
+
+ '.ew-tree-table div.ew-tree-table-loading > i {',
+ ' color: #999;',
+ ' font-size: 30px;',
+ '}',
+
+ '.ew-tree-table div.ew-tree-table-loading.ew-loading-float {',
+ ' position: absolute;',
+ ' top: 0;',
+ ' left: 0;',
+ ' right: 0;',
+ '}',
+
+ '/** 绌烘暟鎹� */',
+ '.ew-tree-table .ew-tree-table-empty {',
+ ' color: #666;',
+ ' font-size: 14px;',
+ ' padding: 18px 0;',
+ ' text-align: center;',
+ ' display: none;',
+ '}',
+
+ '/** 鍗曞厓鏍� */',
+ '.ew-tree-table-cell.ew-tree-tips-open {',
+ ' position: absolute;',
+ ' top: 0;',
+ ' left: 0;',
+ ' padding: 0;',
+ ' z-index: 9999;',
+ ' background-color: #fff;',
+ ' box-shadow: 3px 3px 8px rgba(0, 0, 0, .15);',
+ '}',
+
+ 'thead .ew-tree-table-cell.ew-tree-tips-open {',
+ ' background-color: #f2f2f2;',
+ '}',
+
+ '.ew-tree-table-cell.ew-tree-tips-open.ew-show-left {',
+ ' right: 0;',
+ ' left: auto;',
+ ' box-shadow: -3px 3px 8px rgba(0, 0, 0, .15);',
+ '}',
+
+ '.ew-tree-table-cell.ew-tree-tips-open.ew-show-bottom {',
+ ' bottom: 0;',
+ ' top: auto;',
+ ' box-shadow: 3px -3px 8px rgba(0, 0, 0, .15);',
+ '}',
+
+ '.ew-tree-table-cell.ew-tree-tips-open.ew-show-left.ew-show-bottom {',
+ ' box-shadow: -3px -3px 8px rgba(0, 0, 0, .15);',
+ '}',
+
+ '.ew-tree-table-cell > .ew-tree-tips-c {',
+ ' position: absolute;',
+ ' right: -6px;',
+ ' top: -3px;',
+ ' width: 22px;',
+ ' height: 22px;',
+ ' line-height: 22px;',
+ ' font-size: 16px;',
+ ' color: #fff;',
+ ' background-color: #666;',
+ ' border-radius: 50%;',
+ ' text-align: center;',
+ ' cursor: pointer;',
+ ' display: none;',
+ '}',
+
+ 'table tr:first-child .ew-tree-table-cell > .ew-tree-tips-c {',
+ ' top: 0;',
+ '}',
+
+ '.ew-tree-table-cell.ew-tree-tips-open > .ew-tree-tips-c {',
+ ' display: block;',
+ '}',
+
+ '.ew-tree-table-cell.ew-tree-tips-open.ew-show-left > .ew-tree-tips-c {',
+ ' left: -6px;',
+ ' right: auto;',
+ '}',
+
+ '.ew-tree-table-cell > .ew-tree-table-cell-content {',
+ ' padding: 5px 15px;',
+ ' line-height: 28px;',
+ '}',
+
+ '[lay-size="lg"] .ew-tree-table-cell > .ew-tree-table-cell-content {',
+ ' line-height: 40px;',
+ '}',
+
+ '[lay-size="sm"] .ew-tree-table-cell > .ew-tree-table-cell-content {',
+ ' padding: 1px 15px;',
+ '}',
+
+ '.ew-tree-table-cell.single-line > .ew-tree-table-cell-content {',
+ ' overflow: hidden;',
+ ' white-space: nowrap;',
+ ' text-overflow: ellipsis;',
+ '}',
+
+ '.ew-tree-table-cell.ew-tree-tips-open > .ew-tree-table-cell-content {',
+ ' overflow: auto;',
+ ' padding: 9px 15px;',
+ ' height: auto;',
+ ' min-height: 100%;',
+ ' max-height: 110px;',
+ ' line-height: inherit;',
+ ' max-width: 260px;',
+ ' width: 200px;',
+ ' width: max-content;',
+ ' width: -moz-max-content;',
+ ' box-sizing: border-box;',
+ ' white-space: normal;',
+ '}',
+
+ '.ew-tree-table-cell > .layui-table-grid-down {',
+ ' box-sizing: border-box;',
+ '}',
+
+ '/** 鍥炬爣鍒� */',
+ '.ew-tree-table .ew-tree-pack {',
+ ' cursor: pointer;',
+ ' line-height: 16px;',
+ '}',
+
+ '.ew-tree-table .ew-tree-pack > .layui-icon, .ew-tree-table .ew-tree-pack > .ew-tree-icon {',
+ ' margin-right: 5px;',
+ '}',
+
+ '.ew-tree-table .ew-tree-pack > * {',
+ ' vertical-align: middle;',
+ '}',
+
+ '/* 缂╄繘 */',
+ '.ew-tree-table .ew-tree-table-indent {',
+ ' margin-right: 5px;',
+ ' padding-left: 16px;',
+ '}',
+
+ '/* 绠ご */',
+ '.ew-tree-table .ew-tree-table-arrow:before {',
+ ' content: "\\e623";',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-open .ew-tree-table-arrow:before {',
+ ' content: "\\e625";',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-arrow.arrow2 {',
+ ' font-size: 12px;',
+ ' font-weight: 600;',
+ ' line-height: 16px;',
+ ' height: 16px;',
+ ' width: 16px;',
+ ' display: inline-block;',
+ ' text-align: center;',
+ ' color: #888;',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-arrow.arrow2:before {',
+ ' content: "\\e602";',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-open .ew-tree-table-arrow.arrow2:before {',
+ ' content: "\\e61a";',
+ '}',
+
+ '.ew-tree-table-arrow.ew-tree-table-arrow-hide {',
+ ' visibility: hidden;',
+ '}',
+
+ '/* 绠ご鍙樺姞杞戒腑鐘舵�� */',
+ '.ew-tree-table tr.ew-tree-table-loading > td .ew-tree-table-arrow:before {',
+ ' content: "\\e63d" !important;',
+ '}',
+
+ '.ew-tree-table tr.ew-tree-table-loading > td .ew-tree-table-arrow {',
+ ' margin-right: 0;',
+ '}',
+
+ '.ew-tree-table tr.ew-tree-table-loading > td .ew-tree-table-arrow + * {',
+ ' margin-left: 5px;',
+ '}',
+
+ '.ew-tree-table tr.ew-tree-table-loading * {',
+ ' pointer-events: none !important;',
+ '}',
+
+ '/** 鎶樺彔琛� */',
+ '.ew-tree-table .ew-tree-tb-hide {',
+ ' display: none;',
+ '}',
+
+ '/** 鐗规畩鍒楄皟鏁� */',
+ '.ew-tree-table td[data-type="numbers"] > .ew-tree-table-cell,',
+ '.ew-tree-table th[data-type="numbers"] > .ew-tree-table-cell,',
+ '.ew-tree-table td[data-type="checkbox"] > .ew-tree-table-cell,',
+ '.ew-tree-table th[data-type="checkbox"] > .ew-tree-table-cell,',
+ '.ew-tree-table td[data-type="radio"] > .ew-tree-table-cell,',
+ '.ew-tree-table th[data-type="radio"] > .ew-tree-table-cell,',
+ '.ew-tree-table td[data-type="space"] > .ew-tree-table-cell,',
+ '.ew-tree-table th[data-type="space"] > .ew-tree-table-cell {',
+ ' padding-left: 0;',
+ ' padding-right: 0;',
+ '}',
+
+ '/* 鍗曞厓鏍煎唴琛ㄥ崟鍏冪礌鏍峰紡璋冩暣 */',
+ '.ew-tree-table .layui-form-switch',
+ '.ew-tree-table .layui-form-radio {',
+ ' margin: 0;',
+ '}',
+
+ '/* checkbox鍒楄皟鏁� */',
+ '.ew-tree-table-checkbox + .layui-form-checkbox {',
+ ' padding: 0;',
+ '}',
+
+ '.ew-tree-table-checkbox + .layui-form-checkbox > .layui-icon {',
+ ' font-weight: 600;',
+ ' color: transparent;',
+ ' transition: background-color .1s linear;',
+ ' -webkit-transition: background-color .1s linear;',
+ '}',
+
+ '.ew-tree-table-checkbox + .layui-form-checkbox.layui-form-checked > .layui-icon {',
+ ' color: #fff;',
+ '}',
+
+ '/* checkbox鍗婇�夌姸鎬� */',
+ '.ew-form-indeterminate + .layui-form-checkbox .layui-icon:before {',
+ ' content: "";',
+ ' width: 10px;',
+ ' height: 2px;',
+ ' background-color: #f1f1f1;',
+ ' position: absolute;',
+ ' top: 50%;',
+ ' left: 50%;',
+ ' margin: -1px 0 0 -5px;',
+ '}',
+
+ '/* radio鍒楄皟鏁� */',
+ '.ew-tree-table-radio + .layui-form-radio {',
+ ' margin: 0;',
+ ' padding: 0;',
+ ' height: 20px;',
+ ' line-height: 20px;',
+ '}',
+
+ '.ew-tree-table-radio + .layui-form-radio > i {',
+ ' margin: 0;',
+ ' height: 20px;',
+ ' font-size: 20px;',
+ ' line-height: 20px;',
+ '}',
+
+ '/** 鍗曞厓鏍肩紪杈� */',
+ '.ew-tree-table .layui-table td[data-edit] {',
+ ' cursor: text;',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-edit {',
+ ' position: absolute;',
+ ' left: 0;',
+ ' top: 0;',
+ ' width: 100%;',
+ ' height: 100%;',
+ ' border-radius: 0;',
+ ' box-shadow: 1px 1px 20px rgba(0, 0, 0, .15);',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-edit:focus {',
+ ' border-color: #5FB878 !important;',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-edit.layui-form-danger {',
+ ' border-color: #FF5722 !important;',
+ '}',
+
+ '/** 鎼滅储鏁版嵁闅愯棌琛� */',
+ '.ew-tree-table tr.ew-tree-table-filter-hide {',
+ ' display: none !important;',
+ '}',
+
+ '/** 澶撮儴宸ュ叿鏍� */',
+ '.ew-tree-table .ew-tree-table-tool {',
+ ' min-height: 50px;',
+ ' line-height: 30px;',
+ ' padding: 10px 15px;',
+ ' box-sizing: border-box;',
+ ' background-color: #f2f2f2;',
+ ' border-bottom: 1px solid #e6e6e6;',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-tool .ew-tree-table-tool-right {',
+ ' float: right;',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-tool .ew-tree-table-tool-item {',
+ ' position: relative;',
+ ' color: #333;',
+ ' width: 26px;',
+ ' height: 26px;',
+ ' line-height: 26px;',
+ ' text-align: center;',
+ ' margin-left: 10px;',
+ ' display: inline-block;',
+ ' border: 1px solid #ccc;',
+ ' box-sizing: border-box;',
+ ' vertical-align: middle;',
+ ' -webkit-transition: .3s all;',
+ ' transition: .3s all;',
+ ' cursor: pointer;',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-tool .ew-tree-table-tool-item:first-child {',
+ ' margin-left: 0;',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-tool .ew-tree-table-tool-item:hover {',
+ ' border-color: #999;',
+ '}',
+
+ '.ew-tree-table .ew-tree-table-tool-right .layui-table-tool-panel {',
+ ' left: auto;',
+ ' right: -1px;',
+ ' z-index: 9999;',
+ '}',
+
+ '/* 鍒楀鎷栨嫿璋冩暣 */',
+ '.ew-tree-table .ew-tb-resize {',
+ ' position: absolute;',
+ ' right: 0;',
+ ' top: 0;',
+ ' bottom: 0;',
+ ' width: 10px;',
+ ' cursor: col-resize;',
+ '}',
+
+ '.ew-tree-table-resizing {',
+ ' cursor: col-resize;',
+ ' -ms-user-select: none;',
+ ' -moz-user-select: none;',
+ ' -webkit-user-select: none;',
+ ' user-select: none;',
+ '}',
+
+ '/* 杈呭姪鏍峰紡 */',
+ '.ew-tree-table .layui-form-switch {',
+ ' margin: 0;',
+ '}',
+
+ '.ew-tree-table .pd-tb-0 {',
+ ' padding-top: 0 !important;',
+ ' padding-bottom: 0 !important;',
+ '}',
+
+ '.ew-tree-table .break-all {',
+ ' word-break: break-all !important;',
+ '}',
+
+ '/** 鎵╁睍鍥炬爣 */',
+ '.ew-tree-table .ew-tree-icon-folder:after, .ew-tree-table .ew-tree-icon-file:after {',
+ ' content: "";',
+ ' padding: 2px 10px;',
+ ' -webkit-background-size: cover;',
+ ' -moz-background-size: cover;',
+ ' -o-background-size: cover;',
+ ' background-size: cover;',
+ ' background-repeat: no-repeat;',
+ ' background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAE6UlEQVR4Xu2ZPYhcVRiGny9hC0FsTEBCGkFTWIQE/IlpgmKpWAiLyR0XLbYTxEKxkCAEhRCxEOwsjJnJioKIYClWKgqiskIIaCoLYyASVJT87JGspN37LrOXvec777Tzzrnvz7Nn2dnAr6YbiKbTOzwGoHEIDIABaLyBxuP7BjAAjTfQeHzfAAag8QYaj+8bwAA03kDj8X0DGIDGG2g8/lw3QFlhD9fZN7oOF7gYT3NudL5GaGjTAJQP2c1VXgIOExyGkf4/oXCe4I3oeH+EvY/G0qYAKFOWCV4Hdo8mQb+RL7jBE7HE3/3S9hQyAGXGCeDVSiv6lqscief4t1L/g9mWAChTHiD4ZrTXvVbPu9GxrEnbUWkAzPgeOJCglsXo+ChBji2L0AtAmfEgrP/0Z3hdZoF7Y5HLGcJsRQYFgLeAF7fiYSM540x0LI3Ey7bb6AdgytcEh7bd6VYa2MGhOJrmVpurmX4AZlwCds31lPF9+AI32O8/DYUvccqUKwR3jG/DuR29Gd36F1pNv/pvgKwAFK5RuC+e4eeWCWgXgJurFz6LCY8bgA0aSPwr4P/UhVNc43ir3xK2fQPcAr/wO/AewU/Ar6xRqroVdvAnC6zGIlc369sAbLax8er/ofAJOzkVR9e/uZVeBkCqqTrRyeh4RXFtAJSWatQUno0Jp/usG4C+hup9/yJ72BuPcH2jCAag3oEV50vRccYAKFXl1LwdHS8YgJzj9qcqfBoTnjQA/VVlVXwXHfcbgKzz9uf6IToOGoD+orIqDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzGUAxKKyygxA1mXFXAZALCqrzABkXVbMZQDEorLKDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzGUAxKKyygxA1mXFXAZALCqrzABkXVbMZQDEorLKDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzGUAxKKyygxA1mXFXAZALCqrzABkXVbMZQDEorLKDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzGUAxKKyygxA1mXFXAZALCqrzABkXVbMZQDEorLKDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzGUAxKKyygxA1mXFXAZALCqrzABkXVbMZQDEorLKDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzLUFAMy4BOwSH2jZmBoorMaE/RtZij6/ZcoFgrv7dH5/lA38Eh33zAfAjM+BR0cZz6Y2bqDwY0w4MB8AU04SvOyuq2zg4+h4aj4AzvIwha+qjN+66cLzMeGduQC4+eEy4zywr/U+K8t/hQX2xiJ/zQ/ACgdZ40vgtspKaNducCyOsdJXQO9fAbcOKGc5whofENzVd6jf3/YGTkTHccWFDMD6r4LT3MlOloHHCB4CblceYs3gDfxB4TeCcxReiwmr6hM3BYB6qHX1NGAA6tlqEKcGYJBa6znUANSz1SBODcAgtdZzqAGoZ6tBnBqAQWqt51ADUM9Wgzg1AIPUWs+hBqCerQZxagAGqbWeQw1APVsN4tQADFJrPYcagHq2GsTpf+KxwJB5Cd5mAAAAAElFTkSuQmCC");',
+ '}',
+
+ '.ew-tree-table tr.ew-tree-table-open > td .ew-tree-icon-folder:after {',
+ ' background-image: url("data:image/png;base64,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");',
+ '}',
+
+ '.ew-tree-table .ew-tree-icon-file:after {',
+ ' background-image: url("data:image/png;base64,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");',
+ '}',
+ '</style>'
+ ].join(''));
+
+ exports('treeTable', tt);
+});
diff --git "a/WebTM/views/\350\256\276\345\244\207\347\256\241\347\220\206/\350\256\276\345\244\207\346\212\245\350\241\250/Sb_EquipMentCollectionTechParam.html" "b/WebTM/views/\350\256\276\345\244\207\347\256\241\347\220\206/\350\256\276\345\244\207\346\212\245\350\241\250/Sb_EquipMentCollectionTechParam.html"
index 4e1ab0c..77458df 100644
--- "a/WebTM/views/\350\256\276\345\244\207\347\256\241\347\220\206/\350\256\276\345\244\207\346\212\245\350\241\250/Sb_EquipMentCollectionTechParam.html"
+++ "b/WebTM/views/\350\256\276\345\244\207\347\256\241\347\220\206/\350\256\276\345\244\207\346\212\245\350\241\250/Sb_EquipMentCollectionTechParam.html"
@@ -363,7 +363,7 @@
//鐩存帴鎵ц鍒楄〃绛涢�� 鍔犺浇鏁版嵁鍒扮綉鏍�
get_FastQuery(table, option, 1);
//鏌ヨ褰撳墠鐧诲綍鐢ㄦ埛鏈夋病鏈夊湪褰撳墠妯″潡璁剧疆榛樿杩囨护鏂规
- get_DefaultModule();
+ /* get_DefaultModule();*/
}
//鍒濆鍖栬〃鏍�
@@ -712,7 +712,7 @@
$("#HInitTimeCycle").append(HInitTimeCycle_ArrayList);
form.render('select');
- $("#HInitTimeCycle").val("29");
+ $("#HInitTimeCycle").val("2");
}
//#endregion
diff --git "a/WebTM/views/\350\264\250\351\207\217\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/QC_FiveMenOneRingList.html" "b/WebTM/views/\350\264\250\351\207\217\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/QC_FiveMenOneRingList.html"
index b28ca1f..5ef5902 100644
--- "a/WebTM/views/\350\264\250\351\207\217\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/QC_FiveMenOneRingList.html"
+++ "b/WebTM/views/\350\264\250\351\207\217\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/QC_FiveMenOneRingList.html"
@@ -18,6 +18,7 @@
<script src="../../../layuiadmin/grwebapp.js"></script>
<script src="../../../layuiadmin/HideButton.js"></script>
<script src="../../../layuiadmin/soulTable.slim.js"></script>
+ <script src="../../../layuiadmin/modules/treeTable.js"></script>
</head>
<body>
<div class="layui-fluid">
@@ -195,7 +196,7 @@
</script>
<script type="text/html" id="toolbarDemo2">
- </script>
+ </script>
</form>
</div>
</div>
@@ -207,7 +208,8 @@
base: '../../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
}).extend({
index: 'lib/index', //涓诲叆鍙fā鍧�
- }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate','soulTable'], function () {
+ //treeTable: 'treeTable'
+ }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate','treeTable'], function () {
//#region 鍏叡鍙橀噺
var $ = layui.$
, admin = layui.admin
@@ -218,7 +220,7 @@
, laypage = layui.laypage
, laydate = layui.laydate
, util = layui.util
- , soulTable = layui.soulTable
+ , treeTable = layui.treeTable
var sWhere = "";
var option = ""; //涓昏〃鏍�
var option_Man = ""; //浜�
@@ -230,6 +232,7 @@
var option_Message = ""; //淇�
var option_HB_SN = ""; //榛戠櫧鏍�
var ins;
+ var btndate = [];
//#endregion
@@ -239,7 +242,7 @@
//
var HModName = "QC_FiveMenOneRingList";
//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞� 锛堜汉锛�
- var titleData = ["娴佽浆鍗d", "鐢熶骇璁㈠崟", "鐗╂枡浠g爜", "瑙勬牸鍨嬪彿", "鍗曟嵁涓籭d","鐗╂枡id","鐢熶骇璧勬簮id","鑱屽憳id","妯″叿id","璁惧id","宸ュ簭id","娴佽浆鍗d"];
+ var titleData = ["娴佽浆鍗d", "鐢熶骇璁㈠崟", "鐗╂枡浠g爜", "瑙勬牸鍨嬪彿", "鍗曟嵁涓籭d", "鐗╂枡id", "鐢熶骇璧勬簮id", "鑱屽憳id", "妯″叿id", "璁惧id", "宸ュ簭id", "娴佽浆鍗d", "ParentID"];
//鍒濆鍖栫晫闈�
set_ClearBill();
//#endregion
@@ -271,16 +274,17 @@
};
});
- table.on('toolbar(mainTable)', function (obj) {
+ treeTable.on("toolbar(mainTable)", function (obj) {
switch (obj.event) {
- //鐑鐞嗘洸绾垮浘
+ //鐑鐞嗘寜閽�
case 'btn_RCL': btn_RCL();
break;
- //骞茬嚗鏈烘洸绾垮浘
+ //骞茬嚗鏈烘寜閽�
case 'btn_GZJ': btn_GZJ();
break;
};
- });
+ });
+
//#endregion
//#region SN鐮佸洖杞︽柟娉�
@@ -409,16 +413,18 @@
//鍒濆鍖栧乏渚у垪琛�
function set_InitGrid() {
- option = {
- elem: '#mainTable'
- , toolbar: '#toolbarDemo'
- , totalRow: true
- , height: 660
- , cellMinWidth: 90
- , limit: Number.MAX_VALUE//榛樿鏄剧ず鍏ㄩ儴
- , cols: []
- ,data:[]
+ option= {
+ elem: '#mainTable',
+ toolbar: '#toolbarDemo',
+ totalRow: true,
+ cellMinWidth: 90,
+ limit: Number.MAX_VALUE, // 榛樿鏄剧ず鍏ㄩ儴
+ defaultToolbar: [], // 闅愯棌榛樿鐨勫鍑恒�佹墦鍗扮瓑鎸夐挳
+ cols: [],
+ data: []
};
+
+ treeTable.render(option);
}
//鍒濆鍖栦汉鍒楄〃
@@ -565,7 +571,7 @@
field: data[j].id, title: data[j].name, align: 'center', sort: true, width: 200, event: '娴佽浆鍗�', templet: function (d) {
return '<span style="color: blue;">' + d.娴佽浆鍗� + '</span>'
}, style: 'cursor: pointer;'
- });
+ });
}
else if (data[j].name == '宸ュ簭') {//娣诲姞瓒呴摼鎺�
col.push({
@@ -596,25 +602,26 @@
col.push({ field: data[j].id, title: data[j].name, align: 'center', sort: true, templet: "<div>{{d." + data[j].name + " ==null ?'':layui.util.toDateString(d." + data[j].name + ", 'yyyy-MM-dd HH:mm:ss')}}</div>", width: 200 });
break;
default:
- col.push({ field: data[j].id, title: data[j].name, align: 'center', sort: true, width: 200});
+ col.push({ field: data[j].id, title: data[j].name, align: 'center', sort: true, width: 100});
}
}
}
Listcol.push(col);
}
-
+ var TreeDate = LoadTree(data1.data.h_p_QC_FiveMenOneRingList);
//鍔ㄦ�佹樉绀哄垪鍚�
option = {
elem: '#mainTable'
, toolbar: '#toolbarDemo'
, cols: [Listcol[0]]
- , data: data1.data.h_p_QC_FiveMenOneRingList
- , height: 'full-50'
+ , data: TreeDate
+ , height: 'full-50'
, cellMinWidth: 90
, limit: Number.MAX_VALUE//榛樿鏄剧ず鍏ㄩ儴
- , page: false
+ , page: false
}
- table.render(option);
+ treeTable.render(option);
+
//浜�
option_Man = {
elem: '#mainTable_Man'
@@ -814,58 +821,56 @@
function btn_Export() {
table.exportFile(ins.config.id, option.data, "xls");
}
- //#endregion
+ //#endregion
//#region 鐑鐞嗘洸绾垮浘
function btn_RCL() {
- var checkStatus = table.checkStatus('mainTable')
- , data = checkStatus.data;
- if (checkStatus.data.length === 1) {
- var linterid = data[0].娴佽浆鍗d;
+ if (btndate == "") {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ else {
+ var linterid = btndate[0].娴佽浆鍗d;
layer.open({
type: 2
, skin: 'layui-layer-rim' //鍔犱笂杈规
, area: ['100%', '100%']
, title: '鐑鐞嗘洸绾垮浘'
, shift: 0//寮瑰嚭鍔ㄧ敾
- , content: '../../杞﹂棿绠$悊/鎶ヨ〃鍒嗘瀽/Cj_HeatTreatmentTemperatureCurveChart.html?OperationType=1&linterid=' + linterid+'&HSouceBillType='
+ , content: '../../杞﹂棿绠$悊/鎶ヨ〃鍒嗘瀽/Cj_HeatTreatmentTemperatureCurveChart.html?OperationType=1&linterid=' + linterid + '&HSouceBillType='
, btn: [],
end: function (index, layero, that) {
}
})
- } else {
- layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
- }
+ }
}
//#endregion
//#region 骞茬嚗鏈烘洸绾垮浘
function btn_GZJ() {
- var checkStatus = table.checkStatus('mainTable')
- , data = checkStatus.data;
- if (checkStatus.data.length === 1) {
- var linterid = data[0].娴佽浆鍗d;
+ if (btndate == "") {
+ layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
+ }
+ else {
+ var linterid = btndate[0].娴佽浆鍗d;
layer.open({
type: 2
, skin: 'layui-layer-rim' //鍔犱笂杈规
, area: ['100%', '100%']
, title: '骞茬嚗鏈烘洸绾垮浘'
, shift: 0//寮瑰嚭鍔ㄧ敾
- , content: '../../杞﹂棿绠$悊/鎶ヨ〃鍒嗘瀽/Cj_TemperatureCurveDryingMachine.html?OperationType=1&linterid=' + linterid+'&HSouceBillType='
+ , content: '../../杞﹂棿绠$悊/鎶ヨ〃鍒嗘瀽/Cj_TemperatureCurveDryingMachine.html?OperationType=1&linterid=' + linterid + '&HSouceBillType='
, btn: [],
end: function (index, layero, that) {
}
})
- } else {
- layer.msg('璇烽�夋嫨涓�琛屾暟鎹紪杈戯紒');
- }
+ }
}
//#endregion
//#endregion
- //#region 涓昏〃鏍� 娴佽浆鍗$偣鍑讳簨浠�
- table.on('tool(mainTable)', function (obj) {
+ //#region 涓昏〃鏍� 娴佽浆鍗$偣鍑讳簨浠� 浣滃簾
+ treeTable.on('tool(mainTable)', function (obj) {
var data = obj.data;
var linterid;
var HProcID;
@@ -1285,6 +1290,7 @@
var linterid = data.娴佽浆鍗d;
var HProcID = data.宸ュ簭id;
var HTeachName = data.宸ヨ壓鍙傛暟;
+ var HType = data.绫诲瀷;
layer.open({
type: 2
, area: ['100%', '100%']
@@ -1293,7 +1299,7 @@
, shade: 0.6 //閬僵閫忔槑搴�
, maxmin: true //鍏佽鍏ㄥ睆鏈�灏忓寲
, anim: 0 //0-6鐨勫姩鐢诲舰寮忥紝-1涓嶅紑鍚�
- , content: '../../璐ㄩ噺绠$悊/璐ㄩ噺鎶ヨ〃/SB_TechnologyParameterList.html?OperationType=3&linterid=' + linterid + '&HProcID=' + HProcID + '&HTeachName=' + HTeachName + ''
+ , content: '../../璐ㄩ噺绠$悊/璐ㄩ噺鎶ヨ〃/SB_TechnologyParameterList.html?OperationType=3&linterid=' + linterid + '&HProcID=' + HProcID + '&HTeachName=' + HTeachName + '&HType=' + HType + ''
, resize: false,
end: function () {
}
@@ -1780,17 +1786,21 @@
, page: false
}
table.render(option_Message);
- if (SNs =="") {
- //宸︿晶琛ㄦ牸
+ if (SNs == "") {
+ var TreeDate = LoadTree(data1.data.h_p_QC_FiveMenOneRingList_Query7);
+ //鍔ㄦ�佹樉绀哄垪鍚�
option = {
elem: '#mainTable'
, toolbar: '#toolbarDemo'
, cols: [Listcol[7]]
- , data: data1.data.h_p_QC_FiveMenOneRingList_Query7
- , height: 'full-80'
+ , data: TreeDate
+ , height: 'full-50'
, cellMinWidth: 90
+ , limit: Number.MAX_VALUE//榛樿鏄剧ず鍏ㄩ儴
+ , page: false
}
- table.render(option);
+ treeTable.render(option);
+
}
layer.close(ajaxLoad);
@@ -1806,27 +1816,51 @@
}
//#endregion
- //#region 鐐瑰嚮琛岄�変腑楂樹寒
- table.on('row(mainTable)', function (obj) {
+ //#region 鐐瑰嚮琛岄�変腑 + 鏌ヨ鍙充晶琛ㄦ牸
+ treeTable.on('row(mainTable)', function (obj) {
//閫変腑琛屾敼鍙橀鑹�
var flag = !obj.tr.find(':checkbox:first').prop('checked');
obj.tr.find(':checkbox').prop('checked', flag);
if (flag) {
obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked'); //璁剧疆澶嶉�夋閫変腑鏍峰紡
$(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//鏀瑰彉褰撳墠tr鑳屾櫙棰滆壊鍜屽瓧浣撻鑹�
+ btndate.push(obj.data);
+ var data = obj.data;
+ var linterid;
+ var HProcID;
+ var SNs = $("#SN").val();
+ //鍗曟嵁鍙疯秴閾炬帴
+ linterid = data.娴佽浆鍗d;
+ HProcID = data.宸ュ簭id;
+ getTable_Right(linterid, HProcID, SNs);
} else {
obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//鍙栨秷澶嶉�夋閫変腑鏍峰紡
$(obj.tr.selector).attr({ "style": "background:" });//鍙栨秷褰撳墠tr棰滆壊
- }
- //mainTable 涓鸿〃鏍糏D 娉ㄦ剰姝ゅ濡傛灉ID涓嶆纭皢瀵艰嚧浣犲湪鐩戝惉澶嶉�夋鏃惰幏鍙栦笉鍒颁綘閫夋嫨鐨勬暟鎹紝鍓嶉潰鐨勫彧鏄坊鍔犳垨鍒犻櫎閫変腑鏈�変腑鏍峰紡浠ュ強璁剧疆鑳屾櫙鑹诧紝瀛椾綋棰滆壊
- layui.each(table.cache.mainTable, function (i, l) {
- if (obj.tr.index() == l.LAY_TABLE_INDEX) {
- l.LAY_CHECKED = flag;
- }
- });
+ btndate = [];
+ }
})
//#endregion
+ /**澶勭悊鏍戝舰灞曠ず鏁版嵁锛岃姹傛湁ID鍜孭arentID銆乼itle瀛楁**/
+ function LoadTree(data) {
+ let map = {};
+ let treeData = [];
+ data.forEach(it => {
+ map[it.id] = it; //ID涓烘瘡涓妭鐐圭殑id
+ })
+ //鐢熸垚缁撴灉闆�
+ data.forEach(it => {
+ const parent = map[it.ParentID]; //ParentID涓虹埗鑺傜偣鐨刬d
+ if (parent) {
+ if (!Array.isArray(parent.children)) parent.children = [];
+ parent.children.push(it);
+ } else {
+ treeData.push(it)
+ }
+ })
+ return treeData;
+ }
+
//#region 闅愯棌鍒楄缃�
function get_HideColumn() {
var colName = "";
diff --git "a/WebTM/views/\350\264\250\351\207\217\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/SB_TechnologyParameterList.html" "b/WebTM/views/\350\264\250\351\207\217\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/SB_TechnologyParameterList.html"
index d87122b..7966d64 100644
--- "a/WebTM/views/\350\264\250\351\207\217\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/SB_TechnologyParameterList.html"
+++ "b/WebTM/views/\350\264\250\351\207\217\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/SB_TechnologyParameterList.html"
@@ -161,6 +161,7 @@
var HProc; //宸ュ簭
var HEquId; //璁惧
var HTeachName; //宸ヨ壓鍙傛暟
+ var HType;//绫诲瀷
var HModName = "SB_TechnologyParameterList";
//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�
var titleData = ["骞�", "鏈�", "宸ュ簭"];
@@ -168,7 +169,8 @@
var OperationType = params[params[0]]; //浠庡弬鏁颁腑鑾峰彇 鏁版嵁绫诲瀷 1娣诲姞 淇濆瓨 2澶嶅埗 3 缂栬緫
var linterid = params[params[1]]; //浠庡弬鏁颁腑鑾峰彇 鍗曟嵁鍐呯爜
var HProcID = params[params[2]]; //浠庡弬鏁颁腑鑾峰彇 宸ュ簭
- HTeachName = decodeURI(params[params[3]]); //浠庡弬鏁颁腑鑾峰彇 宸ヨ壓鍙傛暟
+ HTeachName = decodeURI(params[params[3]]); //浠庡弬鏁颁腑鑾峰彇 宸ヨ壓鍙傛暟
+ HType = decodeURI(params[params[4]]); //浠庡弬鏁颁腑鑾峰彇 宸ヨ壓鍙傛暟
var ins; //鐢ㄤ簬瀵煎嚭excel
//#endregion
@@ -248,7 +250,8 @@
if (OperationType == 3) {
Get_SB_EquipICMOTechParamBill(linterid, HProcID);//鑾峰彇娴佽浆鍗�,宸ュ簭,璁惧,鐗╂枡,寮�濮嬬粨鏉熸椂闂�
$("#HTechParamName").val(HTeachName);
- $("#HEquipType").val("璁惧閲囬泦");
+ $("#HEquipType").val(HType);
+ $('#HEquipType').parents('.layui-inline').hide();
form.render('select');
Get_TechParam();//鑾峰彇褰撳墠娴佽浆鍗�,鐗╂枡,宸ュ簭,璁惧 瀵瑰簲鐨勪骇鍝佸伐鑹哄弬鏁版竻鍗�
get_FastQuery();
--
Gitblit v1.9.1