set_sheets.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. /**
  2. * Created by vian on 2017/3/16.
  3. */
  4. var setSheet = {
  5. initSheet: function(spread, setting){
  6. var spreadNS = GC.Spread.Sheets, sheet = spread.getActiveSheet();
  7. sheet.suspendPaint();
  8. spread.options.showHorizontalScrollbar = false;
  9. spread.options.showVerticalScrollbar =false;
  10. spread.options.tabStripVisible = false;
  11. spread.options.scrollbarMaxAlign = true;
  12. spread.options.allowExtendPasteRange = true;
  13. spread.options.allowCopyPasteExcelStyle = false;
  14. sheet.showRowOutline(false);
  15. // sheet.defaults.rowHeight = 30;
  16. setting.cols.forEach(function(col, colIdx){
  17. sheet.getRange(-1,colIdx,-1,1, GC.Spread.Sheets.SheetArea.viewport).hAlign(GC.Spread.Sheets.HorizontalAlign.left);
  18. sheet.getRange(-1,colIdx,-1,1, GC.Spread.Sheets.SheetArea.viewport).vAlign(GC.Spread.Sheets.VerticalAlign.center);
  19. sheet.getRange(-1,colIdx,-1,1, GC.Spread.Sheets.SheetArea.viewport).textIndent(0.5);
  20. });
  21. sheet.resumePaint();
  22. },
  23. setEditCol: function(sheet, colIdx){
  24. var style = new GC.Spread.Sheets.Style();
  25. style.locked = false;
  26. sheet.setStyle(-1, colIdx, style);
  27. sheet.options.isProtected = true;
  28. },
  29. setMaxRowCount: function(sheet, arr){
  30. let arrL = arr.length;
  31. let rowCount = arrL + 10;
  32. /*if(arrL <10){
  33. rowCount = 10;
  34. }
  35. else {
  36. rowCount = arrL + 3;
  37. }*/
  38. sheet.setRowCount(rowCount, GC.Spread.Sheets.SheetArea.viewport);
  39. },
  40. formatter: function(sheet){
  41. sheet.setFormatter(-1, 0, "@", GC.Spread.Sheets.SheetArea.viewport);
  42. }
  43. }
  44. function setScrollBar(spread, sheet, initRow){
  45. var events = GC.Spread.Sheets.Events;
  46. sheet.bind(events.EnterCell, function(e, data){
  47. var rowCount = sheet.getRowCount();
  48. //��ǰ�������ڳ�ʼ����
  49. if(rowCount >initRow){
  50. spread.options.showVerticalScrollbar = true;
  51. }
  52. else{
  53. spread.options.showVerticalScrollbar = false;
  54. }
  55. });
  56. }
  57. var myKey = {
  58. enterKey: function(spread){
  59. var sheet = spread.getActiveSheet();
  60. spread.commandManager().register("myEnter", function(){
  61. var idxRow = sheet.getActiveRowIndex();
  62. var rowCount = sheet.getRowCount();
  63. if(idxRow+1 == rowCount){
  64. sheet.addRows(rowCount, 1);
  65. sheet.setRowHeight(rowCount, 30);
  66. sheet.getRange(rowCount, -1, 1, -1).vAlign(GC.Spread.Sheets.VerticalAlign.center);
  67. sheet.getRange(rowCount, -1, 1, -1).hAlign(GC.Spread.Sheets.HorizontalAlign.left);
  68. sheet.getRange(rowCount, -1, 1, -1).textIndent(0.5);
  69. sheet.getRange(rowCount, -1, 1, -1).font("14px Arial");
  70. }
  71. });
  72. spread.commandManager().setShortcutKey("myEnter", GC.Spread.Commands.Key.enter, false, false, false, false);
  73. },
  74. downKey: function(spread){
  75. var sheet = spread.getActiveSheet();
  76. spread.commandManager().register("myDown", function(){
  77. var idxRow = sheet.getActiveRowIndex();
  78. var rowCount = sheet.getRowCount();
  79. if(idxRow+1 == rowCount){
  80. sheet.suspendPaint();
  81. sheet.addRows(rowCount, 1);
  82. sheet.setRowHeight(rowCount, 30);
  83. sheet.getRange(rowCount, -1, 1, -1).vAlign(GC.Spread.Sheets.VerticalAlign.center);
  84. sheet.getRange(rowCount, -1, 1, -1).hAlign(GC.Spread.Sheets.HorizontalAlign.left);
  85. sheet.getRange(rowCount, -1, 1, -1).textIndent(0.5);
  86. sheet.getRange(rowCount, -1, 1, -1).font("14px Arial");
  87. sheet.resumePaint();
  88. }
  89. });
  90. spread.commandManager().setShortcutKey("myDown", GC.Spread.Commands.Key.down, false, false, false, false);
  91. },
  92. delKey: function(spread, controller, totalObj, setting, classify){
  93. if(classify === 'jobs' || classify === 'items'){
  94. bindRefDel(spread, controller, totalObj, setting, classify);
  95. }
  96. else if(classify === 'totalJobs'){
  97. bindTotalJobDel(spread, controller, totalObj, setting);
  98. }
  99. else if(classify === 'totalItems'){
  100. bindTotalItemDel(spread, spreadVal.getActiveSheet(), controller, totalObj, setting);
  101. }
  102. else if(classify === 'itemValue'){
  103. bindValDel(spread, totalObj, setting);
  104. }
  105. else if(!classify){
  106. rejectDel(spread);
  107. }
  108. function bindRefDel(spread, controller, totalObj, setting, classify){
  109. var sheet = spread.getActiveSheet();
  110. spread.commandManager().register('myDelete', function(){
  111. spread.suspendEvent();
  112. var ids = tools.delIds(sheet);
  113. tools.deleteELes(controller.tree.selected[classify], ids, function(result){
  114. //deleteFrontData
  115. tools.reshowData(sheet, controller.tree.selected[classify], setting, true);
  116. //deleteDB
  117. billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), ids, null, 'delete', classify);
  118. if(result.length > 0){
  119. if(classify === 'jobs'){
  120. result.forEach(function(id){
  121. if(totalObj.findJob(id)){
  122. totalObj.jobsArr.splice(totalObj.jobsArr.indexOf(totalObj.findJob(id)), 1);
  123. delete totalObj.jobs[totalObj.prefix + id];
  124. }
  125. });
  126. jobsAjax.deleteJobContent(result);
  127. }
  128. else {
  129. result.forEach(function(id){
  130. if(totalObj.findItem(id)){
  131. totalObj.itemsArr.splice(totalObj.itemsArr.indexOf(totalObj.findItem(id)), 1);
  132. delete totalObj.items[totalObj.prefix + id];
  133. }
  134. });
  135. itemsAjax.deleteItemCharacter(result);
  136. }
  137. }
  138. });
  139. spread.resumeEvent();
  140. });
  141. spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.del, false, false, false, false);
  142. spread.commandManager().setShortcutKey('myDelete', GC.Spread.Commands.Key.del, false, false, false, false);
  143. }
  144. function rejectDel(spread){
  145. var sheet = spread.getActiveSheet();
  146. spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.del, false, false, false, false);
  147. }
  148. function bindTotalJobDel(spread, billsIds, totalJobs, setting){
  149. var sheet = spread.getActiveSheet();
  150. spread.commandManager().register('myJobDelete', function(){
  151. spread.suspendEvent();
  152. var ids = tools.delIds(sheet);
  153. if(ids.length > 0){
  154. ids.forEach(function(id){
  155. var job = totalJobs.findJob(id);
  156. totalJobs.jobsArr.splice(totalJobs.jobsArr.indexOf(job), 1);
  157. });
  158. tools.reshowData(sheet, totalJobs.jobsArr, setting, true);
  159. jobsAjax.deleteJobContent(billsLibId, ids);
  160. billsAjax.updateBillsArr(billsLibId, billsIds, ids, null, 'deleteAll', 'jobs');
  161. }
  162. spread.resumeEvent();
  163. });
  164. spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.del, false, false, false, false);
  165. spread.commandManager().setShortcutKey('myJobDelete', GC.Spread.Commands.Key.del, false, false, false, false)
  166. }
  167. function bindTotalItemDel(spread, valSheet, billsIds, totalItems, setting){
  168. var sheet = spread.getActiveSheet();
  169. spread.commandManager().register('myItemDelete', function(){
  170. spread.suspendEvent();
  171. var ids = tools.delIds(sheet);
  172. if(ids.length > 0){
  173. ids.forEach(function(id){
  174. var item = totalItems.findItem(id);
  175. totalItems.itemsArr.splice(totalItems.itemsArr.indexOf(item), 1);
  176. });
  177. tools.reshowData(sheet, totalItems.itemsArr, setting, true);
  178. itemsAjax.deleteItemCharacter(billsLibId, ids);
  179. billsAjax.updateBillsArr(billsLibId, billsIds, ids, null, 'deleteAll', 'items');
  180. //reshowVal
  181. if(totalItems.itemsArr.length > 0){
  182. selectedId = totalItems.itemsArr[0].data.id;
  183. tools.reshowValue(valSheet, totalItems.itemsArr[0].data.itemValue, eigenValueSetting, true);
  184. }
  185. else {
  186. tools.clearData(valSheet);
  187. }
  188. }
  189. spread.resumeEvent();
  190. });
  191. spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.del, false, false, false, false);
  192. spread.commandManager().setShortcutKey('myItemDelete', GC.Spread.Commands.Key.del, false, false, false, false)
  193. }
  194. function bindValDel(spread, totalItems, setting){
  195. var sheet = spread.getActiveSheet();
  196. spread.commandManager().register('valDelete', function(){
  197. spread.suspendEvent();
  198. var ids = tools.delIds(sheet);
  199. //deleteFront
  200. var valsArr = valueController.getValues(totalItems, selectedId);
  201. ids.forEach(function(id){
  202. valsArr.forEach(function(val){
  203. if(val.code === id){
  204. valsArr.splice(valsArr.indexOf(val), 1);
  205. }
  206. });
  207. });
  208. tools.reshowValue(sheet, valsArr, setting, true);
  209. //deleteDb
  210. itemsAjax.updateValue(billsLibId, selectedId, null, ids, 'delete');
  211. spread.resumeEvent();
  212. });
  213. spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.del, false, false, false, false);
  214. spread.commandManager().setShortcutKey('valDelete', GC.Spread.Commands.Key.del, false, false, false, false);
  215. }
  216. function reSerialNo(){
  217. }
  218. }
  219. }