fixed-header-with-fluid-header.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <el-table :data="tableData" style="width: 100%" max-height="250">
  3. <el-table-column fixed prop="date" label="Date" width="150" />
  4. <el-table-column prop="name" label="Name" width="120" />
  5. <el-table-column prop="state" label="State" width="120" />
  6. <el-table-column prop="city" label="City" width="120" />
  7. <el-table-column prop="address" label="Address" width="600" />
  8. <el-table-column prop="zip" label="Zip" width="120" />
  9. <el-table-column fixed="right" label="Operations" width="120">
  10. <template #default="scope">
  11. <el-button link type="primary" size="small" @click.prevent="deleteRow(scope.$index)"> Remove </el-button>
  12. </template>
  13. </el-table-column>
  14. </el-table>
  15. <el-button class="mt-4" style="width: 100%" @click="onAddItem">Add Item</el-button>
  16. </template>
  17. <script lang="ts" setup>
  18. import { ref } from 'vue'
  19. import dayjs from 'dayjs'
  20. const now = new Date()
  21. const tableData = ref([
  22. {
  23. date: '2016-05-01',
  24. name: 'Tom',
  25. state: 'California',
  26. city: 'Los Angeles',
  27. address: 'No. 189, Grove St, Los Angeles',
  28. zip: 'CA 90036',
  29. },
  30. {
  31. date: '2016-05-02',
  32. name: 'Tom',
  33. state: 'California',
  34. city: 'Los Angeles',
  35. address: 'No. 189, Grove St, Los Angeles',
  36. zip: 'CA 90036',
  37. },
  38. {
  39. date: '2016-05-03',
  40. name: 'Tom',
  41. state: 'California',
  42. city: 'Los Angeles',
  43. address: 'No. 189, Grove St, Los Angeles',
  44. zip: 'CA 90036',
  45. },
  46. ])
  47. const deleteRow = (index: number) => {
  48. tableData.value.splice(index, 1)
  49. }
  50. const onAddItem = () => {
  51. now.setDate(now.getDate() + 1)
  52. tableData.value.push({
  53. date: dayjs(now).format('YYYY-MM-DD'),
  54. name: 'Tom',
  55. state: 'California',
  56. city: 'Los Angeles',
  57. address: 'No. 189, Grove St, Los Angeles',
  58. zip: 'CA 90036',
  59. })
  60. }
  61. </script>