dbController.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /**
  2. * Created by vian on 2017/4/12.
  3. */
  4. var dbController = {
  5. insert: function(controller){
  6. if(controller.tree.items.length === 0){
  7. billsAjax.createBills(billsLibId, 1, -1 , -1);
  8. controller.insert();
  9. }
  10. else {
  11. var node = controller.tree.selected;
  12. if(node){
  13. var updateId = node.getID(), createpid = node.getParentID(), createnid = node.getNextSiblingID();
  14. controller.insert();
  15. billsAjax.createBills(billsLibId, node.getNextSiblingID(), createpid, createnid);
  16. billsAjax.updatePNId(billsLibId, updateId, -1, node.getNextSiblingID());
  17. }
  18. else {
  19. var updateNode = controller.tree.roots[controller.tree.roots.length - 1];
  20. var updateId = updateNode.getID();
  21. controller.insert();
  22. billsAjax.createBills(billsLibId, updateNode.getNextSiblingID(), -1, -1);
  23. billsAjax.updatePNId(billsLibId, updateId, -1, updateNode.getNextSiblingID());
  24. }
  25. }
  26. },
  27. delete: function(controller){
  28. var node = controller.tree.selected;
  29. var deleteIds = [];
  30. var getDeleteIds = function(node){
  31. if(node){
  32. deleteIds.push(node.getID());
  33. if(node.children.length > 0){
  34. for(var i=0; i<node.children.length; i++){
  35. getDeleteIds(node.children[i]);
  36. }
  37. }
  38. }
  39. };
  40. getDeleteIds(node);
  41. billsAjax.deleteBills(billsLibId, deleteIds);
  42. if(node.preSibling){
  43. billsAjax.updatePNId(billsLibId, node.preSibling.getID(), null, node.getNextSiblingID());
  44. }
  45. controller.delete();
  46. },
  47. upLevel: function(controller){
  48. var node = controller.tree.selected;
  49. if(node){
  50. if(node.parent){
  51. //node
  52. billsAjax.updatePNId(billsLibId, node.getID(), node.parent.getParentID(), node.parent.getNextSiblingID());
  53. //parent
  54. billsAjax.updatePNId(billsLibId, node.getParentID(), null, node.getID());
  55. if(node.nextSibling){
  56. //node.nextSibling
  57. billsAjax.updatePNId(billsLibId, node.getNextSiblingID(), node.getID(), null);
  58. }
  59. if(node.preSibling){
  60. billsAjax.updatePNId(billsLibId, node.preSibling.getID(), null, -1);
  61. }
  62. }
  63. controller.upLevel();
  64. }
  65. },
  66. downLevel: function(controller){
  67. var node = controller.tree.selected;
  68. if(node){
  69. if(node.preSibling){
  70. billsAjax.updatePNId(billsLibId, node.preSibling.getID(), null, node.getNextSiblingID());
  71. billsAjax.updatePNId(billsLibId, node.getID(), node.preSibling.getID(), -1);
  72. if(node.preSibling.children.length > 0){
  73. billsAjax.updatePNId(billsLibId, node.preSibling.children[node.preSibling.children.length -1].getID(), null, node.getID());
  74. }
  75. controller.downLevel();
  76. }
  77. }
  78. },
  79. upMove: function(controller){
  80. var node = controller.tree.selected;
  81. if(node){
  82. if(node.preSibling){
  83. billsAjax.updatePNId(billsLibId, node.preSibling.getID(), null, node.getNextSiblingID());
  84. billsAjax.updatePNId(billsLibId, node.getID(), null, node.preSibling.getID());
  85. if(node.preSibling.preSibling){
  86. billsAjax.updatePNId(billsLibId, node.preSibling.preSibling.getID(), null, node.getID());
  87. }
  88. controller.upMove();
  89. }
  90. }
  91. },
  92. downMove: function(controller){
  93. var node = controller.tree.selected;
  94. if(node){
  95. if(node.nextSibling){
  96. billsAjax.updatePNId(billsLibId, node.getNextSiblingID(), null, node.getID());
  97. billsAjax.updatePNId(billsLibId, node.getID(), null, node.nextSibling.getNextSiblingID());
  98. if(node.preSibling){
  99. billsAjax.updatePNId(billsLibId, node.preSibling.getID(), null, node.getNextSiblingID());
  100. }
  101. controller.downMove();
  102. }
  103. }
  104. },
  105. editData: function(controller){
  106. controller.sheet.bind(GC.Spread.Sheets.Events.EditEnded, function(sender, args){
  107. var node = controller.tree.selected, updateId, field;
  108. if(node){
  109. updateId = node.getID();
  110. billsLibSetting.cols.forEach(function(col, idx){
  111. if(args.col === idx){
  112. field = col.data.field;
  113. node.data[field] = args.editingText;
  114. }
  115. });
  116. billsAjax.updateBills(billsLibId, updateId, field, args.editingText);
  117. }
  118. else {
  119. args.sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).value('');
  120. }
  121. });
  122. }
  123. }