|
@@ -0,0 +1,533 @@
|
|
|
+/**
|
|
|
+ * Created by Mai on 2017/2/24.
|
|
|
+ */
|
|
|
+var Tree = null, movetoZTree = null, copytoZTree = null;
|
|
|
+var ProjTreeSetting = {
|
|
|
+ viewEvent: {
|
|
|
+ beforeSelect: function (node) {
|
|
|
+ if (node && node.row) {
|
|
|
+ $('td:eq(0)', node.row).children().remove();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onSelectNode: function (node) {
|
|
|
+ // 新建文件夹 是否可见
|
|
|
+ if (node.data.projType === 'Tender') {
|
|
|
+ $('#addFolderBtn').hide();
|
|
|
+ } else {
|
|
|
+ $('#addFolderBtn').show();
|
|
|
+ }
|
|
|
+ // 重命名可见
|
|
|
+ $('#renameBtn').show();
|
|
|
+ // 删除可见
|
|
|
+ $('#delBtn').show();
|
|
|
+ // 移动到、复制到、共享、协同 是否可见
|
|
|
+ if (node.data.projType === 'Tender') {
|
|
|
+ $('#movetoBtn').show();
|
|
|
+ $('#copytoBtn').show();
|
|
|
+ $('#shareBtn').show();
|
|
|
+ $('#cooperateBtn').show();
|
|
|
+ } else {
|
|
|
+ $('#movetoBtn').hide();
|
|
|
+ $('#copytoBtn').hide();
|
|
|
+ $('#shareBtn').hide();
|
|
|
+ $('#cooperateBtn').hide();
|
|
|
+ }
|
|
|
+ $('td:eq(0)', node.row).append($('<i class="fa fa-sort" data-toggle="tooltip" data-placement="top" title="长安拖动"></i>'));
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+// 从服务器拉取数据
|
|
|
+var LoadProjTree = function () {
|
|
|
+ var table = $('#ProjTree');
|
|
|
+ $('thead', table).remove();
|
|
|
+ $('tbody', table).remove();
|
|
|
+ GetAllProjectData(function (data) {
|
|
|
+ Tree = $.fn.treeTable.init(table, ProjTreeSetting, data);
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+var GetNeedUpdatePreNode = function (parent, next) {
|
|
|
+ if (parent && parent.id() !== -1) {
|
|
|
+ if (next && next.preSibling()) {
|
|
|
+ return next.preSibling();
|
|
|
+ } else {
|
|
|
+ return parent.lastChild();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+};
|
|
|
+var GetPreNodeUpdateData = function (pre, nid) {
|
|
|
+ var data = {};
|
|
|
+ data['updateType'] = 'update';
|
|
|
+ data['updateData'] = {id: pre.id(), nextId: nid};
|
|
|
+ return data;
|
|
|
+}
|
|
|
+// 获取新建项目数据
|
|
|
+var GetAddProjUpdateData = function (parent, next, name) {
|
|
|
+ var datas = [], updateData, pre, newId = Tree.maxNodeId() + 1;
|
|
|
+ updateData = {};
|
|
|
+ updateData['updateType'] = 'new';
|
|
|
+ updateData['updateData'] = {};
|
|
|
+ updateData['updateData']['id'] = newId;
|
|
|
+ updateData['updateData']['parentId'] = parent ? parent.id() : -1;
|
|
|
+ updateData['updateData']['nextId'] = next ? next.id() : -1;
|
|
|
+ updateData['updateData']['name'] = name;
|
|
|
+ updateData['updateData']['projType'] = 'Tender';
|
|
|
+ datas.push(updateData);
|
|
|
+ return datas;
|
|
|
+};
|
|
|
+var GetAddFolderProjUpdateData = function (parent, next, folderName1, folderName2, name) {
|
|
|
+ var datas = [], updateData, folderData1, folderData2, pre, newId = Tree.maxNodeId() + 1;
|
|
|
+ var addUpdateData = function (parentId, nextId, name, projType) {
|
|
|
+ var data = {};
|
|
|
+ data['updateType'] = 'new';
|
|
|
+ data['updateData'] = {};
|
|
|
+ data['updateData']['id'] = newId;
|
|
|
+ data['updateData']['parentId'] = parentId;
|
|
|
+ data['updateData']['nextId'] = nextId;
|
|
|
+ data['updateData']['name'] = name;
|
|
|
+ data['updateData']['projType'] = projType;
|
|
|
+ newId += 1;
|
|
|
+ datas.push(data);
|
|
|
+ return data;
|
|
|
+ }
|
|
|
+ folderData1 = addUpdateData(parent.id(), next ? next.id() : -1, folderName1, 'Folder');
|
|
|
+ folderData2 = addUpdateData(folderData1.updateData.id, -1, folderName2, 'Folder');
|
|
|
+ addUpdateData(folderData2.updateData.id, -1, name, 'Tender');
|
|
|
+ return datas;
|
|
|
+};
|
|
|
+// 获取新建文件夹数据
|
|
|
+var GetAddForlderUpdateData = function (parent, next, folderName) {
|
|
|
+ var datas = [], updateData, pre, newId = Tree.maxNodeId() + 1;
|
|
|
+ updateData = {};
|
|
|
+ updateData['updateType'] = 'new';
|
|
|
+ updateData['updateData'] = {};
|
|
|
+ updateData['updateData']['id'] = newId;
|
|
|
+ updateData['updateData']['parentId'] = parent ? parent.id() : -1;
|
|
|
+ updateData['updateData']['nextId'] = next ? next.id() : -1;
|
|
|
+ updateData['updateData']['name'] = folderName;
|
|
|
+ updateData['updateData']['projType'] = 'Folder';
|
|
|
+ datas.push(updateData);
|
|
|
+
|
|
|
+ pre = GetNeedUpdatePreNode(parent, next);
|
|
|
+ if (pre) {
|
|
|
+ datas.push(GetPreNodeUpdateData(pre, newId));
|
|
|
+ }
|
|
|
+ return datas;
|
|
|
+};
|
|
|
+
|
|
|
+var GetNextChangeUpdateData = function (datas, node, next) {
|
|
|
+ var data = null;
|
|
|
+ if (node && node.id() !== -1) {
|
|
|
+ data = {};
|
|
|
+ data['updateType'] = 'update';
|
|
|
+ data['updateData'] = {};
|
|
|
+ data['updateData']['id'] = node.id();
|
|
|
+ data['updateData']['nextId'] = next ? next.id() : -1;
|
|
|
+ datas.push(data);
|
|
|
+ }
|
|
|
+ return data;
|
|
|
+}
|
|
|
+var GetFullName = function (node) {
|
|
|
+ var fullName = [],
|
|
|
+ cur = node;
|
|
|
+ while (cur && cur.data) {
|
|
|
+ fullName.unshift(cur.data.name);
|
|
|
+ cur = cur.parent;
|
|
|
+ }
|
|
|
+ return fullName;
|
|
|
+}
|
|
|
+var GetDeleteUpdateData = function (node) {
|
|
|
+ var datas = [], updateData,
|
|
|
+ pre = node.preSibling(),
|
|
|
+ deleteNodeData = function (node) {
|
|
|
+ var data = {};
|
|
|
+ data['updateType'] = 'delete';
|
|
|
+ data['updateData'] = {};
|
|
|
+ data['updateData']['id'] = node.id();
|
|
|
+ data['updateData']['deleted'] = true;
|
|
|
+ if (node.data.projType === 'Tender') {
|
|
|
+ data['updateData']['deleteFullFolder'] = GetFullName(node.parent);
|
|
|
+ }
|
|
|
+ return data;
|
|
|
+ },
|
|
|
+ addDeleteChildren = function (children) {
|
|
|
+ children.forEach(function(child){
|
|
|
+ datas.push(deleteNodeData(child));
|
|
|
+ addDeleteChildren(child.children);
|
|
|
+ });
|
|
|
+ };
|
|
|
+ if (pre && pre.id() !== -1) {
|
|
|
+ updateData = {};
|
|
|
+ updateData['updateType'] = 'update';
|
|
|
+ updateData['updateData'] = {};
|
|
|
+ updateData['updateData']['id'] = pre.id();
|
|
|
+ updateData['updateData']['nextId'] = node ? node.nid() : -1;
|
|
|
+ datas.push(updateData);
|
|
|
+ }
|
|
|
+ datas.push(deleteNodeData(node));
|
|
|
+ addDeleteChildren(node.children);
|
|
|
+ return datas;
|
|
|
+};
|
|
|
+
|
|
|
+var GetMoveUpdateData = function (node, parent, next) {
|
|
|
+ var datas = [], updateData;
|
|
|
+ updateData = GetNextChangeUpdateData(datas, node.preSibling(), node.nextSibling);
|
|
|
+ if (next) {
|
|
|
+ updateData = GetNextChangeUpdateData(datas, next.preSibling(), node);
|
|
|
+ }
|
|
|
+ updateData = {};
|
|
|
+ updateData['updateType'] = 'update';
|
|
|
+ updateData['updateData'] = {};
|
|
|
+ updateData['updateData']['id'] = node.id();
|
|
|
+ updateData['updateData']['parentId'] = parent ? parent.id() : -1;
|
|
|
+ updateData['updateData']['nextId'] = next ? next.id() : -1;
|
|
|
+ datas.push(updateData);
|
|
|
+ return datas;
|
|
|
+};
|
|
|
+
|
|
|
+var GetCopyUpdateData = function (node, parent, next){
|
|
|
+ var datas = [], updateData, pre;
|
|
|
+ updateData = {};
|
|
|
+ updateData['updateType'] = 'new';
|
|
|
+ updateData['updateData'] = {};
|
|
|
+ updateData['updateData']['id'] = node.tree.maxNodeId() + 1;
|
|
|
+ updateData['updateData']['parentId'] = parent ? parent.id() : -1;
|
|
|
+ updateData['updateData']['nextId'] = next ? next.id() : -1;
|
|
|
+ updateData['updateData']['name'] = node.data.name;
|
|
|
+ updateData['updateData']['projType'] = node.data.projType;
|
|
|
+ datas.push(updateData);
|
|
|
+
|
|
|
+ pre = GetNeedUpdatePreNode(parent, next);
|
|
|
+ if (pre) {
|
|
|
+ updateData = {};
|
|
|
+ updateData['updateType'] = 'update';
|
|
|
+ updateData['updateData'] = {};
|
|
|
+ updateData['updateData']['id'] = pre.id();
|
|
|
+ updateData['updateData']['nextId'] = node.tree.maxNodeId() + 1;
|
|
|
+ datas.push(updateData);
|
|
|
+ }
|
|
|
+ return datas;
|
|
|
+}
|
|
|
+
|
|
|
+var ConvertTreeToZtree = function (Tree, zTreeObj, filterNode) {
|
|
|
+ var setting = {
|
|
|
+ data: {
|
|
|
+ simpleData: {
|
|
|
+ enable:true,
|
|
|
+ idKey: "id",
|
|
|
+ pIdKey: "pId",
|
|
|
+ rootPId: "-1"
|
|
|
+ }
|
|
|
+ }},
|
|
|
+ zTreeData = [],
|
|
|
+ exportNodesData = function (nodes) {
|
|
|
+ nodes.forEach(function (node) {
|
|
|
+ if (node !== filterNode) {
|
|
|
+ var data = {};
|
|
|
+ data['id'] = node.data['id'];
|
|
|
+ data['pId'] = node.pid();// === -1 ? 0 : node.pid();
|
|
|
+ data['name'] = node.data['name'];
|
|
|
+ data['isParent'] = node.data.projType === 'Folder';//(node.data.projType === 'Folder' && node.children.length === 0);
|
|
|
+ data['open'] = node.data.projType === 'Folder';//node.children.length !== 0;
|
|
|
+ zTreeData.push(data);
|
|
|
+ exportNodesData(node.children);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ };
|
|
|
+ exportNodesData(Tree._root.children);
|
|
|
+ return $.fn.zTree.init(zTreeObj, setting, zTreeData);
|
|
|
+};
|
|
|
+var GetTargetTreeNode = function (zTreeObj) {
|
|
|
+ var ztree_selected;
|
|
|
+ if (zTreeObj && Tree) {
|
|
|
+ ztree_selected = zTreeObj.getSelectedNodes().length === 0 ? null : zTreeObj.getSelectedNodes()[0];
|
|
|
+ return ztree_selected ? Tree.findNode(ztree_selected.id) : null;
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+var AddFolderChildValid = function (node) {
|
|
|
+ if (node.data.projType === 'Folder') {
|
|
|
+ if (node.children.length === 0) {
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ return (node.firstChild().data.projType === 'Folder');
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+};
|
|
|
+var AddTenderChildValid = function (node) {
|
|
|
+ if (node.data.projType === 'Folder') {
|
|
|
+ if (node.children.length === 0) {
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ return (node.firstChild().data.projType === 'Tender');
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+LoadProjTree();
|
|
|
+$('#movetoBtn').hide();
|
|
|
+$('#copytoBtn').hide();
|
|
|
+$('#shareBtn').hide();
|
|
|
+$('#cooperateBtn').hide();
|
|
|
+
|
|
|
+// 新建文件夹
|
|
|
+$('#addFolderBtn').click(function () {
|
|
|
+ if (Tree) {
|
|
|
+ $('#addFolder').modal('show');
|
|
|
+ }
|
|
|
+});
|
|
|
+$('#addFolderOk').click(function () {
|
|
|
+ var form = $('#addFolder');
|
|
|
+ var name = $('#folder-name-input').val();
|
|
|
+ var updateData, parent, next;
|
|
|
+ if (name) {
|
|
|
+ if (Tree.selected()) {
|
|
|
+ if (Tree.selected().children.length === 0 || Tree.selected().firstChild().data.projType === 'Folder') {
|
|
|
+ parent = Tree.selected();
|
|
|
+ next = Tree.selected().firstChild();
|
|
|
+ } else {
|
|
|
+ parent = Tree.selected().parent;
|
|
|
+ next = Tree.selected().nextSibling;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ parent = Tree._root;
|
|
|
+ next = Tree.firstNode();
|
|
|
+ }
|
|
|
+
|
|
|
+ updateData = GetAddForlderUpdateData(parent, next, name);
|
|
|
+ UpdateProjectData(updateData, function(datas){
|
|
|
+ datas.forEach(function (data) {
|
|
|
+ if (data.updateType === 'new') {
|
|
|
+ Tree.addNodeData(data.updateData, parent, next);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ form.modal('hide');
|
|
|
+ });
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+// 新建工程
|
|
|
+var AddProj = function () {
|
|
|
+ var name = $('#tenderName').val(), updateData, parent, next;
|
|
|
+ if (name !== '') {
|
|
|
+ // if (Tree.selected()){
|
|
|
+ // if (Tree.selected().data.projType === 'Tender') {
|
|
|
+ // parent = Tree.selected().parent;
|
|
|
+ // next = Tree.selected().next;
|
|
|
+ // } else {
|
|
|
+ // if (Tree.selected().firstNode.data.projType === 'Tender') {
|
|
|
+ // parent = Tree.selected();
|
|
|
+ // next = Tree.selected().firstNode();
|
|
|
+ // } else {
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // parent = Tree._root();
|
|
|
+ // next = Tree.firstNode();
|
|
|
+ // }
|
|
|
+ updateData = GetAddProjUpdateData(Tree._root, Tree.firstNode(), name);
|
|
|
+ UpdateProjectData(updateData, function (datas) {
|
|
|
+ datas.forEach(function (data) {
|
|
|
+ var parent, next;
|
|
|
+ if (data.updateType === 'new') {
|
|
|
+ parent = data.updateData.parentId === -1 ? Tree._root : Tree.findNode(data.updateData.parentId);
|
|
|
+ next = data.updateData.nextId === -1 ? null : Tree.findNode(data.updateData.nextId);
|
|
|
+ Tree.addNodeData(data.updateData, parent, next);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ $('#addProj').modal('hide');
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|
|
|
+var AddFolderProj = function () {
|
|
|
+ var nameB = $('#buildName').val(), nameX = $('#xiangName').val(), name = $('#tenderName').val(), updateData;
|
|
|
+ if (nameB !== '' && nameX !== '' && name !== '') {
|
|
|
+ updateData = GetAddFolderProjUpdateData(Tree._root, Tree.firstNode(), nameB, nameX, name);
|
|
|
+ UpdateProjectData(updateData, function (datas) {
|
|
|
+ datas.forEach(function (data) {
|
|
|
+ var parent, next;
|
|
|
+ if (data.updateType === 'new') {
|
|
|
+ parent = data.updateData.parentId === -1 ? Tree._root : Tree.findNode(data.updateData.parentId);
|
|
|
+ next = data.updateData.nextId === -1 ? null : Tree.findNode(data.updateData.nextId);
|
|
|
+ Tree.addNodeData(data.updateData, parent, next);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ $('#addProj').modal('hide');
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|
|
|
+$('#addProjBtn').click(function () {
|
|
|
+ if (Tree) {
|
|
|
+ $('#addProj').modal('show');
|
|
|
+ }
|
|
|
+});
|
|
|
+$('#addProjOk').click(function () {
|
|
|
+ var hasFolder = $('#isAddFolder>input').is(':checked');
|
|
|
+ if (hasFolder) {
|
|
|
+ AddFolderProj();
|
|
|
+ } else {
|
|
|
+ AddProj();
|
|
|
+ }
|
|
|
+});
|
|
|
+$('#isAddFolder').change(function () {
|
|
|
+ if ($('input',this).is(':checked')) {
|
|
|
+ $('#moreinfo').collapse('show');
|
|
|
+ } else {
|
|
|
+ $('#moreinfo').collapse('hide');
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+// 重命名
|
|
|
+$('#renameBtn').click(function() {
|
|
|
+ if (Tree && Tree.selected()) {
|
|
|
+ $('#rename').modal('show');
|
|
|
+ }
|
|
|
+})
|
|
|
+$('#rename').on('show.bs.modal', function () {
|
|
|
+ $('#newName').attr('placeholder', Tree.selected().data.name);
|
|
|
+});
|
|
|
+$('#renameOk').click(function () {
|
|
|
+ var select = Tree.selected(),
|
|
|
+ newName = $('#newName').val(),
|
|
|
+ form = $('#rename');
|
|
|
+ if (select && newName !== select.data.name) {
|
|
|
+ RenameProject(select.id(), newName, function () {
|
|
|
+ form.modal('hide');
|
|
|
+ select.data.name = newName;
|
|
|
+ Tree.refreshNodesDom([select]);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ form.modal('hide');
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+// 删除
|
|
|
+$('#delBtn').click(function() {
|
|
|
+ if (Tree && Tree.selected()) {
|
|
|
+ $('#del').modal('show');
|
|
|
+ }
|
|
|
+});
|
|
|
+$('#del').on('show.bs.modal', function() {
|
|
|
+ var hasTenderChild = function (children) {
|
|
|
+ var i;
|
|
|
+ for (i = 0; i < children.length; i++) {
|
|
|
+ if (children[i].children.length === 0) {
|
|
|
+ if (children[i].data.projType === 'Tender') {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ } else if (hasTenderChild(children[i].children)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ };
|
|
|
+ if (Tree.selected().children.length == 0) {
|
|
|
+ $('#tenderHint').show();
|
|
|
+ $('#tenderHint').text('删除 "' + Tree.selected().data.name +'" ?');
|
|
|
+ $('#folderHint').hide();
|
|
|
+ } else {
|
|
|
+ $('#tenderHint').hide();
|
|
|
+ $('#folderHint').show();
|
|
|
+ $('#folderHint').text('删除 "'+ Tree.selected().data.name +'" 以及它包含的子项?');
|
|
|
+ }
|
|
|
+ if (hasTenderChild([Tree.selected()])) {
|
|
|
+ $('#restoreHint').show();
|
|
|
+ } else {
|
|
|
+ $('#restoreHint').hide();
|
|
|
+ }
|
|
|
+});
|
|
|
+$('#deleteProjOk').click(function () {
|
|
|
+ var updateData, form = $('#del');
|
|
|
+ if (Tree) {
|
|
|
+ updateData = GetDeleteUpdateData(Tree.selected());
|
|
|
+ UpdateProjectData(updateData, function () {
|
|
|
+ form.modal('hide');
|
|
|
+ Tree.removeNode(Tree.selected());
|
|
|
+ });
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+// 移动至
|
|
|
+$('#movetoBtn').click(function () {
|
|
|
+ if (Tree && Tree.selected()) {
|
|
|
+ $('#moveto').modal('show');
|
|
|
+ }
|
|
|
+});
|
|
|
+$('#moveto').on('show.bs.modal', function () {
|
|
|
+ movetoZTree = ConvertTreeToZtree(Tree, $('#treeDemo'), Tree.selected());
|
|
|
+});
|
|
|
+$('#movetoOk').click(function () {
|
|
|
+ var updateData, form = $('#moveto'),
|
|
|
+ target = GetTargetTreeNode($.fn.zTree.getZTreeObj('treeDemo')),
|
|
|
+ parent, next, cur = Tree.selected();
|
|
|
+ if (target) {
|
|
|
+ if (target.data.projType === 'Tender') {
|
|
|
+ parent = target.parent;
|
|
|
+ next = target.nextSibling;
|
|
|
+ } else {
|
|
|
+ parent = target;
|
|
|
+ next = target.firstChild();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (parent !== cur.parent || (next !== cur && next !== cur.nextSibling)){
|
|
|
+ updateData = GetMoveUpdateData(Tree.selected(), parent, next);
|
|
|
+ UpdateProjectData(updateData, function (data) {
|
|
|
+ form.modal('hide');
|
|
|
+ Tree.move(Tree.selected(), parent, next);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ form.modal('hide');
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ form.modal('hide');
|
|
|
+ }
|
|
|
+})
|
|
|
+
|
|
|
+// 复制到
|
|
|
+$('#copytoBtn').click(function () {
|
|
|
+ if (Tree && Tree.selected()) {
|
|
|
+ $('#copyto').modal('show');
|
|
|
+ }
|
|
|
+});
|
|
|
+$('#copyto').on('show.bs.modal', function () {
|
|
|
+ copytoZTree = ConvertTreeToZtree(Tree, $('#treeDemo2'));
|
|
|
+});
|
|
|
+$('#copytoOk').click(function() {
|
|
|
+ var updateData, form = $('#copyto'),
|
|
|
+ target = GetTargetTreeNode($.fn.zTree.getZTreeObj('treeDemo2')),
|
|
|
+ parent, next, cur = Tree.selected();
|
|
|
+ if (target && (target.data.projType === 'Tender' || target.children.length === 0 || target.firstChild().data.projType === 'Tender')) {
|
|
|
+ if (target.data.projType === 'Tender') {
|
|
|
+ parent = target.parent;
|
|
|
+ next = target.nextSibling;
|
|
|
+ } else {
|
|
|
+ parent = target;
|
|
|
+ next = target.firstChild();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (parent !== cur.parent || (next !== cur && next !== cur.nextSibling)){
|
|
|
+ updateData = GetCopyUpdateData(Tree.selected(), parent, next);
|
|
|
+ UpdateProjectData(updateData, function (data) {
|
|
|
+ form.modal('hide');
|
|
|
+ data.forEach(function (nodeData) {
|
|
|
+ if (nodeData.updateType === 'new') {
|
|
|
+ Tree.addNodeData(nodeData.updateData, parent, next);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ form.modal('hide');
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ form.modal('hide');
|
|
|
+ }
|
|
|
+});
|