div(class="admin-blog") div(class="admin-blog__header") h1(class="admin-blog__title") Управление блогом button( @click="showArticleModal = true" class="admin-blog__add-btn" ) Новая статья div(class="admin-blog__content") div(class="admin-blog__filters") div(class="admin-blog__filter-group") label(class="admin-blog__label") Поиск input( v-model="searchQuery" type="text" class="admin-blog__input" placeholder="Поиск по заголовку..." ) div(class="admin-blog__filter-group") label(class="admin-blog__label") Статус select(v-model="selectedStatus" class="admin-blog__select") option(value="") Все option(value="published") Опубликованные option(value="draft") Черновики div(class="admin-blog__list") div( v-for="article in filteredArticles" :key="article._id" class="admin-blog__item" ) div(class="admin-blog__item-content") div(class="admin-blog__item-image") img( v-if="article.image" :src="article.image" :alt="article.title" class="admin-blog__image" ) div(v-else class="admin-blog__no-image") Нет изображения div(class="admin-blog__item-info") h3(class="admin-blog__item-title") {{ article.title }} p(class="admin-blog__item-excerpt") {{ article.excerpt || 'Без описания' }} div(class="admin-blog__item-meta") span(class="admin-blog__item-date") {{ formatDate(article.createdAt) }} span(class="admin-blog__item-author") {{ article.author || 'Автор не указан' }} span( :class="getStatusClass(article.published)" ) {{ article.published ? 'Опубликовано' : 'Черновик' }} div(class="admin-blog__item-actions") button( @click="editArticle(article)" class="admin-blog__btn admin-blog__btn--edit" ) Редактировать button( @click="toggleArticleStatus(article)" :class="getToggleBtnClass(article.published)" ) {{ article.published ? 'В черновик' : 'Опубликовать' }} button( @click="deleteArticle(article._id)" class="admin-blog__btn admin-blog__btn--delete" ) Удалить // Модальное окно статьи div(v-if="showArticleModal" class="admin-blog__modal") div(class="admin-blog__modal-content") h3(class="admin-blog__modal-title") {{ editingArticle ? 'Редактирование' : 'Создание' }} статьи div(class="admin-blog__modal-form") div(class="admin-blog__form-group") label(class="admin-blog__label") Заголовок input( v-model="articleForm.title" type="text" class="admin-blog__input" placeholder="Введите заголовок статьи" ) div(class="admin-blog__form-group") label(class="admin-blog__label") URL slug input( v-model="articleForm.slug" type="text" class="admin-blog__input" placeholder="url-slug" ) div(class="admin-blog__form-group") label(class="admin-blog__label") Краткое описание textarea( v-model="articleForm.excerpt" class="admin-blog__textarea" placeholder="Краткое описание статьи" rows="3" ) div(class="admin-blog__form-group") label(class="admin-blog__label") Ссылка на изображение input( v-model="articleForm.image" type="text" class="admin-blog__input" placeholder="https://example.com/image.jpg" ) div(class="admin-blog__form-group") label(class="admin-blog__label") Автор input( v-model="articleForm.author" type="text" class="admin-blog__input" placeholder="Имя автора" ) div(class="admin-blog__form-group") label(class="admin-blog__label") Содержание (Markdown) textarea( v-model="articleForm.content" class="admin-blog__textarea admin-blog__textarea--content" placeholder="Напишите содержание статьи в формате Markdown..." rows="10" ) div(class="admin-blog__form-group") label(class="admin-blog__checkbox-label") input( v-model="articleForm.published" type="checkbox" class="admin-blog__checkbox" ) span Опубликовать сразу div(class="admin-blog__form-group") label(class="admin-blog__label") Домены div(class="admin-blog__domains-list") label( v-for="domain in availableDomains" :key="domain._id" class="admin-blog__domain-label" ) input( type="checkbox" :value="domain.domain" v-model="articleForm.domains" class="admin-blog__domain-checkbox" ) span {{ domain.domain }} div(class="admin-blog__modal-actions") button( @click="saveArticle" class="admin-blog__btn admin-blog__btn--primary" ) {{ editingArticle ? 'Обновить' : 'Создать' }} button( @click="showArticleModal = false" class="admin-blog__btn admin-blog__btn--secondary" ) Отмена