'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;
}
});
});