Наяўнасць: | |
---|---|
Minghung
Я буду ствараць усёабдымную, сучасную прыборную панэль, якая забяспечвае маніторынг і кантроль у рэжыме рэальнага часу для вытворчай лініі часціц. Дызайн будзе прысвечаны аператыўнай эфектыўнасці, візуалізацыі крытычнай паказчыкі і інтуітыўным кантролем.
: корань {
--Primary: #1A3A5F;
--сярэдняя: № 2C5282;
--accent: #0EA5E9;
--расход: № 10B981;
--warning: #f59e0b;
---Danger: #EF4444;
--цёмны: #1E293B;
-Light: #f1f5f9;
--GRAY: #94A3B8;
}
* {
запас: 0;
абіўка: 0;
Памер скрынкі: памежная скрыня;
Сямейнасць шрыфтоў: 'segoe ui', Тахома, Жэнева, Вердана, Санс-Сэрыф;
}
цела {
Фонавы колер: #0F172A;
Колер: var (-святло);
перапаўненне-X: схаваны;
}
.Container {
Дысплей: сетка;
Сеткавыя кошту-калонкі: 240px 1fr;
Мін Высокая: 100VH;
}
/ * Стылі бакавой панэлі */
.SideBar {
фонавы колер: var (-першасны);
Набіванне: 20px 0;
Права па мяжы: 1px цвёрды #334155;
}
.Logo {
Дысплей: Flex;
Выраўноўванне: цэнтр;
Набіванне: 0 20px 20px;
Пагранічны дно: 1PX цвёрды #334155;
Маржын-дно: 20px;
}
.logo img {
Вышыня: 40px;
Права на маржы: 12px;
}
.Logo H1 {
Памер шрыфта: 18px;
Шрыфт-вага: 600;
}
.nav-item {
Набіванне: 12px 20px;
Дысплей: Flex;
Выраўноўванне: цэнтр;
Курсор: паказальнік;
Пераход: усе 0,3S;
Пагранічны левы: 3px цвёрды празрысты;
}
.nav-item: hover, .nav-item.axtive {
Фонавы колер: RGBA (14, 165, 233, 0,1);
Пагранічны левы: 3px цвёрды var (-акцэнт);
}
.nav-item i {
Права на маржы: 12px;
шырыня: 20px;
тэкставы вылічэнне: цэнтр;
}
/ * Асноўныя стылі зместу */
.main-content {
Набіванне: 20px;
Дысплей: Flex;
Flex-напрамак: слупок;
}
.Header {
Дысплей: Flex;
Абгрунтаванне-змесціва: прамежак паміж імі;
Выраўноўванне: цэнтр;
Маржын-дно: 20px;
дно з дном: 15px;
Пагранічны дно: 1PX цвёрды #334155;
}
.Header H2 {
Памер шрыфта: 24px;
Шрыфт-вага: 600;
Колер: var (-акцэнт);
}
.status-bar {
Дысплей: Flex;
Выраўноўванне: цэнтр;
GAP: 20px;
}
.Status-Indicator {
Дысплей: Flex;
Выраўноўванне: цэнтр;
GAP: 8px;
Памер шрыфта: 14px;
}
.status-dot {
шырыня: 10px;
Вышыня: 10px;
Пагранічны радыя: 50%;
}
.Running {фонавы колер: var (-поспех); }
.warning {фонавы колер: var (-папярэджанне); }
. спынена {фонавы колер: var (-небяспека); }
/ * Сетка прыборнай панэлі */
.dashboard {
Дысплей: сетка;
Сеткавыя кошту-калонкі: паўтарыць (4, 1FR);
Сетка-аўтара Rows: Minmax (200px, аўтаматычна);
GAP: 20px;
Flex-Grow: 1;
}
.card {
Фонавы колер: #1E293B;
памежны радыя: 10px;
Набіванне: 20px;
Box-Shadow: 0 4px 6px rgba (0, 0, 0, 0,1);
мяжа: 1PX цвёрдае № 334155;
Дысплей: Flex;
Flex-напрамак: слупок;
}
.card-header {
Дысплей: Flex;
Абгрунтаванне-змесціва: прамежак паміж імі;
Выраўноўванне: цэнтр;
Маржын-дно: 15px;
дно з дном: 10px;
Пагранічны дно: 1PX цвёрды #334155;
}
.card-title {
Памер шрыфта: 16px;
Шрыфт-вага: 600;
Колер: var (-акцэнт);
}
.card-content {
Flex-Grow: 1;
Дысплей: Flex;
Flex-напрамак: слупок;
Абгрунтаванне-змена: цэнтр;
}
/ * Канкрэтныя стылі карты */
.kpi-card .value {
Памер шрыфта: 36px;
Шрыфт-вага: 700;
тэкставы вылічэнне: цэнтр;
Маржа: 10px 0;
}
.kpi-card .Label {
тэкставы вылічэнне: цэнтр;
Колер: var (-шэры);
Памер шрыфта: 14px;
}
.kpi-card .trend {
Дысплей: Flex;
Абгрунтаванне-змена: цэнтр;
Выраўноўванне: цэнтр;
Прабел: 5px;
Памер шрыфта: 14px;
Маржа-верхавіны: 5px;
}
.trend.up {color: var (-поспех); }
.TREND.DOWN {Color: var (-небяспека); }
.Production-Chart {
Сетка-калонка: Span 2;
Вышыня: 300px;
}
.Status-сетка {
Дысплей: сетка;
Сеткавыя кошту-калонкі: паўтарыць (3, 1FR);
GAP: 15px;
}
.machine-status {
Фонавы колер: #0F172A;
памежны радыя: 8px;
Набіванне: 15px;
Дысплей: Flex;
Flex-напрамак: слупок;
Выраўноўванне: цэнтр;
мяжа: 1PX цвёрдае № 334155;
Пераход: усе 0,3S;
}
.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 цвёрды Var (-поспех); }
.machine-status.warning {color: var (-папярэджанне); Пагранічны верх: 3px цвёрды Var (-папярэджанне); }
.machine-status.stopped {color: var (-небяспека); Пагранічны верх: 3px цвёрды Var (-небяспека); }
.machine-name {
Памер шрыфта: 14px;
Маржын-дно: 8px;
тэкставы вылічэнне: цэнтр;
}
.machine-value {
Памер шрыфта: 18px;
Шрыфт-вага: 600;
}
.alerts-card .alert-item {
Набіванне: 10px 0;
Пагранічны дно: 1PX цвёрды #334155;
Дысплей: Flex;
GAP: 10px;
}
.alert-item: апошні-дзіця {
мяжу з дном: Няма;
}
.alert-icon {
шырыня: 24px;
Вышыня: 24px;
Пагранічны радыя: 50%;
Дысплей: Flex;
Выраўноўванне: цэнтр;
Абгрунтаванне-змена: цэнтр;
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 {
Flex-Grow: 1;
}
.alert-title {
Шрыфт-вага: 600;
Памер шрыфта: 14px;
}
.alert-time {
Памер шрыфта: 12px;
Колер: var (-шэры);
}
.Controls {
Дысплей: сетка;
Сеткавыя кошту-калонкі: паўтарыць (2, 1FR);
GAP: 15px;
}
.Control-btn {
фонавы колер: var (-другасны);
мяжа: Няма;
памежны радыя: 8px;
Набіванне: 12px;
Колер: белы;
Шрыфт-вага: 600;
Курсор: паказальнік;
Пераход: усе 0,3S;
Дысплей: Flex;
Выраўноўванне: цэнтр;
Абгрунтаванне-змена: цэнтр;
GAP: 8px;
}
.Control-btn: hover {
фонавы колер: var (-акцэнт);
Трансфармацыя: Translatey (-2px);
}
.Control-Btn.Emergency {
Фонавы колер: var (-небяспека);
Сетка-калонка: Span 2;
}
.Control-btn.emergency: hover {
Фонавы колер: #DC2626;
}
/ * Спагадны карэкціроўкі */
@Media (максімальная шырыня: 1200px) {
.dashboard {
Сеткавыя кошту-калонкі: паўтарыць (3, 1FR);
}
}
@Media (максімальная шырыня: 992px) {
.dashboard {
Сеткавыя кошту-калонкі: паўтарыць (2, 1FR);
}
}
@Media (максімальная шырыня: 768px) {
.Container {
Сеткавыя кошту-калонкі: 1FR;
}
.SideBar {
Дысплей: Няма;
}
.dashboard {
Сеткавыя кошту-калонкі: 1FR;
}
.Production-Chart {
Сетка-калонка: Span 1;
}
}
Панэль
Вытворчы кантроль
Статус машыны
Кантроль якасці
Абвесткі і апавяшчэнні
Аналітыка і справаздачы
Падтрыманне
Налады
Вытворчасць: Бег
2 папярэджанні
3 новыя абвесткі
Аператар: Чжан Вэй
+2,1% з учорашняга дня
-8 ад мэты
+0,4% ад апошняй змены
-0,15 з мінулага тыдня
// Ініцыялізацыя вытворчай графікі
document.addeventlistener ('domContentletsoded', function () {
const ctx = document.getElementByID ('ProductionChart'). GetContext ('2D');
Const Chart = новы графік (CTX, {
Тып: 'радок',
Дадзеныя: {
Этыкеткі: ['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',
FachoverColor: 'RGBA (14, 165, 233, 0,1)',
Пагражаная школа: 2,
Запоўніце: праўда,
Напружанне: 0,3
}, {
Этыкетка: 'Target ',
Дадзеныя: [280, 280, 290, 295, 295, 300, 300, 300],
BorderColor: '#10B981',
Пагражаная школа: 2,
Borderdash: [5, 5],
Запоўніце: ілжывае
}]
},
Параметры: {
Спагадны: праўда,
Падтрыманне Spectratio: ілжыва,
Убудовы: {
Легенда: {
Этыкеткі: {
Колер: '#f1f5f9'
}
}
},
маштабы: {
y: {
beveratzero: ілжывы,
Мін: 250,
сетка: {
Колер: 'RGBA (255, 255, 255, 0,1)'
},
кляшчы: {
Колер: '#94A3B8'
}
},
X: {
сетка: {
Колер: 'RGBA (255, 255, 255, 0,1)'
},
кляшчы: {
Колер: '#94A3B8'
}
}
}
}
});
// імітаваць абнаўленні ў рэжыме рэальнага часу
setInterval (() => {
// Абнаўленне значэнняў стану машыны выпадкова для мадэлявання
document.queryselectorall ('. Машыннае значэнне'). foreach (el => {
калі (el.parentelement.classlist.contains ('running')) {
калі (el.previouselementsibling.textContent.includes ('° C')) {
const temp = 80 + math.floor (math.random () * 5);
el.TextContent = `$ {temp} ° C`;
} else if (el.previouselementsibling.textContent.includes ('%')) {
const adut = 95 + math.floor (math.random () * 5);
el.TextContent = `$ {ade}%`;
}
}
});
// Абнавіць значэнні KPI для мадэлявання
const oeevalue = document.queryselector ('. Kpi-card: nth-child (1) .value');
хай oee = parsefloat (oeevalue.textContent);
eevalue.textContent = (oee + (math.random () - 0,5) * 0,1) .tofixed (1) + '%';
const ratevalue = document.queryselector ('. Kpi-card: nth-child (2) .value');
хай хуткасць = parseint (ratevalue.textContent);
ratevalue.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
Я буду ствараць усёабдымную, сучасную прыборную панэль, якая забяспечвае маніторынг і кантроль у рэжыме рэальнага часу для вытворчай лініі часціц. Дызайн будзе прысвечаны аператыўнай эфектыўнасці, візуалізацыі крытычнай паказчыкі і інтуітыўным кантролем.
: корань {
--Primary: #1A3A5F;
--сярэдняя: № 2C5282;
--accent: #0EA5E9;
--расход: № 10B981;
--warning: #f59e0b;
---Danger: #EF4444;
--цёмны: #1E293B;
-Light: #f1f5f9;
--GRAY: #94A3B8;
}
* {
запас: 0;
абіўка: 0;
Памер скрынкі: памежная скрыня;
Сямейнасць шрыфтоў: 'segoe ui', Тахома, Жэнева, Вердана, Санс-Сэрыф;
}
цела {
Фонавы колер: #0F172A;
Колер: var (-святло);
перапаўненне-X: схаваны;
}
.Container {
Дысплей: сетка;
Сеткавыя кошту-калонкі: 240px 1fr;
Мін Высокая: 100VH;
}
/ * Стылі бакавой панэлі */
.SideBar {
фонавы колер: var (-першасны);
Набіванне: 20px 0;
Права па мяжы: 1px цвёрды #334155;
}
.Logo {
Дысплей: Flex;
Выраўноўванне: цэнтр;
Набіванне: 0 20px 20px;
Пагранічны дно: 1PX цвёрды #334155;
Маржын-дно: 20px;
}
.logo img {
Вышыня: 40px;
Права на маржы: 12px;
}
.Logo H1 {
Памер шрыфта: 18px;
Шрыфт-вага: 600;
}
.nav-item {
Набіванне: 12px 20px;
Дысплей: Flex;
Выраўноўванне: цэнтр;
Курсор: паказальнік;
Пераход: усе 0,3S;
Пагранічны левы: 3px цвёрды празрысты;
}
.nav-item: hover, .nav-item.axtive {
Фонавы колер: RGBA (14, 165, 233, 0,1);
Пагранічны левы: 3px цвёрды var (-акцэнт);
}
.nav-item i {
Права на маржы: 12px;
шырыня: 20px;
тэкставы вылічэнне: цэнтр;
}
/ * Асноўныя стылі зместу */
.main-content {
Набіванне: 20px;
Дысплей: Flex;
Flex-напрамак: слупок;
}
.Header {
Дысплей: Flex;
Абгрунтаванне-змесціва: прамежак паміж імі;
Выраўноўванне: цэнтр;
Маржын-дно: 20px;
дно з дном: 15px;
Пагранічны дно: 1PX цвёрды #334155;
}
.Header H2 {
Памер шрыфта: 24px;
Шрыфт-вага: 600;
Колер: var (-акцэнт);
}
.status-bar {
Дысплей: Flex;
Выраўноўванне: цэнтр;
GAP: 20px;
}
.Status-Indicator {
Дысплей: Flex;
Выраўноўванне: цэнтр;
GAP: 8px;
Памер шрыфта: 14px;
}
.status-dot {
шырыня: 10px;
Вышыня: 10px;
Пагранічны радыя: 50%;
}
.Running {фонавы колер: var (-поспех); }
.warning {фонавы колер: var (-папярэджанне); }
. спынена {фонавы колер: var (-небяспека); }
/ * Сетка прыборнай панэлі */
.dashboard {
Дысплей: сетка;
Сеткавыя кошту-калонкі: паўтарыць (4, 1FR);
Сетка-аўтара Rows: Minmax (200px, аўтаматычна);
GAP: 20px;
Flex-Grow: 1;
}
.card {
Фонавы колер: #1E293B;
памежны радыя: 10px;
Набіванне: 20px;
Box-Shadow: 0 4px 6px rgba (0, 0, 0, 0,1);
мяжа: 1PX цвёрдае № 334155;
Дысплей: Flex;
Flex-напрамак: слупок;
}
.card-header {
Дысплей: Flex;
Абгрунтаванне-змесціва: прамежак паміж імі;
Выраўноўванне: цэнтр;
Маржын-дно: 15px;
дно з дном: 10px;
Пагранічны дно: 1PX цвёрды #334155;
}
.card-title {
Памер шрыфта: 16px;
Шрыфт-вага: 600;
Колер: var (-акцэнт);
}
.card-content {
Flex-Grow: 1;
Дысплей: Flex;
Flex-напрамак: слупок;
Абгрунтаванне-змена: цэнтр;
}
/ * Канкрэтныя стылі карты */
.kpi-card .value {
Памер шрыфта: 36px;
Шрыфт-вага: 700;
тэкставы вылічэнне: цэнтр;
Маржа: 10px 0;
}
.kpi-card .Label {
тэкставы вылічэнне: цэнтр;
Колер: var (-шэры);
Памер шрыфта: 14px;
}
.kpi-card .trend {
Дысплей: Flex;
Абгрунтаванне-змена: цэнтр;
Выраўноўванне: цэнтр;
Прабел: 5px;
Памер шрыфта: 14px;
Маржа-верхавіны: 5px;
}
.trend.up {color: var (-поспех); }
.TREND.DOWN {Color: var (-небяспека); }
.Production-Chart {
Сетка-калонка: Span 2;
Вышыня: 300px;
}
.Status-сетка {
Дысплей: сетка;
Сеткавыя кошту-калонкі: паўтарыць (3, 1FR);
GAP: 15px;
}
.machine-status {
Фонавы колер: #0F172A;
памежны радыя: 8px;
Набіванне: 15px;
Дысплей: Flex;
Flex-напрамак: слупок;
Выраўноўванне: цэнтр;
мяжа: 1PX цвёрдае № 334155;
Пераход: усе 0,3S;
}
.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 цвёрды Var (-поспех); }
.machine-status.warning {color: var (-папярэджанне); Пагранічны верх: 3px цвёрды Var (-папярэджанне); }
.machine-status.stopped {color: var (-небяспека); Пагранічны верх: 3px цвёрды Var (-небяспека); }
.machine-name {
Памер шрыфта: 14px;
Маржын-дно: 8px;
тэкставы вылічэнне: цэнтр;
}
.machine-value {
Памер шрыфта: 18px;
Шрыфт-вага: 600;
}
.alerts-card .alert-item {
Набіванне: 10px 0;
Пагранічны дно: 1PX цвёрды #334155;
Дысплей: Flex;
GAP: 10px;
}
.alert-item: апошні-дзіця {
мяжу з дном: Няма;
}
.alert-icon {
шырыня: 24px;
Вышыня: 24px;
Пагранічны радыя: 50%;
Дысплей: Flex;
Выраўноўванне: цэнтр;
Абгрунтаванне-змена: цэнтр;
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 {
Flex-Grow: 1;
}
.alert-title {
Шрыфт-вага: 600;
Памер шрыфта: 14px;
}
.alert-time {
Памер шрыфта: 12px;
Колер: var (-шэры);
}
.Controls {
Дысплей: сетка;
Сеткавыя кошту-калонкі: паўтарыць (2, 1FR);
GAP: 15px;
}
.Control-btn {
фонавы колер: var (-другасны);
мяжа: Няма;
памежны радыя: 8px;
Набіванне: 12px;
Колер: белы;
Шрыфт-вага: 600;
Курсор: паказальнік;
Пераход: усе 0,3S;
Дысплей: Flex;
Выраўноўванне: цэнтр;
Абгрунтаванне-змена: цэнтр;
GAP: 8px;
}
.Control-btn: hover {
фонавы колер: var (-акцэнт);
Трансфармацыя: Translatey (-2px);
}
.Control-Btn.Emergency {
Фонавы колер: var (-небяспека);
Сетка-калонка: Span 2;
}
.Control-btn.emergency: hover {
Фонавы колер: #DC2626;
}
/ * Спагадны карэкціроўкі */
@Media (максімальная шырыня: 1200px) {
.dashboard {
Сеткавыя кошту-калонкі: паўтарыць (3, 1FR);
}
}
@Media (максімальная шырыня: 992px) {
.dashboard {
Сеткавыя кошту-калонкі: паўтарыць (2, 1FR);
}
}
@Media (максімальная шырыня: 768px) {
.Container {
Сеткавыя кошту-калонкі: 1FR;
}
.SideBar {
Дысплей: Няма;
}
.dashboard {
Сеткавыя кошту-калонкі: 1FR;
}
.Production-Chart {
Сетка-калонка: Span 1;
}
}
Панэль
Вытворчы кантроль
Статус машыны
Кантроль якасці
Абвесткі і апавяшчэнні
Аналітыка і справаздачы
Падтрыманне
Налады
Вытворчасць: Бег
2 папярэджанні
3 новыя абвесткі
Аператар: Чжан Вэй
+2,1% з учорашняга дня
-8 ад мэты
+0,4% ад апошняй змены
-0,15 з мінулага тыдня
// Ініцыялізацыя вытворчай графікі
document.addeventlistener ('domContentletsoded', function () {
const ctx = document.getElementByID ('ProductionChart'). GetContext ('2D');
Const Chart = новы графік (CTX, {
Тып: 'радок',
Дадзеныя: {
Этыкеткі: ['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',
FachoverColor: 'RGBA (14, 165, 233, 0,1)',
Пагражаная школа: 2,
Запоўніце: праўда,
Напружанне: 0,3
}, {
Этыкетка: 'Target ',
Дадзеныя: [280, 280, 290, 295, 295, 300, 300, 300],
BorderColor: '#10B981',
Пагражаная школа: 2,
Borderdash: [5, 5],
Запоўніце: ілжывае
}]
},
Параметры: {
Спагадны: праўда,
Падтрыманне Spectratio: ілжыва,
Убудовы: {
Легенда: {
Этыкеткі: {
Колер: '#f1f5f9'
}
}
},
маштабы: {
y: {
beveratzero: ілжывы,
Мін: 250,
сетка: {
Колер: 'RGBA (255, 255, 255, 0,1)'
},
кляшчы: {
Колер: '#94A3B8'
}
},
X: {
сетка: {
Колер: 'RGBA (255, 255, 255, 0,1)'
},
кляшчы: {
Колер: '#94A3B8'
}
}
}
}
});
// імітаваць абнаўленні ў рэжыме рэальнага часу
setInterval (() => {
// Абнаўленне значэнняў стану машыны выпадкова для мадэлявання
document.queryselectorall ('. Машыннае значэнне'). foreach (el => {
калі (el.parentelement.classlist.contains ('running')) {
калі (el.previouselementsibling.textContent.includes ('° C')) {
const temp = 80 + math.floor (math.random () * 5);
el.TextContent = `$ {temp} ° C`;
} else if (el.previouselementsibling.textContent.includes ('%')) {
const adut = 95 + math.floor (math.random () * 5);
el.TextContent = `$ {ade}%`;
}
}
});
// Абнавіць значэнні KPI для мадэлявання
const oeevalue = document.queryselector ('. Kpi-card: nth-child (1) .value');
хай oee = parsefloat (oeevalue.textContent);
eevalue.textContent = (oee + (math.random () - 0,5) * 0,1) .tofixed (1) + '%';
const ratevalue = document.queryselector ('. Kpi-card: nth-child (2) .value');
хай хуткасць = parseint (ratevalue.textContent);
ratevalue.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