'use strict'; /** * * * @author Mai * @date * @version */ let curProject = {}; const showModal = function (obj) { const tr = obj.parentNode.parentNode; curProject.id = tr.getAttribute('tree_id'); curProject.name = tr.getAttribute('pname'); curProject.rela_tender = tr.getAttribute('rela-tender'); $(obj.getAttribute('data-target')).modal('show'); }; $(document).ready(() => { autoFlashHeight(); const projectTreeObj = (function(setting){ const projectTree = createDragTree(setting.treeSetting); projectTree.loadDatas(setting.source); const TableObj = $(setting.table); const Utils = { getRowTdHtml: function (node, tree) { const html = []; // 名称 html.push(''); if (node.is_folder) { if (node.children.length > 0) { html.push(' ', node.name); } else { html.push(' ', node.name); } } else { html.push(`${tree.isLastSibling(node) ? '└' : '├'}`); html.push(``, node.name, ''); } html.push(''); // 文件个数 html.push(`${ node.file_count || ''}`); // 管理单位 html.push(`${node.management}`); // 创建时间 if (node.is_folder) { html.push(``); } else { html.push(`${moment(node.create_time).format('YYYY-MM-DD')}`); } // 操作 if (node.is_folder) { html.push(``); } else { html.push(``); if (node.manage_permission.indexOf(1) >= 0) html.push(''); if (canManage) html.push(`管理分类`); html.push(''); } return html.join(''); }, getNodeTrHtml: function (node, tree) { const html = []; html.push(``); html.push(Utils.getRowTdHtml(node, tree)); html.push(``); return html.join(''); }, reloadTable: function () { const html = []; for (const node of projectTree.nodes) { html.push(Utils.getNodeTrHtml(node, projectTree)); } TableObj.html(html.join('')); }, getSelectNode: function() { const selectId = $('tr.table-active').attr('tree_id'); return selectId ? projectTree.getItems(selectId) : null; }, getSelectNodeId: function() { const selectId = $('tr.table-active').attr('tree_id'); return selectId || setting.treeSetting.rootId; }, expandByLevel: function(level){ projectTree.expandByLevel(level); for (const node of projectTree.nodes) { const tr = $(`tr[tree_id=${node.id}]`); if (node.expanded) { $('.fold-switch', tr).html(``); } else { $('.fold-switch', tr).html(``); } if (node.visible) { tr.show(); } else { tr.hide(); } } } }; Utils.reloadTable(); $('body').on('click', '.fold-switch', function() { const id = this.getAttribute('id'); const node = projectTree.getItems(id); projectTree.setExpanded(node, !node.expanded); const posterity = projectTree.getPosterity(node); if (node.expanded) { $(this).html(``); } else { $(this).html(``); } for (const p of posterity) { if (p.visible) { $(`tr[tree_id=${p.id}]`).show(); } else { $(`tr[tree_id=${p.id}]`).hide(); } } }); const getChildrenLevel = function (node) { let iLevel = node.tree_level || 1; if (node.children && node.children.length > 0) { for (const c of node.children) { iLevel = Math.max(iLevel, getChildrenLevel(c)); } } return iLevel; }; let tenderTreeShowLevel = $.cs_showLevel({ selector: '#show-level', levels: [ { type: 'sort', count: 5, visible_count: function () { return projectTree.children.map(getChildrenLevel).reduce((x, y) => { return Math.max(x, y); }, 0) - 1; } }, { type: 'last', title: '最底层', visible: function () { const count = projectTree.children.map(getChildrenLevel).reduce((x, y) => { return Math.max(x, y); }, 0) - 1; return count > 0; } }, ], showLevel: function (tag) { switch (tag) { case "1": case "2": case "3": case "4": case "5": Utils.expandByLevel(parseInt(tag)); break; case "last": Utils.expandByLevel(20); break; default: return; } } }); tenderTreeShowLevel.initShowLevel(); tenderTreeShowLevel.refreshMenuVisible(); return { projectTree, TableObj, ...Utils }; })({ treeSetting: { id: 'id', pid: 'tree_pid', level: 'tree_level', order: 'tree_order', rootId: '-1' }, source: projectList, table: '#projectList', }); let srSelect = new srObject({ getRelaProject: function() { return curProject; } }); });