dbController.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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. billsAjax.updatePNId(billsLibId, node.getNextSiblingID(), node.getID(), null);
  57. }
  58. if(node.preSibling){
  59. billsAjax.updatePNId(billsLibId, node.preSibling.getID(), null, -1);
  60. }
  61. }
  62. controller.upLevel();
  63. }
  64. },
  65. downLevel: function(controller){
  66. var node = controller.tree.selected;
  67. if(node){
  68. if(node.preSibling){
  69. billsAjax.updatePNId(billsLibId, node.preSibling.getID(), null, node.getNextSiblingID());
  70. billsAjax.updatePNId(billsLibId, node.getID(), node.preSibling.getID(), -1);
  71. if(node.preSibling.children.length > 0){
  72. billsAjax.updatePNId(billsLibId, node.preSibling.children[node.preSibling.children.length -1].getID(), null, node.getID());
  73. }
  74. controller.downLevel();
  75. }
  76. }
  77. },
  78. upMove: function(controller){
  79. var node = controller.tree.selected;
  80. if(node){
  81. if(node.preSibling){
  82. billsAjax.updatePNId(billsLibId, node.preSibling.getID(), null, node.getNextSiblingID());
  83. billsAjax.updatePNId(billsLibId, node.getID(), null, node.preSibling.getID());
  84. if(node.preSibling.preSibling){
  85. billsAjax.updatePNId(billsLibId, node.preSibling.preSibling.getID(), null, node.getID());
  86. }
  87. controller.upMove();
  88. }
  89. }
  90. },
  91. downMove: function(controller){
  92. var node = controller.tree.selected;
  93. if(node){
  94. if(node.nextSibling){
  95. billsAjax.updatePNId(billsLibId, node.getNextSiblingID(), null, node.getID());
  96. billsAjax.updatePNId(billsLibId, node.getID(), null, node.nextSibling.getNextSiblingID());
  97. if(node.preSibling){
  98. billsAjax.updatePNId(billsLibId, node.preSibling.getID(), null, node.getNextSiblingID());
  99. }
  100. controller.downMove();
  101. }
  102. }
  103. },
  104. editData: function(controller){
  105. controller.sheet.bind(GC.Spread.Sheets.Events.EditEnded, function(sender, args){
  106. var node = controller.tree.selected, updateId, field;
  107. if(node){
  108. updateId = node.getID();
  109. billsLibSetting.cols.forEach(function(col, idx){
  110. if(args.col === idx){
  111. field = col.data.field;
  112. node.data[field] = args.editingText;
  113. }
  114. });
  115. billsAjax.updateBills(billsLibId, updateId, field, args.editingText);
  116. }
  117. else {
  118. args.sheet.getCell(args.row, args.col, GC.Spread.Sheets.SheetArea.viewport).value('');
  119. }
  120. });
  121. }
  122. }