index.pug 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. div(
  2. class="category-node"
  3. :class="{ 'category-node--expanded': isExpanded, 'category-node--dragging': isDragging }"
  4. :style="{ paddingLeft: (level * 20) + 'px' }"
  5. )
  6. div(class="category-node__header")
  7. button(
  8. v-if="hasChildren"
  9. @click="toggleExpanded"
  10. class="category-node__toggle"
  11. :title="isExpanded ? 'Свернуть' : 'Развернуть'"
  12. ) {{ isExpanded ? '−' : '+' }}
  13. span(v-else class="category-node__spacer") •
  14. span(class="category-node__name") {{ category.name || 'Без названия' }}
  15. span(v-if="category.children" class="category-node__badge") {{ category.children.length }}
  16. span(v-else class="category-node__badge") 0
  17. div(class="category-node__meta")
  18. span(v-if="category._id" class="category-node__id") {{ category._id.substring(0, 8) }}
  19. span(v-if="category.active === false" class="category-node__inactive") неактивна
  20. div(class="category-node__actions")
  21. ui-button(
  22. @click="$emit('edit', category)"
  23. size="small"
  24. type="outline"
  25. ) ✏️
  26. ui-button(
  27. @click="$emit('delete', category)"
  28. size="small"
  29. type="danger"
  30. ) 🗑️
  31. div(v-if="isExpanded && hasChildren" class="category-node__children")
  32. category-node(
  33. v-for="child in category.children"
  34. :key="child._id"
  35. :category="child"
  36. :level="level + 1"
  37. @edit="$emit('edit', $event)"
  38. @delete="$emit('delete', $event)"
  39. @move="$emit('move', $event)"
  40. )