117 lines
5.3 KiB
JavaScript
117 lines
5.3 KiB
JavaScript
import {useModalStore} from "../Stores/modals.js";
|
||
import {useOnboardingStore} from "../Stores/onboarding.js";
|
||
|
||
export const tours = {
|
||
// Приветственный тур для новых пользователей
|
||
welcomeDuty: {
|
||
id: 'welcome-duty',
|
||
name: 'Знакомство с Метрикой',
|
||
steps: [
|
||
{
|
||
attachTo: { element: '#user-panel' },
|
||
route: 'start', // главная страница
|
||
content: {
|
||
title: '👋 Добро пожаловать!',
|
||
description: 'Это ваша панель управления. Сейчас мы покажем вам основные возможности.'
|
||
},
|
||
popper: { placement: 'bottom-start' }, // опционально: позиция тултипа
|
||
on: {
|
||
afterStep: () => {
|
||
const modalStore = useModalStore()
|
||
modalStore.showSelectDutyUserModal = false
|
||
},
|
||
beforeStep: () => {
|
||
const modalStore = useModalStore()
|
||
modalStore.showSelectDutyUserModal = false
|
||
},
|
||
}
|
||
},
|
||
{
|
||
attachTo: { element: '#new-report-duty' },
|
||
route: 'start', // переходим на страницу отчётов
|
||
content: {
|
||
title: '✏️ Создать отчёт',
|
||
description: 'Нажмите эту кнопку, чтобы начать создание нового отчёта.'
|
||
},
|
||
on: {
|
||
afterStep: () => {
|
||
const modalStore = useModalStore()
|
||
const onboarding = useOnboardingStore()
|
||
|
||
if (onboarding.activeStepIndex === 2) modalStore.showSelectDutyUserModal = true
|
||
if (onboarding.activeStepIndex < 2) modalStore.showSelectDutyUserModal = false
|
||
},
|
||
beforeStep: () => {
|
||
const modalStore = useModalStore()
|
||
const onboarding = useOnboardingStore()
|
||
|
||
if (onboarding.activeStepIndex < 2) modalStore.showSelectDutyUserModal = false
|
||
},
|
||
},
|
||
},
|
||
{
|
||
attachTo: { element: '#modal-select-user-department' },
|
||
route: 'start',
|
||
content: { title: 'Выберите отделение', description: 'Можете использовать список, либо ввести ФИО для поиска' },
|
||
insideModal: true, // флаг, что этот шаг внутри модалки
|
||
options: {
|
||
disableInteraction: false
|
||
}
|
||
},
|
||
{
|
||
attachTo: { element: '#modal-select-user-doctor' },
|
||
route: 'start',
|
||
content: { title: 'Введите ответственного', description: 'Можете использовать список, либо ввести ФИО для поиска' },
|
||
insideModal: true, // флаг, что этот шаг внутри модалки
|
||
},
|
||
{
|
||
attachTo: { element: '#modal-select-user-submit' },
|
||
route: 'start',
|
||
content: { title: 'Подтвердите ввод' },
|
||
insideModal: true, // флаг, что этот шаг внутри модалки
|
||
manual: true
|
||
},
|
||
{
|
||
attachTo: { element: '#report-name-input' },
|
||
route: 'report', // страница создания отчёта
|
||
content: {
|
||
title: '📝 Название отчёта',
|
||
description: 'Введите название, чтобы легко находить отчёт позже.'
|
||
}
|
||
},
|
||
{
|
||
attachTo: { element: '#save-report-btn' },
|
||
route: 'reports.create',
|
||
content: {
|
||
title: '💾 Сохранить',
|
||
description: 'После заполнения всех полей нажмите "Сохранить", чтобы завершить.'
|
||
}
|
||
}
|
||
]
|
||
},
|
||
|
||
// Тур по новой функции "Экспорт"
|
||
duty: {
|
||
id: 'featureX',
|
||
name: 'Новая функция: Экспорт',
|
||
steps: [
|
||
{
|
||
attachTo: { element: '#export-excel-btn' },
|
||
route: 'reports.index',
|
||
content: {
|
||
title: '📤 Экспорт в Excel',
|
||
description: 'Теперь вы можете выгрузить отчёт в Excel одним кликом.'
|
||
}
|
||
},
|
||
{
|
||
attachTo: { element: '#export-pdf-btn' },
|
||
route: 'reports.index',
|
||
content: {
|
||
title: '📄 Экспорт в PDF',
|
||
description: 'А также сохранить отчёт в формате PDF для печати.'
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|