|
|
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Admin Panel - Phone Survey System</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
| <style> |
| .gradient-bg { |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
| } |
| .sidebar { |
| transition: all 0.3s ease; |
| } |
| .sidebar-item:hover { |
| background-color: rgba(255, 255, 255, 0.1); |
| } |
| </style> |
| </head> |
| <body class="bg-gray-100 font-sans"> |
| <div class="min-h-screen flex"> |
| |
| <div class="sidebar w-64 gradient-bg text-white p-4"> |
| <div class="flex items-center space-x-2 mb-8"> |
| <i class="fas fa-user-shield text-2xl"></i> |
| <h1 class="text-xl font-bold">Админ панель</h1> |
| </div> |
| |
| <nav class="space-y-2"> |
| <a href="#" class="sidebar-item flex items-center space-x-2 p-2 rounded-lg bg-white bg-opacity-10"> |
| <i class="fas fa-chart-line"></i> |
| <span>Статистика</span> |
| </a> |
| <a href="#" id="clients-btn" class="sidebar-item flex items-center space-x-2 p-2 rounded-lg"> |
| <i class="fas fa-users"></i> |
| <span>Клиенты</span> |
| </a> |
| <a href="#" id="surveys-btn" class="sidebar-item flex items-center space-x-2 p-2 rounded-lg"> |
| <i class="fas fa-poll"></i> |
| <span>Опросы</span> |
| </a> |
| <a href="#" id="settings-btn" class="sidebar-item flex items-center space-x-2 p-2 rounded-lg"> |
| <i class="fas fa-cog"></i> |
| <span>Настройки</span> |
| </a> |
| <a href="index.html" id="home-btn" class="sidebar-item flex items-center space-x-2 p-2 rounded-lg"> |
| <i class="fas fa-arrow-left"></i> |
| <span>На главную</span> |
| </a> |
| </nav> |
| </div> |
|
|
| |
| <div class="flex-1 p-8"> |
| <div class="bg-white rounded-xl shadow-md p-6"> |
| <h2 class="text-2xl font-bold text-gray-800 mb-6">Статистика опросов</h2> |
| |
| <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8"> |
| <div class="bg-blue-50 p-4 rounded-lg"> |
| <h3 class="text-gray-600 mb-2">Всего опросов</h3> |
| <p class="text-3xl font-bold text-blue-600">1,248</p> |
| </div> |
| <div class="bg-green-50 p-4 rounded-lg"> |
| <h3 class="text-gray-600 mb-2">Средний рейтинг</h3> |
| <p class="text-3xl font-bold text-green-600">4.4</p> |
| </div> |
| <div class="bg-purple-50 p-4 rounded-lg"> |
| <h3 class="text-gray-600 mb-2">Активные опросы</h3> |
| <p class="text-3xl font-bold text-purple-600">3</p> |
| </div> |
| </div> |
|
|
| <div class="mb-8"> |
| <h3 class="text-lg font-semibold text-gray-700 mb-4">Последние ответы</h3> |
| <div class="overflow-x-auto"> |
| <table class="min-w-full bg-white"> |
| <thead> |
| <tr class="bg-gray-100"> |
| <th class="py-2 px-4 text-left">ID</th> |
| <th class="py-2 px-4 text-left">Клиент</th> |
| <th class="py-2 px-4 text-left">Оценка</th> |
| <th class="py-2 px-4 text-left">Дата</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="border-b"> |
| <td class="py-2 px-4">#1245</td> |
| <td class="py-2 px-4">Иван Петров</td> |
| <td class="py-2 px-4"> |
| <span class="bg-green-100 text-green-800 px-2 py-1 rounded-full text-xs">5</span> |
| </td> |
| <td class="py-2 px-4">15.06.2023</td> |
| </tr> |
| <tr class="border-b"> |
| <td class="py-2 px-4">#1244</td> |
| <td class="py-2 px-4">Мария Сидорова</td> |
| <td class="py-2 px-4"> |
| <span class="bg-blue-100 text-blue-800 px-2 py-1 rounded-full text-xs">4</span> |
| </td> |
| <td class="py-2 px-4">15.06.2023</td> |
| </tr> |
| <tr class="border-b"> |
| <td class="py-2 px-4">#1243</td> |
| <td class="py-2 px-4">Алексей Иванов</td> |
| <td class="py-2 px-4"> |
| <span class="bg-yellow-100 text-yellow-800 px-2 py-1 rounded-full text-xs">3</span> |
| </td> |
| <td class="py-2 px-4">14.06.2023</td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </div> |
|
|
| <div> |
| <h3 class="text-lg font-semibold text-gray-700 mb-4">Создать новый опрос</h3> |
| <div class="bg-gray-50 p-4 rounded-lg"> |
| <form> |
| <div class="mb-4"> |
| <label class="block text-gray-700 mb-2">Название опроса</label> |
| <input type="text" class="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500"> |
| </div> |
| <div class="mb-4"> |
| <label class="block text-gray-700 mb-2">Вопрос</label> |
| <textarea class="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500" rows="3"></textarea> |
| </div> |
| <button type="submit" class="bg-indigo-600 text-white px-4 py-2 rounded-lg hover:bg-indigo-700 transition"> |
| Создать опрос |
| </button> |
| </form> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=digpas/tele" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
| </html> |
|
|
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Phone Survey System</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
| <style> |
| .gradient-bg { |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
| } |
| .survey-card { |
| box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1); |
| transition: all 0.3s ease; |
| } |
| .survey-card:hover { |
| transform: translateY(-5px); |
| box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1); |
| } |
| .rating-btn { |
| transition: all 0.2s ease; |
| } |
| .rating-btn:hover { |
| transform: scale(1.1); |
| } |
| .rating-btn.active { |
| transform: scale(1.15); |
| box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.5); |
| } |
| .wave-animation { |
| animation: wave 1.5s infinite; |
| } |
| @keyframes wave { |
| 0%, 100% { transform: rotate(0deg); } |
| 25% { transform: rotate(5deg); } |
| 75% { transform: rotate(-5deg); } |
| } |
| </style> |
| </head> |
| <body class="bg-gray-100 font-sans"> |
| <div class="min-h-screen flex flex-col"> |
| |
| <header class="gradient-bg text-white py-6"> |
| <div class="container mx-auto px-4"> |
| <div class="flex justify-between items-center"> |
| <div class="flex items-center space-x-2"> |
| <i class="fas fa-phone-alt text-2xl wave-animation"></i> |
| <h1 class="text-2xl font-bold">Опрос удовлетворенности клиентов</h1> |
| </div> |
| <div class="hidden md:block"> |
| <a href="admin.html" class="bg-white text-indigo-700 px-4 py-2 rounded-lg font-medium hover:bg-opacity-90 transition"> |
| <i class="fas fa-sign-in-alt mr-2"></i>Панель администратора |
| </a> |
| </div> |
| </div> |
| </div> |
| </header> |
|
|
| |
| <main class="flex-grow container mx-auto px-4 py-8"> |
| <div class="max-w-4xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8"> |
| |
| <div class="lg:col-span-2"> |
| <div class="survey-card bg-white rounded-xl p-6 mb-6"> |
| <div class="flex items-center justify-between mb-6"> |
| <h2 class="text-xl font-semibold text-gray-800">Панель управления опросом</h2> |
| <div class="flex items-center space-x-2"> |
| <span class="relative flex h-3 w-3"> |
| <span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"></span> |
| <span class="relative inline-flex rounded-full h-3 w-3 bg-green-500"></span> |
| </span> |
| <span class="text-sm text-gray-600">Active</span> |
| </div> |
| </div> |
|
|
| <div class="mb-6"> |
| <label class="block text-gray-700 text-sm font-medium mb-2" for="survey-script"> |
| Survey Script |
| </label> |
| <div class="bg-gray-50 p-4 rounded-lg border border-gray-200"> |
| <div class="mb-3"> |
| <p class="text-gray-700 font-medium">Greeting:</p> |
| <p class="text-gray-600 italic">"Hello [Customer Name], this is [Company] calling about your recent service on [Date]. Could you spare a moment to answer a quick survey?"</p> |
| </div> |
| <div class="mb-3"> |
| <p class="text-gray-700 font-medium">Main Question:</p> |
| <p class="text-gray-600 italic">"On a scale from 1 to 5, how would you rate your satisfaction with our service?"</p> |
| </div> |
| <div> |
| <p class="text-gray-700 font-medium">Responses:</p> |
| <ul class="list-disc list-inside text-gray-600 space-y-1"> |
| <li><span class="font-medium">5:</span> "Thank you for your feedback!"</li> |
| <li><span class="font-medium">4:</span> "What could we improve?"</li> |
| <li><span class="font-medium">1-3:</span> "We apologize and will improve"</li> |
| </ul> |
| </div> |
| </div> |
| </div> |
|
|
| <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-6"> |
| <div> |
| <label class="block text-gray-700 text-sm font-medium mb-2" for="call-time"> |
| Время звонков |
| </label> |
| <select id="call-time" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500"> |
| <option>9:00 AM - 12:00 PM</option> |
| <option>12:00 PM - 3:00 PM</option> |
| <option>3:00 PM - 6:00 PM</option> |
| <option selected>6:00 PM - 9:00 PM</option> |
| </select> |
| </div> |
| <div> |
| <label class="block text-gray-700 text-sm font-medium mb-2" for="retry-attempts"> |
| Попытки дозвона |
| </label> |
| <select id="retry-attempts" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500"> |
| <option>1</option> |
| <option selected>2</option> |
| <option>3</option> |
| </select> |
| </div> |
| </div> |
|
|
| <div class="flex flex-col sm:flex-row space-y-3 sm:space-y-0 sm:space-x-3"> |
| <button id="start-survey" class="flex-1 bg-green-600 hover:bg-green-700 text-white py-3 px-4 rounded-lg font-medium transition flex items-center justify-center"> |
| <i class="fas fa-play mr-2"></i> Начать опрос |
| </button> |
| <button id="pause-survey" class="flex-1 bg-yellow-500 hover:bg-yellow-600 text-white py-3 px-4 rounded-lg font-medium transition flex items-center justify-center"> |
| <i class="fas fa-pause mr-2"></i> Пауза |
| </button> |
| <button id="stop-survey" class="flex-1 bg-red-600 hover:bg-red-700 text-white py-3 px-4 rounded-lg font-medium transition flex items-center justify-center"> |
| <i class="fas fa-stop mr-2"></i> Стоп |
| </button> |
| </div> |
| </div> |
|
|
| |
| <div class="survey-card bg-white rounded-xl p-6"> |
| <h2 class="text-xl font-semibold text-gray-800 mb-6">Симуляция звонка</h2> |
| |
| <div class="bg-gray-800 rounded-xl p-6 text-white mb-6"> |
| <div class="flex items-center justify-between mb-4"> |
| <div class="flex items-center"> |
| <i class="fas fa-phone-alt mr-2"></i> |
| <span>Опросный звонок</span> |
| </div> |
| <div class="text-sm">00:45</div> |
| </div> |
| |
| <div class="bg-gray-700 rounded-lg p-4 mb-4"> |
| <p class="italic">"Hello John Doe, this is ACME Services calling about your recent appliance repair on June 15th. Could you spare a moment to answer a quick survey?"</p> |
| </div> |
| |
| <div class="text-center py-4"> |
| <p class="mb-4">"On a scale from 1 to 5, how would you rate your satisfaction with our service?"</p> |
| |
| <div class="flex justify-center space-x-3 mb-6"> |
| <button class="rating-btn w-12 h-12 rounded-full bg-red-500 text-white font-bold flex items-center justify-center">1</button> |
| <button class="rating-btn w-12 h-12 rounded-full bg-orange-500 text-white font-bold flex items-center justify-center">2</button> |
| <button class="rating-btn w-12 h-12 rounded-full bg-yellow-500 text-white font-bold flex items-center justify-center">3</button> |
| <button class="rating-btn w-12 h-12 rounded-full bg-blue-500 text-white font-bold flex items-center justify-center">4</button> |
| <button class="rating-btn w-12 h-12 rounded-full bg-green-500 text-white font-bold flex items-center justify-center active">5</button> |
| </div> |
| |
| <div id="followup-question" class="hidden"> |
| <p class="mb-4">"Thank you! What could we improve in our service?"</p> |
| <div class="flex justify-center space-x-3"> |
| <button class="bg-gray-600 hover:bg-gray-500 text-white py-2 px-4 rounded-lg transition"> |
| <i class="fas fa-microphone mr-2"></i> Record Response |
| </button> |
| <button class="bg-gray-600 hover:bg-gray-500 text-white py-2 px-4 rounded-lg transition"> |
| Skip |
| </button> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div class="flex justify-center"> |
| <button id="simulate-call" class="bg-indigo-600 hover:bg-indigo-700 text-white py-2 px-6 rounded-lg font-medium transition"> |
| <i class="fas fa-sync-alt mr-2"></i> Новый звонок |
| </button> |
| </div> |
| </div> |
| </div> |
|
|
| |
| <div class="lg:col-span-1"> |
| <div class="survey-card bg-white rounded-xl p-6 mb-6"> |
| <h2 class="text-xl font-semibold text-gray-800 mb-6">Статистика опроса</h2> |
| |
| <div class="space-y-6"> |
| <div> |
| <div class="flex justify-between items-center mb-2"> |
| <span class="text-gray-600">Всего звонков</span> |
| <span class="font-medium">1,248</span> |
| </div> |
| <div class="w-full bg-gray-200 rounded-full h-2.5"> |
| <div class="bg-indigo-600 h-2.5 rounded-full" style="width: 100%"></div> |
| </div> |
| </div> |
| |
| <div> |
| <div class="flex justify-between items-center mb-2"> |
| <span class="text-gray-600">Завершено</span> |
| <span class="font-medium">876 (70%)</span> |
| </div> |
| <div class="w-full bg-gray-200 rounded-full h-2.5"> |
| <div class="bg-green-500 h-2.5 rounded-full" style="width: 70%"></div> |
| </div> |
| </div> |
| |
| <div> |
| <div class="flex justify-between items-center mb-2"> |
| <span class="text-gray-600">Нет ответа</span> |
| <span class="font-medium">248 (20%)</span> |
| </div> |
| <div class="w-full bg-gray-200 rounded-full h-2.5"> |
| <div class="bg-yellow-500 h-2.5 rounded-full" style="width: 20%"></div> |
| </div> |
| </div> |
| |
| <div> |
| <div class="flex justify-between items-center mb-2"> |
| <span class="text-gray-600">Отказались</span> |
| <span class="font-medium">124 (10%)</span> |
| </div> |
| <div class="w-full bg-gray-200 rounded-full h-2.5"> |
| <div class="bg-red-500 h-2.5 rounded-full" style="width: 10%"></div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="survey-card bg-white rounded-xl p-6"> |
| <h2 class="text-xl font-semibold text-gray-800 mb-6">Распределение оценок</h2> |
| |
| <div class="space-y-4"> |
| <div class="flex items-center"> |
| <span class="w-8 font-medium">5</span> |
| <div class="flex-1 mx-2"> |
| <div class="h-4 bg-green-500 rounded" style="width: 65%"></div> |
| </div> |
| <span class="w-12 text-right">65%</span> |
| </div> |
| <div class="flex items-center"> |
| <span class="w-8 font-medium">4</span> |
| <div class="flex-1 mx-2"> |
| <div class="h-4 bg-blue-500 rounded" style="width: 20%"></div> |
| </div> |
| <span class="w-12 text-right">20%</span> |
| </div> |
| <div class="flex items-center"> |
| <span class="w-8 font-medium">3</span> |
| <div class="flex-1 mx-2"> |
| <div class="h-4 bg-yellow-500 rounded" style="width: 8%"></div> |
| </div> |
| <span class="w-12 text-right">8%</span> |
| </div> |
| <div class="flex items-center"> |
| <span class="w-8 font-medium">2</span> |
| <div class="flex-1 mx-2"> |
| <div class="h-4 bg-orange-500 rounded" style="width: 4%"></div> |
| </div> |
| <span class="w-12 text-right">4%</span> |
| </div> |
| <div class="flex items-center"> |
| <span class="w-8 font-medium">1</span> |
| <div class="flex-1 mx-2"> |
| <div class="h-4 bg-red-500 rounded" style="width: 3%"></div> |
| </div> |
| <span class="w-12 text-right">3%</span> |
| </div> |
| </div> |
| |
| <div class="mt-6 p-4 bg-gray-50 rounded-lg"> |
| <div class="flex items-center justify-between mb-2"> |
| <span class="font-medium">Средняя оценка</span> |
| <span class="text-2xl font-bold text-indigo-600">4.4</span> |
| </div> |
| <div class="flex items-center"> |
| <div class="flex mr-2"> |
| <i class="fas fa-star text-yellow-400"></i> |
| <i class="fas fa-star text-yellow-400"></i> |
| <i class="fas fa-star text-yellow-400"></i> |
| <i class="fas fa-star text-yellow-400"></i> |
| <i class="fas fa-star-half-alt text-yellow-400"></i> |
| </div> |
| <span class="text-gray-600">из 5</span> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </main> |
|
|
| |
| <footer class="bg-gray-800 text-white py-6"> |
| <div class="container mx-auto px-4 text-center"> |
| <p>© 2023 Система опроса клиентов. Все права защищены.</p> |
| <div class="flex justify-center space-x-4 mt-4"> |
| <a href="#" class="hover:text-indigo-300"><i class="fab fa-twitter"></i></a> |
| <a href="#" class="hover:text-indigo-300"><i class="fab fa-facebook"></i></a> |
| <a href="#" class="hover:text-indigo-300"><i class="fab fa-linkedin"></i></a> |
| <a href="#" class="hover:text-indigo-300"><i class="fab fa-github"></i></a> |
| </div> |
| </div> |
| </footer> |
| </div> |
|
|
| <script> |
| document.addEventListener('DOMContentLoaded', function() { |
| |
| document.getElementById('clients-btn').addEventListener('click', function(e) { |
| e.preventDefault(); |
| |
| console.log('Clients button clicked'); |
| alert('Loading clients management...'); |
| |
| }); |
| |
| document.getElementById('surveys-btn').addEventListener('click', function(e) { |
| e.preventDefault(); |
| console.log('Surveys button clicked'); |
| alert('Loading surveys management...'); |
| |
| }); |
| |
| document.getElementById('settings-btn').addEventListener('click', function(e) { |
| e.preventDefault(); |
| console.log('Settings button clicked'); |
| alert('Loading system settings...'); |
| |
| }); |
| |
| document.getElementById('home-btn').addEventListener('click', function(e) { |
| |
| console.log('Navigating to home page'); |
| |
| }); |
| |
| |
| const ratingButtons = document.querySelectorAll('.rating-btn'); |
| ratingButtons.forEach(button => { |
| button.addEventListener('click', function() { |
| |
| ratingButtons.forEach(btn => btn.classList.remove('active')); |
| |
| |
| this.classList.add('active'); |
| |
| |
| const rating = parseInt(this.textContent); |
| const followupQuestion = document.getElementById('followup-question'); |
| |
| if (rating >= 1 && rating <= 4) { |
| followupQuestion.classList.remove('hidden'); |
| } else { |
| followupQuestion.classList.add('hidden'); |
| } |
| }); |
| }); |
| |
| |
| document.getElementById('simulate-call').addEventListener('click', function() { |
| |
| ratingButtons.forEach(btn => btn.classList.remove('active')); |
| document.getElementById('followup-question').classList.add('hidden'); |
| |
| |
| alert('New call simulation started. Please select a rating.'); |
| }); |
| |
| |
| document.getElementById('start-survey').addEventListener('click', function() { |
| alert('Survey campaign started!'); |
| }); |
| |
| document.getElementById('pause-survey').addEventListener('click', function() { |
| alert('Survey campaign paused.'); |
| }); |
| |
| document.getElementById('stop-survey').addEventListener('click', function() { |
| if (confirm('Are you sure you want to stop the survey campaign?')) { |
| alert('Survey campaign stopped.'); |
| } |
| }); |
| }); |
| </script> |
| </body> |
| </html> |