fix: убраны непроверенные инструкции, добавлен вопрос про допсоглашение

This commit is contained in:
tore 2026-09-14 21:17:01 +00:00
parent def1231aba
commit 169b2aa97d

View File

@ -83,6 +83,9 @@
<h2 id="resultTitle" style="margin-bottom:var(--kt-ai-space-3)"></h2> <h2 id="resultTitle" style="margin-bottom:var(--kt-ai-space-3)"></h2>
<div id="resultCategory" class="kb-category" style="margin-bottom:var(--kt-ai-space-4)"></div> <div id="resultCategory" class="kb-category" style="margin-bottom:var(--kt-ai-space-4)"></div>
<div id="resultContent"></div> <div id="resultContent"></div>
<p id="noSourceMsg" style="color:var(--kt-ai-fg-muted);font-size:var(--kt-ai-text-sm);margin-top:var(--kt-ai-space-4);display:none">
⚠️ Полная инструкция ещё не загружена
</p>
<a id="resultLink" class="instruction-link kt-ai-link" href="#" target="_blank" style="display:none"> <a id="resultLink" class="instruction-link kt-ai-link" href="#" target="_blank" style="display:none">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg>
Открыть полную инструкцию Открыть полную инструкцию
@ -145,7 +148,7 @@ const KNOWLEDGE_BASE = [
"Прикрепите скан-копию договора в формате PDF", "Прикрепите скан-копию договора в формате PDF",
"Нажмите «Сохранить и отправить на согласование»" "Нажмите «Сохранить и отправить на согласование»"
], ],
instructionUrl: "#", instructionUrl: null,
tip: "Все обязательные поля отмечены звёздочкой (*)" tip: "Все обязательные поля отмечены звёздочкой (*)"
}, },
{ {
@ -159,7 +162,7 @@ const KNOWLEDGE_BASE = [
"Нажмите кнопку «Редактировать» или «Создать дополнительное соглашение»", "Нажмите кнопку «Редактировать» или «Создать дополнительное соглашение»",
"Внесите изменения, сохраните и отправьте на согласование" "Внесите изменения, сохраните и отправьте на согласование"
], ],
instructionUrl: "#", instructionUrl: null,
tip: "Изменения вступают в силу после подписания обеими сторонами" tip: "Изменения вступают в силу после подписания обеими сторонами"
}, },
{ {
@ -174,7 +177,7 @@ const KNOWLEDGE_BASE = [
"Выберите маршрут согласования или используйте стандартный", "Выберите маршрут согласования или используйте стандартный",
"Подтвердите отправку — договор уйдёт первому согласующему" "Подтвердите отправку — договор уйдёт первому согласующему"
], ],
instructionUrl: "#", instructionUrl: null,
tip: "Статус изменится на «На согласовании», вы увидите текущий этап" tip: "Статус изменится на «На согласовании», вы увидите текущий этап"
}, },
{ {
@ -188,7 +191,7 @@ const KNOWLEDGE_BASE = [
"Укажите причину отзыва в комментарии", "Укажите причину отзыва в комментарии",
"Договор вернётся в статус «Черновик»" "Договор вернётся в статус «Черновик»"
], ],
instructionUrl: "#", instructionUrl: null,
tip: "Отозвать можно только до момента финального подписания" tip: "Отозвать можно только до момента финального подписания"
}, },
{ {
@ -203,7 +206,7 @@ const KNOWLEDGE_BASE = [
"Введите пароль от токена/ключа", "Введите пароль от токена/ключа",
"Дождитесь подтверждения — статус сменится на «Подписан»" "Дождитесь подтверждения — статус сменится на «Подписан»"
], ],
instructionUrl: "#", instructionUrl: null,
tip: "Требуется установленный плагин ЭЦП и действующий сертификат" tip: "Требуется установленный плагин ЭЦП и действующий сертификат"
}, },
{ {
@ -217,7 +220,7 @@ const KNOWLEDGE_BASE = [
"Статус отображается в отдельной колонке цветом", "Статус отображается в отдельной колонке цветом",
"Кликните на статус для детальной информации по этапам" "Кликните на статус для детальной информации по этапам"
], ],
instructionUrl: "#", instructionUrl: null,
tip: "Зелёный — подписан, жёлтый — на согласовании, серый — черновик" tip: "Зелёный — подписан, жёлтый — на согласовании, серый — черновик"
}, },
{ {
@ -231,8 +234,8 @@ const KNOWLEDGE_BASE = [
"Выберите формат: PDF с подписями или XML", "Выберите формат: PDF с подписями или XML",
"Файл загрузится на устройство" "Файл загрузится на устройство"
], ],
instructionUrl: "#", instructionUrl: null,
tip: "Архивные договоры хранятся 5 лет после исполнения" tip: "Срок хранения архивных договоров уточняйте в регламенте"
}, },
{ {
id: 8, id: 8,
@ -245,7 +248,7 @@ const KNOWLEDGE_BASE = [
"Нажмите «Закрыть договор» или «Переместить в архив»", "Нажмите «Закрыть договор» или «Переместить в архив»",
"Подтвердите действие — статус сменится на «Архив»" "Подтвердите действие — статус сменится на «Архив»"
], ],
instructionUrl: "#", instructionUrl: null,
tip: "Архивный договор нельзя редактировать, только просматривать" tip: "Архивный договор нельзя редактировать, только просматривать"
}, },
{ {
@ -259,7 +262,7 @@ const KNOWLEDGE_BASE = [
"Выберите сотрудника из выпадающего списка", "Выберите сотрудника из выпадающего списка",
"Сохраните изменения" "Сохраните изменения"
], ],
instructionUrl: "#", instructionUrl: null,
tip: "Ответственный получает уведомления об этапах договора" tip: "Ответственный получает уведомления об этапах договора"
}, },
{ {
@ -273,8 +276,22 @@ const KNOWLEDGE_BASE = [
"Нажмите «Применить» или Enter", "Нажмите «Применить» или Enter",
"Система покажет все договоры с этим контрагентом" "Система покажет все договоры с этим контрагентом"
], ],
instructionUrl: "#", instructionUrl: null,
tip: "Можно искать по части названия — система подскажет варианты" tip: "Можно искать по части названия — система подскажет варианты"
},
{
id: 11,
question: "Как оформить допсоглашение после окончания договора?",
category: "Создание",
keywords: ["допсоглашение", "окончание", "истёк", "срок", "продлить"],
steps: [
"Проверьте, что договор исполнен или есть основания для продления",
"Создайте дополнительное соглашение к договору",
"Укажите в допсоглашении новые условия (срок, сумму, предмет)",
"Отправьте допсоглашение на согласование и подписание"
],
instructionUrl: null,
tip: "Допсоглашение имеет ту же юридическую силу, что и основной договор"
} }
]; ];
@ -343,11 +360,14 @@ function performSearch() {
</p> </p>
`; `;
const linkEl = document.getElementById('resultLink'); const linkEl = document.getElementById('resultLink');
if (result.instructionUrl && result.instructionUrl !== '#') { const noSourceEl = document.getElementById('noSourceMsg');
if (result.instructionUrl) {
linkEl.href = result.instructionUrl; linkEl.href = result.instructionUrl;
linkEl.style.display = 'inline-flex'; linkEl.style.display = 'inline-flex';
noSourceEl.style.display = 'none';
} else { } else {
linkEl.style.display = 'none'; linkEl.style.display = 'none';
noSourceEl.style.display = 'block';
} }
resultBlock.style.display = 'block'; resultBlock.style.display = 'block';
emptyState.style.display = 'none'; emptyState.style.display = 'none';
@ -371,11 +391,11 @@ function showKBDetail(id) {
<strong>💡 Совет:</strong> <strong>💡 Совет:</strong>
<p style="margin:var(--kt-ai-space-2) 0 0 0;color:var(--kt-ai-fg-muted)">${kb.tip}</p> <p style="margin:var(--kt-ai-space-2) 0 0 0;color:var(--kt-ai-fg-muted)">${kb.tip}</p>
</div> </div>
${kb.instructionUrl && kb.instructionUrl !== '#' ? ` ${kb.instructionUrl ? `
<a href="${kb.instructionUrl}" class="kt-ai-btn" data-variant="primary" style="margin-top:var(--kt-ai-space-5);width:100%" target="_blank"> <a href="${kb.instructionUrl}" class="kt-ai-btn" data-variant="primary" style="margin-top:var(--kt-ai-space-5);width:100%" target="_blank">
Открыть полную инструкцию Открыть полную инструкцию
</a> </a>
` : ''} ` : `<p style="color:var(--kt-ai-fg-muted);font-size:var(--kt-ai-text-sm);margin-top:var(--kt-ai-space-5)">⚠️ Полная инструкция ещё не загружена</p>`}
`; `;
document.getElementById('modalOverlay').classList.add('active'); document.getElementById('modalOverlay').classList.add('active');