columns.tsx 976 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { tableData } from "../data";
  2. import { ref, onMounted } from "vue";
  3. import { clone } from "@pureadmin/utils";
  4. export function useColumns() {
  5. const dataList = ref([]);
  6. const columns = ref<TableColumnList>([
  7. {
  8. label: "日期",
  9. prop: "date"
  10. },
  11. {
  12. label: "姓名",
  13. prop: "name"
  14. },
  15. {
  16. label: "地址",
  17. prop: "address"
  18. }
  19. ]);
  20. function onChange() {
  21. // 动态表头只需给 columns.value 重新赋值即可,如下
  22. columns.value = [
  23. {
  24. label: "日期" + Math.round(Math.random() * 99),
  25. prop: "date"
  26. },
  27. {
  28. label: Math.round(Math.random() * 99) + "姓名",
  29. prop: "name"
  30. },
  31. {
  32. label: "地址",
  33. prop: "address"
  34. }
  35. ];
  36. }
  37. onMounted(() => {
  38. clone(tableData, true).forEach((item, index) => {
  39. dataList.value.push({ id: index, ...item });
  40. });
  41. });
  42. return {
  43. columns,
  44. dataList,
  45. onChange
  46. };
  47. }