Files
worker/html/index (1).html
Phuoc Nguyen 2125e85d40 first commit
2025-10-17 15:37:58 +07:00

741 lines
29 KiB
HTML

<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Trang chủ - EuroTile Worker</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="assets/css/style.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
/* Policy Modal Styles */
.policy-modal {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
padding: 1rem;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
}
.policy-modal.show {
opacity: 1;
visibility: visible;
}
.policy-modal-content {
background: white;
border-radius: 1.5rem;
max-width: 480px;
width: 100%;
max-height: 90vh;
display: flex;
flex-direction: column;
overflow: hidden;
transform: scale(0.9) translateY(50px);
transition: all 0.3s ease;
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);
}
.policy-modal.show .policy-modal-content {
transform: scale(1) translateY(0);
}
.policy-header {
background: linear-gradient(135deg, #2563eb, #1d4ed8);
color: white;
padding: 2rem 1.5rem 1.5rem;
text-align: center;
position: relative;
}
.policy-header::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 20px;
background: white;
border-radius: 20px 20px 0 0;
}
.policy-icon {
width: 80px;
height: 80px;
background: rgba(255, 255, 255, 0.2);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 1rem;
animation: bounce 2s infinite;
}
.policy-icon i {
font-size: 2rem;
color: white;
}
@keyframes bounce {
0%, 20%, 50%, 80%, 100% {
transform: translateY(0);
}
40% {
transform: translateY(-10px);
}
60% {
transform: translateY(-5px);
}
}
.policy-title {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 0.5rem;
}
.policy-subtitle {
font-size: 1rem;
opacity: 0.9;
}
.policy-body {
flex: 1;
padding: 1.5rem;
overflow-y: auto;
}
.welcome-text {
font-size: 1rem;
color: #1e293b;
text-align: center;
margin-bottom: 1.5rem;
line-height: 1.6;
}
.benefits-section {
margin-bottom: 1.5rem;
}
.benefits-title {
font-size: 1.125rem;
font-weight: 600;
color: #1e293b;
margin-bottom: 1rem;
display: flex;
align-items: center;
gap: 0.5rem;
}
.benefits-list {
list-style: none;
padding: 0;
margin: 0;
}
.benefit-item {
display: flex;
align-items: flex-start;
gap: 1rem;
padding: 0.75rem;
margin-bottom: 0.5rem;
background: #f8fafc;
border-radius: 0.75rem;
border-left: 4px solid #2563eb;
}
.benefit-icon {
width: 40px;
height: 40px;
background: linear-gradient(135deg, #2563eb, #1d4ed8);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: white;
flex-shrink: 0;
font-size: 0.875rem;
}
.benefit-content {
flex: 1;
}
.benefit-title {
font-weight: 600;
color: #1e293b;
margin-bottom: 0.25rem;
}
.benefit-desc {
font-size: 0.875rem;
color: #64748b;
line-height: 1.4;
}
.policy-footer {
padding: 1.5rem;
border-top: 1px solid #e2e8f0;
background: #f8fafc;
}
.policy-actions {
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.policy-accept-btn {
background: linear-gradient(135deg, #2563eb, #1d4ed8);
color: white;
border: none;
padding: 1rem;
border-radius: 0.75rem;
font-size: 1rem;
font-weight: 600;
cursor: pointer;
transition: all 0.3s;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
}
.policy-accept-btn:hover {
transform: translateY(-2px);
box-shadow: 0 4px 15px rgba(37, 99, 235, 0.3);
}
.policy-note {
font-size: 0.75rem;
color: #64748b;
text-align: center;
line-height: 1.4;
}
@media (max-width: 480px) {
.policy-modal {
padding: 0.5rem;
}
.policy-header {
padding: 1.5rem 1rem 1rem;
}
.policy-title {
font-size: 1.25rem;
}
.policy-body {
padding: 1rem;
}
.policy-footer {
padding: 1rem;
}
}
/* News Section Styles */
.news-slider-container {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.news-slider-wrapper {
display: flex;
gap: 16px;
padding-bottom: 8px;
}
.news-card {
flex-shrink: 0;
width: 280px;
background: white;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
border: 1px solid #e2e8f0;
transition: all 0.3s ease;
}
.news-card:hover {
transform: translateY(-2px);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.news-image {
width: 100%;
height: 140px;
object-fit: cover;
}
.news-content {
padding: 12px;
}
.news-title {
font-size: 14px;
font-weight: 600;
color: #1e293b;
line-height: 1.3;
margin-bottom: 6px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.news-desc {
font-size: 12px;
color: #64748b;
line-height: 1.4;
margin-bottom: 8px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.news-meta {
display: flex;
justify-content: space-between;
font-size: 11px;
color: #94a3b8;
}
.news-meta span {
display: flex;
align-items: center;
gap: 4px;
}
</style>
</head>
<body>
<div class="page-wrapper">
<div class="container">
<!-- Member Card Diamond -->
<div class="member-card member-card-diamond">
<div class="d-flex justify-between align-center">
<div>
<h3 style="color: white; font-size: 24px; margin-bottom: 4px;">EUROTILE</h3>
<p style="color: rgba(255,255,255,0.9); font-size: 11px;">ARCHITECT MEMBERSHIP</p>
</div>
<div style="text-align: right;">
<p style="color: rgba(255,255,255,0.8); font-size: 11px;">Valid through</p>
<p style="color: white; font-size: 14px; font-weight: 500;">31/12/2021</p>
</div>
</div>
<div class="d-flex justify-between align-center" style="margin-top: auto;">
<div>
<p style="color: white; font-size: 18px; font-weight: 600; margin-bottom: 4px;">La Nguyen Quynh</p>
<p style="color: rgba(255,255,255,0.9); font-size: 12px;">CLASS: <span style="font-weight: 600;">DIAMOND</span></p>
<p style="color: rgba(255,255,255,0.9); font-size: 12px;">Points: <span style="font-weight: 600;">9750</span></p>
</div>
<div style="background: white; padding: 8px; border-radius: 8px;">
<img src="https://api.qrserver.com/v1/create-qr-code/?size=60x60&data=0983441099" alt="QR Code" style="width: 60px; height: 60px;">
</div>
</div>
</div>
<!-- Promotions Section -->
<div class="mb-3">
<h2>Chương trình ưu đãi</h2>
<div class="slider-container">
<div class="slider-wrapper">
<div class="slider-item">
<img src="https://images.unsplash.com/photo-1615971677499-5467cbab01c0?w=280&h=140&fit=crop" alt="Khuyến mãi 1">
<div style="padding: 12px; background: white;">
<h3 style="font-size: 14px;">Mua công nhắc - Khuyến mãi cảng lớn</h3>
<p class="text-small text-muted">Giảm đến 30% cho đơn hàng từ 10 triệu</p>
</div>
</div>
<div class="slider-item">
<img src="https://images.unsplash.com/photo-1600607687644-aac4c3eac7f4?w=280&h=140&fit=crop" alt="Khuyến mãi 2">
<div style="padding: 12px; background: white;">
<h3 style="font-size: 14px;">Keo chà ron tặng kèm</h3>
<p class="text-small text-muted">Mua gạch Eurotile tặng keo chà ron cao cấp</p>
</div>
</div>
<div class="slider-item">
<img src="https://images.unsplash.com/photo-1565538420870-da08ff96a207?w=280&h=140&fit=crop" alt="Khuyến mãi 3">
<div style="padding: 12px; background: white;">
<h3 style="font-size: 14px;">Ưu đãi đặc biệt thành viên VIP</h3>
<p class="text-small text-muted">Chiết khấu thêm 5% cho thành viên Diamond</p>
</div>
</div>
</div>
</div>
</div>
<!-- News Section -->
<div class="mb-3">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;">
<h2>Tin tức & Chuyên môn</h2>
<a href="news-list.html" style="color: #2563eb; font-size: 14px; text-decoration: none; font-weight: 500;">
Xem tất cả <i class="fas fa-arrow-right" style="margin-left: 4px;"></i>
</a>
</div>
<div class="news-slider-container">
<div class="news-slider-wrapper">
<div class="news-card">
<img src="https://images.unsplash.com/photo-1503387762-592deb58ef4e?w=280&h=140&fit=crop" alt="Tin tức 1" class="news-image">
<div class="news-content">
<h3 class="news-title">5 xu hướng gạch men phòng tắm được ưa chuộng năm 2024</h3>
<p class="news-desc">Khám phá những mẫu gạch men hiện đại, sang trọng cho không gian phòng tắm.</p>
<div class="news-meta">
<span><i class="fas fa-calendar"></i> 15/11/2024</span>
<span><i class="fas fa-eye"></i> 2.3K lượt xem</span>
</div>
</div>
</div>
<div class="news-card">
<img src="https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=280&h=140&fit=crop" alt="Tin tức 2" class="news-image">
<div class="news-content">
<h3 class="news-title">Hướng dẫn thi công gạch granite 60x60 chuyên nghiệp</h3>
<p class="news-desc">Quy trình thi công chi tiết từ A-Z cho thầy thợ xây dựng.</p>
<div class="news-meta">
<span><i class="fas fa-calendar"></i> 12/11/2024</span>
<span><i class="fas fa-eye"></i> 1.8K lượt xem</span>
</div>
</div>
</div>
<div class="news-card">
<img src="https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=280&h=140&fit=crop" alt="Tin tức 3" class="news-image">
<div class="news-content">
<h3 class="news-title">Bảng giá gạch men cao cấp mới nhất tháng 11/2024</h3>
<p class="news-desc">Cập nhật bảng giá chi tiết các dòng sản phẩm gạch men nhập khẩu.</p>
<div class="news-meta">
<span><i class="fas fa-calendar"></i> 10/11/2024</span>
<span><i class="fas fa-eye"></i> 3.1K lượt xem</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Products & Cart Section -->
<div class="card">
<h3 class="card-title">Sản phẩm & Giỏ hàng</h3>
<div class="feature-grid">
<a href="products.html" class="feature-item">
<div class="feature-icon">
<i class="fas fa-th-large"></i>
</div>
<div class="feature-title">Sản phẩm</div>
</a>
<a href="cart.html" class="feature-item">
<div class="feature-icon">
<i class="fas fa-shopping-cart"></i>
</div>
<div class="feature-title">Giỏ hàng</div>
<span class="badge">3</span>
</a>
<a href="#" class="feature-item">
<div class="feature-icon">
<i class="fas fa-heart"></i>
</div>
<div class="feature-title">Yêu thích</div>
</a>
</div>
</div>
<!-- Loyalty Section -->
<div class="card">
<h3 class="card-title">Khách hàng thân thiết</h3>
<div class="feature-grid">
<a href="loyalty-rewards.html" class="feature-item">
<div class="feature-icon">
<i class="fas fa-gift"></i>
</div>
<div class="feature-title">Đổi quà</div>
</a>
<a href="points-history.html" class="feature-item">
<div class="feature-icon">
<i class="fas fa-history"></i>
</div>
<div class="feature-title">Lịch sử điểm</div>
</a>
<a href="#" class="feature-item">
<div class="feature-icon">
<i class="fas fa-user-plus"></i>
</div>
<div class="feature-title">Giới thiệu bạn</div>
</a>
</div>
</div>
<!-- Orders & Payment Section -->
<div class="card">
<h3 class="card-title">Yêu cầu báo giá & báo giá</h3>
<div class="grid grid-2">
<a href="#" class="feature-item">
<div class="feature-icon">
<i class="fas fa-file-alt"></i>
</div>
<div class="feature-title">Yêu cầu báo giá</div>
</a>
<a href="#" class="feature-item">
<div class="feature-icon">
<i class="fas fa-file-invoice"></i>
</div>
<div class="feature-title">Báo giá</div>
</a>
</div>
</div>
<!-- Orders & Payment Section -->
<div class="card">
<h3 class="card-title">Đơn hàng & thanh toán</h3>
<div class="grid grid-2">
<a href="#" class="feature-item">
<div class="feature-icon">
<i class="fas fa-box"></i>
</div>
<div class="feature-title">Đơn hàng</div>
</a>
<a href="#" class="feature-item">
<div class="feature-icon">
<i class="fas fa-credit-card"></i>
</div>
<div class="feature-title">Thanh toán</div>
</a>
</div>
</div>
<!-- Collaboration & Reports Section -->
<div class="card">
<h3 class="card-title">Công trình, hợp đồng & báo cáo</h3>
<div class="feature-grid">
<a href="#" class="feature-item">
<div class="feature-icon">
<i class="fas fa-building"></i>
</div>
<div class="feature-title">Công trình</div>
</a>
<a href="#" class="feature-item">
<div class="feature-icon">
<i class="fas fa-handshake"></i>
</div>
<div class="feature-title">Hợp đồng</div>
</a>
<a href="#" class="feature-item">
<div class="feature-icon">
<i class="fas fa-chart-line"></i>
</div>
<div class="feature-title">Tổng quan</div>
</a>
</div>
</div>
</div>
</div>
<!-- Floating Action Button -->
<button class="fab">
<i class="fas fa-comments"></i>
</button>
<!-- Bottom Navigation -->
<div class="bottom-nav">
<a href="index.html" class="nav-item active">
<i class="fas fa-home nav-icon"></i>
<span class="nav-label">Trang chủ</span>
</a>
<a href="loyalty.html" class="nav-item">
<i class="fas fa-crown nav-icon"></i>
<span class="nav-label">Hội viên</span>
</a>
<a href="promotions.html" class="nav-item">
<i class="fas fa-tags nav-icon"></i>
<span class="nav-label">Khuyến mãi</span>
</a>
<a href="notifications.html" class="nav-item">
<i class="fas fa-bell nav-icon"></i>
<span class="nav-label">Thông báo</span>
<span class="badge">5</span>
</a>
<a href="account.html" class="nav-item">
<i class="fas fa-user nav-icon"></i>
<span class="nav-label">Cài đặt</span>
</a>
</div>
<!-- Policy Modal -->
<div id="policyModal" class="policy-modal">
<div class="policy-modal-content">
<!-- Header -->
<div class="policy-header">
<div class="policy-icon">
<i class="fas fa-hands-helping"></i>
</div>
<h2 class="policy-title">Chào mừng bạn đến với Worker App!</h2>
<p class="policy-subtitle">Nền tảng hỗ trợ chuyên nghiệp dành cho thầu thợ & kiến trúc sư</p>
</div>
<!-- Body -->
<div class="policy-body">
<p class="welcome-text">
Cảm ơn bạn đã tham gia cộng đồng Worker App! Chúng tôi cam kết mang đến những quyền lợi tốt nhất
và hỗ trợ bạn thành công trong mọi dự án.
</p>
<!-- Benefits Section -->
<div class="benefits-section">
<h3 class="benefits-title">
<i class="fas fa-star"></i>
Quyền lợi đặc biệt của bạn
</h3>
<ul class="benefits-list">
<li class="benefit-item">
<div class="benefit-icon">
<i class="fas fa-percentage"></i>
</div>
<div class="benefit-content">
<div class="benefit-title">Chiết khấu độc quyền</div>
<div class="benefit-desc">Giảm giá đến 20% cho tất cả sản phẩm, tăng theo hạng thành viên</div>
</div>
</li>
<li class="benefit-item">
<div class="benefit-icon">
<i class="fas fa-coins"></i>
</div>
<div class="benefit-content">
<div class="benefit-title">Tích điểm thưởng</div>
<div class="benefit-desc">Nhận 1 điểm cho mỗi 100k chi tiêu, đổi điểm lấy quà hấp dẫn</div>
</div>
</li>
<li class="benefit-item">
<div class="benefit-icon">
<i class="fas fa-shipping-fast"></i>
</div>
<div class="benefit-content">
<div class="benefit-title">Giao hàng ưu tiên</div>
<div class="benefit-desc">Miễn phí vận chuyển cho đơn từ 5 triệu, giao hàng nhanh trong 24h</div>
</div>
</li>
<li class="benefit-item">
<div class="benefit-icon">
<i class="fas fa-user-tie"></i>
</div>
<div class="benefit-content">
<div class="benefit-title">Tư vấn chuyên nghiệp</div>
<div class="benefit-desc">Hỗ trợ thiết kế 3D miễn phí, tư vấn kỹ thuật 24/7</div>
</div>
</li>
<li class="benefit-item">
<div class="benefit-icon">
<i class="fas fa-calendar-star"></i>
</div>
<div class="benefit-content">
<div class="benefit-title">Sự kiện độc quyền</div>
<div class="benefit-desc">Tham gia hội thảo, workshop và các sự kiện ngành chỉ dành cho thành viên</div>
</div>
</li>
<li class="benefit-item">
<div class="benefit-icon">
<i class="fas fa-gift"></i>
</div>
<div class="benefit-content">
<div class="benefit-title">Quà tặng sinh nhật</div>
<div class="benefit-desc">Voucher và điểm thưởng đặc biệt vào dịp sinh nhật</div>
</div>
</li>
</ul>
</div>
<!-- Important Note -->
<div style="background: #fef3c7; border: 1px solid #f59e0b; border-radius: 0.75rem; padding: 1rem; margin-top: 1rem;">
<div style="display: flex; align-items: flex-start; gap: 0.75rem;">
<i class="fas fa-exclamation-triangle" style="color: #f59e0b; margin-top: 0.25rem;"></i>
<div>
<div style="font-weight: 600; color: #92400e; margin-bottom: 0.5rem;">Điều khoản sử dụng</div>
<div style="font-size: 0.875rem; color: #92400e; line-height: 1.4;">
Bằng cách sử dụng ứng dụng, bạn đồng ý với các điều khoản dịch vụ và chính sách bảo mật của chúng tôi.
Các quyền lợi có thể thay đổi theo thời gian.
</div>
</div>
</div>
</div>
</div>
<!-- Footer -->
<div class="policy-footer">
<div class="policy-actions">
<button class="policy-accept-btn" onclick="closePolicyModal()">
<i class="fas fa-check"></i>
Tôi đã đọc và đồng ý
</button>
<p class="policy-note">
Bằng cách nhấn "Đồng ý", bạn xác nhận đã đọc và hiểu các điều khoản trên.
</p>
</div>
</div>
</div>
</div>
<script>
// Show policy modal on page load (for demo purposes)
document.addEventListener('DOMContentLoaded', function() {
// Check if user has seen the policy before
const hasSeenPolicy = localStorage.getItem('hasSeenPolicy');
if (!hasSeenPolicy) {
setTimeout(() => {
showPolicyModal();
}, 1000); // Show after 1 second for better UX
}
});
function showPolicyModal() {
const modal = document.getElementById('policyModal');
modal.classList.add('show');
document.body.style.overflow = 'hidden'; // Prevent background scrolling
}
function closePolicyModal() {
const modal = document.getElementById('policyModal');
modal.classList.remove('show');
document.body.style.overflow = ''; // Restore scrolling
// Remember that user has seen the policy
localStorage.setItem('hasSeenPolicy', 'true');
}
// Close modal when clicking outside
document.getElementById('policyModal').addEventListener('click', function(e) {
if (e.target === this) {
closePolicyModal();
}
});
// Temporary function to show modal for testing (remove in production)
function testShowModal() {
localStorage.removeItem('hasSeenPolicy');
showPolicyModal();
}
// Add a way to show modal again for testing
// Double-click on the member card to show modal again
document.querySelector('.member-card').addEventListener('dblclick', function() {
showPolicyModal();
});
</script>
</body>
</html>