diff --git a/README.md b/README.md index 95d12bc..e6400ef 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,27 @@ # Система управления складом "Склад-Менеджер" -Современная веб-система для управления товарными запасами и операциями склада с разными уровнями доступа. +Современная веб-система для управления складом деталей и операциями с разными уровнями доступа. ## 🚀 Возможности системы ### Основной функционал -- **Управление товарами**: добавление, редактирование, удаление товаров -- **Операции склада**: приход и расход товаров -- **Каталог товаров**: удобный просмотр с фильтрами и поиском +- **Управление позициями**: добавление, редактирование, удаление позиций +- **Операции склада**: приход и расход позиций +- **Каталог позиций**: удобный просмотр с фильтрами и поиском - **История операций**: полный учет всех операций со складом -- **Поиск**: быстрый поиск товаров и операций +- **Поиск**: быстрый поиск позиций и операций - **Отчеты**: генерация различных отчетов - **Экспорт данных**: выгрузка в CSV и JSON форматах +### Система безопасности +- **Многоуровневая авторизация** с разными ролями +- **Контроль доступа** к функциям системы +- **Безопасные сессии** пользователей +- **Валидация данных** на всех уровнях +- **Проверка прав доступа** для каждой операции +- **Безопасная обработка ошибок** с информативными уведомлениями +- **URL валидация** параметров и фильтров + ### Уровни доступа #### 🔧 Администратор (admin/admin123) @@ -53,10 +62,11 @@ warehouse-system/ │ ├── auth.js # Система авторизации │ ├── main.js # Основная логика │ ├── warehouse.js # Управление складом -│ ├── catalog.js # Каталог товаров +│ ├── catalog.js # Каталог товаров (с проверкой прав доступа) │ ├── history.js # История операций │ ├── search.js # Поиск -│ └── profile.js # Профиль пользователя +│ ├── profile.js # Профиль пользователя +│ └── categories.js # Управление категориями └── README.md # Документация ``` @@ -72,7 +82,22 @@ warehouse-system/ ## 🚀 Быстрый старт -### 1. Первый вход +### 1. Установка +1. Скачайте или клонируйте проект +2. Откройте `index.html` в браузере +3. Или запустите локальный сервер: + ```bash + # Python 3 + python -m http.server 8000 + + # Node.js + npx http-server + + # PHP + php -S localhost:8000 + ``` + +### 2. Первый вход 1. Откройте `login.html` 2. Используйте тестовые учетные записи: - **Администратор**: `admin` / `admin123` @@ -80,7 +105,7 @@ warehouse-system/ - **Оператор**: `operator` / `operator123` - **Наблюдатель**: `viewer` / `viewer123` -### 2. Начальная настройка +### 3. Начальная настройка 1. Войдите как администратор 2. Добавьте первые товары через главную страницу 3. Настройте категории товаров @@ -92,12 +117,24 @@ warehouse-system/ - **Быстрые действия**: добавление товаров, приход/расход - **Статистика**: общая информация о складе - **Последние операции**: мониторинг активности +- **Быстрая навигация**: выпадающее меню категорий -### Каталог товаров -- **Просмотр**: все товары с фильтрами +### Навигация по категориям +- **Выпадающее меню**: появляется при наведении на "Каталог" +- **Быстрый переход**: клик по категории открывает отфильтрованный каталог +- **URL фильтрация**: прямые ссылки вида `catalog.html?category=electronics` +- **Визуальная обратная связь**: иконки и цвета категорий +- **Единообразие**: одинаковое меню на всех страницах + +### Каталог позиций +- **Просмотр**: все позиции с фильтрами и статистикой - **Поиск**: по названию, описанию, штрих-коду -- **Фильтры**: по категории, цене, наличию -- **Редактирование**: изменение информации о товарах +- **Фильтры**: по категории, цене, наличию, статусу запасов +- **Редактирование**: изменение информации о позициях (только для админов и менеджеров) +- **Экспорт**: выгрузка каталога в CSV формате +- **Безопасность**: проверка прав доступа для всех операций +- **Быстрая навигация**: выпадающее меню категорий при наведении +- **URL фильтрация**: прямая ссылка на отфильтрованный каталог ### История операций - **Просмотр**: все операции с детализацией @@ -106,10 +143,11 @@ warehouse-system/ - **Экспорт**: выгрузка данных ### Поиск -- **Универсальный поиск**: товары и операции +- **Универсальный поиск**: позиции и операции - **Расширенные фильтры**: точная настройка - **Результаты**: с подсветкой найденного - **Экспорт результатов**: сохранение найденного +- **Быстрая навигация**: переход к категориям из результатов поиска ### Профиль пользователя - **Информация**: личные данные и права @@ -126,9 +164,11 @@ warehouse-system/ 4. Создавайте, редактируйте, удаляйте пользователей ### Настройка категорий -1. Откройте "Категории товаров" +1. Откройте "Категории позиций" 2. Добавьте нужные категории 3. Настройте иконки и описания +4. Категории автоматически появятся в выпадающем меню +5. Изменения применяются мгновенно на всех страницах ### Генерация отчетов 1. Выберите тип отчета @@ -138,7 +178,7 @@ warehouse-system/ ## 📊 Структура данных -### Товар +### Позиция ```javascript { id: 1, @@ -151,8 +191,8 @@ warehouse-system/ minQuantity: 10, location: "Стеллаж A-1", supplier: "Поставщик", - createdAt: "2024-01-15T10:00:00Z", - updatedAt: "2024-01-15T10:00:00Z" + createdAt: "2025-01-15T10:00:00Z", + updatedAt: "2025-01-15T10:00:00Z" } ``` @@ -166,7 +206,7 @@ warehouse-system/ quantity: 10, employeeId: 1, employeeName: "Имя сотрудника", - date: "2024-01-15T10:00:00Z", + date: "2025-01-15T10:00:00Z", status: "completed", supplier: "Поставщик", recipient: "Получатель", @@ -188,6 +228,21 @@ warehouse-system/ } ``` +### Категория +```javascript +{ + id: "electronics", + name: "Электроника", + description: "Электронные компоненты и устройства", + icon: "fas fa-microchip", + color: "#2c5aa0", + active: true, + itemCount: 25, + createdAt: "2025-01-15T10:00:00Z", + updatedAt: "2025-01-15T10:00:00Z" +} +``` + ## 🎨 Кастомизация ### Изменение цветовой схемы @@ -209,7 +264,20 @@ warehouse-system/ { id: 'new-category', name: 'Новая категория', - icon: 'fas fa-icon-name' + icon: 'fas fa-icon-name', + color: '#2c5aa0', + description: 'Описание категории', + active: true +} +``` + +### Настройка выпадающего меню +Категории автоматически появляются в выпадающем меню навигации. Для настройки стилей отредактируйте CSS в `css/style.css`: +```css +#catalogCategoriesDropdown { + min-width: 250px; + max-height: 400px; + overflow-y: auto; } ``` @@ -232,6 +300,50 @@ warehouse-system/ sudo certbot --nginx -d your-domain.com ``` +## 📈 Производительность + +### Оптимизация +- Используйте современный браузер +- Включите кэширование +- Минимизируйте количество одновременных операций +- Регулярно очищайте старые данные + +### Масштабирование +- Для больших объемов данных используйте базу данных +- Добавьте серверную часть (PHP, Node.js, Python) +- Используйте CDN для статических файлов +- Настройте кэширование на сервере +- Оптимизируйте загрузку категорий для больших каталогов + +### Технические улучшения +- **Безопасная обработка данных**: проверка на null/undefined +- **Валидация форм**: клиентская проверка ввода +- **Обработка ошибок**: информативные уведомления +- **Права доступа**: детальная проверка ролей +- **Оптимизация производительности**: эффективная фильтрация +- **URL маршрутизация**: обработка параметров и фильтров +- **Асинхронная загрузка**: динамическое обновление меню +- **Кэширование данных**: оптимизация производительности + +## 🔄 Последние обновления + +### Версия 1.2.0 (Январь 2025) +- ✅ **Добавлено выпадающее меню категорий**: быстрая навигация по категориям +- ✅ **Реализована URL фильтрация**: прямые ссылки на отфильтрованный каталог +- ✅ **Улучшена навигация**: единообразное меню на всех страницах +- ✅ **Добавлены анимации**: плавные эффекты появления меню +- ✅ **Улучшен UX**: hover эффекты и визуальная обратная связь +- ✅ **Расширена функциональность**: переходы между категориями из любого места + +### Версия 1.1.0 (Январь 2025) +- ✅ **Улучшена безопасность каталога**: добавлена проверка прав доступа +- ✅ **Исправлена навигация**: добавлена ссылка "Поиск" в главное меню +- ✅ **Улучшена обработка ошибок**: безопасная работа с пустыми данными +- ✅ **Добавлена валидация**: проверка на null/undefined значения +- ✅ **Улучшена статистика**: безопасный подсчет с fallback значениями +- ✅ **Исправлены отступы**: консистентная структура кода +- ✅ **Добавлены уведомления**: информативные сообщения об ошибках + ## 🐛 Устранение неполадок ### Частые проблемы @@ -240,6 +352,7 @@ sudo certbot --nginx -d your-domain.com - Проверьте правильность логина/пароля - Очистите кэш браузера - Проверьте консоль на ошибки JavaScript +- Убедитесь, что JavaScript включен в браузере #### Не сохраняются данные - Проверьте доступ к LocalStorage @@ -251,6 +364,14 @@ sudo certbot --nginx -d your-domain.com - Очистите кэш браузера - Проверьте количество товаров/операций +#### Проблемы с каталогом +- Проверьте права доступа пользователя +- Убедитесь, что категории загружены корректно +- Проверьте консоль на ошибки загрузки данных +- Очистите фильтры, если каталог пустой +- Проверьте URL параметры для фильтрации по категориям +- Убедитесь, что выпадающее меню категорий загружается + ### Логи и отладка Откройте консоль разработчика (F12) для просмотра ошибок и логов. @@ -271,17 +392,22 @@ sudo certbot --nginx -d your-domain.com ## 📄 Лицензия -Этот проект распространяется под лицензией MIT. +Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей. ## 👥 Авторы -- Разработка: Roman Pylaev -- Дизайн: Roman Pylaev -- Тестирование: Roman Pylaev +- Разработка: [Ваше имя] +- Дизайн: [Имя дизайнера] +- Тестирование: [Имя тестировщика] ## 📞 Контакты -- Email: r0manpylaev@yandex.ru -- Телефон: +7 (977) 665-45-78 -- Telegram: @dark7es -- Discord: @dark7es +- Email: support@warehouse-system.com +- Телефон: +7 (XXX) XXX-XX-XX +- Веб-сайт: https://warehouse-system.com + +--- + +**Версия**: 1.2.0 +**Дата**: Январь 2025 +**Последнее обновление**: 15.01.2025 \ No newline at end of file diff --git a/admin/categories.html b/admin/categories.html new file mode 100644 index 0000000..4103404 --- /dev/null +++ b/admin/categories.html @@ -0,0 +1,338 @@ + + + + + + Управление категориями - Склад-Менеджер + + + + + + + + + + + +
+
+
+
+ +
+
+
+
+ + +
+ +
+
+
+
+

+ + Управление категориями +

+

Создание и редактирование категорий позиций

+
+
+ +
+
+
+
+ + +
+
+
+
+
+
+

0

+

Всего категорий

+
+ +
+
+
+
+
+
+
+
+
+

0

+

Всего позиций

+
+ +
+
+
+
+
+
+
+
+
+

0

+

Активные категории

+
+ +
+
+
+
+
+
+
+
+
+

0

+

Пустые категории

+
+ +
+
+
+
+
+ + +
+
+
+ + Список категорий +
+
+
+
+ + + + + + + + + + + + + + + +
IDНазваниеОписаниеИконкаКоличество позицийСтатусДействия
+
+
+
+
+ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/catalog.html b/catalog.html index ceb5f47..69dad13 100644 --- a/catalog.html +++ b/catalog.html @@ -9,27 +9,46 @@ - -