| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- div(class="categories-page")
- div(class="page-header")
- h1 Управление категориями
- div(class="page-actions")
- ui-button(@click="createCategory" type="primary") ➕ Создать категорию
- ui-button(@click="expandAll" type="outline") 📂 Развернуть все
- ui-button(@click="collapseAll" type="outline") 📁 Свернуть все
- div(class="categories-content")
- div(class="categories-tree")
- h2 Древовидная структура
- div(v-if="loading" class="loading-state") Загрузка категорий...
- div(v-else class="tree-container")
- category-node(
- v-for="category in hierarchicalCategories"
- :key="category._id"
- :category="category"
- :level="0"
- @edit="editCategory"
- @delete="deleteCategory"
- @move="moveCategory"
- )
-
- div(class="category-editor")
- h2 {{ editingCategory ? 'Редактирование категории' : 'Создание категории' }}
- div(v-if="editingCategory || creatingNew" class="editor-form")
- div(class="form-group")
- label Название категории *
- input(
- type="text"
- v-model="categoryForm.name"
- placeholder="Введите название категории"
- class="form-input"
- )
-
- div(class="form-group")
- label URL-адрес (slug)
- input(
- type="text"
- v-model="categoryForm.slug"
- placeholder="category-slug"
- class="form-input"
- )
-
- div(class="form-group")
- label Родительская категория
- select(v-model="categoryForm.parent" class="form-select")
- option(value="") Без родительской категории
- option(
- v-for="cat in flatCategories"
- :key="cat._id"
- :value="cat._id"
- ) {{ cat.name }}
-
- div(class="form-group")
- label Порядок сортировки
- input(
- type="number"
- v-model="categoryForm.order"
- class="form-input"
- )
-
- div(class="form-group")
- label Изображение категории
- media-upload(
- :current-image="categoryForm.image"
- @image-selected="onImageSelected"
- @image-removed="onImageRemoved"
- )
-
- div(class="form-group")
- label Описание категории
- textarea(
- v-model="categoryForm.description"
- placeholder="Описание категории для SEO"
- class="form-textarea"
- rows="4"
- )
-
- div(class="form-actions")
- ui-button(@click="cancelEdit" type="outline") Отмена
- ui-button(
- @click="saveCategory"
- type="primary"
- :loading="saving"
- ) {{ editingCategory ? 'Сохранить' : 'Создать' }}
-
- div(v-else class="editor-placeholder")
- p Выберите категорию для редактирования или создайте новую
|