slots.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <template>
  2. <el-tree-select v-model="value" :data="data">
  3. <template #default="{ data: { label } }"> {{ label }}<span style="color: gray">(suffix)</span></template>
  4. </el-tree-select>
  5. <el-divider />
  6. use render content:
  7. <el-tree-select v-model="value" :data="data" :render-content="renderContent" />
  8. </template>
  9. <script lang="ts" setup>
  10. import { ref } from 'vue'
  11. const value = ref()
  12. const renderContent = (h, { data }) => {
  13. return h(
  14. 'span',
  15. {
  16. style: {
  17. color: '#626AEF',
  18. },
  19. },
  20. data.label
  21. )
  22. }
  23. const data = [
  24. {
  25. value: '1',
  26. label: 'Level one 1',
  27. children: [
  28. {
  29. value: '1-1',
  30. label: 'Level two 1-1',
  31. children: [
  32. {
  33. value: '1-1-1',
  34. label: 'Level three 1-1-1',
  35. },
  36. ],
  37. },
  38. ],
  39. },
  40. {
  41. value: '2',
  42. label: 'Level one 2',
  43. children: [
  44. {
  45. value: '2-1',
  46. label: 'Level two 2-1',
  47. children: [
  48. {
  49. value: '2-1-1',
  50. label: 'Level three 2-1-1',
  51. },
  52. ],
  53. },
  54. {
  55. value: '2-2',
  56. label: 'Level two 2-2',
  57. children: [
  58. {
  59. value: '2-2-1',
  60. label: 'Level three 2-2-1',
  61. },
  62. ],
  63. },
  64. ],
  65. },
  66. {
  67. value: '3',
  68. label: 'Level one 3',
  69. children: [
  70. {
  71. value: '3-1',
  72. label: 'Level two 3-1',
  73. children: [
  74. {
  75. value: '3-1-1',
  76. label: 'Level three 3-1-1',
  77. },
  78. ],
  79. },
  80. {
  81. value: '3-2',
  82. label: 'Level two 3-2',
  83. children: [
  84. {
  85. value: '3-2-1',
  86. label: 'Level three 3-2-1',
  87. },
  88. ],
  89. },
  90. ],
  91. },
  92. ]
  93. </script>