Files
sklad_legacy/catalog.html
2025-07-28 15:24:44 +03:00

404 lines
21 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Каталог товаров - Склад-Менеджер</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<!-- Навигационная панель -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<div class="container">
<a class="navbar-brand" href="index.html">
<i class="fas fa-warehouse me-2"></i>
Склад-Менеджер
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link" href="index.html">
<i class="fas fa-home me-1"></i>Главная
</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="catalog.html">
<i class="fas fa-boxes me-1"></i>Каталог
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="history.html">
<i class="fas fa-history me-1"></i>История
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="search.html">
<i class="fas fa-search me-1"></i>Поиск
</a>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item dropdown" id="adminDropdown" style="display: none;">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">
<i class="fas fa-cog me-1"></i>Администрирование
</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="admin/users.html">Управление пользователями</a></li>
<li><a class="dropdown-item" href="admin/categories.html">Категории товаров</a></li>
<li><a class="dropdown-item" href="admin/reports.html">Отчеты</a></li>
</ul>
</li>
<li class="nav-item dropdown" id="profileDropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">
<i class="fas fa-user me-1"></i>Профиль
</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="profile.html">Мой профиль</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#" id="logoutBtn">Выйти</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<!-- Основной контент -->
<main class="container mt-4">
<!-- Заголовок страницы -->
<div class="row mb-4">
<div class="col-12">
<div class="d-flex justify-content-between align-items-center">
<div>
<h1 class="mb-1">
<i class="fas fa-boxes me-2"></i>
Каталог товаров
</h1>
<p class="text-muted mb-0">Управление товарными позициями склада</p>
</div>
<div class="d-flex gap-2">
<button class="btn btn-outline-primary" id="exportBtn">
<i class="fas fa-download me-1"></i>Экспорт
</button>
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addItemModal" id="addItemBtn">
<i class="fas fa-plus me-1"></i>Добавить товар
</button>
</div>
</div>
</div>
</div>
<!-- Фильтры и поиск -->
<div class="catalog-filters">
<div class="row">
<div class="col-md-4 mb-3">
<label for="searchInput" class="form-label">Поиск товаров</label>
<div class="input-group">
<span class="input-group-text">
<i class="fas fa-search"></i>
</span>
<input type="text" class="form-control" id="searchInput" placeholder="Название, описание или штрих-код">
</div>
</div>
<div class="col-md-3 mb-3">
<label for="categoryFilter" class="form-label">Категория</label>
<select class="form-select" id="categoryFilter">
<option value="">Все категории</option>
</select>
</div>
<div class="col-md-2 mb-3">
<label for="priceMin" class="form-label">Цена от</label>
<input type="number" class="form-control" id="priceMin" placeholder="0">
</div>
<div class="col-md-2 mb-3">
<label for="priceMax" class="form-label">Цена до</label>
<input type="number" class="form-control" id="priceMax" placeholder="∞">
</div>
<div class="col-md-1 mb-3">
<label class="form-label">&nbsp;</label>
<div class="d-grid">
<button class="btn btn-outline-secondary" id="clearFiltersBtn">
<i class="fas fa-times"></i>
</button>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inStockFilter">
<label class="form-check-label" for="inStockFilter">
Только в наличии
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="lowStockFilter">
<label class="form-check-label" for="lowStockFilter">
Заканчивается
</label>
</div>
</div>
</div>
</div>
<!-- Статистика каталога -->
<div class="row mb-4">
<div class="col-md-3 mb-3">
<div class="card bg-primary text-white">
<div class="card-body">
<div class="d-flex justify-content-between">
<div>
<h4 class="card-title" id="totalItemsCount">0</h4>
<p class="card-text">Всего товаров</p>
</div>
<i class="fas fa-boxes fa-2x"></i>
</div>
</div>
</div>
</div>
<div class="col-md-3 mb-3">
<div class="card bg-success text-white">
<div class="card-body">
<div class="d-flex justify-content-between">
<div>
<h4 class="card-title" id="inStockCount">0</h4>
<p class="card-text">В наличии</p>
</div>
<i class="fas fa-check-circle fa-2x"></i>
</div>
</div>
</div>
</div>
<div class="col-md-3 mb-3">
<div class="card bg-warning text-white">
<div class="card-body">
<div class="d-flex justify-content-between">
<div>
<h4 class="card-title" id="lowStockCount">0</h4>
<p class="card-text">Заканчивается</p>
</div>
<i class="fas fa-exclamation-triangle fa-2x"></i>
</div>
</div>
</div>
</div>
<div class="col-md-3 mb-3">
<div class="card bg-info text-white">
<div class="card-body">
<div class="d-flex justify-content-between">
<div>
<h4 class="card-title" id="categoriesCount">0</h4>
<p class="card-text">Категорий</p>
</div>
<i class="fas fa-tags fa-2x"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Переключатель вида -->
<div class="row mb-3">
<div class="col-12">
<div class="btn-group" role="group">
<input type="radio" class="btn-check" name="viewMode" id="gridView" checked>
<label class="btn btn-outline-primary" for="gridView">
<i class="fas fa-th-large me-1"></i>Сетка
</label>
<input type="radio" class="btn-check" name="viewMode" id="listView">
<label class="btn btn-outline-primary" for="listView">
<i class="fas fa-list me-1"></i>Список
</label>
</div>
</div>
</div>
<!-- Каталог товаров -->
<div class="row" id="catalogContainer">
<!-- Товары будут загружены через JavaScript -->
</div>
<!-- Пагинация -->
<div class="row mt-4">
<div class="col-12">
<nav aria-label="Навигация по страницам">
<ul class="pagination justify-content-center" id="pagination">
<!-- Пагинация будет создана через JavaScript -->
</ul>
</nav>
</div>
</div>
</main>
<!-- Модальное окно добавления товара -->
<div class="modal fade" id="addItemModal" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">
<i class="fas fa-plus-circle me-2"></i>
Добавить новый товар
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<form id="addItemForm">
<div class="row">
<div class="col-md-6 mb-3">
<label for="itemName" class="form-label">Название товара *</label>
<input type="text" class="form-control" id="itemName" required>
</div>
<div class="col-md-6 mb-3">
<label for="itemCategory" class="form-label">Категория *</label>
<select class="form-select" id="itemCategory" required>
<option value="">Выберите категорию</option>
</select>
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="itemPrice" class="form-label">Цена (₽) *</label>
<input type="number" class="form-control" id="itemPrice" min="0" step="0.01" required>
</div>
<div class="col-md-6 mb-3">
<label for="itemQuantity" class="form-label">Количество *</label>
<input type="number" class="form-control" id="itemQuantity" min="0" required>
</div>
</div>
<div class="mb-3">
<label for="itemDescription" class="form-label">Описание</label>
<textarea class="form-control" id="itemDescription" rows="3"></textarea>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="itemBarcode" class="form-label">Штрих-код</label>
<input type="text" class="form-control" id="itemBarcode">
</div>
<div class="col-md-6 mb-3">
<label for="itemLocation" class="form-label">Местоположение</label>
<input type="text" class="form-control" id="itemLocation" placeholder="Стеллаж A-1">
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="itemSupplier" class="form-label">Поставщик</label>
<input type="text" class="form-control" id="itemSupplier">
</div>
<div class="col-md-6 mb-3">
<label for="itemMinQuantity" class="form-label">Минимальный запас</label>
<input type="number" class="form-control" id="itemMinQuantity" min="0">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Отмена</button>
<button type="button" class="btn btn-primary" id="saveItemBtn">
<i class="fas fa-save me-1"></i>Сохранить
</button>
</div>
</div>
</div>
</div>
<!-- Модальное окно редактирования товара -->
<div class="modal fade" id="editItemModal" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">
<i class="fas fa-edit me-2"></i>
Редактировать товар
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<form id="editItemForm">
<input type="hidden" id="editItemId">
<div class="row">
<div class="col-md-6 mb-3">
<label for="editItemName" class="form-label">Название товара *</label>
<input type="text" class="form-control" id="editItemName" required>
</div>
<div class="col-md-6 mb-3">
<label for="editItemCategory" class="form-label">Категория *</label>
<select class="form-select" id="editItemCategory" required>
<option value="">Выберите категорию</option>
</select>
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="editItemPrice" class="form-label">Цена (₽) *</label>
<input type="number" class="form-control" id="editItemPrice" min="0" step="0.01" required>
</div>
<div class="col-md-6 mb-3">
<label for="editItemQuantity" class="form-label">Количество *</label>
<input type="number" class="form-control" id="editItemQuantity" min="0" required>
</div>
</div>
<div class="mb-3">
<label for="editItemDescription" class="form-label">Описание</label>
<textarea class="form-control" id="editItemDescription" rows="3"></textarea>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="editItemBarcode" class="form-label">Штрих-код</label>
<input type="text" class="form-control" id="editItemBarcode">
</div>
<div class="col-md-6 mb-3">
<label for="editItemLocation" class="form-label">Местоположение</label>
<input type="text" class="form-control" id="editItemLocation">
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="editItemSupplier" class="form-label">Поставщик</label>
<input type="text" class="form-control" id="editItemSupplier">
</div>
<div class="col-md-6 mb-3">
<label for="editItemMinQuantity" class="form-label">Минимальный запас</label>
<input type="number" class="form-control" id="editItemMinQuantity" min="0">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Отмена</button>
<button type="button" class="btn btn-primary" id="updateItemBtn">
<i class="fas fa-save me-1"></i>Обновить
</button>
</div>
</div>
</div>
</div>
<!-- Подвал -->
<footer class="bg-dark text-white mt-5 py-4">
<div class="container">
<div class="row">
<div class="col-md-6">
<h5>Система управления складом</h5>
<p class="mb-0">Эффективное управление товарными запасами</p>
</div>
<div class="col-md-6 text-md-end">
<p class="mb-0">&copy; 2025 Склад-Менеджер. Все права защищены.</p>
</div>
</div>
</div>
</footer>
<!-- Скрипты -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="js/auth.js"></script>
<script src="js/warehouse.js"></script>
<script src="js/catalog.js"></script>
</body>
</html>