project_view.js 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. /**
  2. * Created by Mai on 2017/6/21.
  3. */
  4. var projectObj = {
  5. project: null,
  6. mainSpread: null,
  7. mainController: null,
  8. checkMainSpread: function () {
  9. if (!this.mainSpread) {
  10. this.mainSpread = SheetDataHelper.createNewSpread($('#billsSpread')[0]);
  11. this.mainSpread.getActiveSheet().selectionPolicy(GC.Spread.Sheets.SelectionPolicy.single);
  12. }
  13. },
  14. refreshMainSpread: function () {
  15. if (this.mainSpread) {
  16. this.mainSpread.refresh();
  17. }
  18. },
  19. loadProjectData: function () {
  20. var that = this;
  21. this.project = PROJECT.createNew(scUrlUtil.GetQueryString('project'), userID);
  22. this.project.loadDatas(function (err) {
  23. if (!err) {
  24. that.mainController = TREE_SHEET_CONTROLLER.createNew(that.project.mainTree, that.mainSpread.getActiveSheet(), BillsGridSetting);
  25. that.mainController.showTreeData();
  26. that.mainController.bind('refreshBaseActn', function (tree) {
  27. var setButtonValid = function (valid, btn) {
  28. if (valid) {
  29. btn.removeClass('disabled');
  30. } else {
  31. btn.addClass('disabled');
  32. }
  33. };
  34. setButtonValid(tree.selected && tree.selected.canUpLevel(), $('#upLevel'));
  35. setButtonValid(tree.selected && tree.selected.canDownLevel(), $('#downLevel'));
  36. setButtonValid(tree.selected && tree.selected.canUpMove(), $('#upMove'));
  37. setButtonValid(tree.selected && tree.selected.canDownMove(), $('#downMove'));
  38. setButtonValid(tree.selected ? true : false, $('#delete'));
  39. });
  40. that.loadMainSpreadContextMenu();
  41. }
  42. else {
  43. }
  44. });
  45. },
  46. loadMainSpreadContextMenu: function () {
  47. var project = this.project, spread = this.mainSpread, controller = this.mainController;
  48. $.contextMenu({
  49. selector: '#billsSpread',
  50. build: function ($trigger, e) {
  51. var target = SheetDataHelper.safeRightClickSelection($trigger, e, spread);
  52. controller.setTreeSelected(controller.tree.items[target.row]);
  53. return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
  54. },
  55. items: {
  56. "insertBills": {
  57. name: "插入清单",
  58. icon: 'fa-sign-in',
  59. disabled: function () {
  60. return project.mainTree.selected ? project.mainTree.selected.sourceType !== project.Bills.getSourceType() : false;
  61. },
  62. callback: function (key, opt) {
  63. ProjectController.addBills(project, controller);
  64. }
  65. },
  66. "insertRation": {
  67. name: "插入定额",
  68. icon: 'fa-sign-in',
  69. disabled: function () {
  70. var selected = project.mainTree.selected;
  71. if (selected) {
  72. if (selected.sourceType === project.Ration.getSourceType()) {
  73. return false;
  74. } else if (selected.sourceType === project.Bills.getSourceType()) {
  75. return selected.source.children.length !== 0;
  76. };
  77. } else {
  78. return true;
  79. }
  80. },
  81. callback: function (key, opt) {
  82. ProjectController.addRation(project, controller);
  83. }
  84. },
  85. "insertLJ": {
  86. name: "插入量价",
  87. icon: 'fa-sign-in',
  88. disabled: function () {
  89. var selected = project.mainTree.selected;
  90. if (selected) {
  91. if (selected.sourceType === project.Ration.getSourceType()) {
  92. return false;
  93. } else if (selected.sourceType === project.Bills.getSourceType()) {
  94. return selected.source.children.length !== 0;
  95. };
  96. } else {
  97. return true;
  98. }
  99. }
  100. },
  101. "spr1": '--------',
  102. "delete": {
  103. name: '删除',
  104. icon: 'fa-remove',
  105. disabled: function () {
  106. var selected = project.mainTree.selected;
  107. return !selected;
  108. },
  109. callback: function () {
  110. var selected = controller.tree.selected;
  111. if (selected) {
  112. if (selected.sourceType === project.Bills.getSourceType()) {
  113. project.Bills.deleteBills(selected.source);
  114. controller.delete();
  115. };
  116. }
  117. }
  118. }
  119. }
  120. });
  121. }
  122. };
  123. $('#insert').click(function () {
  124. var controller = projectObj.mainController, project = projectObj.project;
  125. var selected = controller.tree.selected;
  126. if (!selected || selected.sourceType === project.Bills.getSourceType()) {
  127. ProjectController.addBills(project, controller);
  128. } else if (selected.sourceType === project.Ration.getSourceType()) {
  129. ProjectController.addRation(project, controller);
  130. }
  131. });
  132. $('#delete').click(function () {
  133. var controller = projectObj.mainController, project = projectObj.project;
  134. var selected = controller.tree.selected;
  135. if (selected) {
  136. if (selected.sourceType === project.Bills.getSourceType()) {
  137. project.Bills.deleteBills(selected.source);
  138. controller.delete();
  139. } else if (selected.sourceType === project.Ration.getSourceType()) {
  140. project.Ration.delete(selected.source);
  141. controller.delete();
  142. };
  143. }
  144. });
  145. $('#upLevel').click(function () {
  146. var controller = projectObj.mainController, project = projectObj.project;
  147. var selected = controller.tree.selected;
  148. if (selected && selected.sourceType === project.Bills.getSourceType()) {
  149. project.Bills.upLevelBills(selected.source);
  150. controller.upLevel();
  151. }
  152. });
  153. $('#downLevel').click(function () {
  154. var controller = projectObj.mainController, project = projectObj.project;
  155. var selected = controller.tree.selected;
  156. if (selected && selected.sourceType === project.Bills.getSourceType()) {
  157. project.Bills.downLevelBills(selected.source);
  158. controller.downLevel();
  159. }
  160. });
  161. $('#upMove').click(function () {
  162. var controller = projectObj.mainController, project = projectObj.project;
  163. var selected = controller.tree.selected, pre, preSerialNo;
  164. if (selected) {
  165. if (selected.sourceType === project.Bills.getSourceType()) {
  166. project.Bills.upMoveBills(selected.source);
  167. controller.upMove();
  168. } else if (selected.sourceType === project.Ration.getSourceType()) {
  169. project.Ration.changePos(selected.source, selected.preSibling.source);
  170. controller.upMove();
  171. }
  172. }
  173. });
  174. $('#downMove').click(function () {
  175. var controller = projectObj.mainController, project = projectObj.project;
  176. var selected = controller.tree.selected, next, nextSerialNo;
  177. if (selected) {
  178. if (selected.sourceType === project.Bills.getSourceType()) {
  179. project.Bills.downMoveBills(selected.source);
  180. controller.downMove();
  181. } else if (selected.sourceType === project.Ration.getSourceType()) {
  182. project.Ration.changePos(selected.source, selected.nextSibling.source);
  183. controller.downMove();
  184. }
  185. }
  186. });