bills.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. /**
  2. * Created by Mai on 2017/4/17.
  3. */
  4. $(document).ready(function () {
  5. var tempType = 3;
  6. var FormatUpdateData = function (data) {
  7. var updateData = {};
  8. updateData['user_id'] = userID;
  9. updateData['tempType'] = tempType;
  10. updateData['updateData'] = data;
  11. return updateData;
  12. };
  13. var RefreshBaseActn = function (tree) {
  14. var showButton = function (show, btn) {
  15. if (show) {
  16. btn.show();
  17. } else {
  18. btn.hide();
  19. }
  20. };
  21. showButton(tree.selected && tree.selected.canUpLevel(), $('#upLevel'));
  22. showButton(tree.selected && tree.selected.canDownLevel(), $('#downLevel'));
  23. showButton(tree.selected && tree.selected.canUpMove(), $('#upMove'));
  24. showButton(tree.selected && tree.selected.canDownMove(), $('#downMove'));
  25. showButton(tree.selected ? true : false, $('#delete'));
  26. }
  27. var RefreshBillsData = function (datas) {
  28. datas.forEach(function (data) {
  29. var node = tree.findNode(data.data.ID);
  30. if (node) {
  31. $.extend(true, node.data, data.data);
  32. }
  33. });
  34. };
  35. var tree = idTree.createNew({id: 'ID', pid: 'ParentID', nid: 'NextSiblingID', rootId: -1, autoUpdate: true});
  36. var billsSpread = new GC.Spread.Sheets.Workbook($('#billsSpread')[0], { sheetCount: 1 });
  37. var controller = TREE_SHEET_CONTROLLER.createNew(tree, billsSpread.getActiveSheet(), TEMPLATE_BILLS_SETTING);
  38. GC.Spread.Common.CultureManager.culture("zh-cn");
  39. billsSpread.options.tabStripVisible = false;
  40. billsSpread.options.scrollbarMaxAlign = true;
  41. billsSpread.options.cutCopyIndicatorVisible = false;
  42. billsSpread.options.allowCopyPasteExcelStyle = false;
  43. controller.bind('refreshBaseActn', RefreshBaseActn);
  44. billsSpread.bind(GC.Spread.Sheets.Events.EditEnded, function (sender, info) {
  45. var node = controller.tree.items[info.row];
  46. var fieldName = controller.setting.cols[info.col].data.field;
  47. var data = {type: 'update', data: {ID: node.getID()}};
  48. data.data[fieldName] = info.editingText;
  49. var updateData = FormatUpdateData([data]);
  50. CommonAjax.post('/template/bills/api/updateBillsTemplate', updateData, function (data) {
  51. node.data[fieldName] = info.editingText;
  52. controller.refreshTreeNode([node], false);
  53. }, function () {
  54. controller.refreshTreeNode([node], false);
  55. });
  56. });
  57. billsSpread.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {
  58. console.log("ClipboardPasting");
  59. });
  60. billsSpread.bind(GC.Spread.Sheets.Events.ClipboardPasted, function (e, info) {
  61. console.log("ClipboardPasted");
  62. var node, iRow, iCol, curRow, curCol, datas = [], data, fieldName, updateData;
  63. for (iRow = 0; iRow < info.cellRange.rowCount; iRow ++) {
  64. curRow = info.cellRange.row + iRow;
  65. node = controller.tree.items[curRow];
  66. if (node) {
  67. data = {type: 'update', data: {ID: node.getID()}};
  68. for (iCol = 0; iCol < info.cellRange.colCount; iCol++) {
  69. curCol = info.cellRange.col + iCol;
  70. fieldName = controller.setting.cols[curCol].data.field;
  71. data.data[fieldName] = info.sheet.getText(curRow, curCol);
  72. }
  73. datas.push(data);
  74. }
  75. };
  76. CommonAjax.post('/template/bills/api/updateBillsTemplate', FormatUpdateData(datas), function (data) {
  77. RefreshBillsData(data);
  78. controller.showTreeData();
  79. }, function () {
  80. controller.showTreeData();
  81. });
  82. });
  83. CommonAjax.post('/template/bills/api/getBillsTemplate', {tempType: tempType}, function (data) {
  84. var bills = data;
  85. tree.loadDatas(bills);
  86. controller.showTreeData();
  87. RefreshBaseActn(tree);
  88. }, function () {
  89. controller.showTreeData();
  90. RefreshBaseActn(tree);
  91. });
  92. $('#insert').click(function () {
  93. CommonAjax.post('/template/bills/api/getNewBillsTemplateID', {count: 1}, function (data) {
  94. var selected = controller.tree.selected, updateData;
  95. controller.tree.maxNodeID(data.lowID - 1);
  96. controller.tree.rangeNodeID(data.highID);
  97. if (selected) {
  98. updateData = FormatUpdateData(controller.tree.getInsertData(selected.getParentID(), selected.getNextSiblingID()));
  99. } else {
  100. updateData = FormatUpdateData(controller.tree.getInsertData());
  101. }
  102. if (updateData.updateData.length > 0) {
  103. CommonAjax.post('/template/bills/api/updateBillsTemplate', updateData, function (data) {
  104. controller.insert();
  105. controller.showTreeData();
  106. });
  107. } else {
  108. alert('新增节点失败, 请重试.');
  109. }
  110. });
  111. });
  112. $('#delete').click(function () {
  113. var selected = controller.tree.selected, updateData;
  114. if (selected) {
  115. updateData = FormatUpdateData(controller.tree.getDeleteData(selected));
  116. CommonAjax.post('/template/bills/api/updateBillsTemplate', updateData, function (data) {
  117. controller.delete();
  118. controller.showTreeData();
  119. });
  120. }
  121. });
  122. $('#upLevel').click(function () {
  123. var selected = controller.tree.selected, updateData;
  124. if (selected) {
  125. updateData = FormatUpdateData(selected.getUpLevelData());
  126. CommonAjax.post('/template/bills/api/updateBillsTemplate', updateData, function (data) {
  127. controller.upLevel();
  128. controller.showTreeData();
  129. });
  130. }
  131. });
  132. $('#downLevel').click(function () {
  133. var selected = controller.tree.selected, updateData;
  134. if (selected) {
  135. updateData = FormatUpdateData(selected.getDownLevelData());
  136. CommonAjax.post('/template/bills/api/updateBillsTemplate', updateData, function (data) {
  137. controller.downLevel();
  138. controller.showTreeData();
  139. });
  140. }
  141. });
  142. $('#upMove').click(function () {
  143. var selected = controller.tree.selected, updateData;
  144. if (selected) {
  145. updateData = FormatUpdateData(selected.getUpMoveData());
  146. CommonAjax.post('/template/bills/api/updateBillsTemplate', updateData, function (data) {
  147. controller.upMove();
  148. controller.showTreeData();
  149. });
  150. }
  151. });
  152. $('#downMove').click(function () {
  153. var selected = controller.tree.selected, updateData;
  154. if (selected) {
  155. updateData = FormatUpdateData(selected.getDownMoveData());
  156. CommonAjax.post('/template/bills/api/updateBillsTemplate', updateData, function (data) {
  157. controller.downMove();
  158. controller.showTreeData();
  159. });
  160. }
  161. });
  162. });