Работа над интерактивным обучением
This commit is contained in:
113
resources/js/config/tours.js
Normal file
113
resources/js/config/tours.js
Normal file
@@ -0,0 +1,113 @@
|
||||
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, // флаг, что этот шаг внутри модалки
|
||||
},
|
||||
{
|
||||
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 для печати.'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user