problems:diagnostics:coralclose
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| problems:diagnostics:coralclose [2025/10/28 15:59] – Вадим Мартовский | problems:diagnostics:coralclose [2026/07/31 12:15] (текущий) – Вадим Мартовский | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | < | + | ==== 🌊 Умная диагностика кораллов ==== |
| - | <div id=" | + | |
| - | <script> | + | <html><!-- 🌊 Умная диагностика кораллов |
| - | async function loadDiagnosis(url) { | + | < |
| - | | + | .coral-step |
| - | | + | |
| - | | + | |
| - | | + | |
| + | | ||
| + | box-shadow: 0 2px 8px rgba(0,0,0,0.05); | ||
| + | max-width: 600px; | ||
| + | font-family: | ||
| } | } | ||
| + | .coral-step h3 { | ||
| + | margin: 0 0 10px 0; | ||
| + | color: #0077b6; | ||
| + | text-align: center; | ||
| + | } | ||
| + | .coral-btn { | ||
| + | display: block; | ||
| + | width: 100%; | ||
| + | margin: 6px 0; | ||
| + | padding: 10px 14px; | ||
| + | background: #26a69a; | ||
| + | color: #fff; | ||
| + | border: none; | ||
| + | border-radius: | ||
| + | cursor: pointer; | ||
| + | font-size: 15px; | ||
| + | transition: 0.2s; | ||
| + | text-align: center; | ||
| + | } | ||
| + | .coral-btn: | ||
| - | function renderStep(id, | + | .coral-btn-nav |
| - | | + | |
| - | | + | width: 48%; |
| - | < | + | } |
| - | <h3>${data.title}</h3> | + | .coral-btn-nav: |
| - | | + | |
| - | | + | .coral-btn-home { |
| - | .map(([next, text]) => `<button class="coral-btn" | + | |
| - | .join('' | + | width: 48%; |
| - | | + | } |
| - | | + | .coral-btn-home: |
| - | | + | |
| - | | + | .coral-response { |
| + | margin: 10px 0 0 0; | ||
| + | padding: 10px; | ||
| + | background: #fff3cd; | ||
| + | border-radius: | ||
| + | border: 1px solid #ffeeba; | ||
| + | font-size: 14px; | ||
| + | } | ||
| + | |||
| + | .coral-history { | ||
| + | background: #eef7fa; | ||
| + | padding: 8px; | ||
| + | border-radius: | ||
| + | font-size: 13px; | ||
| + | margin-bottom: | ||
| + | } | ||
| + | .coral-history-item { | ||
| + | margin-bottom: | ||
| + | } | ||
| + | .coral-history-item span { | ||
| + | color: #00695c; | ||
| + | } | ||
| + | .coral-nav { | ||
| + | display: flex; | ||
| + | justify-content: | ||
| + | gap: 6px; | ||
| + | margin-top: 12px; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | |||
| + | <!-- 🧠 JSON-структура сценария --> | ||
| + | <script type=" | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | |||
| + | " | ||
| + | "question": " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | }, | ||
| + | " | ||
| + | | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | |||
| + | " | ||
| + | " | ||
| + | "answers": { | ||
| + | | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | "text": "💡 Диагностируйте локальное влияние: | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | |||
| + | " | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | "text": "✅ Сделайте базовую диагностику параметров воды, фильтрации, | ||
| + | }, | ||
| + | |||
| + | " | ||
| + | " | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | }, | ||
| + | " | ||
| + | "text": " | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | | ||
| + | }, | ||
| + | " | ||
| + | "text": "✅ Следите за освещением, скиммером, нагревом. Массовое закрытие иногда связано с мелкой поломкой." | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | | ||
| } | } | ||
| - | // пример вызова | + | </script> |
| - | loadDiagnosis('/ | + | |
| + | < | ||
| + | (function(){ | ||
| + | const root = document.getElementById(' | ||
| + | const data = JSON.parse(document.getElementById(' | ||
| + | let path = []; | ||
| + | |||
| + | function renderStep(id) { | ||
| + | const step = data.steps[id]; | ||
| + | let html = '< | ||
| + | html += '< | ||
| + | |||
| + | // История | ||
| + | | ||
| + | html += '<div class=" | ||
| + | path.forEach(p => { | ||
| + | html += `<div class=" | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | }); | ||
| + | html += '</ | ||
| + | } | ||
| + | |||
| + | if(step.question) html += '< | ||
| + | if(step.text) html += '< | ||
| + | |||
| + | if(step.answers){ | ||
| + | for(const key in step.answers){ | ||
| + | html += '< | ||
| + | } | ||
| + | } | ||
| + | |||
| + | html += ` | ||
| + | <div class=" | ||
| + | <button class=" | ||
| + | <button class=" | ||
| + | </ | ||
| + | `; | ||
| + | |||
| + | html += '</ | ||
| + | root.innerHTML = html; | ||
| + | |||
| + | Array.from(root.querySelectorAll('.coral-btn' | ||
| + | btn.addEventListener(' | ||
| + | const next = this.getAttribute(' | ||
| + | if (next === ' | ||
| + | if (next === ' | ||
| + | |||
| + | const q = this.getAttribute(' | ||
| + | const a = this.getAttribute(' | ||
| + | if (q && a) path.push({question: | ||
| + | renderStep(next); | ||
| + | root.scrollIntoView({behavior:' | ||
| + | }); | ||
| + | }); | ||
| + | } | ||
| + | |||
| + | if (document.readyState === ' | ||
| + | document.addEventListener(' | ||
| + | else renderStep(' | ||
| + | })(); | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | ---- | ||
problems/diagnostics/coralclose.1761656348.txt.gz · Последнее изменение: — Вадим Мартовский
