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. if(typeof this.buttonHandleMap[btnCode] === 'function') {
  33. this.buttonHandleMap[btnCode]();
  34. }
  35. }
  36. // 打印
  37. printTable = () => {
  38. const {props} = this.comp;
  39. const {leave, editTable, meta} = props;
  40. let tableWrapper = document.getElementById('mainTable');
  41. this.print(tableWrapper, {
  42. title: leave.language['gx6008-000067'], // 录用办理
  43. maker: leave.language['gx6008-000068'], // 制作者
  44. date: leave.language['gx6008-000069'], // 制作日期
  45. tableInfo: {
  46. data: editTable.getAllRows('list'),
  47. tableTmp: meta.getMeta()['list']
  48. },
  49. beforeAppend: (data) => {
  50. data[0].map((item, rowIndex) => {
  51. delete item[0];
  52. });
  53. data[1].map((item) => {
  54. item.length = item.length - 1;
  55. });
  56. return data;
  57. }
  58. });
  59. }
  60. // 输出
  61. outputTable = () => {
  62. const {
  63. props: {
  64. editTable,
  65. leave: {
  66. language
  67. },
  68. meta
  69. }
  70. } = this.comp;
  71. let tableWrapper = document.getElementById('mainTable');
  72. let tableData = editTable.getAllData('list');
  73. this.exportHtml(tableWrapper, {
  74. fileName: language['gx6008-000067'] // '录用办理'
  75. }, {
  76. meta: meta.getMeta()['list'],
  77. data: tableData.rows,
  78. showIndex: false
  79. });
  80. }
  81. // 附件管理
  82. fileManager = (selectedRows) => {
  83. const { dispatch } = this.comp.props;
  84. dispatch({
  85. type: 'leave/update',
  86. payload: {
  87. fileManagerModalVisible: true
  88. }
  89. });
  90. }
  91. }