Files
cabinet/assets/controllers/alertSystem_controller.js
T
2026-05-28 12:09:28 +03:00

104 lines
6.4 KiB
JavaScript

import { Controller } from 'stimulus';
const loader = require("./../components/loader.js");
const helper = require("./../components/helper.js");
/*
* This is an example Stimulus controller!
*
* Any element with a data-controller="default" attribute will cause
* this controller to be executed. The name "default" comes from the filename:
* default_controller.js -> "default"
*
* Delete this file or adapt it for your use!
*/
export default class extends Controller {
connect() {
const alertSystem = this.element;
loader.loadSDK('system').then(function(webSDK) {
webSDK.on('init', function() {
runWebSDK(alertSystem, webSDK);
});
})
if (location.pathname.indexOf('/case-history') != '-1') {
if (location.hash == '#error') {
var msg = 'Что то пошло не так, повторите попытку позже.';
helper.addAlert(msg, alertSystem, 'alert-case-history-error');
}
if (location.hash == '#online') {
var msg = 'При отсутствии оплаты в течение 5 мин. онлайн консультация будет автоматически отменена';
helper.addAlert(msg, alertSystem, 'alert-case-history-online');
}
if (location.hash == '#pay-success') {
var msg = 'Спасибо, оплата прошла успешно.';
helper.addAlert(msg, alertSystem, 'alert-case-history-info', 'alert-success');
}
if (location.hash == '#doctor-success') {
var msg = 'Спасибо, вы успешно записались на прием.';
helper.addAlert(msg, alertSystem, 'alert-case-history-info', 'alert-success');
}
}
if (window.location.href.includes("sovamed")) {
const osa = `Онлайн консультация проводится через личный кабинет, никаких приложений устанавливать не нужно. Рекомендуем изучить <a href="/docs/online.pdf">инструкцию по онлайн консультированию</a> или <a href="/docs/onlinegos.pdf">инструкцию по онлайн консультированию через Госуслуги</a><br>
Возврат средств при несостоявшейся консультации производится в разделе приемы – история записей. <a href="/docs/vozvrat.pdf">Инструкция по возврату средств</a>`;
if (window.location.href.includes("onlineMode")) {
if (alertSystem.dataset.auth === "false") {
const onlineSpecialstAlert = `Для онлайн-консультации рекомендуем пройти авторизацию через <a href="/login">Госуслуги</a>.</br>
Если Вы уже были в клинике и у Вас есть логин и пароль, при авторизации Вы можете использовать его.
Ознакомиться с инструкцией по онлайн-консультированию вы можете, пройдя по <a href="/docs/online.pdf">ссылке</a>.
`;
helper.addAlert(onlineSpecialstAlert, alertSystem, 'alert-online-mode', 'alert-info');
} else {
helper.addAlert(osa, alertSystem, 'alert-online-mode', 'alert-info');
}
}
if (window.location.href.includes("/online-specialists")) {
helper.addAlert(osa, alertSystem, 'alert-online-mode', 'alert-info');
}
}
if (alertSystem.dataset.auth === "false") {
if (location.pathname.indexOf('/info') != '-1') {
var msg = 'Если Вы хотите, чтобы справка была направлена сразу в ФНС, в Ваш кабинет налогоплательщика, то авторизуйтесь через имеющийся логин/пароль или с помощью Госуслуг и заполните данные пациента.';
helper.addAlert(msg, alertSystem, 'alert-info');
}
if (location.pathname.indexOf('/specialist') != '-1' & !window.location.href.includes("onlineMode")) {
var msg = '* вы можете записать себя или другого человека без авторизации, но при этом запись не сохранится в личном кабинете и отменить/перенести ее в случае необходимости будет возможно только по звонку в колл-центр.';
helper.addAlert(msg, alertSystem, 'alert-not-auth');
}
}
let runWebSDK = function (alertSystem, webSDK) {
if (alertSystem.dataset.techMaintenance === 'true') {
var msg = 'Ведутся технические работы, функционал может быть доступен не полностью';
helper.addAlert(msg, alertSystem, 'alert-warning');
}
if (webSDK.data.user.authenticated) {
const userAllows = webSDK.data.user.allows;
if (userAllows.caseHistory == false || userAllows.payments == false || userAllows.reservation == false) {
var msg = 'Ваша учетная запись имеет статус "Неподтвержденная регистрация", запись на прием через портал работает в ограниченном режиме. Вы можете записаться на прием не более одного раза к одному специалисту. Полный доступ на портал Вам будет предоставлен в регистратуре при следующем посещении клиники.';
helper.addAlert(msg, alertSystem, 'alert-info');
}
}
}
}
}