useExtensionPanel.ts 669 B

12345678910111213141516171819202122232425262728293031
  1. import type { Ref } from 'vue'
  2. import * as _ from 'lodash-es'
  3. /**
  4. * @category composables/form
  5. * Composable pour gérer les expansions des accordéons
  6. */
  7. export function useExtensionPanel(route: Ref) {
  8. const panel: Ref<number> = ref(0)
  9. const activeAccordionId = route.value.query.accordion
  10. onMounted(() => {
  11. setTimeout(function () {
  12. _.each(
  13. document.getElementsByClassName('v-expansion-panel'),
  14. (element, index) => {
  15. if (element.id === activeAccordionId) {
  16. panel.value = index
  17. }
  18. },
  19. )
  20. if (!panel.value) {
  21. panel.value = 0
  22. }
  23. }, 0)
  24. })
  25. return {
  26. panel,
  27. }
  28. }