high.vue 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <script setup lang="ts">
  2. import { ref } from "vue";
  3. import { list } from "./high/list";
  4. defineOptions({
  5. name: "PureTableHigh"
  6. });
  7. const selected = ref(0);
  8. function tabClick({ index }) {
  9. selected.value = index;
  10. }
  11. </script>
  12. <template>
  13. <el-card shadow="never">
  14. <template #header>
  15. <div class="card-header">
  16. <span class="font-medium">
  17. 高级用法全部采用 tsx 语法,充分发挥
  18. <el-link
  19. href="https://github.com/pure-admin/pure-admin-table"
  20. target="_blank"
  21. style="margin: 0 4px 5px; font-size: 16px"
  22. >
  23. @pureadmin/table
  24. </el-link>
  25. 的灵活性,维护整体表格只需操作 columns 配置即可
  26. </span>
  27. </div>
  28. </template>
  29. <el-alert
  30. title="高级用法中所有表格都设置了 row-key ,后端需返回唯一值的字段,比如id 作用:1. 用来优化 Table
  31. 的渲染,尤其当字段在深层结构中;2. 防止拖拽后表格组件内部混乱(拖拽必须设置哦,坑都帮您们踩过啦 ❤️)"
  32. type="info"
  33. :closable="false"
  34. />
  35. <el-tabs @tab-click="tabClick">
  36. <template v-for="(item, index) of list" :key="item.key">
  37. <el-tab-pane :lazy="true">
  38. <template #label>
  39. <el-tooltip
  40. :content="`(第 ${index + 1} 个示例)${item.content}`"
  41. placement="top-end"
  42. >
  43. <span>{{ item.title }}</span>
  44. </el-tooltip>
  45. </template>
  46. <component :is="item.component" v-if="selected == index" />
  47. </el-tab-pane>
  48. </template>
  49. </el-tabs>
  50. </el-card>
  51. </template>
  52. <style scoped>
  53. :deep(.el-tabs__nav-wrap)::after {
  54. height: 1px;
  55. }
  56. :deep(.el-tabs__header) {
  57. margin-top: 10px;
  58. }
  59. :deep(.el-alert__title) {
  60. font-size: 16px;
  61. }
  62. :deep(.el-tabs__nav-next),
  63. :deep(.el-tabs__nav-prev) {
  64. font-size: 16px;
  65. color: var(--el-text-color-primary);
  66. }
  67. :deep(.el-tabs__nav-next.is-disabled),
  68. :deep(.el-tabs__nav-prev.is-disabled) {
  69. opacity: 0.5;
  70. }
  71. </style>