|
@@ -395,22 +395,6 @@ const projTreeObj = {
|
|
|
};
|
|
|
me.renderSheetFuc(sheet, fuc);
|
|
|
},
|
|
|
- addRow: function (node) {
|
|
|
- const sheet = this.workBook.getActiveSheet();
|
|
|
- const items = this.tree.items;
|
|
|
- const rIdx = items.indexOf(node);
|
|
|
- const cIdx = sheet.getActiveColumnIndex();
|
|
|
- sheet.addRows(rIdx, 1);
|
|
|
- //set selection selected
|
|
|
- sheet.setSelection(rIdx, cIdx, 1, 1);
|
|
|
- this.tree.selected = node;
|
|
|
- //父节点收起时添加子节点,子节点添加完后隐藏
|
|
|
- if(node.parent && !node.parent.expanded){
|
|
|
- sheet.setRowVisible(rIdx, false);
|
|
|
- }
|
|
|
- sheet.getCell(rIdx, 0).cellType(this.getTreeNodeCell(this.tree));
|
|
|
- this.refreshNodeData(sheet, node);
|
|
|
- },
|
|
|
refreshNodeData: function (sheet, node) {
|
|
|
let me = this;
|
|
|
//解决字段名不同
|
|
@@ -426,27 +410,47 @@ const projTreeObj = {
|
|
|
node.data.feeRateFile = node.data.property && node.data.property.feeFile && node.data.property.feeFile.name ? node.data.property.feeFile.name : '';
|
|
|
node.data.createDateTime = node.data.createDateTime ? new Date(node.data.createDateTime).Format('yyyy-MM-dd') : '';
|
|
|
}
|
|
|
- this.renderSheetFuc(sheet, function () {
|
|
|
- let rIdx = me.tree.items.indexOf(node);
|
|
|
- for(let col = 0; col < me.setting.header.length; col++){
|
|
|
- let dataCode = me.setting.header[col]['dataCode'];
|
|
|
- sheet.setValue(rIdx, col, node.data[dataCode]);
|
|
|
- }
|
|
|
- });
|
|
|
+ let rIdx = me.tree.items.indexOf(node);
|
|
|
+ for(let col = 0; col < me.setting.header.length; col++){
|
|
|
+ let dataCode = me.setting.header[col]['dataCode'];
|
|
|
+ sheet.setValue(rIdx, col, node.data[dataCode]);
|
|
|
+ }
|
|
|
},
|
|
|
insert: function (data, parent, next) {
|
|
|
let node = this.tree.addNodeData(data, parent, next);
|
|
|
this.addRow(node);
|
|
|
return node;
|
|
|
},
|
|
|
- remove: function (sheet) {
|
|
|
+ addRow: function (node) {
|
|
|
+ const me = this;
|
|
|
+ const sheet = this.workBook.getActiveSheet();
|
|
|
+ me.renderSheetFuc(sheet, function () {
|
|
|
+ const items = me.tree.items;
|
|
|
+ const rIdx = items.indexOf(node);
|
|
|
+ const cIdx = sheet.getActiveColumnIndex();
|
|
|
+ sheet.addRows(rIdx, 1);
|
|
|
+ //set selection selected
|
|
|
+ sheet.setSelection(rIdx, cIdx, 1, 1);
|
|
|
+ me.tree.selected = node;
|
|
|
+ //父节点收起时添加子节点,子节点添加完后隐藏
|
|
|
+ if(node.parent && !node.parent.expanded){
|
|
|
+ sheet.setRowVisible(rIdx, false);
|
|
|
+ }
|
|
|
+ sheet.getCell(rIdx, 0).cellType(me.getTreeNodeCell(me.tree));
|
|
|
+ me.refreshNodeData(sheet, node);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ remove: function (sheet, rIdx, count) {
|
|
|
let me = this;
|
|
|
me.renderSheetFuc(sheet, function () {
|
|
|
- let rIdx = me.tree.items.indexOf(me.tree.selected);
|
|
|
- sheet.deleteRows(rIdx - 1, me.tree.selected.posterityCount());
|
|
|
+ sheet.deleteRows(rIdx, count);
|
|
|
sheet.setRowCount(me.tree.items.length);
|
|
|
me.initSelection(sheet.getActiveRowIndex());
|
|
|
});
|
|
|
+ },
|
|
|
+ move: function (orgRow, newRow) {
|
|
|
+ this.workBook.getActiveSheet().deleteRows(orgRow, 1);
|
|
|
+ this.addRow(this.tree.items[newRow]);
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -696,10 +700,14 @@ $(document).ready(function() {
|
|
|
updateData = GetDeleteUpdateData(projTreeObj.tree.selected);
|
|
|
UpdateProjectData(updateData, function () {
|
|
|
dialog.modal('hide');
|
|
|
+ //删除行号
|
|
|
+ let rIdx = projTreeObj.tree.items.indexOf(projTreeObj.tree.selected);
|
|
|
+ //删除行数
|
|
|
+ let rCout = projTreeObj.tree.selected.posterityCount() + 1;
|
|
|
projTreeObj.tree.removeNode(projTreeObj.tree.selected);
|
|
|
//delete view
|
|
|
let sheet = projTreeObj.workBook.getActiveSheet();
|
|
|
- projTreeObj.remove(sheet);
|
|
|
+ projTreeObj.remove(sheet, rIdx, rCout);
|
|
|
});
|
|
|
}
|
|
|
});
|
|
@@ -787,9 +795,18 @@ $(document).ready(function() {
|
|
|
projectType: null
|
|
|
};
|
|
|
updateData = GetUpdateData(null, parent, next, '', null, projTreeObj.tree.selected.id(), typeInfo);
|
|
|
+ //维护cur pre
|
|
|
+ let curPre = cur.preSibling();
|
|
|
+ if(curPre){
|
|
|
+ updateData.push({updateType: 'update', updateData: {ID: curPre.id(), NextSiblingID: cur.nid()}});
|
|
|
+ }
|
|
|
UpdateProjectData(updateData, function (data) {
|
|
|
dialog.modal('hide');
|
|
|
+ let orgRow = projTreeObj.tree.items.indexOf(projTreeObj.tree.selected);
|
|
|
projTreeObj.tree.move(projTreeObj.tree.selected, parent, next);
|
|
|
+ let newRow = projTreeObj.tree.items.indexOf(projTreeObj.tree.selected);
|
|
|
+ //view move
|
|
|
+ projTreeObj.move(orgRow, newRow);
|
|
|
});
|
|
|
} else {
|
|
|
dialog.modal('hide');
|
|
@@ -798,7 +815,7 @@ $(document).ready(function() {
|
|
|
|
|
|
// 复制到按钮点击
|
|
|
$('#copy-to-btn').click(function () {
|
|
|
- let selectedItem = Tree.selected();
|
|
|
+ let selectedItem = projTreeObj.tree.selected;
|
|
|
try {
|
|
|
let selectedType = selectedItem !== null && selectedItem.data !== undefined ?
|
|
|
selectedItem.data.projType : '';
|
|
@@ -813,7 +830,7 @@ $(document).ready(function() {
|
|
|
});
|
|
|
// 复制到弹层替换
|
|
|
$('#copy-to-dialog').on('show.bs.modal', function () {
|
|
|
- copytoZTree = ConvertTreeToZtree(Tree, $('#treeDemo2'), null);
|
|
|
+ copytoZTree = ConvertTreeToZtree(projTreeObj.tree, $('#treeDemo2'), null);
|
|
|
});
|
|
|
|
|
|
// 复制到操作
|
|
@@ -823,7 +840,7 @@ $(document).ready(function() {
|
|
|
let parent = null;
|
|
|
let next = null;
|
|
|
let pre = null;
|
|
|
- let cur = Tree.selected();
|
|
|
+ let cur = projTreeObj.tree.selected;
|
|
|
if (!target) {
|
|
|
return false;
|
|
|
}
|
|
@@ -874,15 +891,16 @@ $(document).ready(function() {
|
|
|
updateData = {};
|
|
|
updateData['updateType'] = 'update';
|
|
|
updateData['updateData'] = {};
|
|
|
- updateData['updateData'][Tree.setting.tree.id] = pre.id();
|
|
|
- updateData['updateData'][Tree.setting.tree.nid] = node.tree.maxNodeId() + 1;
|
|
|
+ updateData['updateData'][projTreeObj.tree.setting.tree.id] = pre.id();
|
|
|
+ updateData['updateData'][projTreeObj.tree.setting.tree.nid] = projTreeObj.tree.maxNodeId() + 1;
|
|
|
}
|
|
|
- Tree.maxNodeId(IDs.lowID - 1);
|
|
|
+ console.log(updateData);
|
|
|
+ projTreeObj.tree.maxNodeId(IDs.lowID - 1);
|
|
|
CommonAjax.post('/pm/api/copyProjects', {updateData: updateData, user_id: userID}, function (data) {
|
|
|
dialog.modal('hide');
|
|
|
data.forEach(function (nodeData) {
|
|
|
if (nodeData.updateType === 'copy') {
|
|
|
- Tree.addNodeData(nodeData.updateData, parent, next);
|
|
|
+ projTreeObj.insert(nodeData.updateData, parent, next);
|
|
|
}
|
|
|
});
|
|
|
}, function () {
|
|
@@ -1073,20 +1091,20 @@ function AddTenderItems(selected, projName, engName, tenderName, property, callb
|
|
|
GetNewProjectId(3, function (IDs) {
|
|
|
let projID = IDs.lowID, engID = IDs.lowID + 1, tenderID = IDs.lowID + 2;
|
|
|
if(!selected || selected.data.projType === projectType.project){
|
|
|
- parent = selected ? selected.parent : Tree._root;
|
|
|
+ parent = selected ? selected.parent : projTreeObj.tree._root;
|
|
|
pre = selected;
|
|
|
- next = selected ? selected.nextSibling : Tree.firstNode();
|
|
|
+ next = selected ? selected.nextSibling : projTreeObj.tree.firstNode();
|
|
|
}
|
|
|
else if(selected.data.projType === projectType.folder){
|
|
|
- parent = selected ? selected : Tree._root;
|
|
|
- pre = selected ? selected.lastChild() : Tree.firstNode();
|
|
|
+ parent = selected ? selected : projTreeObj.tree._root;
|
|
|
+ pre = selected ? selected.lastChild() : projTreeObj.tree.firstNode();
|
|
|
next = null;
|
|
|
}
|
|
|
else if(selected.data.projType === projectType.engineering || selected.data.projType === projectType.tender){
|
|
|
let selectedProj = selected.parent.data.projType === projectType.project ? selected.parent : selected.parent.parent;
|
|
|
- parent = selectedProj ? selectedProj.parent : Tree._root;
|
|
|
+ parent = selectedProj ? selectedProj.parent : projTreeObj.tree._root;
|
|
|
pre = selectedProj;
|
|
|
- next = selectedProj ? selectedProj.nextSibling : Tree.firstNode();
|
|
|
+ next = selectedProj ? selectedProj.nextSibling : projTreeObj.tree.firstNode();
|
|
|
}
|
|
|
let updateProjs = GetUpdateData(pre, parent, next, projName, null, projID, {updateType: 'new', projectType: projectType.project});
|
|
|
let updateEng = {updateType: 'new', updateData: {ID: engID, ParentID: projID, NextSiblingID: -1, name: engName, projType: projectType.engineering}};
|
|
@@ -1290,7 +1308,7 @@ function getProjs(selected){
|
|
|
let temp;
|
|
|
let firstNode;
|
|
|
if(!selected){
|
|
|
- temp = projTreeObj.tree.roots;
|
|
|
+ temp = projTreeObj.tree._root;
|
|
|
firstNode = temp.children[0];
|
|
|
}
|
|
|
else if(selected.data.projType === projectType.folder){
|
|
@@ -1311,17 +1329,19 @@ function getProjs(selected){
|
|
|
rst.push(childNode);
|
|
|
}
|
|
|
}
|
|
|
- //firstNode to first place
|
|
|
- let index = null;
|
|
|
- for(let i = 0, len = rst.length; i < len; i++){
|
|
|
- if(rst[i].data.ID === firstNode.data.ID){
|
|
|
- index = i;
|
|
|
- break;
|
|
|
+ if(firstNode){
|
|
|
+ //firstNode to first place
|
|
|
+ let index = null;
|
|
|
+ for(let i = 0, len = rst.length; i < len; i++){
|
|
|
+ if(rst[i].data.ID === firstNode.data.ID){
|
|
|
+ index = i;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(index){
|
|
|
+ rst.splice(index, 1);
|
|
|
+ rst.splice(0, 0, firstNode);
|
|
|
}
|
|
|
- }
|
|
|
- if(index){
|
|
|
- rst.splice(index, 1);
|
|
|
- rst.splice(0, 0, firstNode);
|
|
|
}
|
|
|
return rst;
|
|
|
}
|