/
diz
/
spec
Обзор
Документация
Войти
/
diz
/
spec
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
index.html
119 строк
6 KB
Dima
Шапка по design.md: компактные отступы (12/28/4), line-height 1.15 у заголовка, подзаголовок без max-width, фон шапки панели --panel-2; иконка сайта favicon.svg (фирменный градиент, листы BOT/TOP, строки таблицы, галочка сверки)
10 авг 2026, 22:07
10 авг 2026, 22:07
d31d309
Код
Авторство
О чём код?
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Сверка SMT</title> <link rel="icon" type="image/svg+xml" href="src/favicon.svg"> <link rel="stylesheet" href="src/style.css"> </head> <body> <header> <h1>Сверка SMT</h1> <p class="subtitle"> Загрузите «Спецификацию» (.xlsx) и листы питателей BOT / TOP (.docx) — приложение само определит тип каждого файла и заполнит листы «Сверка TOP» / «Сверка BOT» + столбец «Заказ» на листе «Спецификация». Обработка полностью локальная, в браузере. </p> </header> <!-- Заполнение шаблона Excel --> <section class="page"> <div class="subbar"> <span id="xls-progress" class="xls-progress" hidden></span> </div> <div class="xls-layout"> <div class="xls-form card"> <label class="drop-zone" id="drop-files"> <span class="file-head"> <span class="file-tag t-xlsx">xlsx + docx</span> </span> <input id="xls-files" type="file" accept=".xlsx,.docx" multiple> <span class="file-name" id="name-files">Перетащите файлы сюда или нажмите для выбора — типы определятся автоматически</span> <span class="file-assign" id="name-excel">Excel-шаблон (.xlsx): не выбран</span> <span class="file-assign" id="name-bot">BOT (.docx): не выбран</span> <span class="file-assign" id="name-top">TOP (.docx): не выбран</span> </label> <div class="file-row"> <label class="file-field"> <span class="file-label">Номер линии SMT для «Сверка BOT» (1, 2 или 3)</span> <input id="xls-line-bot" type="text" placeholder="например: 2" maxlength="1"> </label> <label class="file-field"> <span class="file-label">Номер линии SMT для «Сверка TOP» (1, 2 или 3)</span> <input id="xls-line-top" type="text" placeholder="например: 2" maxlength="1"> </label> </div> <div class="file-row"> <label class="file-field"> <span class="file-label">Этап для «Сверка BOT»</span> <input id="xls-stage-bot" type="text" placeholder="например: 26АВ0028011.3.2"> </label> <label class="file-field"> <span class="file-label">Этап для «Сверка TOP»</span> <input id="xls-stage-top" type="text" placeholder="например: 26АВ0028011.3.2"> </label> </div> <div class="xls-actions"> <button id="xls-run-btn" type="button" class="primary">Заполнить и подготовить файл</button> <button id="xls-download-btn" type="button" class="primary" disabled>Скачать результат</button> </div> <p class="xls-hint"> Всё можно перетащить в одно окно: <code>.xlsx</code> — шаблон, <code>.docx</code> с «BOT»/«бот» в имени — нижняя сторона, с «TOP»/«топ» — верхняя (документ без метки займёт первое свободное место). Программа строит листы «Сверка BOT» / «Сверка TOP» по установщикам 1–5 (F — лицевая, R — тыльная, трей — в начале тыльной стороны 5-го), пересчитывает «Заказ» на листе «Спецификация» по «Состав», сохраняет оформление и формулы исходного файла. Работает полностью оффлайн — библиотеки подключены локально из папки lib/. </p> </div> <div class="xls-log-wrap card"> <div class="pane-header"><span>Журнал</span></div> <div id="xls-log" class="xls-log"></div> </div> </div> </section> <!-- Оверлей глобального перетаскивания --> <div class="drop-overlay" id="drop-overlay"> <div class="drop-box"> Отпустите файлы — они распределятся автоматически <small>.xlsx — шаблон; .docx с «BOT»/«бот» — нижняя сторона, с «TOP»/«топ» — верхняя</small> </div> </div> <footer class="dim">Данные обрабатываются только на вашем устройстве — файлы никуда не отправляются.</footer> <script src="lib/jszip.min.js"></script> <script src="lib/xlsx.full.min.js"></script> <script src="lib/exceljs.min.js"></script> <script src="src/docx-parser.js"></script> <script src="src/spec-fill.js"></script> <script src="src/excel-fill.js"></script> <script> ExcelFillApp.init({ filesInput: document.getElementById("xls-files"), lineBotInput: document.getElementById("xls-line-bot"), lineTopInput: document.getElementById("xls-line-top"), stageBotInput: document.getElementById("xls-stage-bot"), stageTopInput: document.getElementById("xls-stage-top"), runBtn: document.getElementById("xls-run-btn"), downloadBtn: document.getElementById("xls-download-btn"), logBox: document.getElementById("xls-log"), progressEl: document.getElementById("xls-progress"), filesZone: document.getElementById("drop-files"), nameFilesEl: document.getElementById("name-files"), nameExcelEl: document.getElementById("name-excel"), nameTopEl: document.getElementById("name-top"), nameBotEl: document.getElementById("name-bot") }); </script> </body> </html>