index.vue 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <template>
  2. <PageWrapper title="基础详情页" contentBackground>
  3. <Description
  4. size="middle"
  5. title="退款申请"
  6. :bordered="false"
  7. :column="3"
  8. :data="refundData"
  9. :schema="refundSchema"
  10. />
  11. <a-divider />
  12. <Description
  13. size="middle"
  14. title="用户信息"
  15. :bordered="false"
  16. :column="3"
  17. :data="personData"
  18. :schema="personSchema"
  19. />
  20. <a-divider />
  21. <BasicTable @register="registerRefundTable" />
  22. <a-divider />
  23. <BasicTable @register="registerTimeTable" />
  24. </PageWrapper>
  25. </template>
  26. <script lang="ts">
  27. import { defineComponent } from 'vue';
  28. import { Description } from '/@/components/Description/index';
  29. import { BasicTable, useTable } from '/@/components/Table';
  30. import { PageWrapper } from '/@/components/Page';
  31. import { Divider } from 'ant-design-vue';
  32. import {
  33. refundSchema,
  34. refundData,
  35. personSchema,
  36. personData,
  37. refundTableSchema,
  38. refundTimeTableSchema,
  39. refundTableData,
  40. refundTimeTableData,
  41. } from './data';
  42. export default defineComponent({
  43. components: { Description, BasicTable, PageWrapper, [Divider.name]: Divider },
  44. setup() {
  45. const [registerRefundTable] = useTable({
  46. title: '退货商品',
  47. dataSource: refundTableData,
  48. columns: refundTableSchema,
  49. pagination: false,
  50. showIndexColumn: false,
  51. scroll: { y: 300 },
  52. showSummary: true,
  53. summaryFunc: handleSummary,
  54. });
  55. const [registerTimeTable] = useTable({
  56. title: '退货进度',
  57. columns: refundTimeTableSchema,
  58. pagination: false,
  59. dataSource: refundTimeTableData,
  60. showIndexColumn: false,
  61. scroll: { y: 300 },
  62. });
  63. function handleSummary(tableData: any[]) {
  64. let totalT5 = 0;
  65. let totalT6 = 0;
  66. tableData.forEach((item) => {
  67. totalT5 += item.t5;
  68. totalT6 += item.t6;
  69. });
  70. return [
  71. {
  72. t1: '总计',
  73. t5: totalT5,
  74. t6: totalT6,
  75. },
  76. ];
  77. }
  78. return {
  79. registerRefundTable,
  80. registerTimeTable,
  81. refundSchema,
  82. refundData,
  83. personSchema,
  84. personData,
  85. };
  86. },
  87. });
  88. </script>
  89. <style lang="less" scoped>
  90. .desc-wrap {
  91. padding: 16px;
  92. background: #fff;
  93. }
  94. </style>