measure_audit.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date 2018/7/24
  7. * @version
  8. */
  9. $(document).ready(() => {
  10. autoFlashHeight();
  11. const billsTree = createNewPathTree('measure', {
  12. id: 'ledger_id',
  13. pid: 'ledger_pid',
  14. order: 'order',
  15. level: 'level',
  16. rootId: -1,
  17. keys: ['id', 'tender_id', 'ledger_id'],
  18. });
  19. billsTree.loadDatas(billsData);
  20. treeCalc.calculateAll(billsTree, ['total_price', 'deal_totalprice', 'qc_totalprice']);
  21. const billsSpread = SpreadJsObj.createNewSpread($('#billsSpread')[0]);
  22. const sheet = billsSpread.getActiveSheet();
  23. SpreadJsObj.initSheet(sheet, measureSpreadSetting);
  24. SpreadJsObj.loadSheetData(sheet, 'tree', billsTree);
  25. /**
  26. * 父项不可编辑
  27. * sender - {type: 'EditStarting'}
  28. * args - {sheet, sheetName, row, col, cancel}
  29. */
  30. sheet.bind(spreadNS.Events.EditStarting, function (sender, args) {
  31. const sheet = args.sheet;
  32. if (sheet.zh_tree) {
  33. const node = sheet.zh_tree.nodes[args.row];
  34. args.cancel = node ? !node.is_leaf : true;
  35. } else {
  36. args.cancel = true;
  37. }
  38. });
  39. /**
  40. * 最底层清单编辑后,提交
  41. * sender - {type: 'EditEnding'}
  42. * args - {sheet, sheetName, row, col, editor, editingText cancel}
  43. */
  44. sheet.bind(spreadNS.Events.EditEnding, function (sender, args) {
  45. const sheet = args.sheet;
  46. if (sheet.zh_tree || sheet.zh_setting) {
  47. const node = sheet.zh_tree.nodes[args.row];
  48. const col = sheet.zh_setting.cols[args.col];
  49. if (node && node.is_leaf) {
  50. const updateData = {
  51. mid: window.location.pathname.split('/')[3],
  52. bid: node.ledger_id,
  53. update: {},
  54. }
  55. updateData.update[col.field] = col.type === 'Number' ? parseFloat(args.editingText) : args.editingText;
  56. postData('/measure/billsUpdate', updateData, function (data) {
  57. if (sheet.zh_tree.loadLeafData) {
  58. sheet.zh_tree.loadLeafData(data);
  59. const nodes = treeCalc.calculateParent(sheet.zh_tree, node, ['deal_totalprice', 'qc_totalprice']);
  60. SpreadJsObj.reLoadNodesData(sheet, nodes);
  61. }
  62. }, function () {
  63. args.cancel = true;
  64. });
  65. } else {
  66. args.cancel = true;
  67. }
  68. } else {
  69. args.cancel = true;
  70. }
  71. });
  72. });