hooks.tsx 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. import {ColumnsType} from 'antd/es/table';
  2. import {ProductionRequisitionListData} from '@models';
  3. import {
  4. HUGE_TABLE_WIDTH,
  5. LARGE_TABLE_WIDTH,
  6. MIDDLE_TABLE_WIDTH,
  7. NORMAL_TABLE_WIDTH,
  8. SMALL_TABLE_WIDTH,
  9. } from '@utils';
  10. import {useContextSection, useSupertube, useTableDeleteEvent} from '@hooks';
  11. import {Button} from 'antd';
  12. import {delProductionRequisition, delUnProductionRequisition} from '@apis';
  13. import {context} from '../context';
  14. const columns: ColumnsType<ProductionRequisitionListData> = [
  15. {
  16. title: '领用编号',
  17. dataIndex: 'askGoodsCode',
  18. key: 'askGoodsCode',
  19. width: MIDDLE_TABLE_WIDTH,
  20. },
  21. {
  22. title: '生产订单编号',
  23. dataIndex: 'productionCode',
  24. width: MIDDLE_TABLE_WIDTH,
  25. },
  26. {
  27. title: '物料编号',
  28. dataIndex: 'materialCode',
  29. key: 'materialCode',
  30. width: MIDDLE_TABLE_WIDTH,
  31. },
  32. {
  33. title: '物料名称',
  34. dataIndex: 'materialName',
  35. key: 'materialName',
  36. width: HUGE_TABLE_WIDTH,
  37. },
  38. {
  39. title: '要料数量',
  40. dataIndex: 'num',
  41. key: 'num',
  42. width: SMALL_TABLE_WIDTH,
  43. align: 'right',
  44. },
  45. {
  46. title: '出库数量',
  47. dataIndex: 'outNum',
  48. key: 'outNum',
  49. width: SMALL_TABLE_WIDTH,
  50. align: 'right',
  51. },
  52. {
  53. title: '库存数量',
  54. dataIndex: 'amount',
  55. width: SMALL_TABLE_WIDTH,
  56. align: 'right',
  57. },
  58. {
  59. title: '所属公司',
  60. dataIndex: 'companyName',
  61. key: 'companyName',
  62. width: LARGE_TABLE_WIDTH,
  63. },
  64. {
  65. title: '领用部门',
  66. dataIndex: 'departmentName',
  67. key: 'departmentName',
  68. width: NORMAL_TABLE_WIDTH,
  69. },
  70. {
  71. title: '移动类型',
  72. dataIndex: 'moveType',
  73. width: NORMAL_TABLE_WIDTH,
  74. },
  75. {
  76. title: '来源类型',
  77. dataIndex: 'sourceType',
  78. width: NORMAL_TABLE_WIDTH,
  79. },
  80. {
  81. title: '分录号',
  82. dataIndex: 'entryNumber',
  83. width: NORMAL_TABLE_WIDTH,
  84. },
  85. {
  86. title: 'WBS编号',
  87. dataIndex: 'wbs',
  88. width: NORMAL_TABLE_WIDTH,
  89. },
  90. {
  91. title: '申请日期',
  92. dataIndex: 'sqrq',
  93. key: 'sqrq',
  94. width: NORMAL_TABLE_WIDTH,
  95. },
  96. ];
  97. export function useColumns(refetch: () => void) {
  98. const type = useContextSection(context, state => state[0].type);
  99. const [pendingId, onDelete] = useTableDeleteEvent(
  100. type === '1' ? delProductionRequisition : delUnProductionRequisition,
  101. refetch,
  102. {
  103. label: `${type === '1' ? '生产' : '非生产'}领料单`,
  104. },
  105. );
  106. const delColumns: ColumnsType<ProductionRequisitionListData> = [
  107. {
  108. title: '操作',
  109. dataIndex: 'id',
  110. key: 'id',
  111. fixed: 'right',
  112. width: SMALL_TABLE_WIDTH,
  113. render(_, {id}) {
  114. return (
  115. <>
  116. <Button
  117. type='text'
  118. danger
  119. loading={pendingId === id}
  120. onClick={onDelete(id)}
  121. >
  122. 删除
  123. </Button>
  124. </>
  125. );
  126. },
  127. },
  128. ];
  129. const isSuper = useSupertube();
  130. return isSuper ? [...columns, ...delColumns] : columns;
  131. }