Доступность: | |
---|---|
Мингхун
Я создам всеобъемлющую современную панель панели, которая обеспечивает мониторинг и контроль в режиме реального времени для производственной линии частиц. Дизайн будет сосредоточен на операционной эффективности, визуализации критических показателей и интуитивном контроле.
:корень {
-Примир: #1A3A5F;
-второй: #2C5282;
-Акцент: #0EA5E9;
--Success: #10b981;
-Warning: #f59e0b;
-опасность: #ef4444;
-Дарк: #1E293B;
-Лас: #f1f5f9;
-Gray: #94A3B8;
}
* {
поля: 0;
Заполнение: 0;
Распределение коробки: пограничная коробка;
Семейство Font: 'Segoe Ui', Тахома, Женева, Вердана, Sans-Serif;
}
тело {
фоновый цвет: #0F172A;
Цвет: var (-свет);
Overflow-X: скрытый;
}
.container {
дисплей: сетка;
Колонны сетки сетки: 240px 1fr;
Мин-высот: 100vh;
}
/ * Стили боковой панели */
.sidebar {
фоновый цвет: var (-первичный);
Заполнение: 20px 0;
граница правая: 1PX SOLID #334155;
}
.logo {
дисплей: Flex;
Align-Items: Center;
Заполнение: 0 20px 20px;
Пограничный подъем: 1px soluts #334155;
маржинальный бат: 20px;
}
.logo img {
Высота: 40px;
Право маржи: 12px;
}
.logo h1 {
размер шрифта: 18px;
шрифт-вес: 600;
}
.nav-item {
Заполнение: 12px 20px;
дисплей: Flex;
Align-Items: Center;
курсор: указатель;
Переход: все 0,3 с;
РЕМЖЕР-ЛЕРФ: 3PX Твердое прозрачное;
}
.nav-item: Hover, .nav-item.active {
фоновый цвет: rgba (14, 165, 233, 0,1);
РЕШЕНЬ-ЛЕРФ: 3PX SOLID VAR (-Акцент);
}
.nav-item i {
Право маржи: 12px;
Ширина: 20px;
Текст-альбом: Центр;
}
/ * Основные стили контента */
.main-content {
Заполнение: 20px;
дисплей: Flex;
Флекс направление: колонка;
}
.Header {
дисплей: Flex;
ustify-content: Space-Betweed;
Align-Items: Center;
маржинальный бат: 20px;
надоеволос: 15px;
Пограничный подъем: 1px soluts #334155;
}
.Header H2 {
размер шрифта: 24px;
шрифт-вес: 600;
Цвет: var (-акцент);
}
.status-bar {
дисплей: Flex;
Align-Items: Center;
разрыв: 20px;
}
.status-indicator {
дисплей: Flex;
Align-Items: Center;
разрыв: 8px;
размер шрифта: 14px;
}
.status-dot {
Ширина: 10px;
Высота: 10px;
граница радий: 50%;
}
.running {фоновый цвет: var (-успех); }
.warning {фоновый цвет: var (-предупреждение); }
.Stopped {фоновый цвет: var (-Danger); }
/ * Сетка приборной панели */
.dashboard {
дисплей: сетка;
Колонны сетки сетки: Повторите (4, 1FR);
сетка-авторозы: Minmax (200px, Auto);
разрыв: 20px;
гибкий рост: 1;
}
.card {
фоновый цвет: #1E293B;
граница радий: 10px;
Заполнение: 20px;
Box-Shadow: 0 4px 6px rgba (0, 0, 0, 0,1);
Граница: 1PX SOLID #334155;
дисплей: Flex;
Флекс направление: колонка;
}
.CARD HEAVER {
дисплей: Flex;
ustify-content: Space-Betweed;
Align-Items: Center;
маржинальный бат: 15px;
надоеволос: 10px;
Пограничный подъем: 1px soluts #334155;
}
.card-title {
размер шрифта: 16px;
шрифт-вес: 600;
Цвет: var (-акцент);
}
.card-content {
гибкий рост: 1;
дисплей: Flex;
Флекс направление: колонка;
Justify-Content: Center;
}
/ * Определенные стили карт */
.kpi-card .value {
размер шрифта: 36px;
шрифт-вес: 700;
Текст-альбом: Центр;
Полевая: 10px 0;
}
.kpi-card .label {
Текст-альбом: Центр;
Цвет: var (-серый);
размер шрифта: 14px;
}
.kpi-card .trend {
дисплей: Flex;
Justify-Content: Center;
Align-Items: Center;
разрыв: 5px;
размер шрифта: 14px;
маржинальная версия: 5px;
}
.trend.up {color: var (-успех); }
.trend.down {color: var (-Danger); }
.
Колонка сетки: SPAN 2;
Высота: 300px;
}
.status-grid {
дисплей: сетка;
Колонны сетки сетки: Повторите (3, 1FR);
разрыв: 15px;
}
.machine-status {
фоновый цвет: #0F172A;
граница радий: 8px;
Заполнение: 15px;
дисплей: Flex;
Флекс направление: колонка;
Align-Items: Center;
Граница: 1PX SOLID #334155;
Переход: все 0,3 с;
}
.machine-status: Hover {
Преобразование: Translatey (-3px);
Box-Shadow: 0 6px 12px rgba (0, 0, 0, 0,15);
}
.machine-status i {
размер шрифта: 28px;
маржинальный бат: 10px;
}
.machine-status.running {color: var (-успех); Пограничная топ: 3PX Solid var (-успех); }
.machine-status.warning {color: var (-Warning); Пограничная топ: 3PX Solid var (-предупреждение); }
.machine-status.stopped {color: var (-Danger); Пограничная топ: 3PX Solid var (-Danger); }
.machine-name {
размер шрифта: 14px;
маржинальный бат: 8px;
Текст-альбом: Центр;
}
.machine-value {
размер шрифта: 18px;
шрифт-вес: 600;
}
.Alerts-card .alert-item {
Заполнение: 10px 0;
Пограничный подъем: 1px soluts #334155;
дисплей: Flex;
разрыв: 10px;
}
.alert-item: последний ребенок {
пограничный под кносом: нет;
}
.alert-iCon {
Ширина: 24px;
Высота: 24px;
граница радий: 50%;
дисплей: Flex;
Align-Items: Center;
Justify-Content: Center;
Flex-Shrink: 0;
}
.Alert-high {фоновый цвет: rgba (239, 68, 68, 0,2); Цвет: var (-опасность); }
.Alert-Medium {фоновый цвет: rgba (245, 158, 11, 0,2); Цвет: var (-предупреждение); }
.Alert-low {фоновый цвет: rgba (59, 130, 246, 0,2); Цвет: #3B82F6; }
.Alert-content {
гибкий рост: 1;
}
.Alert-title {
шрифт-вес: 600;
размер шрифта: 14px;
}
.Alert-Time {
размер шрифта: 12px;
Цвет: var (-серый);
}
.controls {
дисплей: сетка;
Колонны сетки сетки: Повторите (2, 1FR);
разрыв: 15px;
}
.control-btn {
фоновый цвет: var (-второстепенный);
граница: нет;
граница радий: 8px;
Заполнение: 12px;
Цвет: белый;
шрифт-вес: 600;
курсор: указатель;
Переход: все 0,3 с;
дисплей: Flex;
Align-Items: Center;
Justify-Content: Center;
разрыв: 8px;
}
.control-btn: Hover {
фоновый цвет: var (-акцент);
Преобразование: Translatey (-2px);
}
.control-btn.emergency {
фоновый цвет: var (-опасность);
Колонка сетки: SPAN 2;
}
.control-btn.emergency: Hover {
фоновый цвет: #dc2626;
}
/ * Адаптивные корректировки */
@Media (максимальная ширина: 1200px) {
.dashboard {
Колонны сетки сетки: Повторите (3, 1FR);
}
}
@media (max-width: 992px) {
.dashboard {
Колонны сетки сетки: Повторите (2, 1FR);
}
}
@media (max-width: 768px) {
.container {
Колонны сетки: 1FR;
}
.sidebar {
дисплей: нет;
}
.dashboard {
Колонны сетки: 1FR;
}
.
сетка Колона: SPAN 1;
}
}
Приборная панель
Производственный контроль
Статус машины
Контроль качества
Оповещения и уведомления
Аналитика и отчеты
Обслуживание
Настройки
Производство: бег
2 предупреждения
3 новых оповещения
Оператор: Чжан Вэй
+2,1% от вчерашнего дня
-8 из цели
+0,4% от последней смены
-0,15 с прошлой недели
// Инициализировать производственную диаграмму
document.addeventlistener ('domcontentloaded', function () {
const ctx = document.getElementById ('ProductionChart'). getContext ('2d');
const chart = new Chart (ctx, {
Тип: 'Line',
данные: {
Метки: ['06: 00 ', '08: 00', '10: 00 ', '12: 00', '14: 00 ', '16: 00', '18: 00 ', '20: 00'],
Наборы данных: [{
метка: «Фактическое производство»,
Данные: [265, 280, 295, 285, 270, 290, 305, 295],
Bordercolor: '#0EA5E9',
FounalColor: 'rgba (14, 165, 233, 0,1)',
Пограничная точка: 2,
заполнить: правда,
Напряжение: 0,3
}, {
метка: 'Target',
Данные: [280, 280, 290, 295, 295, 300, 300, 300],
Bordercolor: '#10b981',
Пограничная точка: 2,
Borderdash: [5, 5],
заполнить: ложь
}]
},
параметры: {
отзывчивый: правда,
поддерживать
плагины: {
Легенда: {
Метки: {
Цвет: '#f1f5f9'
}
}
},
Весы: {
y: {
Beginatzero: ложь,
Мин: 250,
сетка: {
Цвет: 'Rgba (255, 255, 255, 0,1)'
},
Тик: {
Цвет: '#94A3B8'
}
},
x: {
сетка: {
Цвет: 'Rgba (255, 255, 255, 0,1)'
},
Тик: {
Цвет: '#94A3B8'
}
}
}
}
});
// имитировать обновления в реальном времени
setInterval (() => {
// Обновление значений состояния машины случайным образом для моделирования
document.queryselectorall ('. машино-значение'). Foreach (el => {
if (el.parentelement.classlist.contains ('running')) {
if (el.previouselementsibling.textcontent.includes ('° C')) {
const temp = 80 + math.floor (math.random () * 5);
el.textContent = `$ {temp} ° C`;
} else if (el.previouselementementsibling.textcontent.includes ('%')) {
const load = 95 + math.floor (math.random () * 5);
el.textContent = `$ {Load}%`;
}
}
});
// немного обновление значений KPI для моделирования
const oeevalue = document.queryselector ('. kpi-card: nth-child (1) .value');
let oee = parsefloat (oeevalue.textcontent);
oeevalue.textContent = (oee + (math.random () - 0,5) * 0,1) .tofixed (1) + '%';
const-stockValue = document.queryselector ('. KPI-card: nth-child (2) .value');
let rate = parseint (stockvalue.textContent);
stockValue.textContent = math.max (280, math.min (310, скорость + math.floor ((math.random () - 0,5) * 5));
}, 5000);
});
WhatsApp: +86 18769900191 +86 15589105786 +86 18954906501
Электронная почта: osbmdfmachinery@gmail.com
Я создам всеобъемлющую современную панель панели, которая обеспечивает мониторинг и контроль в режиме реального времени для производственной линии частиц. Дизайн будет сосредоточен на операционной эффективности, визуализации критических показателей и интуитивном контроле.
:корень {
-Примир: #1A3A5F;
-второй: #2C5282;
-Акцент: #0EA5E9;
--Success: #10b981;
-Warning: #f59e0b;
-опасность: #ef4444;
-Дарк: #1E293B;
-Лас: #f1f5f9;
-Gray: #94A3B8;
}
* {
поля: 0;
Заполнение: 0;
Распределение коробки: пограничная коробка;
Семейство Font: 'Segoe Ui', Тахома, Женева, Вердана, Sans-Serif;
}
тело {
фоновый цвет: #0F172A;
Цвет: var (-свет);
Overflow-X: скрытый;
}
.container {
дисплей: сетка;
Колонны сетки сетки: 240px 1fr;
Мин-высот: 100vh;
}
/ * Стили боковой панели */
.sidebar {
фоновый цвет: var (-первичный);
Заполнение: 20px 0;
граница правая: 1PX SOLID #334155;
}
.logo {
дисплей: Flex;
Align-Items: Center;
Заполнение: 0 20px 20px;
Пограничный подъем: 1px soluts #334155;
маржинальный бат: 20px;
}
.logo img {
Высота: 40px;
Право маржи: 12px;
}
.logo h1 {
размер шрифта: 18px;
шрифт-вес: 600;
}
.nav-item {
Заполнение: 12px 20px;
дисплей: Flex;
Align-Items: Center;
курсор: указатель;
Переход: все 0,3 с;
РЕМЖЕР-ЛЕРФ: 3PX Твердое прозрачное;
}
.nav-item: Hover, .nav-item.active {
фоновый цвет: rgba (14, 165, 233, 0,1);
РЕШЕНЬ-ЛЕРФ: 3PX SOLID VAR (-Акцент);
}
.nav-item i {
Право маржи: 12px;
Ширина: 20px;
Текст-альбом: Центр;
}
/ * Основные стили контента */
.main-content {
Заполнение: 20px;
дисплей: Flex;
Флекс направление: колонка;
}
.Header {
дисплей: Flex;
ustify-content: Space-Betweed;
Align-Items: Center;
маржинальный бат: 20px;
надоеволос: 15px;
Пограничный подъем: 1px soluts #334155;
}
.Header H2 {
размер шрифта: 24px;
шрифт-вес: 600;
Цвет: var (-акцент);
}
.status-bar {
дисплей: Flex;
Align-Items: Center;
разрыв: 20px;
}
.status-indicator {
дисплей: Flex;
Align-Items: Center;
разрыв: 8px;
размер шрифта: 14px;
}
.status-dot {
Ширина: 10px;
Высота: 10px;
граница радий: 50%;
}
.running {фоновый цвет: var (-успех); }
.warning {фоновый цвет: var (-предупреждение); }
.Stopped {фоновый цвет: var (-Danger); }
/ * Сетка приборной панели */
.dashboard {
дисплей: сетка;
Колонны сетки сетки: Повторите (4, 1FR);
сетка-авторозы: Minmax (200px, Auto);
разрыв: 20px;
гибкий рост: 1;
}
.card {
фоновый цвет: #1E293B;
граница радий: 10px;
Заполнение: 20px;
Box-Shadow: 0 4px 6px rgba (0, 0, 0, 0,1);
Граница: 1PX SOLID #334155;
дисплей: Flex;
Флекс направление: колонка;
}
.CARD HEAVER {
дисплей: Flex;
ustify-content: Space-Betweed;
Align-Items: Center;
маржинальный бат: 15px;
надоеволос: 10px;
Пограничный подъем: 1px soluts #334155;
}
.card-title {
размер шрифта: 16px;
шрифт-вес: 600;
Цвет: var (-акцент);
}
.card-content {
гибкий рост: 1;
дисплей: Flex;
Флекс направление: колонка;
Justify-Content: Center;
}
/ * Определенные стили карт */
.kpi-card .value {
размер шрифта: 36px;
шрифт-вес: 700;
Текст-альбом: Центр;
Полевая: 10px 0;
}
.kpi-card .label {
Текст-альбом: Центр;
Цвет: var (-серый);
размер шрифта: 14px;
}
.kpi-card .trend {
дисплей: Flex;
Justify-Content: Center;
Align-Items: Center;
разрыв: 5px;
размер шрифта: 14px;
маржинальная версия: 5px;
}
.trend.up {color: var (-успех); }
.trend.down {color: var (-Danger); }
.
Колонка сетки: SPAN 2;
Высота: 300px;
}
.status-grid {
дисплей: сетка;
Колонны сетки сетки: Повторите (3, 1FR);
разрыв: 15px;
}
.machine-status {
фоновый цвет: #0F172A;
граница радий: 8px;
Заполнение: 15px;
дисплей: Flex;
Флекс направление: колонка;
Align-Items: Center;
Граница: 1PX SOLID #334155;
Переход: все 0,3 с;
}
.machine-status: Hover {
Преобразование: Translatey (-3px);
Box-Shadow: 0 6px 12px rgba (0, 0, 0, 0,15);
}
.machine-status i {
размер шрифта: 28px;
маржинальный бат: 10px;
}
.machine-status.running {color: var (-успех); Пограничная топ: 3PX Solid var (-успех); }
.machine-status.warning {color: var (-Warning); Пограничная топ: 3PX Solid var (-предупреждение); }
.machine-status.stopped {color: var (-Danger); Пограничная топ: 3PX Solid var (-Danger); }
.machine-name {
размер шрифта: 14px;
маржинальный бат: 8px;
Текст-альбом: Центр;
}
.machine-value {
размер шрифта: 18px;
шрифт-вес: 600;
}
.Alerts-card .alert-item {
Заполнение: 10px 0;
Пограничный подъем: 1px soluts #334155;
дисплей: Flex;
разрыв: 10px;
}
.alert-item: последний ребенок {
пограничный под кносом: нет;
}
.alert-iCon {
Ширина: 24px;
Высота: 24px;
граница радий: 50%;
дисплей: Flex;
Align-Items: Center;
Justify-Content: Center;
Flex-Shrink: 0;
}
.Alert-high {фоновый цвет: rgba (239, 68, 68, 0,2); Цвет: var (-опасность); }
.Alert-Medium {фоновый цвет: rgba (245, 158, 11, 0,2); Цвет: var (-предупреждение); }
.Alert-low {фоновый цвет: rgba (59, 130, 246, 0,2); Цвет: #3B82F6; }
.Alert-content {
гибкий рост: 1;
}
.Alert-title {
шрифт-вес: 600;
размер шрифта: 14px;
}
.Alert-Time {
размер шрифта: 12px;
Цвет: var (-серый);
}
.controls {
дисплей: сетка;
Колонны сетки сетки: Повторите (2, 1FR);
разрыв: 15px;
}
.control-btn {
фоновый цвет: var (-второстепенный);
граница: нет;
граница радий: 8px;
Заполнение: 12px;
Цвет: белый;
шрифт-вес: 600;
курсор: указатель;
Переход: все 0,3 с;
дисплей: Flex;
Align-Items: Center;
Justify-Content: Center;
разрыв: 8px;
}
.control-btn: Hover {
фоновый цвет: var (-акцент);
Преобразование: Translatey (-2px);
}
.control-btn.emergency {
фоновый цвет: var (-опасность);
Колонка сетки: SPAN 2;
}
.control-btn.emergency: Hover {
фоновый цвет: #dc2626;
}
/ * Адаптивные корректировки */
@Media (максимальная ширина: 1200px) {
.dashboard {
Колонны сетки сетки: Повторите (3, 1FR);
}
}
@media (max-width: 992px) {
.dashboard {
Колонны сетки сетки: Повторите (2, 1FR);
}
}
@media (max-width: 768px) {
.container {
Колонны сетки: 1FR;
}
.sidebar {
дисплей: нет;
}
.dashboard {
Колонны сетки: 1FR;
}
.
сетка Колона: SPAN 1;
}
}
Приборная панель
Производственный контроль
Статус машины
Контроль качества
Оповещения и уведомления
Аналитика и отчеты
Обслуживание
Настройки
Производство: бег
2 предупреждения
3 новых оповещения
Оператор: Чжан Вэй
+2,1% от вчерашнего дня
-8 из цели
+0,4% от последней смены
-0,15 с прошлой недели
// Инициализировать производственную диаграмму
document.addeventlistener ('domcontentloaded', function () {
const ctx = document.getElementById ('ProductionChart'). getContext ('2d');
const chart = new Chart (ctx, {
Тип: 'Line',
данные: {
Метки: ['06: 00 ', '08: 00', '10: 00 ', '12: 00', '14: 00 ', '16: 00', '18: 00 ', '20: 00'],
Наборы данных: [{
метка: «Фактическое производство»,
Данные: [265, 280, 295, 285, 270, 290, 305, 295],
Bordercolor: '#0EA5E9',
FounalColor: 'rgba (14, 165, 233, 0,1)',
Пограничная точка: 2,
заполнить: правда,
Напряжение: 0,3
}, {
метка: 'Target',
Данные: [280, 280, 290, 295, 295, 300, 300, 300],
Bordercolor: '#10b981',
Пограничная точка: 2,
Borderdash: [5, 5],
заполнить: ложь
}]
},
параметры: {
отзывчивый: правда,
поддерживать
плагины: {
Легенда: {
Метки: {
Цвет: '#f1f5f9'
}
}
},
Весы: {
y: {
Beginatzero: ложь,
Мин: 250,
сетка: {
Цвет: 'Rgba (255, 255, 255, 0,1)'
},
Тик: {
Цвет: '#94A3B8'
}
},
x: {
сетка: {
Цвет: 'Rgba (255, 255, 255, 0,1)'
},
Тик: {
Цвет: '#94A3B8'
}
}
}
}
});
// имитировать обновления в реальном времени
setInterval (() => {
// Обновление значений состояния машины случайным образом для моделирования
document.queryselectorall ('. машино-значение'). Foreach (el => {
if (el.parentelement.classlist.contains ('running')) {
if (el.previouselementsibling.textcontent.includes ('° C')) {
const temp = 80 + math.floor (math.random () * 5);
el.textContent = `$ {temp} ° C`;
} else if (el.previouselementementsibling.textcontent.includes ('%')) {
const load = 95 + math.floor (math.random () * 5);
el.textContent = `$ {Load}%`;
}
}
});
// немного обновление значений KPI для моделирования
const oeevalue = document.queryselector ('. kpi-card: nth-child (1) .value');
let oee = parsefloat (oeevalue.textcontent);
oeevalue.textContent = (oee + (math.random () - 0,5) * 0,1) .tofixed (1) + '%';
const-stockValue = document.queryselector ('. KPI-card: nth-child (2) .value');
let rate = parseint (stockvalue.textContent);
stockValue.textContent = math.max (280, math.min (310, скорость + math.floor ((math.random () - 0,5) * 5));
}, 5000);
});
WhatsApp: +86 18769900191 +86 15589105786 +86 18954906501
Электронная почта: osbmdfmachinery@gmail.com