import React, { useState } from 'react';
const SalesDiagnostic = () => {
const [currentStep, setCurrentStep] = useState('questions');
const [step, setStep] = useState(0);
const [answers, setAnswers] = useState({});
const [recommendations, setRecommendations] = useState(null);
const [ratings, setRatings] = useState({});
const diagnosticSteps = [
{
id: 'current_state',
question: 'Как бы вы охарактеризовали текущее состояние ваших продаж?',
options: [
{ id: 'no_system', text: 'Нет системы продаж, все хаотично' },
{ id: 'inconsistent', text: 'Продажи есть, но результаты нестабильные' },
{ id: 'plateau', text: 'Достигли определенного уровня и застряли' },
{ id: 'scaling_issues', text: 'Пытаемся масштабироваться, но есть сложности' }
]
},
{
id: 'team_size',
question: 'Какой у вас размер команды продаж?',
options: [
{ id: 'solo', text: 'Только владелец/руководитель' },
{ id: 'small', text: '1-3 менеджера' },
{ id: 'medium', text: '4-10 менеджеров' },
{ id: 'large', text: 'Более 10 менеджеров' }
]
},
{
id: 'main_challenge',
question: 'С какой ключевой проблемой вы сталкиваетесь?',
options: [
{ id: 'lead_gen', text: 'Недостаточно лидов' },
{ id: 'conversion', text: 'Низкая конверсия в сделки' },
{ id: 'hiring', text: 'Сложности с наймом и удержанием' },
{ id: 'processes', text: 'Отсутствие понятных процессов' }
]
},
{
id: 'goal',
question: 'Какую цель вы хотите достичь в первую очередь?',
options: [
{ id: 'system', text: 'Построить систему продаж' },
{ id: 'increase', text: 'Увеличить объем продаж' },
{ id: 'team', text: 'Собрать эффективную команду' },
{ id: 'automation', text: 'Автоматизировать процессы' }
]
}
];
const getRecommendations = (answers) => {
const stateRecommendations = {
'no_system': {
priority: 'Критический приоритет: необходимо создание базовой системы продаж',
timeline: '3-4 месяца для создания системы',
steps: [
'Внедрение CRM системы для фиксации всех сделок и лидов',
'Разработка скриптов продаж и базовых регламентов',
'Создание системы отчетности и KPI',
'Организация процесса найма и обучения',
'Внедрение системы воронки продаж',
'Создание базы знаний по продукту и возражениям',
'Разработка системы мотивации менеджеров',
'Организация регулярных планерок и системы контроля'
]
},
'inconsistent': {
priority: 'Высокий приоритет: требуется стабилизация продаж',
timeline: '2-3 месяца для стабилизации',
steps: [
'Аудит текущих процессов и выявление слабых мест',
'Стандартизация работы менеджеров',
'Внедрение системы мотивации',
'Создание базы знаний по продукту',
'Оптимизация воронки продаж',
'Автоматизация рутинных процессов',
'Внедрение системы наставничества',
'Организация системы регулярного обучения'
]
},
'plateau': {
priority: 'Средний приоритет: необходим качественный рост',
timeline: '2-3 месяца для выхода на новый уровень',
steps: [
'Анализ конкурентов и рыночной ситуации',
'Поиск новых каналов привлечения клиентов',
'Оптимизация воронки продаж',
'Развитие компетенций команды',
'Внедрение системы up-sell и cross-sell',
'Автоматизация маркетинга и продаж',
'Разработка программы удержания клиентов',
'Создание системы работы с отзывами и рекомендациями'
]
},
'scaling_issues': {
priority: 'Высокий приоритет: необходимо устранение барьеров роста',
timeline: '3-4 месяца для масштабирования',
steps: [
'Автоматизация рутинных процессов',
'Создание регламентов и процедур',
'Внедрение системы обучения новых сотрудников',
'Оптимизация организационной структуры',
'Разработка системы масштабирования продаж',
'Внедрение системы контроля качества',
'Создание системы управления знаниями',
'Оптимизация процесса найма и адаптации'
]
}
};
return stateRecommendations[answers.current_state] || {
priority: 'Требуется анализ',
timeline: '2-3 месяца',
steps: [
'Проведение полного аудита отдела продаж',
'Разработка системы мотивации',
'Внедрение CRM и автоматизация',
'Создание системы обучения',
'Оптимизация процессов продаж',
'Разработка системы KPI',
'Создание системы отчетности',
'Внедрение регулярных собраний и планерок'
]
};
};
const handleAnswer = (answerId) => {
const newAnswers = {...answers, [diagnosticSteps[step].id]: answerId};
setAnswers(newAnswers);
if (step < diagnosticSteps.length - 1) {
setStep(step + 1);
} else {
const recs = getRecommendations(newAnswers);
setRecommendations(recs);
setCurrentStep('ratings');
}
};
const handleBack = () => {
if (step > 0) {
setStep(step - 1);
}
};
const handleRating = (stepIndex, rating) => {
setRatings(prev => ({
...prev,
[stepIndex]: rating
}));
};
const handleSubmitRatings = () => {
setCurrentStep('results');
};
const renderStars = (stepIndex, currentRating) => (
{[1, 2, 3, 4, 5].map((star) => (
))}
);
const renderQuestions = () => (
{diagnosticSteps[step].question}
{diagnosticSteps[step].options.map((option) => (
))}
Шаг {step + 1} из {diagnosticSteps.length}
);
const renderRatings = () => (
Оцените текущий уровень реализации каждой рекомендации:
{recommendations.steps.map((step, index) => (
{step}
{renderStars(index, ratings[index])}
{ratings[index] ? `${ratings[index]} из 5` : 'Нет оценки'}
))}
);
const renderResults = () => {
const categorizedSteps = {
needsImprovement: [],
goodState: []
};
recommendations.steps.forEach((step, index) => {
const rating = ratings[index];
if (rating <= 3) {
categorizedSteps.needsImprovement.push({ step, rating });
} else {
categorizedSteps.goodState.push({ step, rating });
}
});
return (
{recommendations.priority}
{recommendations.timeline}
{categorizedSteps.needsImprovement.length > 0 && (
Требуют улучшения:
{categorizedSteps.needsImprovement.map(({ step, rating }, index) => (
-
{step} (текущая оценка: {rating}/5)
))}
)}
{categorizedSteps.goodState.length > 0 && (
Хороший уровень реализации:
{categorizedSteps.goodState.map(({ step, rating }, index) => (
-
{step} (оценка: {rating}/5)
))}
)}
);
};
return (
Диагностика отдела продаж
{currentStep === 'questions' && renderQuestions()}
{currentStep === 'ratings' && renderRatings()}
{currentStep === 'results' && renderResults()}
);
};
export default SalesDiagnostic;