mirror of
https://github.com/wasrusgen/zov-tech.git
synced 2026-06-03 15:24:48 +00:00
Backend: - Лист ClientNotes (auto-create через ensure_sheet) — колонки manager_tg_id, client_key, note, updated_at. - Ключ клиента: «p:7XXXXXXXXXX» если есть телефон ≥10 цифр, иначе «n:<имя в lower>». Привязан к менеджеру. - POST /api/client_note — без поля note читает текущую, с note — upsert (хард-кап 4000 символов). Frontend в карточке клиента (#/clients/client/<key>): - Новый блок «📝 Примечание» сверху над списком подборов - Textarea + дата обновления в meta - Кнопка «🎤 Диктовать» — Web Speech API (ru-RU) · interimResults показывает прямо во время речи · final-результаты добавляются к baseText · красная пульсация во время записи · graceful degrade если SR недоступен (Telegram WebApp на iOS) - Кнопка «Сохранить» → PUT в /api/client_note + статус «✓ сохранено» CSS: .client-note-block, .btn-mic, .btn-mic.rec (pulse animation), .note-status.ok / .err. Cache bust v=20260513y.
45 lines
4.1 KiB
HTML
45 lines
4.1 KiB
HTML
<!doctype html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, user-scalable=no">
|
||
<meta name="theme-color" content="#003E7E">
|
||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
|
||
<meta http-equiv="Pragma" content="no-cache">
|
||
<meta http-equiv="Expires" content="0">
|
||
<title>ЗОВ — Кабинет</title>
|
||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Geist:wght@400;500;600&family=Newsreader:ital,wght@0,400..600;1,400..600&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400;500&family=Cormorant+Garamond:ital,wght@1,400;1,500;1,600&display=swap">
|
||
<script src="https://telegram.org/js/telegram-web-app.js"></script>
|
||
<link rel="stylesheet" href="assets/styles.css?v=20260513y">
|
||
<link rel="stylesheet" href="assets/podbor.css?v=20260513y">
|
||
</head>
|
||
<body>
|
||
<!-- Splash — за пределами #app, render-функции его не смывают -->
|
||
<div class="loader splash" id="splash">
|
||
<svg class="loader-logo" viewBox="0 0 128 117" xmlns="http://www.w3.org/2000/svg" aria-label="ЗОВ">
|
||
<path d="M38.9357 44.8551C35.0934 46.5151 32.2412 48.1838 32.2412 48.1838L63.767 0L87.9468 35.8374C87.9468 35.8374 86.6265 35.0766 82.3187 34.6875C76.2759 34.1428 67.8802 35.5261 61.3381 37.0478C54.8213 38.5609 45.3171 42.0884 38.9357 44.8551Z"/>
|
||
<path d="M90.8406 40.4902L101.149 56.4679C101.149 56.4679 92.9733 55.0154 85.8642 55.5601C78.755 56.1048 59.0186 58.2836 59.0186 58.2836C59.0186 58.2836 75.5559 49.75 82.1319 46.2917C88.7079 42.8506 90.8406 40.4902 90.8406 40.4902Z"/>
|
||
<path d="M128 97.7108L108.264 67.3809C108.264 67.3809 108.086 71.3753 99.1995 76.4591C90.313 81.5429 84.2703 84.0848 72.7094 88.451C61.157 92.8085 49.4521 97.8924 49.4521 97.8924L128 97.7108Z"/>
|
||
<path d="M0 98.0718H35.0889C35.0889 98.0718 60.4535 88.1117 75.1458 80.6416C88.01 74.1053 96.7526 67.8197 94.586 63.393C92.9864 60.1248 85.0479 60.1248 75.5605 60.1248C67.9773 60.1248 59.3956 60.756 54.9354 60.6695C48.8333 60.5485 50.8476 59.8222 52.9803 58.3092C54.5545 57.1939 70.0339 48.3058 73.9609 45.9628C79.5298 42.6341 77.3377 41 74.7903 41.7868C70.8041 43.0145 57.9567 48.8678 44.627 57.0469C31.2888 65.2173 21.5137 73.7508 14.0491 80.8405C6.57597 87.9042 0 98.0718 0 98.0718Z"/>
|
||
<path d="M1.95514 105.926V102.84C1.95514 102.84 29.5709 102.658 32.77 102.658C35.9691 102.658 38.0426 104.37 38.0426 106.713C38.0426 109.073 35.3768 109.92 35.3768 109.92C35.3768 109.92 38.0426 110.776 38.0426 113.551C38.0426 115.427 36.68 117.001 32.77 117.001H1.77734V113.733H26.4903V111.736H11.3747V107.923H26.4903V105.969L1.95514 105.926Z"/>
|
||
<path d="M70.5301 113.322H52.8418V105.878H70.5301V113.322ZM76.7084 102.523H46.6636C43.5576 102.523 41.0186 105.117 41.0186 108.29V110.918C41.0186 114.091 43.5576 116.685 46.6636 116.685H76.7084C79.8144 116.685 82.3534 114.091 82.3534 110.918V108.29C82.3534 105.117 79.8229 102.523 76.7084 102.523Z"/>
|
||
<path d="M115.52 107.576H100.405V111.388H115.52V113.385H97.18V105.587L115.52 105.622V107.576ZM124.407 109.573C124.407 109.573 127.081 108.725 127.081 106.365C127.081 104.022 125.007 102.311 121.8 102.311H85.5684V116.662H121.8C125.71 116.662 127.081 115.088 127.081 113.212C127.081 110.437 124.407 109.573 124.407 109.573Z"/>
|
||
</svg>
|
||
<div class="loader-bar"></div>
|
||
<div class="loader-tagline">Сделано с душой!</div>
|
||
</div>
|
||
<main id="app"></main>
|
||
<script src="assets/icons.js?v=20260513y"></script>
|
||
<script src="assets/podbor.config.js?v=20260513y"></script>
|
||
<script src="assets/podbor.picts.js?v=20260513y"></script>
|
||
<script src="assets/podbor.js?v=20260513y"></script>
|
||
<script src="assets/clients.js?v=20260513y"></script>
|
||
<script src="assets/zamer-picts.js?v=20260513y"></script>
|
||
<script src="assets/measurements.js?v=20260513y"></script>
|
||
<script src="assets/request.js?v=20260513y"></script>
|
||
<script src="assets/app.js?v=20260513y"></script>
|
||
</body>
|
||
</html>
|