'use strict';
/**
*
*
* @author Mai
* @date
* @version
*/
let curBudget = {};
const showModal = function (obj) {
const tr = obj.parentNode.parentNode;
curBudget.id = tr.getAttribute('tree_id');
curBudget.bid = tr.getAttribute('bid');
curBudget.name = tr.getAttribute('bname');
curBudget.rela_tender = tr.getAttribute('rela-tender');
$(obj.getAttribute('data-target')).modal('show');
};
$(document).ready(() => {
autoFlashHeight();
const budgetTreeObj = (function(setting){
const budgetTree = createDragTree(setting.treeSetting);
budgetTree.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(' | ');
// 概预算标准
if (node.is_folder) {
html.push(` | `);
} else {
html.push(`${node.std_name} | `);
}
// 创建时间
if (node.is_folder) {
html.push(` | `);
} else {
html.push(`${moment(node.create_time).format('YYYY-MM-DD')} | `);
}
// 金额
html.push(`${node.gu_tp || ''} | `);
html.push(`${node.gai_tp || ''} | `);
html.push(`${node.yu_tp || ''} | `);
// 操作
if (node.is_folder) {
html.push(` | `);
} else {
html.push(``);
if (node.permission.indexOf(2) >= 0)
html.push(`项目概况`);
if (node.manage_permission.indexOf(1) >= 0)
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 budgetTree.nodes) {
html.push(Utils.getNodeTrHtml(node, budgetTree));
}
TableObj.html(html.join(''));
},
getSelectNode: function() {
const selectId = $('tr.table-active').attr('tree_id');
return selectId ? budgetTree.getItems(selectId) : null;
},
getSelectNodeId: function() {
const selectId = $('tr.table-active').attr('tree_id');
return selectId || setting.treeSetting.rootId;
},
expandByLevel: function(level){
budgetTree.expandByLevel(level);
for (const node of budgetTree.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 = budgetTree.getItems(id);
budgetTree.setExpanded(node, !node.expanded);
const posterity = budgetTree.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 budgetTree.children.map(getChildrenLevel).reduce((x, y) => { return Math.max(x, y); }, 0) - 1;
}
},
{
type: 'last', title: '最底层', visible: function () {
const count = budgetTree.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 { budgetTree, TableObj, ...Utils };
})({
treeSetting: { id: 'id', pid: 'tree_pid', level: 'tree_level', order: 'tree_order', rootId: '-1' },
source: budgetList,
table: '#budgetList',
});
let srSelect = new srObject({
getRelaProject: function() {
return curBudget;
}
});
});