|
|
@@ -481,7 +481,7 @@ const projTreeObj = {
|
|
|
selected.nextSibling ? downMove.removeClass('disabled') : downMove.addClass('disabled');
|
|
|
|
|
|
},
|
|
|
- doAfterTreeOpr: function ({selected, parent, next, projectMap}) {
|
|
|
+ doAfterTreeOpr: function ({selected, parent, next, projectMap}, action) {
|
|
|
$.bootstrapLoading.start();
|
|
|
moveProjects({"user_id": userID, rootProjectID: null, projectMap: projectMap, feeRateMap: {}, unitPriceMap: {}},function (result) {
|
|
|
for (let key in result) {//更新前端节点数据
|
|
|
@@ -493,7 +493,7 @@ const projTreeObj = {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- projTreeObj.moveTo(selected, null, parent, next, null);
|
|
|
+ projTreeObj.moveTo(selected, null, parent, next, null, action);
|
|
|
$.bootstrapLoading.end();
|
|
|
});
|
|
|
},
|
|
|
@@ -519,8 +519,8 @@ const projTreeObj = {
|
|
|
parent = null,
|
|
|
next = null,
|
|
|
projectMap = {};
|
|
|
- const folderLevel = getFolderLevel(selected);
|
|
|
- if (folderLevel === 3) {
|
|
|
+ const maxFolderLevel = getMaxFolderLevel(selected);
|
|
|
+ if (maxFolderLevel === 3) {
|
|
|
return alert('文件夹不能超过3层');
|
|
|
}
|
|
|
//更新前兄弟节点
|
|
|
@@ -534,7 +534,7 @@ const projTreeObj = {
|
|
|
}
|
|
|
//更新选中节点
|
|
|
projectMap[selected.id()] = {query: {ID: selected.id()}, update: {ParentID: orgPre.id(), NextSiblingID: -1}};
|
|
|
- this.doAfterTreeOpr({selected, parent, next, projectMap});
|
|
|
+ this.doAfterTreeOpr({selected, parent, next, projectMap}, 'downLevel');
|
|
|
},
|
|
|
upMove: function () {
|
|
|
let selected = projTreeObj.tree.selected,
|
|
|
@@ -1427,9 +1427,11 @@ const projTreeObj = {
|
|
|
sheet.setSelection(rIdx, cIdx, 1, 1);
|
|
|
me.tree.selected = node;
|
|
|
//父节点收起时添加子节点,子节点添加完后隐藏
|
|
|
- if(node.parent && !node.parent.expanded){
|
|
|
+ /*if(node.parent && !node.parent.expanded){
|
|
|
sheet.setRowVisible(rIdx, false);
|
|
|
- }
|
|
|
+ }*/
|
|
|
+ // 添加节点自动展开相关的隐藏节点
|
|
|
+ me.tree.setNodesExpanded(node.getCollapseParents(), sheet);
|
|
|
sheet.getCell(rIdx, 0).cellType(me.getTreeNodeCell(me.tree));
|
|
|
me.refreshNodeData(node);
|
|
|
});
|
|
|
@@ -1446,7 +1448,7 @@ const projTreeObj = {
|
|
|
this.workBook.getActiveSheet().deleteRows(orgRow, 1);
|
|
|
this.addRow(this.tree.items[newRow]);
|
|
|
},
|
|
|
- moveTo : function(select,target,parent,next,oldProject){
|
|
|
+ moveTo : function(select,target,parent,next,oldProject,action){
|
|
|
let me = this;
|
|
|
let fromRow = select.serialNo();
|
|
|
let rCout = select.posterityCount() + 1;//删除的行数
|
|
|
@@ -1454,9 +1456,6 @@ const projTreeObj = {
|
|
|
let refreshNodes = [];
|
|
|
me.tree.removeNode(select);//删除旧节点
|
|
|
let newNode = addNewNodes(select, parent, next);
|
|
|
- // todo refreshNodeVisible
|
|
|
- /*if (parent && parent.data && !parent.expanded) {
|
|
|
- }*/
|
|
|
if(oldProject){
|
|
|
refreshNodes = refreshNodes.concat(me.calEngineeringCost(oldProject));
|
|
|
refreshNodes = refreshNodes.concat(me.calEngineeringCost(parent));
|
|
|
@@ -1479,6 +1478,9 @@ const projTreeObj = {
|
|
|
refreshNodes = refreshNodes.concat(newNodes);
|
|
|
me.refreshNodeData(refreshNodes);
|
|
|
});
|
|
|
+ if (action === 'downLevel') {
|
|
|
+ me.tree.setNodesExpanded([parent], sheet);
|
|
|
+ }
|
|
|
|
|
|
function addNewNodes(node,parent,next) {
|
|
|
const nodeState = {};
|
|
|
@@ -2910,6 +2912,14 @@ function getFolderLevel(selected) {
|
|
|
return level;
|
|
|
}
|
|
|
|
|
|
+// 选中节点及其子项最大文件夹层数
|
|
|
+function getMaxFolderLevel(selected) {
|
|
|
+ const nodes = [selected, ...selected.getAllChildren()];
|
|
|
+ const levels = nodes.map(node => getFolderLevel(node));
|
|
|
+ return Math.max(...levels);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
//判断是否是三层文件夹以内
|
|
|
function withinTreble(selectedItem){
|
|
|
if(selectedItem.data.projType === projectType.tender){
|