Showing source for: http://www.wtbidc.cn/daoqi.html
Duration: 1.605861s
Server: Microsoft-IIS/10.0
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>æ¨çç½ç«å·²ç»å°æ</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#165DFF',
secondary: '#36D399',
neutral: '#F8FAFC',
dark: '#1E293B',
success: '#22C55E',
warning: '#FBBF24',
highlight: '#FFD700',
info: '#3B82F6'
},
fontFamily: {
inter: ['Inter', 'system-ui', 'sans-serif'],
},
}
}
}
</script>
<style type="text/tailwindcss">
@layer utilities {
.content-auto {
content-visibility: auto;
}
.text-shadow {
text-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.bg-gradient-blue {
background: linear-gradient(135deg, #165DFF 0%, #0A3CA0 100%);
}
.bg-gradient-green {
background: linear-gradient(135deg, #36D399 0%, #10B981 100%);
}
.pulse-animation {
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.fade-in {
animation: fadeIn 0.8s ease-in-out;
}
.slide-up {
animation: slideUp 0.8s ease-out;
}
.bounce-in {
animation: bounceIn 0.6s cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
.progress-pulse {
animation: progressPulse 1.5s ease-in-out infinite;
}
.step-highlight {
animation: stepHighlight 1.5s ease-in-out infinite alternate;
}
}
@keyframes pulse {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0.7;
}
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slideUp {
from { transform: translateY(20px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
@keyframes bounceIn {
0% { transform: scale(0.3); opacity: 0; }
20% { transform: scale(1.1); }
40% { transform: scale(0.9); }
60% { transform: scale(1.03); opacity: 1; }
80% { transform: scale(0.97); }
100% { transform: scale(1); opacity: 1; }
}
@keyframes progressPulse {
0% { box-shadow: 0 0 0 0 rgba(22, 93, 255, 0.5); }
70% { box-shadow: 0 0 0 10px rgba(22, 93, 255, 0); }
100% { box-shadow: 0 0 0 0 rgba(22, 93, 255, 0); }
}
@keyframes stepHighlight {
0% { box-shadow: 0 0 0 0 rgba(255, 215, 0, 0.3); }
100% { box-shadow: 0 0 15px 5px rgba(255, 215, 0, 0); }
}
.float {
animation: float 3s ease-in-out infinite;
}
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
</style>
</head>
<body class="font-inter bg-neutral min-h-screen flex flex-col items-center justify-center text-dark">
<!-- ç»´æ¤ä¸é¡µé¢ -->
<div id="maintenance-page" class="container max-w-4xl mx-auto px-4 py-8 md:py-12">
<!-- æ å¿åºå - 卿æ¾ç¤ºä¸åç¶æ -->
<div class="text-center mb-8 fade-in">
<div id="status-icon" class="inline-flex items-center justify-center w-20 h-20 rounded-full bg-primary/10 mb-4 float">
<i class="fa-solid fa-clock text-primary text-4xl"></i>
</div>
<h1 id="status-title" class="text-[clamp(2rem,5vw,3.5rem)] font-bold text-dark mb-2 text-shadow">æ¨çç½ç«å·²ç»å°æ</h1>
<p id="status-description" class="text-[clamp(1rem,2vw,1.25rem)] text-gray-600 max-w-2xl mx-auto"><font color="#FF0000">æ¨å¨æå¸ç³è¯·çèæä¸»æºï¼å ä¸ºå°æå·²è¢«æåï¼</font></p>
</div>
<!-- ç»´æ¤ä¿¡æ¯å¡ç -->
<div id="maintenance-card" class="bg-white rounded-2xl shadow-xl overflow-hidden transition-all duration-500 hover:shadow-2xl slide-up">
<div id="card-header" class="bg-gradient-blue p-6 md:p-8 text-white">
<div class="flex items-center justify-between">
<h2 class="text-2xl md:text-3xl font-bold mb-0">æ°æ®ä¿çéç¥</h2>
<span id="status-badge" class="bg-info/90 px-3 py-1 rounded-full text-sm font-medium">
<i class="fa-solid fa-clock mr-1"></i> æªå¼å§
</span>
</div>
</div>
<div class="p-6 md:p-8">
<div class="mb-8">
<h3 class="text-xl font-semibold mb-3 flex items-center">
<i class="fa-solid fa-info-circle text-primary mr-2"></i>
<span id="info-title">ç»´æ¤è¯¦æ
</span>
</h3>
<p id="info-description" class="text-gray-700 leading-relaxed mb-6">
ç³»ç»ç»´æ¤å°æªå¼å§ï¼è¯·ç¨åå访é®ã
</p>
<!-- ç»´æ¤æ¥éª¤å±ç¤º - æ°´å¹³å¸å± -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 mt-6">
<!-- å¤ä»½æ°æ®åº -->
<div id="backup-step" class="flex flex-col items-center p-4 bg-gray-50 rounded-xl border border-gray-200 opacity-60">
<div id="backup-icon" class="w-12 h-12 rounded-full bg-gray-100 flex items-center justify-center mb-3">
<i class="fa-solid fa-clock text-gray-400"></i>
</div>
<h4 class="font-semibold text-gray-800">å¤ä»½æ°æ®åº</h4>
<div id="backup-status" class="text-xs font-medium mt-1 text-gray-500">çå¾
ä¸</div>
</div>
<!-- æ´æ°æ ¸å¿ç³»ç» -->
<div id="core-step" class="flex flex-col items-center p-4 bg-gray-50 rounded-xl border border-gray-200 opacity-60">
<div id="core-icon" class="w-12 h-12 rounded-full bg-gray-100 flex items-center justify-center mb-3">
<i class="fa-solid fa-clock text-gray-400"></i>
</div>
<h4 class="font-semibold text-gray-800">å¤ä»½ç½ç«æä»¶</h4>
<div id="core-status" class="text-xs font-medium mt-1 text-gray-500">çå¾
ä¸</div>
</div>
<!-- å®å
¨éªè¯ -->
<div id="security-step" class="flex flex-col items-center p-4 bg-gray-50 rounded-xl border border-gray-200 opacity-60">
<div id="security-icon" class="w-12 h-12 rounded-full bg-gray-100 flex items-center justify-center mb-3">
<i class="fa-solid fa-clock text-gray-400"></i>
</div>
<h4 class="font-semibold text-gray-800"><font color="#FF0000">çå¾
å 餿°æ®</font></h4>
<div id="security-status" class="text-xs font-medium mt-1 text-gray-500">çå¾
ä¸</div>
</div>
</div>
</div>
<!-- å计æ¶åºå -->
<!-- è¿åº¦æ¡ -->
<div class="mb-6 hidden" id="progress-container">
</div>
<!-- èç³»ä¿¡æ¯ -->
<div class="text-center mt-10 p-4 bg-gray-50 rounded-xl">
<h3 class="text-lg font-semibold mb-3 flex items-center justify-center">
<i class="fa-solid fa-headset text-primary mr-2"></i> éè¦å¸®å©ï¼
</h3>
<p class="text-gray-600 mb-4">妿任ä½é®é¢ï¼è¯·éæ¶èç³»æä»¬</p>
<div class="flex justify-center">
<a href="/user/pay/" target="_blank" class="inline-flex items-center justify-center px-4 py-2 bg-primary text-white rounded-lg hover:bg-primary/90 transition-colors duration-300">
<i class="fa-solid fa-envelope mr-2"></i> 马ä¸ç»è´¹
</a>
</div>
</div>
</div>
</div>
<!-- 页è -->
<footer class="mt-12 text-center text-gray-500 text-sm fade-in" style="animation-delay: 0.4s">
<p>© 2025<a href="https://www.wtbidc.cn/">乿é¦ç½ç»</a></p>
</footer>
</div>
<!-- ç»´æ¤å®æåé¡µé¢ -->
<div id="completion-page" class="container max-w-4xl mx-auto px-4 py-8 md:py-12 hidden">
<!-- æ å¿åºå -->
<div class="text-center mb-8 fade-in">
<div class="inline-flex items-center justify-center w-20 h-20 rounded-full bg-secondary/10 mb-4 bounce-in">
<i class="fa-solid fa-check-circle text-secondary text-4xl"></i>
</div>
<h1 class="text-[clamp(2rem,5vw,3.5rem)] font-bold text-dark mb-2 text-shadow">ç³»ç»ç»´æ¤å·²å®æ</h1>
<p class="text-[clamp(1rem,2vw,1.25rem)] text-gray-600 max-w-2xl mx-auto">æè°¢æ¨çèå¿çå¾
</p>
</div>
<!-- ç»´æ¤ä¿¡æ¯å¡ç -->
<div class="bg-white rounded-2xl shadow-xl overflow-hidden transition-all duration-500 hover:shadow-2xl slide-up">
<div class="bg-gradient-green p-6 md:p-8 text-white">
<div class="flex items-center justify-between">
<h2 class="text-2xl md:text-3xl font-bold">ç»´æ¤å®æéç¥</h2>
<span class="bg-white/20 px-3 py-1 rounded-full text-sm font-medium backdrop-blur-sm">
<i class="fa-solid fa-check mr-1"></i> 已宿
</span>
</div>
</div>
<div class="p-6 md:p-8">
<div class="mb-8">
<h3 class="text-xl font-semibold mb-3 flex items-center">
<i class="fa-solid fa-info-circle text-secondary mr-2"></i> ç»´æ¤ç»æ
</h3>
<p class="text-gray-700 leading-relaxed">
æä»¬å·²é¡ºå©å®æç³»ç»åçº§åæ§è½ä¼åï¼ç½ç«ç°å·²æ¢å¤æ£å¸¸è®¿é®ãæè°¢æ¨å¨æ¤æé´ççè§£ä¸æ¯æã
</p>
</div>
<!-- æåç¶æåºå -->
<div class="bg-secondary/5 rounded-xl p-6 mb-8 flex flex-col md:flex-row items-center">
<div class="w-16 h-16 rounded-full bg-secondary/20 flex items-center justify-center mb-4 md:mb-0 md:mr-6">
<i class="fa-solid fa-thumbs-up text-secondary text-2xl"></i>
</div>
<div>
<h3 class="text-xl font-semibold mb-2 text-secondary">ç»´æ¤å·¥ä½é¡ºå©å®æ</h3>
<p class="text-gray-700">
ç³»ç»å·²å
¨é¢æ¢å¤ï¼å项åè½åå·²æ£å¸¸è¿è¡ãæä»¬å¯¹ç³»ç»è¿è¡äºå
¨é¢æ£æ¥ï¼ç¡®ä¿ä¸åæ£å¸¸ã
</p>
</div>
</div>
<!-- æç¤ºä¿¡æ¯ -->
<div class="bg-primary/5 rounded-xl p-6 mb-8">
<h3 class="text-xl font-semibold mb-3 flex items-center">
<i class="fa-solid fa-refresh text-primary mr-2"></i> 温馨æç¤º
</h3>
<p class="text-gray-700 mb-4">
妿æ¨ä»ç¶çå°æ¤é¡µé¢æéå°ä»»ä½é®é¢ï¼è¯·å°è¯ä»¥ä¸æä½ï¼
</p>
<ul class="list-disc pl-5 text-gray-700 space-y-2">
<li>å·æ°å½å页é¢ï¼æ F5 鮿ç¹å»æµè§å¨å·æ°æé®ï¼</li>
<li>æ¸
餿µè§å¨ç¼ååCookieåéè¯</li>
<li>å°è¯ä½¿ç¨å
¶ä»æµè§å¨è®¿é®</li>
</ul>
</div>
<!-- èç³»ä¿¡æ¯ -->
<div class="text-center mt-10 p-4 bg-gray-50 rounded-xl">
<h3 class="text-lg font-semibold mb-3 flex items-center justify-center">
<i class="fa-solid fa-headset text-primary mr-2"></i> éè¦å¸®å©ï¼
</h3>
<p class="text-gray-600 mb-4">妿任ä½é®é¢ï¼è¯·éæ¶èç³»æä»¬</p>
<div class="flex justify-center">
<a href="/user/pay/" target="_blank" class="inline-flex items-center justify-center px-4 py-2 bg-primary text-white rounded-lg hover:bg-primary/90 transition-colors duration-300">
<i class="fa-solid fa-envelope mr-2"></i> 马ä¸ç»è´¹
</a>
</div>
</div>
</div>
</div>
<!-- 页è -->
<footer class="mt-12 text-center text-gray-500 text-sm fade-in" style="animation-delay: 0.4s">
<p>© 2025<a href="https://www.wtbidc.cn/">乿é¦ç½ç»</a></p>
</footer>
</div>
<script>
/***************************************************************
* ç»´æ¤æ¶é´é
ç½®åºå - 请修æ¹ä»¥ä¸æ¶é´è®¾ç½®
* æ ¼å¼ï¼"å¹´.æ.æ¥ æ¶:å" (24å°æ¶å¶)
* 示ä¾ï¼"2025.05.31 00:00"
***************************************************************/
/*https://www.xyjzy.comå°å¦ç²¾èµæºç½*/
const config = {
maintenanceStartTime: "2025.05.06 03:23", // ç»´æ¤å¼å§æ¶é´
maintenanceEndTime: "2026.11.11 03:25" // ç»´æ¤ç»ææ¶é´
};
// è§£ææ¶é´
function parseTime(timeString) {
const [datePart, timePart] = timeString.split(' ');
const [year, month, day] = datePart.split('.').map(Number);
const [hours, minutes] = timePart.split(':').map(Number);
return new Date(year, month - 1, day, hours, minutes, 0);
}
// åå§åæ¶é´
const startTime = parseTime(config.maintenanceStartTime);
const endTime = parseTime(config.maintenanceEndTime);
const totalMaintenanceDuration = endTime - startTime;
// åºå®æ¶é´åé
æ¯ä¾
const backupDuration = totalMaintenanceDuration * 0.05; // 5%çæ¶é´
const coreDuration = totalMaintenanceDuration * 0.80; // 80%çæ¶é´
const securityDuration = totalMaintenanceDuration * 0.15; // 15%çæ¶é´
// è®¡ç®æ¯ä¸ªæ¥éª¤çå¼å§åç»ææ¶é´
const backupStart = startTime;
const backupEnd = new Date(backupStart.getTime() + backupDuration);
const coreStart = backupEnd;
const coreEnd = new Date(coreStart.getTime() + coreDuration);
const securityStart = coreEnd;
const securityEnd = new Date(securityStart.getTime() + securityDuration);
// è·åæåå§åç»´æ¤ç¶æ
const maintenanceState = JSON.parse(localStorage.getItem('maintenanceState')) || {
startTime: startTime.getTime(),
currentStep: 'backup',
backupCompleted: false,
coreCompleted: false,
securityCompleted: false
};
// DOMå
ç´
const daysElement = document.getElementById('days');
const hoursElement = document.getElementById('hours');
const minutesElement = document.getElementById('minutes');
const secondsElement = document.getElementById('seconds');
const progressBar = document.getElementById('progress-bar');
const progressPercentage = document.getElementById('progress-percentage');
const statusBadge = document.getElementById('status-badge');
const countdownLabel = document.getElementById('countdown-label');
// ç»´æ¤æ¥éª¤å
ç´
const backupStep = document.getElementById('backup-step');
const backupIcon = document.getElementById('backup-icon');
const backupStatus = document.getElementById('backup-status');
const coreStep = document.getElementById('core-step');
const coreIcon = document.getElementById('core-icon');
const coreStatus = document.getElementById('core-status');
const securityStep = document.getElementById('security-step');
const securityIcon = document.getElementById('security-icon');
const securityStatus = document.getElementById('security-status');
// 页é¢å
ç´
const maintenancePage = document.getElementById('maintenance-page');
const completionPage = document.getElementById('completion-page');
// ç¶ææ¾ç¤ºå
ç´
const statusIcon = document.getElementById('status-icon');
const statusTitle = document.getElementById('status-title');
const statusDescription = document.getElementById('status-description');
const cardHeader = document.getElementById('card-header');
const infoTitle = document.getElementById('info-title');
const infoDescription = document.getElementById('info-description');
const progressContainer = document.getElementById('progress-container');
// åå§å页é¢
document.addEventListener('DOMContentLoaded', () => {
// æ£æ¥å½åæ¶é´ä¸ç»´æ¤æ¶é´çå
³ç³»
const now = new Date();
// ç»´æ¤å°æªå¼å§
if (now < startTime) {
setupPreMaintenanceView();
maintenanceState.startTime = startTime.getTime();
maintenanceState.currentStep = 'backup';
maintenanceState.backupCompleted = false;
maintenanceState.coreCompleted = false;
maintenanceState.securityCompleted = false;
localStorage.setItem('maintenanceState', JSON.stringify(maintenanceState));
}
// ç»´æ¤å·²ç»æ
else if (now >= endTime) {
showCompletionPage();
return;
}
// ç»´æ¤è¿è¡ä¸ - æ´æ°ç¶æ
else {
// æ£æ¥å¤ä»½æ¯å¦å®æ
if (now >= backupEnd) {
maintenanceState.backupCompleted = true;
}
// æ£æ¥æ ¸å¿æ´æ°æ¯å¦å®æ
if (now >= coreEnd) {
maintenanceState.coreCompleted = true;
}
// æ£æ¥å®å
¨éªè¯æ¯å¦å®æ
if (now >= securityEnd) {
maintenanceState.securityCompleted = true;
}
// ç¡®å®å½åæ¥éª¤
if (now < backupEnd) {
maintenanceState.currentStep = 'backup';
} else if (now < coreEnd) {
maintenanceState.currentStep = 'core';
} else if (now < securityEnd) {
maintenanceState.currentStep = 'security';
}
localStorage.setItem('maintenanceState', JSON.stringify(maintenanceState));
// 忢å°ç»´æ¤ä¸è§å¾
setupMaintenanceView();
}
// æ´æ°æ¥éª¤ç¶æ
updateSteps(now);
// å¼å§å计æ¶
startCountdown();
});
// 设置维æ¤å°æªå¼å§çè§å¾
function setupPreMaintenanceView() {
// æ´æ°ç¶æå¾æ åæ é¢
statusIcon.innerHTML = '<i class="fa-solid fa-clock text-info text-4xl"></i>';
statusIcon.classList.remove('bg-primary/10');
statusIcon.classList.add('bg-info/10');
statusTitle.textContent = "ç³»ç»ç»´æ¤å³å°å¼å§";
statusDescription.textContent = "ç³»ç»ç»´æ¤å°æªå¼å§ï¼è¯·ç¨åå访é®";
// æ´æ°å¡ç头é¨
cardHeader.classList.remove('bg-gradient-blue');
cardHeader.classList.add('bg-info');
// æ´æ°ç¶æå¾½ç«
statusBadge.innerHTML = '<i class="fa-solid fa-clock mr-1"></i> æªå¼å§';
statusBadge.classList.remove('bg-warning/90', 'bg-success');
statusBadge.classList.add('bg-info/90');
// æ´æ°ä¿¡æ¯æ é¢åæè¿°
infoTitle.textContent = "ç»´æ¤è®¡å";
infoDescription.textContent = "ç³»ç»ç»´æ¤å°æªå¼å§ï¼è¯·ç¨åå访é®ãç»´æ¤æé´ç½ç«å°ææ¶æ æ³è®¿é®ã";
// æ´æ°åè®¡æ¶æ ç¾
countdownLabel.textContent = "ç»´æ¤å¼å§å计æ¶";
// éèè¿åº¦æ¡
progressContainer.classList.add('hidden');
}
// 设置维æ¤ä¸çè§å¾
function setupMaintenanceView() {
// æ´æ°ç¶æå¾æ åæ é¢
statusIcon.innerHTML = '<i class="fa-solid fa-wrench text-warning text-4xl"></i>';
statusIcon.classList.remove('bg-info/10');
statusIcon.classList.add('bg-warning/10');
statusTitle.textContent = "æ¨çç½ç«å·²ç»å°æ!";
statusDescription.textContent = "æ¨å¨æå¸ç³è¯·çèæä¸»æºï¼å ä¸ºå°æå·²è¢«æåï¼";
// æ´æ°å¡ç头é¨
cardHeader.classList.remove('bg-info');
cardHeader.classList.add('bg-gradient-blue');
// æ´æ°ç¶æå¾½ç«
statusBadge.innerHTML = '<i class="fa-solid fa-sync-alt mr-1 animate-spin"></i> æ°æ®ä¿çä¸...';
statusBadge.classList.remove('bg-info/90', 'bg-success');
statusBadge.classList.add('bg-warning/90');
// æ´æ°ä¿¡æ¯æ é¢åæè¿°
infoTitle.textContent = "å°æ¬çç¨æ·ï¼";
infoDescription.textContent = "æä»¬ä¸ºæ¨ä¿åä¸å¨çæ°æ®ï¼ä¸å¨åç³»ç»å°èªå¨å 餿°æ®,并䏿 æ³æ¢å¤ï¼ä¸ºäºæ¨çæ°æ®å®å
¨ï¼è¯·åæ¶ç»è´¹å¼éã";
// æ´æ°åè®¡æ¶æ ç¾
// æ¾ç¤ºè¿åº¦æ¡
progressContainer.classList.remove('hidden');
}
// å¼å§å计æ¶
function startCountdown() {
// æ´æ°æ¾ç¤º
updateDisplay();
// è®¾ç½®å®æ¶å¨
const countdownInterval = setInterval(() => {
const now = new Date();
// ç»´æ¤å°æªå¼å§
if (now < startTime) {
updateDisplay();
return;
}
// ç»´æ¤è¿è¡ä¸
if (now >= startTime && now < endTime) {
// 妿æ¯ååè¿å
¥ç»´æ¤ç¶æï¼æ´æ°è§å¾
if (statusTitle.textContent !== "ç³»ç»ç»´æ¤ä¸") {
setupMaintenanceView();
}
// 宿¶æ´æ°ç¶æ
updateMaintenanceState(now);
updateDisplay();
updateSteps(now);
return;
}
// ç»´æ¤ç»æ
if (now >= endTime) {
clearInterval(countdownInterval);
localStorage.removeItem('maintenanceState'); // æ¸
é¤åå¨çç¶æ
showCompletionPage();
}
}, 1000);
}
// 宿¶æ´æ°ç¶æ
function updateMaintenanceState(now) {
// æ£æ¥å¤ä»½æ¯å¦å®æ
maintenanceState.backupCompleted = now >= backupEnd;
// æ£æ¥æ ¸å¿æ´æ°æ¯å¦å®æ
maintenanceState.coreCompleted = now >= coreEnd;
// æ£æ¥å®å
¨éªè¯æ¯å¦å®æ
maintenanceState.securityCompleted = now >= securityEnd;
// ç¡®å®å½åæ¥éª¤
if (now < backupEnd) {
maintenanceState.currentStep = 'backup';
} else if (now < coreEnd) {
maintenanceState.currentStep = 'core';
} else if (now < securityEnd) {
maintenanceState.currentStep = 'security';
}
// ä¿åç¶æ
localStorage.setItem('maintenanceState', JSON.stringify(maintenanceState));
}
// æ´æ°æ¾ç¤º
function updateDisplay() {
const now = new Date();
let remainingSeconds = 0;
let progress = 0;
let targetTime = startTime;
// ç»´æ¤å°æªå¼å§ - å计æ¶å°å¼å§æ¶é´
if (now < startTime) {
remainingSeconds = Math.floor((startTime - now) / 1000);
progress = 0;
targetTime = startTime;
}
// ç»´æ¤è¿è¡ä¸ - å计æ¶å°ç»ææ¶é´
else if (now < endTime) {
remainingSeconds = Math.floor((endTime - now) / 1000);
const elapsedTime = now - startTime;
progress = Math.min((elapsedTime / totalMaintenanceDuration) * 100, 100);
targetTime = endTime;
}
// ç»´æ¤å·²ç»æ
else {
remainingSeconds = 0;
progress = 100;
}
// æ´æ°åè®¡æ¶æ¾ç¤º
const days = Math.floor(remainingSeconds / (3600 * 24));
const hours = Math.floor((remainingSeconds % (3600 * 24)) / 3600);
const minutes = Math.floor((remainingSeconds % 3600) / 60);
const secs = remainingSeconds % 60;
daysElement.textContent = days.toString().padStart(2, '0');
hoursElement.textContent = hours.toString().padStart(2, '0');
minutesElement.textContent = minutes.toString().padStart(2, '0');
secondsElement.textContent = secs.toString().padStart(2, '0');
// æ´æ°è¿åº¦æ¡
const roundedProgress = Math.min(Math.round(progress), 100);
progressBar.style.width = `${progress}%`;
progressPercentage.textContent = `${roundedProgress}%`;
}
// æ´æ°æ¥éª¤ç¶æ
function updateSteps(now) {
// ç»´æ¤å°æªå¼å§
if (now < startTime) {
backupStatus.textContent = "çå¾
ä¸";
backupStatus.classList.remove('text-primary', 'text-success');
backupStatus.classList.add('text-gray-500');
coreStatus.textContent = "çå¾
ä¸";
coreStatus.classList.remove('text-primary', 'text-success');
coreStatus.classList.add('text-gray-500');
securityStatus.textContent = "çå¾
ä¸";
securityStatus.classList.remove('text-primary', 'text-success');
securityStatus.classList.add('text-gray-500');
backupIcon.innerHTML = '<i class="fa-solid fa-clock text-gray-400"></i>';
backupStep.classList.remove('step-highlight', 'border-primary');
backupStep.classList.add('opacity-60');
coreStep.classList.add('opacity-60');
securityStep.classList.add('opacity-60');
return;
}
// å¤ä»½æ°æ®åºé¶æ®µ
if (maintenanceState.backupCompleted) {
backupStatus.textContent = "已宿";
backupStatus.classList.remove('text-gray-500', 'text-primary');
backupStatus.classList.add('text-success');
backupIcon.innerHTML = '<i class="fa-solid fa-check text-success"></i>';
backupStep.classList.remove('step-highlight', 'border-primary', 'opacity-60');
backupStep.classList.add('border-success', 'bg-success/5');
// æ¿æ´»æ ¸å¿æ´æ°æ¥éª¤
coreStep.classList.remove('opacity-60');
} else if (maintenanceState.currentStep === 'backup') {
// 计ç®å¤ä»½è¿åº¦ (0-100%)
const backupElapsed = now - backupStart;
const backupProgress = Math.min((backupElapsed / backupDuration) * 100, 100);
backupStatus.textContent = `æ°æ®ä¿çä¸...ï¼${backupProgress.toFixed(1)}%ï¼`;
backupStatus.classList.remove('text-gray-500', 'text-success');
backupStatus.classList.add('text-primary');
backupIcon.innerHTML = '<i class="fa-solid fa-sync-alt text-primary animate-spin"></i>';
backupStep.classList.add('step-highlight', 'border-primary');
backupStep.classList.remove('opacity-60');
}
// æ ¸å¿æ´æ°é¶æ®µ
if (maintenanceState.coreCompleted) {
coreStatus.textContent = "已宿";
coreStatus.classList.remove('text-gray-500', 'text-primary');
coreStatus.classList.add('text-success');
coreIcon.innerHTML = '<i class="fa-solid fa-check text-success"></i>';
coreStep.classList.remove('step-highlight', 'border-primary', 'opacity-60');
coreStep.classList.add('border-success', 'bg-success/5');
// æ¿æ´»å®å
¨éªè¯æ¥éª¤
securityStep.classList.remove('opacity-60');
} else if (maintenanceState.currentStep === 'core') {
// è®¡ç®æ ¸å¿æ´æ°è¿åº¦ (0-100%)
const coreElapsed = now - coreStart;
const coreProgress = Math.min((coreElapsed / coreDuration) * 100, 100);
coreStatus.textContent = `æ°æ®ä¿çä¸...ï¼${coreProgress.toFixed(1)}%ï¼`;
coreStatus.classList.remove('text-gray-500', 'text-success');
coreStatus.classList.add('text-primary');
coreIcon.innerHTML = '<i class="fa-solid fa-sync-alt text-primary animate-spin"></i>';
coreStep.classList.add('step-highlight', 'border-primary');
coreStep.classList.remove('opacity-60');
}
// å®å
¨éªè¯é¶æ®µ
if (maintenanceState.securityCompleted) {
securityStatus.textContent = "已宿";
securityStatus.classList.remove('text-gray-500', 'text-primary');
securityStatus.classList.add('text-success');
securityIcon.innerHTML = '<i class="fa-solid fa-check text-success"></i>';
securityStep.classList.remove('step-highlight', 'border-primary', 'opacity-60');
securityStep.classList.add('border-success', 'bg-success/5');
} else if (maintenanceState.currentStep === 'security') {
// 计ç®å®å
¨éªè¯è¿åº¦ (0-100%)
const securityElapsed = now - securityStart;
const securityProgress = Math.min((securityElapsed / securityDuration) * 100, 100);
securityStatus.textContent = `æ°æ®ä¿çä¸...ï¼${securityProgress.toFixed(1)}%ï¼`;
securityStatus.classList.remove('text-gray-500', 'text-success');
securityStatus.classList.add('text-primary');
securityIcon.innerHTML = '<i class="fa-solid fa-sync-alt text-primary animate-spin"></i>';
securityStep.classList.add('step-highlight', 'border-primary');
securityStep.classList.remove('opacity-60');
}
}
// æ¾ç¤ºå®æé¡µé¢
function showCompletionPage() {
// æ´æ°æææ¥éª¤ç¶æä¸ºå·²å®æ
maintenanceState.backupCompleted = true;
maintenanceState.coreCompleted = true;
maintenanceState.securityCompleted = true;
maintenanceState.currentStep = 'completed';
// æ´æ°ç¶æå¾½ç«
statusBadge.innerHTML = '<i class="fa-solid fa-check mr-1"></i> 已宿';
statusBadge.classList.remove('bg-warning/90');
statusBadge.classList.add('bg-success');
// æ´æ°æææ¥éª¤æ¾ç¤º
backupStatus.textContent = "已宿";
backupStatus.classList.remove('text-gray-500', 'text-primary');
backupStatus.classList.add('text-success');
backupIcon.innerHTML = '<i class="fa-solid fa-check text-success"></i>';
backupStep.classList.remove('step-highlight', 'border-primary', 'opacity-60');
backupStep.classList.add('border-success', 'bg-success/5');
coreStatus.textContent = "已宿";
coreStatus.classList.remove('text-gray-500', 'text-primary');
coreStatus.classList.add('text-success');
coreIcon.innerHTML = '<i class="fa-solid fa-check text-success"></i>';
coreStep.classList.remove('step-highlight', 'border-primary', 'opacity-60');
coreStep.classList.add('border-success', 'bg-success/5');
securityStatus.textContent = "已宿";
securityStatus.classList.remove('text-gray-500', 'text-primary');
securityStatus.classList.add('text-success');
securityIcon.innerHTML = '<i class="fa-solid fa-check text-success"></i>';
securityStep.classList.remove('step-highlight', 'border-primary', 'opacity-60');
securityStep.classList.add('border-success', 'bg-success/5');
// æ´æ°è¿åº¦æ¡
progressBar.style.width = '100%';
progressPercentage.textContent = '100%';
// 忢页颿¾ç¤º
maintenancePage.classList.add('hidden');
completionPage.classList.remove('hidden');
}
</script>
</body>
</html>
| # |
Url |
Url |
Source |
Date |
| 1 |
http://www.wtbidc.cn/daoqi.html |
|
2026-10-17 15:30:11 |
| 2 |
http://chinavisa60.s3-website.ap-e… |
|
2026-10-17 15:30:11 |
| 3 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 15:30:11 |
| 4 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 15:30:11 |
| 5 |
https://www.texarkanatwins.com/&qu… |
|
2026-10-17 15:30:10 |
| 6 |
https://je-tall-sf-seo-55.b-cdn.ne… |
|
2026-10-17 15:30:10 |
| 7 |
https://auth.mediacorp.sg/u/login?… |
|
2026-10-17 15:30:10 |
| 8 |
https://ya-4545-18.s3.us-east-005.… |
|
2026-10-17 15:30:10 |
| 9 |
https://turan-boyd.federatedjourna… |
|
2026-10-17 15:30:10 |
| 10 |
https://finnl346t.total-blog.com/t… |
|
2026-10-17 15:30:09 |
| 11 |
https://auth.mediacorp.sg/u/login?… |
|
2026-10-17 15:30:03 |
| 12 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 15:30:03 |
| 13 |
https://auth.mediacorp.sg/u/login?… |
|
2026-10-17 15:30:03 |
| 14 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 15:29:58 |
| 15 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 15:29:56 |
| 16 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 15:29:56 |
| 17 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 15:29:54 |
| 18 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 15:29:53 |
| 19 |
https://telegram.org/#092;nhttps:/… |
|
2026-10-17 15:29:42 |
| 20 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 15:29:33 |