index.vue 2.3 KB

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