btn.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. export default class ButtonAction {
  2. constructor(comp) {
  3. this.action = comp.action;
  4. this.comp = comp;
  5. }
  6. didAllInstance = () => {
  7. this.setBtnHandleMap();
  8. }
  9. // 生成按钮map
  10. setBtnHandleMap = () => {
  11. this.buttonHandleMap = {
  12. // 打印
  13. 'print': this.printTable,
  14. // 输出
  15. 'output': this.outputTable
  16. }
  17. }
  18. // 第一次进页面的按钮状态
  19. initPageButton = () => {
  20. const {props} = this.comp;
  21. const {
  22. button
  23. } = props;
  24. button.setButtonVisible({
  25. approveinfo: false,
  26. cardrpt: false,
  27. file: false
  28. });
  29. }
  30. // 按钮点击回调
  31. headerClick = (props, btnCode) => {
  32. console.log(btnCode);
  33. if(typeof this.buttonHandleMap[btnCode] === 'function') {
  34. this.buttonHandleMap[btnCode]();
  35. }
  36. }
  37. // 打印
  38. printTable = () => {
  39. const {props} = this.comp;
  40. const {overtime, editTable, meta} = props;
  41. let tableWrapper = document.getElementById('mainTable');
  42. this.print(tableWrapper, {
  43. title: overtime.language['gx6008-000067'], // 录用办理
  44. maker: overtime.language['gx6008-000068'], // 制作者
  45. date: overtime.language['gx6008-000069'], // 制作日期
  46. tableInfo: {
  47. data: editTable.getAllRows('list'),
  48. tableTmp: meta.getMeta()['list']
  49. },
  50. beforeAppend: (data) => {
  51. data[0].map((item, rowIndex) => {
  52. delete item[0];
  53. });
  54. data[1].map((item) => {
  55. item.length = item.length - 1;
  56. });
  57. return data;
  58. }
  59. });
  60. }
  61. // 输出
  62. outputTable = () => {
  63. const {
  64. props: {
  65. editTable,
  66. overtime: {
  67. language
  68. },
  69. meta
  70. }
  71. } = this.comp;
  72. let tableWrapper = document.getElementById('mainTable');
  73. let tableData = editTable.getAllData('list');
  74. this.exportHtml(tableWrapper, {
  75. fileName: language['gx6008-000067'] // '录用办理'
  76. }, {
  77. meta: meta.getMeta()['list'],
  78. data: tableData.rows,
  79. showIndex: false
  80. });
  81. }
  82. // 附件管理
  83. fileManager = (selectedRows) => {
  84. let billId = selectedRows[0].values['bill_code'].value;
  85. this.update({
  86. fileManagerBillId: billId,
  87. fileManagerModalVisible: true
  88. });
  89. }
  90. }