|
|
@@ -1153,6 +1153,9 @@ const projTreeObj = {
|
|
|
me.setFileSelectButton(i,j,nodes[i],sheet,setting);
|
|
|
}
|
|
|
sheet.getCell(i, 1,GC.Spread.Sheets.SheetArea.viewport).locked(true);
|
|
|
+ if (typeof nodes[i].visible !== 'undefined') {
|
|
|
+ sheet.setRowVisible(nodes[i].serialNo(), nodes[i].visible);
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
me.renderSheetFuc(sheet, fuc);
|
|
|
@@ -1490,25 +1493,34 @@ const projTreeObj = {
|
|
|
refreshNodes = refreshNodes.concat(me.calEngineeringCost(oldProject));
|
|
|
refreshNodes = refreshNodes.concat(me.calEngineeringCost(parent));
|
|
|
}
|
|
|
- // projTreeObj.remove(sheet, fromRow, rCout);
|
|
|
-
|
|
|
me.renderSheetFuc(sheet, function () {
|
|
|
sheet.deleteRows(fromRow, rCout);
|
|
|
sheet.addRows(newNode.serialNo(),rCout);
|
|
|
let oldSelection = sheet.getSelections()[0];
|
|
|
me.initSelection({row: newNode.serialNo(), rowCount: oldSelection.rowCount}, oldSelection,sheet);
|
|
|
sheet.setSelection(newNode.serialNo(),oldSelection.col,oldSelection.rowCount,oldSelection.colCount);
|
|
|
- let children = newNode.getAllChildren();
|
|
|
- children.push(newNode);
|
|
|
- for(let c of children){
|
|
|
- sheet.getCell(c.serialNo(), 0).cellType(me.getTreeNodeCell(me.tree));
|
|
|
- }
|
|
|
- refreshNodes = refreshNodes.concat(children);
|
|
|
+ const newNodes = [newNode];
|
|
|
+ const children = newNode.getAllChildren();
|
|
|
+ newNodes.push(...children);
|
|
|
+ for(let node of newNodes){
|
|
|
+ const row = node.serialNo();
|
|
|
+ sheet.getCell(row, 0).cellType(me.getTreeNodeCell(me.tree));
|
|
|
+ const visible = node.visible;
|
|
|
+ sheet.setRowVisible(row, visible);
|
|
|
+ }
|
|
|
+ refreshNodes = refreshNodes.concat(newNodes);
|
|
|
me.refreshNodeData(refreshNodes);
|
|
|
});
|
|
|
|
|
|
function addNewNodes(node,parent,next) {
|
|
|
- let newNode = me.tree.addNodeData(node.data, parent, next);
|
|
|
+ const nodeState = {};
|
|
|
+ if (typeof node.expanded !== 'undefined') {
|
|
|
+ nodeState.expanded = node.expanded;
|
|
|
+ }
|
|
|
+ if (typeof node.visible !== 'undefined') {
|
|
|
+ nodeState.visible = node.visible;
|
|
|
+ }
|
|
|
+ let newNode = me.tree.addNodeData(node.data, parent, next, nodeState);
|
|
|
for(let c of node.children){
|
|
|
addNewNodes(c,newNode,null);
|
|
|
}
|
|
|
@@ -2719,6 +2731,24 @@ function getWorkBookWidth(){
|
|
|
return workBookWidth = $(window).width() - $('.pm-side').width() - 90;
|
|
|
}
|
|
|
|
|
|
+// 初始化节点可见性,默认收起至建设项目层
|
|
|
+function initNodesVisibility(sheet, nodes, visible) {
|
|
|
+ function recurSetVisible(nodes, visible) {
|
|
|
+ nodes.forEach(node => {
|
|
|
+ node.visible = visible;
|
|
|
+ if (node.children) {
|
|
|
+ recurSetVisible(node.children, visible); }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ nodes.forEach(node => {
|
|
|
+ const isProject = node.data.projType === projectType.project;
|
|
|
+ if (isProject) {
|
|
|
+ node.expanded = visible;
|
|
|
+ recurSetVisible(node.children, visible);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
function initProjects(callback) {
|
|
|
GetAllProjectData(function (datas) {
|
|
|
//设置工程专业
|
|
|
@@ -2732,15 +2762,16 @@ function initProjects(callback) {
|
|
|
projTreeObj.tree = pmTree.createNew(projTreeObj.setting, datas);
|
|
|
projTreeObj.tree.selected = projTreeObj.tree.items[0];
|
|
|
projTreeObj.workBook = projTreeObj.buildSheet(projTreeObj.workBook,'projSpread',projTreeObj.setting);
|
|
|
- projTreeObj.workBook.getSheet(0).frozenColumnCount(2);
|
|
|
- projTreeObj.workBook.getSheet(0).name('projectSheet');
|
|
|
+ const sheet = projTreeObj.workBook.getSheet(0);
|
|
|
+ sheet.frozenColumnCount(2);
|
|
|
+ sheet.name('projectSheet');
|
|
|
sheetCommonObj.spreadDefaultStyle(projTreeObj.workBook);
|
|
|
projTreeObj.sumEngineeringCost();
|
|
|
- projTreeObj.showTreeData(projTreeObj.tree.items, projTreeObj.setting, projTreeObj.workBook.getActiveSheet());
|
|
|
+ initNodesVisibility(sheet, projTreeObj.tree.items, false);
|
|
|
+ projTreeObj.showTreeData(projTreeObj.tree.items, projTreeObj.setting, sheet);
|
|
|
//初始选择
|
|
|
- let initSel = projTreeObj.workBook.getSheet(0).getSelections()[0] ? projTreeObj.workBook.getSheet(0).getSelections()[0] : {row: 0, rowCount: 1};
|
|
|
- projTreeObj.initSelection(initSel,null,projTreeObj.workBook.getActiveSheet());
|
|
|
- // $.bootstrapLoading.end();
|
|
|
+ const initSel = sheet.getSelections()[0] ? sheet.getSelections()[0] : { row: 0, rowCount: 1 };
|
|
|
+ projTreeObj.initSelection(initSel, null, sheet);
|
|
|
autoFlashHeight();
|
|
|
projTreeObj.workBook.refresh();
|
|
|
if (callback) {
|