Basic.vue 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <template>
  2. <div class="p-4">
  3. <BasicTable
  4. title="基础示例"
  5. titleHelpMessage="温馨提醒"
  6. :columns="columns"
  7. :dataSource="data"
  8. :canResize="canResize"
  9. :loading="loading"
  10. :striped="striped"
  11. :bordered="border"
  12. showTableSetting
  13. :pagination="pagination"
  14. >
  15. <template #toolbar>
  16. <a-button type="primary" @click="toggleCanResize">
  17. {{ !canResize ? '自适应高度' : '取消自适应' }}
  18. </a-button>
  19. <a-button type="primary" @click="toggleBorder">
  20. {{ !border ? '显示边框' : '隐藏边框' }}
  21. </a-button>
  22. <a-button type="primary" @click="toggleLoading"> 开启loading </a-button>
  23. <a-button type="primary" @click="toggleStriped">
  24. {{ !striped ? '显示斑马纹' : '隐藏斑马纹' }}
  25. </a-button>
  26. </template>
  27. </BasicTable>
  28. </div>
  29. </template>
  30. <script lang="ts">
  31. import { defineComponent, ref } from 'vue';
  32. import { BasicTable } from '/@/components/Table';
  33. import { getBasicColumns, getBasicData } from './tableData';
  34. export default defineComponent({
  35. components: { BasicTable },
  36. setup() {
  37. const canResize = ref(false);
  38. const loading = ref(false);
  39. const striped = ref(true);
  40. const border = ref(true);
  41. const pagination = ref<any>(false);
  42. function toggleCanResize() {
  43. canResize.value = !canResize.value;
  44. }
  45. function toggleStriped() {
  46. striped.value = !striped.value;
  47. }
  48. function toggleLoading() {
  49. loading.value = true;
  50. setTimeout(() => {
  51. loading.value = false;
  52. pagination.value = { pageSize: 20 };
  53. }, 3000);
  54. }
  55. function toggleBorder() {
  56. border.value = !border.value;
  57. }
  58. return {
  59. columns: getBasicColumns(),
  60. data: getBasicData(),
  61. canResize,
  62. loading,
  63. striped,
  64. border,
  65. toggleStriped,
  66. toggleCanResize,
  67. toggleLoading,
  68. toggleBorder,
  69. pagination,
  70. };
  71. },
  72. });
  73. </script>