This commit is contained in:
2026-05-13 01:29:19 +05:00
parent cea88511c0
commit 2b6b3fcb06
22 changed files with 0 additions and 2666 deletions

View File

@@ -1,11 +0,0 @@
FROM node:22-alpine
WORKDIR /app
# Устанавливаем git
RUN apk update --no-cache
RUN apk add --no-cache git
RUN git clone https://git.dadehard.ru/kalugin66/sts-avto.git .
COPY .env .
RUN npm i
EXPOSE 3000
CMD ["npm", "start"]

View File

@@ -1,27 +0,0 @@
version: '3.8'
services:
sts-avto:
build: .
image: kalugin66/sts-avto
container_name: sts-avto
# ports:
# - "3000:3000"
networks:
- applications
restart: always
volumes:
- /docker/sts-avto/data:/app/data:rw
environment:
- TZ=Asia/Yekaterinburg
healthcheck:
test: ["CMD", "wget", "--spider", "http://localhost:3000"]
interval: 30s
timeout: 5s
retries: 3
networks:
applications:
external: true
# docker network create applications
# docker compose up -d
# docker compose up -d --build
# docker compose build --no-cache && docker compose up -d

View File

@@ -1,13 +0,0 @@
{
"name": "sts-auto-site",
"version": "1.0.0",
"description": "Сайт организации СТС-Авто",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.18.2",
"dotenv": "^16.3.1"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -1,67 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Сертификаты ISO 9001, OHSAS 18001, ISO 14001 | СТС-Авто</title>
<link rel="stylesheet" href="/style.css">
<script src="/seo.js" defer></script>
<script src="/nav.js" defer></script>
<script src="/footer.js" defer></script>
<script src="/feedback.js" defer></script>
<script src="/common.js" defer></script>
</head>
<body>
<header>
<div class="container header-inner">
<div class="logo">
<a href="/">
<h1>СТС-Авто</h1>
<p>демонтаж нефтегазопроводов по России</p>
</a>
</div>
<div class="contacts-header"></div>
</div>
<div id="nav-container" class="container"></div>
</header>
<main>
<div class="container">
<div class="card animate-on-scroll">
<h1>Сертификаты системы менеджмента</h1>
<p>Мы имеем все необходимые документы для выполнения работ по демонтажу и капитальному ремонту трубопроводов, включая работу на особо опасных объектах. Наша система менеджмента соответствует международным и российским стандартам.</p>
<div class="certificates-grid">
<div class="cert-card animate-left delay-1">
<div class="cert-icon">📋</div>
<h2>ГОСТ Р ИСО 9001:2015</h2>
<p><strong>«Системы менеджмента качества. Требования»</strong></p>
<p>Сертификат подтверждает, что процессы управления качеством в организации соответствуют международному стандарту. Мы гарантируем стабильное качество работ по демонтажу, рекультивации и ремонту трубопроводов.</p>
<p class="cert-date">Дата выдачи: <strong>16.05.2018 г.</strong></p>
</div>
<div class="cert-card animate-right delay-2">
<div class="cert-icon">🛡️</div>
<h2>OHSAS 18001:2007</h2>
<p><strong>«Системы менеджмента профессионального здоровья и безопасности»</strong></p>
<p>Сертификат удостоверяет, что в компании внедрена эффективная система охраны труда и промышленной безопасности. Наши сотрудники обеспечены средствами защиты, проходят регулярные инструктажи и медосмотры.</p>
<p class="cert-date">Дата выдачи: <strong>27.04.2018 г.</strong></p>
</div>
<div class="cert-card animate-left delay-3">
<div class="cert-icon">🌿</div>
<h2>ГОСТ Р ИСО 14001-2016</h2>
<p><strong>«Системы экологического менеджмента»</strong></p>
<p>Сертификат подтверждает, что наша деятельность по демонтажу и утилизации трубопроводов соответствует экологическим стандартам. Мы обеспечиваем рекультивацию земель и безопасное обращение с отходами I-IV класса.</p>
<p class="cert-date">Дата выдачи: <strong>соответствует ГОСТ Р ИСО 14001-2016</strong></p>
</div>
</div>
<div class="note animate-on-scroll">
<p>Все сертификаты действительны и поддерживаются в актуальном состоянии. Мы проходим ежегодные аудиты для подтверждения соответствия стандартам.</p>
</div>
</div>
</div>
</main>
</body>
</html>

View File

@@ -1,64 +0,0 @@
async function loadCompanyData() {
try {
const response = await fetch('/api/config');
const data = await response.json();
// Заполняем контакты в шапке
const headerContacts = document.querySelector('.contacts-header');
if (headerContacts) {
const phonesHtml = data.phones.map(phone => `<a href="tel:${phone.replace(/\D/g, '')}">${phone}</a>`).join(' | ');
headerContacts.innerHTML = `
<div>📞 ${phonesHtml}</div>
<div>✉️ <a href="mailto:${data.email}">${data.email}</a></div>
`;
}
// Заполняем футер
const footerAddress = document.getElementById('footer-address');
if (footerAddress) footerAddress.innerText = data.address;
const footerEmail = document.getElementById('footer-email');
if (footerEmail) footerEmail.innerHTML = `<a href="mailto:${data.email}">${data.email}</a>`;
const footerPhones = document.getElementById('footer-phones');
if (footerPhones) {
// Добавляем иконку 📞 перед каждым номером
footerPhones.innerHTML = data.phones.map(p => `📞 <a href="tel:${p.replace(/\D/g, '')}">${p}</a>`).join('<br>');
}
const disclaimerDiv = document.getElementById('disclaimer-text');
if (disclaimerDiv) {
disclaimerDiv.innerHTML = `<p>${data.disclaimer1}</p><p>${data.disclaimer2}</p>`;
}
} catch (err) {
console.error('Ошибка загрузки конфигурации:', err);
}
}
document.addEventListener('DOMContentLoaded', loadCompanyData);
// Scroll Animations
function initScrollAnimations() {
const animateElements = document.querySelectorAll('.animate-on-scroll, .animate-left, .animate-right, .animate-scale');
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const delay = entry.target.dataset.delay || 0;
setTimeout(() => {
entry.target.classList.add('animated');
}, parseInt(delay));
observer.unobserve(entry.target);
}
});
}, {
threshold: 0.1,
rootMargin: '0px 0px -50px 0px'
});
animateElements.forEach(el => observer.observe(el));
}
document.addEventListener('DOMContentLoaded', () => {
initScrollAnimations();
});

View File

@@ -1,100 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Демонтаж и капремонт трубопроводов | СТС-Авто</title>
<link rel="stylesheet" href="/style.css">
<script src="/seo.js" defer></script>
<script src="/nav.js" defer></script>
<script src="/footer.js" defer></script>
<script src="/feedback.js" defer></script>
<script src="/common.js" defer></script>
</head>
<body>
<header>
<div class="container header-inner">
<div class="logo">
<a href="/">
<h1>СТС-Авто</h1>
<p>демонтаж нефтегазопроводов по России</p>
</a>
</div>
<div class="contacts-header"></div>
</div>
<div id="nav-container" class="container"></div>
</header>
<main>
<div class="container">
<!-- Герой-блок -->
<div class="hero-section animate-on-scroll">
<h1>Демонтаж и капитальный ремонт трубопроводов</h1>
<p class="hero-subtitle">Недействующие и отработанные нефтегазопроводы, водоводы, системы мелиорации</p>
</div>
<!-- Две колонки: парк техники + виды работ -->
<div class="two-columns">
<div class="col animate-left">
<div class="icon-block">🚜</div>
<h2>Собственный парк техники</h2>
<p><strong>Вся техника не старше 5 лет</strong> экскаваторы, трактора, краны, самосвалы, тралы. Работаем как на твёрдом грунте, так и на заболоченных участках с применением экскаватора-амфибии.</p>
<p>Парк насчитывает <strong>40+ единиц</strong> современной спецтехники.</p>
</div>
<div class="col animate-right">
<div class="icon-block">⚙️</div>
<h2>Что входит в работы?</h2>
<ul>
<li>Извлечение трубы из грунта</li>
<li>Резка на транспортные секции</li>
<li>Погрузка в транспорт</li>
<li>Доставка на площадку заказчика или переработку</li>
<li>Техническая рекультивация земель</li>
</ul>
</div>
</div>
<!-- Карточка "Экскаватор-амфибия" -->
<div class="info-card amphibia-card animate-on-scroll">
<div class="card-icon">🐊</div>
<div class="card-content">
<h3>Экскаватор-амфибия (болотоход)</h3>
<p>Благодаря понтонной платформе работает на болотах, где не просматривается дно. Идеален для заболоченных участков, торфяников и обводнённых территорий.</p>
</div>
</div>
<!-- Блок с документами и лицензиями (сетка) -->
<h2 style="margin-top: 2rem;" class="animate-on-scroll">Необходимые документы и лицензии</h2>
<div class="license-grid">
<div class="license-item animate-left delay-1">
<span class="license-icon">🏛️</span>
<strong>Лицензия СРО</strong>
<p>Особо опасные виды работ (кроме атомной энергии). Специалисты включены в реестр НОСТРОЙ.</p>
</div>
<div class="license-item animate-right delay-2">
<span class="license-icon">♻️</span>
<strong>Лицензия на отходы IIV класса</strong>
<p>Сбор, транспортировка, утилизация, обезвреживание. № 066№00783 от 13.09.2018г.</p>
</div>
<div class="license-item animate-left delay-3">
<span class="license-icon">🔩</span>
<strong>Лицензия на лом металлов</strong>
<p>Заготовка, хранение, переработка, реализация лома чёрных и цветных металлов. № ЛМ 000092 от 31.10.2018г.</p>
</div>
</div>
<!-- Сертификаты в виде бейджей -->
<div class="cert-badge-row">
<div class="badge-large animate-scale delay-1">📋 ГОСТ Р ИСО 9001:2015</div>
<div class="badge-large animate-scale delay-2">🛡️ OHSAS 18001:2007</div>
<div class="badge-large animate-scale delay-3">🌿 ГОСТ Р ИСО 14001-2016</div>
</div>
<!-- Дополнительный блок об опыте -->
<div class="note animate-on-scroll">
<p>Высококвалифицированные специалисты имеют опыт работ в районах Крайнего Севера. На условиях подряда возможен расчёт трубой за услуги демонтажа. Будем рады взаимовыгодному сотрудничеству!</p>
</div>
</div>
</main>
</body>
</html>

View File

@@ -1,85 +0,0 @@
// Файл feedback.js кнопка обратной связи и форма отправки заявки
(function() {
// Создаём плавающую кнопку
const btn = document.createElement('button');
btn.textContent = '✉️ Обратная связь';
btn.className = 'feedback-btn';
document.body.appendChild(btn);
// Создаём модальное окно (изначально скрыто)
const modal = document.createElement('div');
modal.className = 'feedback-modal';
modal.style.display = 'none';
modal.innerHTML = `
<div class="feedback-modal-content">
<span class="feedback-close">&times;</span>
<h3>Оставить заявку</h3>
<form id="feedback-form">
<label>Фамилия <input type="text" name="lastname" placeholder="Иванов"></label>
<label>Имя <input type="text" name="firstname" placeholder="Иван"></label>
<label>Отчество <input type="text" name="middlename" placeholder="Иванович"></label>
<label>ИНН компании <span class="required">*</span> <input type="text" name="inn" required></label>
<label>Номер телефона <span class="required">*</span> <input type="tel" name="phone" required></label>
<label>Email <input type="email" name="email" placeholder="mail@example.com"></label>
<label>Запрос <textarea name="message" rows="4" placeholder="Опишите вашу задачу..."></textarea></label>
<button type="submit">Отправить заявку</button>
</form>
</div>
`;
document.body.appendChild(modal);
// Элементы управления
const closeSpan = modal.querySelector('.feedback-close');
const form = document.getElementById('feedback-form');
// Открытие модального окна
btn.onclick = () => {
modal.style.display = 'flex';
};
// Закрытие
closeSpan.onclick = () => {
modal.style.display = 'none';
};
window.onclick = (e) => {
if (e.target === modal) modal.style.display = 'none';
};
// Отправка формы
form.onsubmit = async (e) => {
e.preventDefault();
const formData = new FormData(form);
const data = {
lastname: formData.get('lastname') || '',
firstname: formData.get('firstname') || '',
middlename: formData.get('middlename') || '',
inn: formData.get('inn'),
phone: formData.get('phone'),
email: formData.get('email') || '',
message: formData.get('message') || '',
date: new Date().toISOString()
};
// Проверка обязательных полей
if (!data.inn || !data.phone) {
alert('Пожалуйста, заполните ИНН компании и номер телефона.');
return;
}
try {
const response = await fetch('/api/request', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
if (response.ok) {
alert('Спасибо! Ваша заявка принята. Мы свяжемся с вами в ближайшее рабочее время.');
form.reset();
modal.style.display = 'none';
} else {
const err = await response.json();
alert('Ошибка: ' + (err.error || 'не удалось отправить заявку'));
}
} catch (err) {
alert('Ошибка соединения. Попробуйте позже.');
}
};
})();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

View File

@@ -1,98 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Парк техники | СТС-Авто</title>
<link rel="stylesheet" href="/style.css">
<script src="/seo.js" defer></script>
<script src="/nav.js" defer></script>
<script src="/footer.js" defer></script>
<script src="/feedback.js" defer></script>
<script src="/common.js" defer></script>
</head>
<body>
<header>
<div class="container header-inner">
<div class="logo">
<a href="/">
<h1>СТС-Авто</h1>
<p>демонтаж нефтегазопроводов по России</p>
</a>
</div>
<div class="contacts-header"></div>
</div>
<div id="nav-container" class="container"></div>
</header>
<main>
<div class="container">
<div class="card animate-on-scroll">
<h1>Парк техники</h1>
<p>Компания имеет собственный парк современной строительной спецтехники. <strong>Вся техника не старше 5 лет</strong>, регулярно обновляется и обслуживается. Парк насчитывает порядка <strong>40 единиц</strong> специализированной техники.</p>
<div class="stats-row">
<div class="stat-card animate-scale delay-1">40+ единиц техники</div>
<div class="stat-card animate-scale delay-2">1000 км демонтажа ежегодно</div>
<div class="stat-card animate-scale delay-3">≤5 лет возраст техники</div>
</div>
<h2 class="animate-on-scroll">Виды техники</h2>
<div class="equipment-grid">
<div class="equip-item animate-left delay-1">
<span class="equip-icon">🚜</span>
<div class="equip-info">
<strong>Экскаваторы</strong>
<p>Колесные и гусеничные, различной мощности для работы в любых грунтах</p>
</div>
</div>
<div class="equip-item animate-right delay-2">
<span class="equip-icon">🚛</span>
<div class="equip-info">
<strong>Трактора</strong>
<p>Бульдозеры, трубоукладчики, тракторы для подготовительных работ</p>
</div>
</div>
<div class="equip-item animate-left delay-3">
<span class="equip-icon">🏗️</span>
<div class="equip-info">
<strong>Краны</strong>
<p>Автокраны для погрузки и монтажа секций труб</p>
</div>
</div>
<div class="equip-item animate-right delay-4">
<span class="equip-icon">🚚</span>
<div class="equip-info">
<strong>Самосвалы</strong>
<p>Для вывоза демонтированных труб и грунта</p>
</div>
</div>
<div class="equip-item animate-left delay-5">
<span class="equip-icon">🚛</span>
<div class="equip-info">
<strong>Тралы</strong>
<p>Низкорамные тралы для перевозки тяжелой техники между объектами</p>
</div>
</div>
</div>
<h2 class="animate-on-scroll">Экскаватор-амфибия (болотоход)</h2>
<div class="amphibian-card animate-on-scroll">
<div class="amphibian-icon">🐊</div>
<div class="amphibian-content">
<p>Работы проводятся как на твердом грунте, так и на заболоченных участках с применением <strong>экскаватора-амфибии (болотохода)</strong>. Благодаря понтонной платформе техника работает на болотах, где не просматривается дно.</p>
<p>Экскаватор-амфибия позволяет выполнять демонтаж трубопроводов в самых труднодоступных местах: торфяники, обводненные участки, поймы рек.</p>
</div>
</div>
<h2 class="animate-on-scroll">Рекультивация земель</h2>
<p class="animate-on-scroll">По окончании работ по демонтажу участка нефтепровода выполняется техническая рекультивация нарушенных при производстве земель. Восстанавливаем плодородный слой, планируем территорию, обеспечиваем экологическую безопасность.</p>
<div class="note animate-on-scroll">
<p><strong>Ежегодный объем демонтажа трубопроводов, выполняемый нашей организацией, составляет 1000 км.</strong> Собственная техника позволяет работать без простоев и привлечения субподрядчиков.</p>
</div>
</div>
</div>
</main>
</body>
</html>

View File

@@ -1,79 +0,0 @@
// Файл footer.js динамическая генерация подвала сайта и добавление изображения техники в шапку
document.addEventListener('DOMContentLoaded', () => {
// ----- 1. Вставка изображения техники в шапку (на всех страницах) -----
function addFleetImageToHeader() {
const headerInner = document.querySelector('.header-inner');
if (!headerInner) return;
if (document.querySelector('.header-fleet-image')) return;
const logo = headerInner.querySelector('.logo');
if (!logo) return;
const fleetDiv = document.createElement('div');
fleetDiv.className = 'header-fleet-image';
fleetDiv.style.width = '20%';
fleetDiv.style.maxWidth = 'none';
fleetDiv.style.margin = '0 20px';
fleetDiv.innerHTML = `
<img src="/fleet-all"
alt="Весь парк техники СТС-Авто: экскаваторы, тракторы, краны, самосвалы, тралы, экскаватор-амфибия"
title="Наша техника для демонтажа трубопроводов"
style="width: 100%; height: auto; border-radius: 16px; box-shadow: 0 4px 12px rgba(0,0,0,0.1);">
`;
logo.insertAdjacentElement('afterend', fleetDiv);
}
addFleetImageToHeader();
// ----- 2. Генерация футера с улучшенной структурой -----
if (document.getElementById('dynamic-footer')) return;
const footer = document.createElement('footer');
footer.id = 'dynamic-footer';
footer.innerHTML = `
<div class="container">
<div class="footer-grid">
<div>
<h4>Контакты</h4>
<p>📍 <span id="footer-address"></span></p>
<p><span id="footer-phones"></span></p>
<p>✉️ <span id="footer-email"></span></p>
</div>
<div>
<h4>Деятельность</h4>
<p>Демонтаж нефтегазопроводов по России</p>
<p>Рекультивация земель, вывоз труб</p>
</div>
</div>
<div id="disclaimer-text" class="disclaimer"></div>
</div>
`;
// Добавляем стили для ссылок в футере (чтобы они были красивыми и кликабельными)
const footerStyles = document.createElement('style');
footerStyles.textContent = `
footer a {
color: #a0c4e2;
text-decoration: none;
transition: color 0.2s;
}
footer a:hover {
color: #e67e22;
text-decoration: underline;
}
#footer-phones a {
display: inline-block;
margin-bottom: 6px;
line-height: 1.4;
}
`;
document.head.appendChild(footerStyles);
const main = document.querySelector('main');
if (main) {
main.insertAdjacentElement('afterend', footer);
} else {
document.body.appendChild(footer);
}
});

View File

@@ -1,114 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>СТС-Авто Демонтаж и капремонт нефтегазопроводов по России</title>
<link rel="stylesheet" href="/style.css">
<script src="/seo.js" defer></script>
<script src="/nav.js" defer></script>
<script src="/footer.js" defer></script>
<script src="/feedback.js" defer></script>
<script src="/common.js" defer></script>
</head>
<body>
<header>
<div class="container header-inner">
<div class="logo">
<a href="/">
<h1>СТС-Авто</h1>
<p>демонтаж нефтегазопроводов по России</p>
</a>
</div>
<div class="contacts-header"></div>
</div>
<div id="nav-container" class="container"></div>
</header>
<main>
<div class="container">
<!-- Герой-блок -->
<div class="hero-main animate-on-scroll">
<h1>Профессиональный демонтаж и капремонт трубопроводов</h1>
<p class="hero-subtitle">Нефтегазопроводы, водоводы, системы мелиорации любой сложности и в любых условиях</p>
<div class="hero-stats">
<div class="hero-stat animate-scale delay-1">40+ единиц техники</div>
<div class="hero-stat animate-scale delay-2">1000 км демонтажа в год</div>
<div class="hero-stat animate-scale delay-3">≤5 лет возраст техники</div>
</div>
</div>
<!-- Услуги (карточки-ссылки) -->
<h2 style="text-align: center;" class="animate-on-scroll">Наши ключевые услуги</h2>
<div class="services-grid">
<a href="/demontazh" class="service-card animate-left delay-1">
<div class="service-icon">🔧</div>
<h3>Демонтаж и капремонт трубопроводов</h3>
<p>Извлечение трубы, резка, погрузка, доставка. Работаем на твёрдых и заболоченных грунтах.</p>
</a>
<a href="/ustranenie" class="service-card animate-on-scroll delay-2">
<div class="service-icon">🛠️</div>
<h3>Устранение дефектов (КМТ)</h3>
<p>Композитно-муфтовая технология ремонта магистральных нефтепроводов без остановки перекачки.</p>
</a>
<a href="/fleet" class="service-card animate-right delay-3">
<div class="service-icon">🚜</div>
<h3>Парк современной техники</h3>
<p>Экскаваторы, тракторы, краны, самосвалы, тралы, экскаватор-амфибия. Вся техника до 5 лет.</p>
</a>
<a href="/personnel" class="service-card animate-left delay-4">
<div class="service-icon">👷</div>
<h3>Аттестованный персонал</h3>
<p>Опыт работы в районах Крайнего Севера. Допуски к особо опасным объектам, реестр НОСТРОЙ.</p>
</a>
</div>
<!-- Лицензии и сертификаты (кратко) -->
<div class="card animate-on-scroll">
<h2>Лицензии и сертификаты</h2>
<div class="licenses-short">
<div class="license-short animate-scale delay-1">🏛️ Лицензия СРО (особо опасные виды)</div>
<div class="license-short animate-scale delay-2">♻️ Лицензия на отходы IIV класса</div>
<div class="license-short animate-scale delay-3">🔩 Лицензия на лом чёрных и цветных металлов</div>
<div class="license-short animate-scale delay-4">📋 Сертификат ISO 9001:2015</div>
<div class="license-short animate-scale delay-5">🛡️ OHSAS 18001:2007</div>
<div class="license-short animate-scale delay-1">🌿 ISO 14001:2016</div>
</div>
<div style="text-align: center; margin-top: 1rem;">
<a href="/certificates" class="btn-outline">Подробнее о сертификатах →</a>
<a href="/license" class="btn-outline">Лицензия СРО</a>
</div>
</div>
<!-- О компании -->
<div class="card animate-on-scroll">
<h2>О компании</h2>
<p>Наша организация выполнит работы по демонтажу и капремонту трубопровода, недействующие и отработанные нефтегазопроводы, водоводы, системы мелиорации. Компания имеет собственный парк современной (вся техника не старше 5 лет) строительной спецтехники.</p>
<p>Работы проводятся как на твердом грунте, так и на заболоченных участках с применением экскаватора-амфибии (болотоход). Высококвалифицированные специалисты имеют опыт работ в районах Крайнего Севера.</p>
<p><strong>На условиях подряда возможен расчёт трубой за услуги демонтажа.</strong> Будем рады взаимовыгодному сотрудничеству!</p>
</div>
<!-- Рекультивация земель -->
<div class="card animate-on-scroll">
<h2>Рекультивация земель</h2>
<p>Нефтезагрязненных и/или засоленных земель. Устройство лежневого настила, рекультивация земельных участков, расчистка от мелколесья, строительство вдольтрассового проезда, работы по расчистке охранной зоны от древесно-кустарниковой растительности.</p>
</div>
<!-- CTA блок -->
<div class="cta-block animate-on-scroll">
<h3>Нужен демонтаж или ремонт трубопровода?</h3>
<p>Оставьте заявку наши специалисты свяжутся с вами в ближайшее рабочее время</p>
<button class="cta-button" id="cta-feedback-btn">✉️ Оставить заявку</button>
</div>
</div>
</main>
<script>
// Привязка кнопки CTA к открытию модального окна обратной связи
document.getElementById('cta-feedback-btn')?.addEventListener('click', () => {
const modal = document.querySelector('.feedback-modal');
if (modal) modal.style.display = 'flex';
});
</script>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Лицензия СРО особо опасные виды работ | СТС-Авто</title>
<link rel="stylesheet" href="/style.css">
<script src="/seo.js" defer></script>
<script src="/nav.js" defer></script>
<script src="/footer.js" defer></script>
<script src="/feedback.js" defer></script>
<script src="/common.js" defer></script>
</head>
<body>
<header>
<div class="container header-inner">
<div class="logo">
<a href="/">
<h1>СТС-Авто</h1>
<p>демонтаж нефтегазопроводов по России</p>
</a>
</div>
<div class="contacts-header"></div>
</div>
<div id="nav-container" class="container"></div>
</header>
<main>
<div class="container">
<!-- Герой-блок -->
<div class="hero-section animate-on-scroll">
<h1>Лицензия СРО</h1>
<p class="hero-subtitle">Особо опасные виды работ (кроме объектов использования атомной энергии)</p>
</div>
<!-- Введение -->
<div class="card animate-on-scroll">
<p>Специалисты обучены и имеют допуски к особо опасным видам работ, сведения о которых включены в <strong>национальный реестр специалистов в области строительства НОСТРОЙ</strong>.</p>
<p>Мы имеем все необходимые документы для выполнения работ на следующих типах объектов.</p>
</div>
<!-- Сетка категорий объектов (1-10) -->
<h2 class="animate-on-scroll">К особо опасным и технически сложным объектам относятся:</h2>
<div class="objects-grid">
<div class="object-card animate-left delay-1">⚛️ Объекты использования атомной энергии</div>
<div class="object-card animate-right delay-2">💧 Гидротехнические сооружения I и II классов</div>
<div class="object-card animate-left delay-3">📡 Линейно-кабельные сооружения связи</div>
<div class="object-card animate-right delay-4">⚡ ЛЭП 330 кВ и более</div>
<div class="object-card animate-left delay-1">🛰️ Объекты космической инфраструктуры</div>
<div class="object-card animate-right delay-2">✈️ Аэропорты и объекты авиаинфраструктуры</div>
<div class="object-card animate-left delay-3">🚆 Объекты инфраструктуры ж/д транспорта общего пользования</div>
<div class="object-card animate-right delay-4">🚇 Метрополитены</div>
<div class="object-card animate-left delay-5">⚓ Морские порты (кроме спортивных и прогулочных)</div>
<div class="object-card animate-right delay-1">🔥 Тепловые электростанции мощностью ≥150 МВт</div>
</div>
<!-- Блок "Опасные производственные объекты" с подпунктами -->
<div class="hazardous-block animate-on-scroll">
<div class="hazardous-header">
<span class="hazardous-icon">⚠️</span>
<h3>Опасные производственные объекты, на которых:</h3>
</div>
<div class="hazardous-list">
<div class="hazard-item animate-left delay-1">
<span class="hazard-letter">а)</span>
<span>получаются, используются, перерабатываются, образуются, хранятся, транспортируются, уничтожаются опасные вещества в количествах, превышающих предельные. Такие вещества и их предельные количества указаны в приложениях 1 и 2 к Федеральному закону от 21 июля 1997 года № 116-ФЗ «О промышленной безопасности опасных производственных объектов». При этом не относятся к особо опасным и технически сложным объектам газораспределительные системы, на которых используется, хранится или транспортируется природный газ под давлением до 1,2 мегапаскаля включительно или сжиженный углеводородный газ под давлением до 1,6 мегапаскаля включительно;</span>
</div>
<div class="hazard-item animate-right delay-2">
<span class="hazard-letter">б)</span>
<span>получаются расплавы черных и цветных металлов и сплавы на основе этих расплавов;</span>
</div>
<div class="hazard-item animate-left delay-3">
<span class="hazard-letter">в)</span>
<span>ведутся горные работы, работы по обогащению полезных ископаемых, а также работы в подземных условиях;</span>
</div>
<div class="hazard-item animate-right delay-4">
<span class="hazard-letter">г)</span>
<span>используются стационарно установленные канатные дороги и фуникулеры.</span>
</div>
</div>
</div>
<!-- Блок с итоговой нотой -->
<div class="note animate-on-scroll">
<p>Наличие лицензии СРО и допусков НОСТРОЙ позволяет нам выполнять полный комплекс работ по демонтажу и капитальному ремонту трубопроводов, включая объекты нефтегазовой отрасли, магистральные нефтепроводы, подводные переходы и другие особо опасные объекты.</p>
</div>
</div>
</main>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -1,109 +0,0 @@
document.addEventListener('DOMContentLoaded', () => {
const navContainer = document.getElementById('nav-container');
if (!navContainer) return;
// ----- 1. Создание структуры меню (как было) -----
const mainMenu = [
{ href: '/demontazh', title: 'Демонтаж и капремонт трубопроводов' },
{ href: '/ustranenie', title: 'Устранение дефектов (КМТ)' }
];
const extraMenu = [
{ href: '/personnel', title: 'Аттестованный персонал' },
{ href: '/fleet', title: 'Парк техники (не старше 5 лет)' },
{ href: '/certificates', title: 'ИСО 9001, OHSAS 18001, ИСО 14001' },
{ href: '/license', title: 'Лицензия СРО' },
{ href: '/waste-license', title: 'Лицензия на отходы IIV класса' },
{ href: '/scrap-license', title: 'Лицензия на лом чёрных и цветных металлов' }
];
const currentPath = window.location.pathname;
const isActive = (href) => {
if (href === '/' && currentPath === '/') return true;
if (href !== '/' && currentPath.startsWith(href)) return true;
return false;
};
const nav = document.createElement('nav');
nav.className = 'main-nav';
const ul = document.createElement('ul');
ul.className = 'nav-buttons';
mainMenu.forEach(item => {
const li = document.createElement('li');
const a = document.createElement('a');
a.href = item.href;
a.textContent = item.title;
if (isActive(item.href)) a.classList.add('active');
li.appendChild(a);
ul.appendChild(li);
});
nav.appendChild(ul);
const extraDiv = document.createElement('div');
extraDiv.className = 'extra-nav';
const extraTitle = document.createElement('div');
extraTitle.className = 'extra-title';
extraTitle.textContent = 'Наши преимущества, сертификаты и лицензии:';
extraDiv.appendChild(extraTitle);
const extraButtons = document.createElement('div');
extraButtons.className = 'extra-buttons';
extraMenu.forEach(item => {
const a = document.createElement('a');
a.href = item.href;
a.textContent = item.title;
a.className = 'extra-btn';
extraButtons.appendChild(a);
});
extraDiv.appendChild(extraButtons);
nav.appendChild(extraDiv);
navContainer.appendChild(nav);
// ----- 2. Стили для плавного скрытия всего контейнера -----
const style = document.createElement('style');
style.textContent = `
#nav-container {
transition: opacity 0.3s ease, visibility 0.3s ease, padding 0.3s ease, margin 0.3s ease;
opacity: 1;
visibility: visible;
}
#nav-container.hidden-nav {
opacity: 0;
visibility: hidden;
padding: 0 !important;
margin: 0 !important;
height: 0 !important;
overflow: hidden;
}
`;
document.head.appendChild(style);
// ----- 3. Логика: скрываем при скролле вниз, показываем только в самом верху -----
let lastScrollY = window.scrollY;
let ticking = false;
const handleScroll = () => {
const currentScrollY = window.scrollY;
const direction = currentScrollY > lastScrollY ? 'down' : 'up';
if (direction === 'down') {
// При движении вниз — скрываем навигацию
navContainer.classList.add('hidden-nav');
} else if (direction === 'up') {
// При движении вверх — показываем только если мы в самом верху
if (currentScrollY === 0) {
navContainer.classList.remove('hidden-nav');
}
}
lastScrollY = currentScrollY;
ticking = false;
};
window.addEventListener('scroll', () => {
if (!ticking) {
requestAnimationFrame(handleScroll);
ticking = true;
}
});
});

View File

@@ -1,70 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Аттестованный персонал | СТС-Авто</title>
<link rel="stylesheet" href="/style.css">
<script src="/seo.js" defer></script>
<script src="/nav.js" defer></script>
<script src="/footer.js" defer></script>
<script src="/feedback.js" defer></script>
<script src="/common.js" defer></script>
</head>
<body>
<header>
<div class="container header-inner">
<div class="logo">
<a href="/">
<h1>СТС-Авто</h1>
<p>демонтаж нефтегазопроводов по России</p>
</a>
</div>
<div class="contacts-header"></div>
</div>
<div id="nav-container" class="container"></div>
</header>
<main>
<div class="container">
<div class="card animate-on-scroll">
<h1>Аттестованный персонал</h1>
<p>Высококвалифицированные специалисты нашей фирмы имеют все необходимые допуски и специализацию для того, чтобы работать на месторождениях нефти и газа. Значительный опыт работ по демонтажу нефтегазопроводов в районах крайнего севера.</p>
<div class="personnel-grid">
<div class="personnel-item animate-left delay-1">
<div class="personnel-icon">👷‍♂️</div>
<h3>Инженерно-технический состав</h3>
<p>Специалисты с высшим профильным образованием, аттестованные в области промышленной безопасности. Руководители работ имеют стаж от 10 лет на объектах нефтегазового комплекса.</p>
</div>
<div class="personnel-item animate-right delay-2">
<div class="personnel-icon">🛠️</div>
<h3>Рабочий персонал</h3>
<p>Машинисты экскаваторов, крановщики, сварщики, резчики труб все имеют действующие удостоверения, допуски к работе на опасных объектах, прошли обучение по охране труда.</p>
</div>
<div class="personnel-item animate-left delay-3">
<div class="personnel-icon">❄️</div>
<h3>Опыт работы в условиях Крайнего Севера</h3>
<p>Наши бригады работали на месторождениях Ямала, Таймыра, в условиях вечной мерзлоты, при низких температурах и в заболоченной местности.</p>
</div>
<div class="personnel-item animate-right delay-4">
<div class="personnel-icon">📋</div>
<h3>Допуски и аттестация</h3>
<p>Все специалисты включены в национальный реестр специалистов НОСТРОЙ. Имеются допуски к особо опасным видам работ, удостоверения по промышленной безопасности.</p>
</div>
</div>
<div class="safety-cert animate-on-scroll">
<h2>Система менеджмента безопасности труда и охраны здоровья</h2>
<p>Мы имеем сертификат <strong>OHSAS 18001:2007</strong> «Системы менеджмента профессионального здоровья и безопасности». Это гарантирует, что наши сотрудники работают в безопасных условиях, регулярно проходят медосмотры, инструктажи, обеспечены средствами индивидуальной защиты.</p>
<p>Все работы по демонтажу и капремонту трубопроводов выполняются с соблюдением строгих норм охраны труда, что особенно важно при работе на удалённых и опасных объектах.</p>
</div>
<div class="note animate-on-scroll">
<p>Мы гордимся своим коллективом это команда профессионалов, способная решать задачи любой сложности в любых климатических условиях. Наши сотрудники регулярно повышают квалификацию и проходят независимую аттестацию.</p>
</div>
</div>
</div>
</main>
</body>
</html>

View File

@@ -1,66 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Лицензия на лом черных и цветных металлов | СТС-Авто</title>
<link rel="stylesheet" href="/style.css">
<script src="/seo.js" defer></script>
<script src="/nav.js" defer></script>
<script src="/footer.js" defer></script>
<script src="/feedback.js" defer></script>
<script src="/common.js" defer></script>
</head>
<body>
<header>
<div class="container header-inner">
<div class="logo">
<a href="/">
<h1>СТС-Авто</h1>
<p>демонтаж нефтегазопроводов по России</p>
</a>
</div>
<div class="contacts-header"></div>
</div>
<div id="nav-container" class="container"></div>
</header>
<main>
<div class="container">
<div class="card animate-on-scroll">
<h1>Лицензия на лом черных и цветных металлов</h1>
<p>Наша организация имеет лицензию на осуществление деятельности по <strong>заготовке, хранению, переработке и реализации лома черных и цветных металлов</strong>.</p>
<div class="license-details animate-on-scroll">
<div class="license-number">
<strong>Номер лицензии:</strong> № ЛМ 000092
</div>
<div class="license-date">
<strong>Дата выдачи:</strong> 31 октября 2018 г.
</div>
<div class="license-org">
<strong>Выдана:</strong> Министерство промышленности и торговли РФ
</div>
</div>
<div class="license-image-container animate-img">
<img src="https://sts-avto.com/ЛОМ1.jpg" alt="Лицензия на лом черных и цветных металлов СТС-Авто" class="license-img">
<p class="image-caption">Оригинал лицензии на заготовку, хранение, переработку и реализацию лома черных и цветных металлов</p>
</div>
<h2 class="animate-on-scroll">Что даёт нам эта лицензия?</h2>
<ul class="animate-on-scroll">
<li>Законное право на сбор и заготовку лома черных и цветных металлов, образующегося при демонтаже трубопроводов.</li>
<li>Возможность переработки и подготовки лома к реализации.</li>
<li>Хранение металлолома на специализированных площадках.</li>
<li>Реализацию лома металлов на законных основаниях.</li>
</ul>
<div class="note animate-on-scroll">
<p>Благодаря данной лицензии мы можем предлагать заказчикам услуги демонтажа с возможностью <strong>расчёта трубой</strong> или частичной оплаты за счёт стоимости полученного лома. Это взаимовыгодное сотрудничество при демонтаже отработанных нефтегазопроводов.</p>
</div>
</div>
</div>
</main>
</body>
</html>

View File

@@ -1,72 +0,0 @@
(function() {
const path = window.location.pathname;
let title = 'СТС-Авто';
let description = 'Демонтаж и капремонт нефтегазопроводов по России. Собственный парк техники, лицензии СРО, работа в любых условиях.';
let keywords = 'демонтаж трубопроводов, капремонт, нефтегазопроводы, СРО, рекультивация';
if (path === '/' || path === '/index.html') {
title = 'СТС-Авто Демонтаж и капремонт нефтегазопроводов';
description = 'Профессиональный демонтаж нефтегазопроводов, рекультивация земель, вывоз труб. Лицензии СРО, собственная спецтехника.';
} else if (path === '/demontazh') {
title = 'Демонтаж и капремонт трубопроводов | СТС-Авто';
description = 'Работы по демонтажу и капитальному ремонту трубопроводов любой сложности. Извлечение, резка, вывоз. Лицензии и сертификаты.';
keywords = 'демонтаж труб, капремонт трубопроводов, извлечение трубы';
} else if (path === '/ustranenie') {
title = 'Устранение дефектов на нефтепроводах (КМТ) | СТС-Авто';
description = 'Композитно-муфтовая технология ремонта магистральных нефтепроводов. Устранение коррозии, потеря металла. Сертификат ИСО 9001.';
keywords = 'КМТ, композитная муфта, ремонт нефтепроводов, дефекты труб';
} else if (path === '/license') {
title = 'Лицензия СРО на особо опасные виды работ | СТС-Авто';
description = 'Лицензия СРО для работы на особо опасных объектах: гидротехнические сооружения, ЛЭП 330 кВ, аэропорты, тепловые электростанции, опасные производственные объекты. Допуски НОСТРОЙ.';
keywords = 'лицензия СРО, особо опасные виды работ, допуски НОСТРОЙ, гидротехнические сооружения, опасные производственные объекты';
}else if (path === '/certificates') {
title = 'Сертификаты ISO 9001, OHSAS 18001, ISO 14001 | СТС-Авто';
description = 'Сертификаты системы менеджмента качества, охраны труда и экологического менеджмента. ГОСТ Р ИСО 9001:2015, OHSAS 18001:2007, ГОСТ Р ИСО 14001-2016.';
keywords = 'сертификаты ISO 9001, OHSAS 18001, ISO 14001, менеджмент качества, экологический менеджмент, безопасность труда';
}else if (path === '/personnel') {
title = 'Аттестованный персонал для работ на нефтегазопроводах | СТС-Авто';
description = 'Высококвалифицированные специалисты с допусками для работы на месторождениях, в условиях Крайнего Севера. Сертификат OHSAS 18001:2007.';
keywords = 'аттестованный персонал, допуски, крайний север, нефтегазопроводы, OHSAS 18001, безопасность труда';
}else if (path === '/fleet') {
title = 'Парк техники экскаваторы, краны, болотоходы | СТС-Авто';
description = 'Собственный парк спецтехники не старше 5 лет: экскаваторы, трактора, краны, самосвалы, тралы. Экскаватор-амфибия для работы на болотах. 1000 км демонтажа в год.';
keywords = 'парк техники, экскаватор амфибия, болотоход, демонтаж трубопроводов, спецтехника, рекультивация';
}else if (path === '/waste-license') {
title = 'Лицензия на отходы I-IV класса опасности | СТС-Авто';
description = 'Лицензия на сбор, транспортирование, утилизацию и обезвреживание отходов I-IV класса опасности. Номер 066№00783 от 13.09.2018. Экологическая безопасность при демонтаже трубопроводов.';
keywords = 'лицензия на отходы, отходы I-IV класса, утилизация отходов, обращение с отходами, Росприроднадзор';
}else if (path === '/scrap-license') {
title = 'Лицензия на лом черных и цветных металлов | СТС-Авто';
description = 'Лицензия на заготовку, хранение, переработку и реализацию лома черных и цветных металлов № ЛМ 000092 от 31.10.2018. Законная работа с металлоломом при демонтаже трубопроводов.';
keywords = 'лицензия на лом, черные металлы, цветные металлы, заготовка лома, переработка лома, реализация лома';
}
document.title = title;
// Мета-теги
let metaDesc = document.querySelector('meta[name="description"]');
if (!metaDesc) {
metaDesc = document.createElement('meta');
metaDesc.name = 'description';
document.head.appendChild(metaDesc);
}
metaDesc.content = description;
let metaKeys = document.querySelector('meta[name="keywords"]');
if (!metaKeys) {
metaKeys = document.createElement('meta');
metaKeys.name = 'keywords';
document.head.appendChild(metaKeys);
}
metaKeys.content = keywords;
// Для адаптивного вьюпорта (уже может быть в HTML, но добавим на всякий)
let viewport = document.querySelector('meta[name="viewport"]');
if (!viewport) {
viewport = document.createElement('meta');
viewport.name = 'viewport';
viewport.content = 'width=device-width, initial-scale=1.0';
document.head.appendChild(viewport);
}
})();

File diff suppressed because it is too large Load Diff

View File

@@ -1,97 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Устранение дефектов на нефтепроводах (КМТ) | СТС-Авто</title>
<link rel="stylesheet" href="/style.css">
<script src="/seo.js" defer></script>
<script src="/nav.js" defer></script>
<script src="/footer.js" defer></script>
<script src="/feedback.js" defer></script>
<script src="/common.js" defer></script>
</head>
<body>
<header>
<div class="container header-inner">
<div class="logo">
<a href="/">
<h1>СТС-Авто</h1>
<p>демонтаж нефтегазопроводов по России</p>
</a>
</div>
<div class="contacts-header"></div>
</div>
<div id="nav-container" class="container"></div>
</header>
<main>
<div class="container">
<!-- Герой-блок с заголовком -->
<div class="hero-section animate-on-scroll">
<h1>Устранение дефектов на секциях магистральных нефтепроводов</h1>
<p class="hero-subtitle">Метод выборочного ремонта <strong>Композитно-муфтовая технология (КМТ)</strong></p>
</div>
<!-- Две колонки: технология + преимущества -->
<div class="two-columns">
<div class="col animate-left">
<div class="icon-block">🔧</div>
<h2>Как работает КМТ?</h2>
<p><strong>Стальная оболочка</strong>, не приваренная к стенке трубопровода, заполняется <strong>композитным составом</strong>. Устанавливается по специальной композитно-муфтовой технологии без остановки перекачки нефти.</p>
<p>Технология позволяет восстановить проектную прочность трубы при локальных дефектах.</p>
</div>
<div class="col animate-right">
<div class="icon-block"></div>
<h2>Преимущества КМТ</h2>
<ul>
<li>Безогневой метод безопасен для взрывопожароопасных объектов</li>
<li>Не требует вывода трубопровода из эксплуатации</li>
<li>Высокая коррозионная стойкость</li>
<li>Срок службы муфты не менее 30 лет</li>
<li>Сертифицировано для магистральных нефтепроводов</li>
</ul>
</div>
</div>
<!-- Блок "Потеря металла (коррозионная)" -->
<div class="info-card warning-card animate-on-scroll">
<div class="card-icon">⚠️</div>
<div class="card-content">
<h3>Потеря металла (коррозионная)</h3>
<p>Локальное уменьшение толщины стенки трубы в результате коррозионного повреждения. КМТ эффективно восстанавливает целостность даже при значительной потере металла.</p>
</div>
</div>
<!-- Блок "Дефекты, подлежащие устранению" -->
<div class="info-card animate-on-scroll">
<div class="card-icon">📋</div>
<div class="card-content">
<h3>Какие дефекты устраняются?</h3>
<ul>
<li>Дефекты на трубопроводах линейной части и подводных переходах МН должны быть устранены до окончания предельного срока эксплуатации дефекта, указанного в отчетах по диагностике.</li>
<li>Дефекты, ограничивающие проектное рабочее давление, снижающие пропускную способность нефтепровода, должны быть устранены в первоочередном порядке.</li>
</ul>
</div>
</div>
<!-- Блок с сертификатами и лицензией -->
<div class="cert-badge-row">
<div class="badge-large animate-scale delay-1">
<span class="badge-icon">📜</span>
<span>Сертификат <strong>ИСО 9001:2015</strong></span>
</div>
<div class="badge-large animate-scale delay-2">
<span class="badge-icon">🏅</span>
<span>Лицензия <strong>СРО</strong> на особо опасные виды работ</span>
</div>
</div>
<!-- Дополнительная нота -->
<div class="note animate-on-scroll">
<p>Наши специалисты прошли обучение по композитно-муфтовой технологии и имеют опыт установки КМТ на объектах ПАО «Транснефть» и других крупных нефтяных компаний.</p>
</div>
</div>
</main>
</body>
</html>

View File

@@ -1,66 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Лицензия на отходы I-IV класса опасности | СТС-Авто</title>
<link rel="stylesheet" href="/style.css">
<script src="/seo.js" defer></script>
<script src="/nav.js" defer></script>
<script src="/footer.js" defer></script>
<script src="/feedback.js" defer></script>
<script src="/common.js" defer></script>
</head>
<body>
<header>
<div class="container header-inner">
<div class="logo">
<a href="/">
<h1>СТС-Авто</h1>
<p>демонтаж нефтегазопроводов по России</p>
</a>
</div>
<div class="contacts-header"></div>
</div>
<div id="nav-container" class="container"></div>
</header>
<main>
<div class="container">
<div class="card animate-on-scroll">
<h1>Лицензия на отходы IIV класса опасности</h1>
<p>Наша организация имеет лицензию на осуществление деятельности по сбору, транспортированию, обработке, утилизации, обезвреживанию, размещению отходов <strong>IIV класса опасности</strong>.</p>
<div class="license-details animate-on-scroll">
<div class="license-number">
<strong>Номер лицензии:</strong> 066№ 00783
</div>
<div class="license-date">
<strong>Дата выдачи:</strong> 13 сентября 2018 г.
</div>
<div class="license-org">
<strong>Выдана:</strong> Федеральная служба по надзору в сфере природопользования (Росприроднадзор)
</div>
</div>
<div class="license-image-container animate-img">
<img src="https://sts-avto.com/ОТХОДЫ1.jpg" alt="Лицензия на отходы I-IV класса опасности СТС-Авто" class="license-img">
<p class="image-caption">Оригинал лицензии на деятельность по обращению с отходами IIV класса опасности</p>
</div>
<h2 class="animate-on-scroll">Что даёт нам эта лицензия?</h2>
<ul class="animate-on-scroll">
<li>Законное право на сбор и транспортировку отходов, образующихся при демонтаже трубопроводов.</li>
<li>Возможность выполнять полный цикл утилизации и обезвреживания опасных отходов.</li>
<li>Гарантию экологической безопасности для заказчика.</li>
<li>Соответствие требованиям законодательства при работе на объектах нефтегазового комплекса.</li>
</ul>
<div class="note animate-on-scroll">
<p>Наличие данной лицензии подтверждает нашу ответственность при обращении с отходами демонтажа, включая нефтезагрязнённый грунт, остатки трубной изоляции, лом металлов и другие отходы IIV классов.</p>
</div>
</div>
</div>
</main>
</body>
</html>

View File

@@ -1,95 +0,0 @@
require('dotenv').config();
const express = require('express');
const path = require('path');
const fs = require('fs');
const app = express();
const PORT = process.env.PORT || 3000;
// Middleware
app.use(express.json());
app.use(express.static(path.join(__dirname, 'public')));
// API: получение данных из .env
app.get('/api/config', (req, res) => {
res.json({
address: process.env.ADDRESS,
email: process.env.EMAIL,
phones: process.env.PHONES ? process.env.PHONES.split(',').map(p => p.trim()) : [],
activity: process.env.ACTIVITY,
disclaimer1: process.env.DISCLAIMER1,
disclaimer2: process.env.DISCLAIMER2
});
});
// API: сохранение заявки в JSON-файл
const dataDir = path.join(__dirname, 'data');
const requestsFile = path.join(dataDir, 'requests.json');
// Убедимся, что папка data существует
if (!fs.existsSync(dataDir)) {
fs.mkdirSync(dataDir);
}
// Инициализируем файл, если его нет
if (!fs.existsSync(requestsFile)) {
fs.writeFileSync(requestsFile, JSON.stringify([], null, 2));
}
app.post('/api/request', (req, res) => {
const newRequest = req.body;
// Проверка обязательных полей на сервере
if (!newRequest.inn || !newRequest.phone) {
return res.status(400).json({ error: 'ИНН и телефон обязательны' });
}
try {
const data = fs.readFileSync(requestsFile, 'utf8');
const requests = JSON.parse(data);
// Назначаем новый ID (максимальный + 1)
const lastId = requests.length > 0 ? Math.max(...requests.map(r => r.id || 0)) : 0;
newRequest.id = lastId + 1;
newRequest.createdAt = new Date().toISOString();
requests.push(newRequest);
fs.writeFileSync(requestsFile, JSON.stringify(requests, null, 2));
res.status(201).json({ message: 'Заявка принята', id: newRequest.id });
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Ошибка сервера' });
}
});
// Маршруты страниц (без расширения .html)
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
});
app.get('/demontazh', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'demontazh.html'));
});
app.get('/ustranenie', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'ustranenie.html'));
});
app.get('/license', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'license.html'));
});
app.get('/certificates', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'certificates.html'));
});
app.get('/personnel', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'personnel.html'));
});
app.get('/fleet', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'fleet.html'));
});
app.get('/waste-license', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'waste-license.html'));
});
app.get('/scrap-license', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'scrap-license.html'));
});
app.get('/fleet-all', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'fleet-all.png'));
});
// Запуск сервера
app.listen(PORT, () => {
console.log(`Сервер запущен на http://localhost:${PORT}`);
});