expand.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <script setup lang="ts">
  2. import { ref } from "vue";
  3. import { tableDataExpand } from "./data";
  4. const parentBorder = ref(false);
  5. const childBorder = ref(false);
  6. const columns: TableColumnList = [
  7. {
  8. type: "expand",
  9. slot: "expand"
  10. },
  11. {
  12. label: "日期",
  13. prop: "date"
  14. },
  15. {
  16. label: "姓名",
  17. prop: "name"
  18. }
  19. ];
  20. const childColumns: TableColumnList = [
  21. {
  22. label: "Name",
  23. prop: "name"
  24. },
  25. {
  26. label: "State",
  27. prop: "state"
  28. },
  29. {
  30. label: "City",
  31. prop: "city"
  32. },
  33. {
  34. label: "Address",
  35. prop: "address"
  36. },
  37. {
  38. label: "Zip",
  39. prop: "zip"
  40. }
  41. ];
  42. </script>
  43. <template>
  44. <div>
  45. switch parent border: <el-switch v-model="parentBorder" /> switch child
  46. border: <el-switch v-model="childBorder" />
  47. <pure-table
  48. :data="tableDataExpand"
  49. :columns="columns"
  50. :border="parentBorder"
  51. >
  52. <template #expand="{ row }">
  53. <div class="m-4">
  54. <p class="mb-2">State: {{ row.state }}</p>
  55. <p class="mb-2">City: {{ row.city }}</p>
  56. <p class="mb-2">Address: {{ row.address }}</p>
  57. <p class="mb-4">Zip: {{ row.zip }}</p>
  58. <h3>Family</h3>
  59. <pure-table
  60. :data="row.family"
  61. :columns="childColumns"
  62. :border="childBorder"
  63. />
  64. </div>
  65. </template>
  66. </pure-table>
  67. </div>
  68. </template>