TableExample.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <template>
  2. <Section
  3. title="Table Example"
  4. subtitle="A simple table with sortable columns and pagination"
  5. :padding = "false"
  6. >
  7. <template #toolbar>
  8. <button>Add Item</button>
  9. </template>
  10. <Table
  11. :data = "data"
  12. :headers = "headers"
  13. :show-pagination = "true"
  14. >
  15. <template #cell-name="{ row, value }">
  16. <router-link :to="{ name: 'ViewItem', params: { id: row.name } }">
  17. {{ value }}
  18. </router-link>
  19. </template>
  20. <template #cell-city="{ row, value }">
  21. <span class = "subtle">
  22. {{ value }}
  23. </span>
  24. </template>
  25. </Table>
  26. </Section>
  27. </template>
  28. <script setup>
  29. import { ref, onMounted } from 'vue'
  30. const headers = ref([
  31. { key: "name", label: "Name", sortable: true, hidden: false, width: "20%" },
  32. { key: "age", label: "Age", sortable: false },
  33. { key: "city", label: "City", sortable: true, width: "200px" },
  34. ])
  35. const data = ref([])
  36. onMounted(() => {
  37. data.value = [
  38. { name: "Alice", age: 30, city: "New York", foo: "bar" },
  39. { name: "Bob", age: 25, city: "Los Angeles" },
  40. { name: "Charlie", age: 35, city: "Chicago" },
  41. { name: "David", age: 28, city: "Houston" },
  42. { name: "Eve", age: 22, city: "Phoenix" },
  43. { name: "Frank", age: 40, city: "Philadelphia" },
  44. { name: "Grace", age: 29, city: "San Antonio" },
  45. { name: "Hannah", age: 32, city: "San Diego" },
  46. { name: "Ian", age: 27, city: "Dallas" },
  47. { name: "Jack", age: 31, city: "San Jose" },
  48. { name: "Kathy", age: 26, city: "Austin" },
  49. { name: "Leo", age: 33, city: "Jacksonville" },
  50. { name: "Mia", age: 24, city: "Fort Worth" },
  51. { name: "Nina", age: 38, city: "Columbus" },
  52. { name: "Oscar", age: 36, city: "Charlotte" },
  53. { name: "Paul", age: 34, city: "San Francisco" },
  54. { name: "Quinn", age: 23, city: "Indianapolis" },
  55. { name: "Rita", age: 37, city: "Seattle" },
  56. { name: "Sam", age: 39, city: "Denver" },
  57. { name: "Tina", age: 21, city: "Washington D.C." },
  58. { name: "Uma", age: 28, city: "Miami" },
  59. { name: "Victor", age: 30, city: "Portland" },
  60. { name: "Wendy", age: 29, city: "Nashville" },
  61. { name: "Xavier", age: 31, city: "Oklahoma City" },
  62. { name: "Yara", age: 27, city: "Tampa" },
  63. { name: "Zane", age: 32, city: "Albuquerque" },
  64. { name: "Ava", age: 26, city: "Las Vegas" },
  65. { name: "Ben", age: 33, city: "New Orleans" },
  66. { name: "Cara", age: 25, city: "San Francisco" },
  67. { name: "Drew", age: 34, city: "Seattle" },
  68. { name: "Ethan", age: 28, city: "Denver" },
  69. { name: "Fiona", age: 30, city: "Washington D.C." },
  70. { name: "George", age: 29, city: "Miami" },
  71. { name: "Hannah", age: 32, city: "San Diego" },
  72. { name: "Ian", age: 27, city: "Dallas" },
  73. { name: "Jack", age: 31, city: "San Jose" },
  74. { name: "Kathy", age: 26, city: "Austin" },
  75. { name: "Leo", age: 33, city: "Jacksonville" },
  76. { name: "Mia", age: 24, city: "Fort Worth" },
  77. { name: "Nina", age: 38, city: "Columbus" },
  78. { name: "Oscar", age: 36, city: "Charlotte" },
  79. { name: "Paul", age: 34, city: "San Francisco" },
  80. { name: "Quinn", age: 23, city: "Indianapolis" },
  81. { name: "Rita", age: 37, city: "Seattle" },
  82. { name: "Sam", age: 39, city: "Denver" },
  83. { name: "Tina", age: 21, city: "Washington D.C." },
  84. { name: "Uma", age: 28, city: "Miami" },
  85. { name: "Victor", age: 30, city: "Portland" },
  86. { name: "Wendy", age: 29, city: "Nashville" },
  87. { name: "Xavier", age: 31, city: "Oklahoma City" },
  88. { name: "Yara", age: 27, city: "Tampa" },
  89. { name: "Zane", age: 32, city: "Albuquerque" },
  90. { name: "Ava", age: 26, city: "Las Vegas" },
  91. { name: "Ben", age: 33, city: "New Orleans" },
  92. { name: "Cara", age: 25, city: "San Francisco" },
  93. { name: "Drew", age: 34, city: "Seattle" },
  94. { name: "Ethan", age: 28, city: "Denver" },
  95. { name: "Fiona", age: 30, city: "Washington D.C." },
  96. { name: "George", age: 29, city: "Miami" },
  97. { name: "Hannah", age: 32, city: "San Diego" },
  98. { name: "Ian", age: 27, city: "Dallas" },
  99. { name: "Jack", age: 31, city: "San Jose" },
  100. { name: "Kathy", age: 26, city: "Austin" },
  101. { name: "Leo", age: 33, city: "Jacksonville" },
  102. { name: "Mia", age: 24, city: "Fort Worth" },
  103. { name: "Nina", age: 38, city: "Columbus" },
  104. { name: "Oscar", age: 36, city: "Charlotte" },
  105. { name: "Paul", age: 34, city: "San Francisco" },
  106. { name: "Quinn", age: 23, city: "Indianapolis" },
  107. { name: "Rita", age: 37, city: "Seattle" },
  108. { name: "Sam", age: 39, city: "Denver" },
  109. { name: "Tina", age: 21, city: "Washington D.C." },
  110. { name: "Uma", age: 28, city: "Miami" },
  111. { name: "Victor", age: 30, city: "Portland" },
  112. ]
  113. })
  114. </script>