digital-twin-simulation / simulation.html
vithacocf's picture
bắt đâu mô phỏng như nào, chưa có trang sau mô phỏng - Initial Deployment
22634b6 verified
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mô phỏng Digital Twin - Digital Twin Simulation Platform</title>
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<script src="https://unpkg.com/feather-icons"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<style>
.simulation-bg {
background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
}
.control-panel {
background: white;
border-radius: 12px;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}
.metric-display {
background: linear-gradient(145deg, #ffffff, #f1f5f9);
border-radius: 8px;
border: 1px solid #e2e8f0;
}
.simulation-visual {
background: white;
border-radius: 12px;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
min-height: 400px;
}
.scenario-card {
transition: all 0.3s ease;
border: 2px solid transparent;
}
.scenario-card:hover {
transform: translateY(-2px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
.scenario-card.selected {
border-color: #3b82f6;
background: #eff6ff;
}
.slider-track {
background: #e2e8f0;
height: 6px;
border-radius: 3px;
}
.slider-thumb {
background: #3b82f6;
height: 20px;
width: 20px;
border-radius: 50%;
cursor: pointer;
}
</style>
</head>
<body class="bg-gray-50">
<!-- Navigation -->
<nav class="bg-white shadow-lg">
<div class="container mx-auto px-6 py-4">
<div class="flex justify-between items-center">
<a href="index.html" class="text-xl font-bold text-blue-600">Digital Twin Platform</a>
<div class="flex space-x-8">
<a href="index.html" class="text-gray-600 hover:text-blue-600">Trang chủ</a>
<a href="simulation.html" class="text-blue-600 font-semibold">Mô phỏng</a>
</div>
</div>
</div>
</nav>
<!-- Simulation Header -->
<section class="simulation-bg py-12">
<div class="container mx-auto px-6">
<div class="text-center" data-aos="fade-up">
<h1 class="text-4xl font-bold text-gray-800 mb-4">Bắt đầu Mô phỏng Digital Twin</h1>
<p class="text-lg text-gray-600 max-w-3xl mx-auto">
Chọn loại mô phỏng và thiết lập các tham số để bắt đầu phân tích hệ thống logistics của bạn
</p>
</div>
</div>
</section>
<!-- Simulation Selection -->
<section class="py-16 bg-white">
<div class="container mx-auto px-6">
<div class="grid md:grid-cols-2 gap-12 mb-16">
<!-- Warehouse Simulation -->
<div class="control-panel p-8" data-aos="fade-right">
<div class="flex items-center mb-6">
<div class="bg-blue-100 p-3 rounded-full mr-4">
<i data-feather="package" class="text-blue-600"></i>
</div>
<h2 class="text-2xl font-semibold text-gray-800">Warehouse Simulation</h2>
</div>
<div class="space-y-6">
<div>
<label class="block text-sm font-medium text-gray-700 mb-2">Dung lượng kho (m³)</label>
<div class="slider-track relative">
<div class="slider-thumb absolute top-1/2 transform -translate-y-1/2" style="left: 70%;"></div>
</div>
<div class="flex justify-between text-sm text-gray-600 mt-1">
<span>1,000</span>
<span>5,000</span>
<span>10,000</span>
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-2">Số lượng SKU</label>
<input type="number" value="250" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-2">Tốc độ xử lý (đơn/giờ)</label>
<select class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
<option>Thấp (50 đơn/giờ)</option>
<option selected>Trung bình (100 đơn/giờ)</option>
<option>Cao (200 đơn/giờ)</option>
</select>
</div>
<button class="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 px-6 rounded-lg transition duration-300">
Bắt đầu Mô phỏng Kho
</button>
</div>
</div>
<!-- Fleet Simulation -->
<div class="control-panel p-8" data-aos="fade-left">
<div class="flex items-center mb-6">
<div class="bg-green-100 p-3 rounded-full mr-4">
<i data-feather="truck" class="text-green-600"></i>
</div>
<h2 class="text-2xl font-semibold text-gray-800">Fleet Multi-Modal Simulation</h2>
</div>
<div class="space-y-6">
<div>
<label class="block text-sm font-medium text-gray-700 mb-2">Số lượng phương tiện</label>
<div class="slider-track relative">
<div class="slider-thumb absolute top-1/2 transform -translate-y-1/2" style="left: 40%;"></div>
</div>
<div class="flex justify-between text-sm text-gray-600 mt-1">
<span>5</span>
<span>20</span>
<span>50</span>
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-2">Loại phương tiện chính</label>
<select class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
<option>Xe tải nhỏ (< 5T)</option>
<option selected>Xe tải trung (5-15T)</option>
<option>Xe tải lớn (>15T)</option>
<option>Đa phương thức</option>
</select>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-2">Khu vực hoạt động</label>
<select class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
<option>Nội thành</option>
<option selected>Liên tỉnh</option>
<option>Quốc tế</option>
</select>
</div>
<button class="w-full bg-green-600 hover:bg-green-700 text-white font-semibold py-3 px-6 rounded-lg transition duration-300">
Bắt đầu Mô phỏng Fleet
</button>
</div>
</div>
</div>
<!-- What-if Scenarios -->
<div class="control-panel p-8" data-aos="fade-up">
<h2 class="text-2xl font-semibold text-gray-800 mb-6">Kịch bản "What-if"</h2>
<p class="text-gray-600 mb-8">Chọn kịch bản giả lập để phân tích tác động đến hệ thống</p>
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
<div class="scenario-card p-6 rounded-lg border cursor-pointer">
<div class="flex items-center mb-4">
<div class="bg-orange-100 p-2 rounded-full mr-3">
<i data-feather="trending-up" class="text-orange-600"></i>
</div>
<h3 class="font-semibold">Tăng volume 20-50%</h3>
</div>
<p class="text-sm text-gray-600">Phân tích tác động khi lượng hàng tăng đột biến</p>
</div>
<div class="scenario-card p-6 rounded-lg border cursor-pointer">
<div class="flex items-center mb-4">
<div class="bg-red-100 p-2 rounded-full mr-3">
<i data-feather="clock" class="text-red-600"></i>
</div>
<h3 class="font-semibold">Delay in supply</h3>
</div>
<p class="text-sm text-gray-600">Đánh giá ảnh hưởng của delay trong chuỗi cung ứng</p>
</div>
<div class="scenario-card p-6 rounded-lg border cursor-pointer">
<div class="flex items-center mb-4">
<div class="bg-yellow-100 p-2 rounded-full mr-3">
<i data-feather="alert-triangle" class="text-yellow-600"></i>
</div>
<h3 class="font-semibold">Equipment failure</h3>
</div>
<p class="text-sm text-gray-600">Mô phỏng thiết bị hỏng và tác động đến operations</p>
</div>
<div class="scenario-card p-6 rounded-lg border cursor-pointer">
<div class="flex items-center mb-4">
<div class="bg-purple-100 p-2 rounded-full mr-3">
<i data-feather="zap" class="text-purple-600"></i>
</div>
<h3 class="font-semibold">Extreme demand spike</h3>
</div>
<p class="text-sm text-gray-600">Phân tích đột biến nhu cầu theo mùa vụ</p>
</div>
<div class="scenario-card p-6 rounded-lg border cursor-pointer">
<div class="flex items-center mb-4">
<div class="bg-pink-100 p-2 rounded-full mr-3">
<i data-feather="package" class="text-pink-600"></i>
</div>
<h3 class="font-semibold">Damage / spoilage</h3>
</div>
<p class="text-sm text-gray-600">Đánh giá tổn thất hàng hóa và xử lý return</p>
</div>
<div class="scenario-card p-6 rounded-lg border cursor-pointer">
<div class="flex items-center mb-4">
<div class="bg-blue-100 p-2 rounded-full mr-3">
<i data-feather="settings" class="text-blue-600"></i>
</div>
<h3 class="font-semibold">Custom scenario</h3>
</div>
<p class="text-sm text-gray-600">Tạo kịch bản tùy chỉnh theo yêu cầu</p>
</div>
</div>
<div class="mt-8 text-center">
<button class="bg-gray-800 hover:bg-gray-900 text-white font-semibold py-3 px-8 rounded-lg transition duration-300">
Chạy So sánh Kịch bản
</button>
</div>
</div>
</div>
</section>
<!-- Real-time Visualization -->
<section class="py-16 bg-gray-100">
<div class="container mx-auto px-6">
<div class="text-center mb-12" data-aos="fade-up">
<h2 class="text-3xl font-bold text-gray-800 mb-4">Trực quan hóa Mô phỏng</h2>
<p class="text-lg text-gray-600">Theo dõi kết quả mô phỏng trong thời gian thực</p>
</div>
<div class="grid lg:grid-cols-3 gap-8">
<!-- Metrics Overview -->
<div class="lg:col-span-1 space-y-6">
<div class="metric-display p-6" data-aos="fade-right">
<div class="flex items-center justify-between mb-4">
<h3 class="font-semibold text-gray-800">Warehouse Utilization</h3>
<span class="text-2xl font-bold text-blue-600">78%</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2">
<div class="bg-blue-600 h-2 rounded-full" style="width: 78%"></div>
</div>
</div>
<div class="metric-display p-6" data-aos="fade-right" data-aos-delay="100">
<div class="flex items-center justify-between mb-4">
<h3 class="font-semibold text-gray-800">On-time Delivery</h3>
<span class="text-2xl font-bold text-green-600">92%</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2">
<div class="bg-green-600 h-2 rounded-full" style="width: 92%"></div>
</div>
</div>
<div class="metric-display p-6" data-aos="fade-right" data-aos-delay="200">
<div class="flex items-center justify-between mb-4">
<h3 class="font-semibold text-gray-800">Cost per Shipment</h3>
<span class="text-2xl font-bold text-purple-600">₫350k</span>
</div>
<div class="text-sm text-gray-600">-5% so với baseline</div>
</div>
</div>
<!-- Visualization Canvas -->
<div class="lg:col-span-2 simulation-visual p-8" data-aos="fade-left">
<div class="text-center mb-6">
<h3 class="text-xl font-semibold text-gray-800">Real-time Operations Map</h3>
</div>
<div class="bg-gray-100 rounded-lg h-64 flex items-center justify-center">
<div class="text-center text-gray-500">
<i data-feather="map" class="w-12 h-12 mx-auto mb-2"></i>
<p>Map visualization will appear here during simulation</p>
</div>
</div>
<div class="grid grid-cols-3 gap-4 mt-6">
<div class="text-center">
<div class="bg-blue-100 p-3 rounded-full inline-flex mb-2">
<i data-feather="package" class="text-blue-600"></i>
</div>
<p class="text-sm font-semibold">15 Đơn hàng</p>
<p class="text-xs text-gray-600">Đang xử lý</p>
</div>
<div class="text-center">
<div class="bg-green-100 p-3 rounded-full inline-flex mb-2">
<i data-feather="truck" class="text-green-600"></i>
</div>
<p class="text-sm font-semibold">8 Phương tiện</p>
<p class="text-xs text-gray-600">Đang hoạt động</p>
</div>
<div class="text-center">
<div class="bg-orange-100 p-3 rounded-full inline-flex mb-2">
<i data-feather="alert-circle" class="text-orange-600"></i>
</div>
<p class="text-sm font-semibold">2 Cảnh báo</p>
<p class="text-xs text-gray-600">Cần xử lý</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Simulation Controls -->
<section class="py-16 bg-white">
<div class="container mx-auto px-6">
<div class="control-panel p-8 max-w-4xl mx-auto" data-aos="fade-up">
<h2 class="text-2xl font-semibold text-gray-800 mb-6 text-center">Điều khiển Mô phỏng</h2>
<div class="grid md:grid-cols-4 gap-6 mb-8">
<button class="bg-blue-600 hover:bg-blue-700 text-white py-3 px-4 rounded-lg transition duration-300 flex items-center justify-center">
<i data-feather="play" class="mr-2"></i>
Bắt đầu
</button>
<button class="bg-yellow-500 hover:bg-yellow-600 text-white py-3 px-4 rounded-lg transition duration-300 flex items-center justify-center">
<i data-feather="pause" class="mr-2"></i>
Tạm dừng
</button>
<button class="bg-red-600 hover:bg-red-700 text-white py-3 px-4 rounded-lg transition duration-300 flex items-center justify-center">
<i data-feather="square" class="mr-2"></i>
Dừng
</button>
<button class="bg-gray-600 hover:bg-gray-700 text-white py-3 px-4 rounded-lg transition duration-300 flex items-center justify-center">
<i data-feather="rotate-cw" class="mr-2"></i>
Reset
</button>
</div>
<div class="flex justify-center space-x-4">
<button class="bg-green-600 hover:bg-green-700 text-white font-semibold py-3 px-8 rounded-lg transition duration-300">
Xuất Báo cáo
</button>
<button class="bg-purple-600 hover:bg-purple-700 text-white font-semibold py-3 px-8 rounded-lg transition duration-300">
Lưu Kịch bản
</button>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="bg-gray-900 text-white py-12">
<div class="container mx-auto px-6">
<div class="text-center">
<p>&copy; 2024 Digital Twin Simulation Platform. All rights reserved.</p>
</div>
</div>
</footer>
<script>
// Initialize AOS
AOS.init({
duration: 1000,
once: true
});
// Initialize Feather Icons
feather.replace();
// Simple scenario selection
document.querySelectorAll('.scenario-card').forEach(card => {
card.addEventListener('click', function() {
document.querySelectorAll('.scenario-card').forEach(c => c.classList.remove('selected'));
this.classList.add('selected');
});
});
</script>
</body>
</html>