expansionPanels.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <template>
  2. <v-expansion-panels accordion>
  3. <v-expansion-panel
  4. v-for="item in items"
  5. :key="item.id"
  6. >
  7. <!-- <template v-if="item.children && item.children.length > 1"> -->
  8. <v-expansion-panel-header :hide-actions="!item.children || !item.children.length"
  9. @click="handleChange(item)">{{ item.name }}</v-expansion-panel-header>
  10. <v-expansion-panel-content class="noPadding">
  11. <expansion-panels :items="item.children"></expansion-panels>
  12. </v-expansion-panel-content>
  13. <!-- </template> -->
  14. <!-- <template v-else> -->
  15. <!-- <v-btn block>
  16. {{ item.name }}
  17. </v-btn> -->
  18. <!-- <v-list dense nav class="cursor pl-5">
  19. <v-list-item-group
  20. v-model="selectedItem"
  21. color="primary"
  22. >
  23. <v-list-item>
  24. <v-list-item-content><v-list-item-title>{{ item.name }}</v-list-item-title></v-list-item-content>
  25. </v-list-item>
  26. </v-list-item-group>
  27. </v-list> -->
  28. <!-- </template> -->
  29. </v-expansion-panel>
  30. </v-expansion-panels>
  31. </template>
  32. <script>
  33. // import ExpansionPanels from '@/components/Side/expansionPanels.vue'
  34. export default {
  35. name: 'expansion-panels',
  36. // components: { ExpansionPanels },
  37. props: {
  38. items: {
  39. type: Array,
  40. default: () => []
  41. }
  42. },
  43. data () {
  44. return {
  45. active: false
  46. }
  47. },
  48. created () {
  49. this.active = this.$route.meta.title
  50. },
  51. methods: {
  52. handleChange (item) {
  53. if (item.children.length) return
  54. // console.log(item.path)
  55. this.$router.push(item.path)
  56. }
  57. }
  58. }
  59. </script>
  60. <style lang="scss" scoped>
  61. ::v-deep .noPadding {
  62. .v-expansion-panel-content__wrap {
  63. padding: 0;
  64. .v-expansion-panel {
  65. background: var(--v-accent-lighten4);
  66. }
  67. }
  68. }
  69. .cursor {
  70. cursor: pointer;
  71. &:hover {
  72. // background: var(--v-secondary-lighten6);
  73. }
  74. }
  75. </style>