cs_tools.js 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. (function($){
  10. /**
  11. *
  12. * @param setting
  13. * {
  14. * tabSelector: 'a[content=#error-list]',
  15. * selector: '#error-list',
  16. * relaSpread: ledgerSpread,
  17. * storeKey: 'ledger-error-' + tenderId,
  18. * }
  19. * @returns {{spread: *}}
  20. */
  21. $.cs_errorList = function (setting) {
  22. if (!setting.selector || !setting.relaSpread) return;
  23. if (!setting.spreadSetting) {
  24. setting.spreadSetting = {
  25. cols: [
  26. {title: '行号', field: 'serialNo', width: 80, formatter: '@'},
  27. {title: '清单编号', field: 'b_code', width: 150, formatter: '@'},
  28. {title: '清单名称', field: 'name', width: 230, formatter: '@'},
  29. ],
  30. emptyRows: 0,
  31. headRows: 1,
  32. headRowHeight: [32],
  33. defaultRowHeight: 21,
  34. headerFont: '12px 微软雅黑',
  35. font: '12px 微软雅黑',
  36. selectedBackColor: '#fffacd',
  37. readOnly: true,
  38. };
  39. }
  40. const resultId = setting.id + '-spread';
  41. const obj = $(setting.selector);
  42. obj.html(
  43. ' <div id="' + resultId + '" class="sjs-sh">\n' +
  44. ' </div>'
  45. );
  46. autoFlashHeight();
  47. const spread = SpreadJsObj.createNewSpread($('#' + resultId)[0]);
  48. const sheet = spread.getActiveSheet();
  49. SpreadJsObj.initSheet(sheet, setting.spreadSetting);
  50. SpreadJsObj.forbiddenSpreadContextMenu('#' + resultId, spread);
  51. spread.getActiveSheet().bind(spreadNS.Events.CellDoubleClick, function (e, info) {
  52. const sheet = info.sheet;
  53. const data = sheet.zh_data;
  54. if (!data) { return }
  55. const curBills = data[info.row];
  56. if (!curBills) { return }
  57. SpreadJsObj.locateTreeNode(setting.relaSpread.getActiveSheet(), curBills.ledger_id, true);
  58. console.log(curBills);
  59. if (setting.afterLocated) {
  60. setting.afterLocated();
  61. }
  62. });
  63. const loadErrorData = function (data, his = false) {
  64. SpreadJsObj.loadSheetData(sheet, SpreadJsObj.DataType.Data, data);
  65. if (!his && setting.storeKey) {
  66. setLocalCache(setting.storeKey, JSON.stringify(data));
  67. }
  68. $(setting.tabSelector).show();
  69. };
  70. if (setting.storeKey) {
  71. const storeStr = getLocalCache(setting.storeKey);
  72. const storeData = storeStr ? JSON.parse(storeStr) : [];
  73. if (storeData.length > 0) loadErrorData(storeData, true);
  74. }
  75. const showErrorList = function () {
  76. const tab = $(setting.tabSelector), tabPanel = $(tab.attr('content'));
  77. $('a', '#side-menu').removeClass('active');
  78. tab.addClass('active');
  79. $('.tab-content .tab-pane').removeClass('active');
  80. tabPanel.addClass('active');
  81. setting.showSideTools(true);
  82. spread.refresh();
  83. if (setting.afterShow) setting.afterShow();
  84. };
  85. return {spread: spread, loadErrorData: loadErrorData, show: showErrorList};
  86. };
  87. })(jQuery);