修改大屏,继续完善官网
@@ -285,6 +285,48 @@ body {
|
||||
padding: 5rem 0;
|
||||
}
|
||||
|
||||
/* 百度地图样式 */
|
||||
#baidu-map-container {
|
||||
border: 2px solid #e9ecef;
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#baidu-map-container:hover {
|
||||
border-color: #667eea;
|
||||
box-shadow: 0 5px 15px rgba(102, 126, 234, 0.2);
|
||||
}
|
||||
|
||||
/* 地图加载状态样式 */
|
||||
.map-loading {
|
||||
background: linear-gradient(45deg, #f8f9fa 25%, transparent 25%),
|
||||
linear-gradient(-45deg, #f8f9fa 25%, transparent 25%),
|
||||
linear-gradient(45deg, transparent 75%, #f8f9fa 75%),
|
||||
linear-gradient(-45deg, transparent 75%, #f8f9fa 75%);
|
||||
background-size: 20px 20px;
|
||||
background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
|
||||
animation: mapLoading 1s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes mapLoading {
|
||||
0% { background-position: 0 0, 0 10px, 10px -10px, -10px 0px; }
|
||||
100% { background-position: 20px 20px, 20px 30px, 30px 10px, 10px 20px; }
|
||||
}
|
||||
|
||||
/* 地图控件样式优化 */
|
||||
.BMap_cpyCtrl {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* 响应式地图 */
|
||||
@media (max-width: 768px) {
|
||||
#baidu-map-container {
|
||||
height: 250px !important;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.contact-info {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
@@ -406,6 +448,163 @@ html {
|
||||
100% { transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
/* 页面加载动画 */
|
||||
.page-loader {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
z-index: 9999;
|
||||
transition: opacity 0.5s ease-out;
|
||||
}
|
||||
|
||||
.page-loader.fade-out {
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.loader-content {
|
||||
text-align: center;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.spinner {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border: 4px solid rgba(255, 255, 255, 0.3);
|
||||
border-top: 4px solid white;
|
||||
border-radius: 50%;
|
||||
animation: spin 1s linear infinite;
|
||||
margin: 0 auto 20px;
|
||||
}
|
||||
|
||||
.loader-text {
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.loader-subtitle {
|
||||
font-size: 14px;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/* 性能优化 - 图片懒加载 */
|
||||
.lazy-image {
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.lazy-image.loaded {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* 按钮悬停效果优化 */
|
||||
.btn {
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
/* 卡片悬停效果优化 */
|
||||
.card, .feature-card, .download-card {
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
.card:hover, .feature-card:hover, .download-card:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* 文字渐入动画 */
|
||||
.fade-in-up {
|
||||
opacity: 0;
|
||||
transform: translateY(30px);
|
||||
transition: all 0.6s ease-out;
|
||||
}
|
||||
|
||||
.fade-in-up.animate {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
/* 进度条动画 */
|
||||
.progress-bar {
|
||||
transition: width 1.5s ease-in-out;
|
||||
}
|
||||
|
||||
/* 数字计数动画 */
|
||||
.counter {
|
||||
font-weight: bold;
|
||||
color: #667eea;
|
||||
}
|
||||
|
||||
/* 表单提交状态 */
|
||||
.form-submitting {
|
||||
pointer-events: none;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.form-submitting .btn {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
/* 通知样式优化 */
|
||||
.alert {
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.alert-success {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* 骨架屏加载效果 */
|
||||
.skeleton {
|
||||
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
|
||||
background-size: 200% 100%;
|
||||
animation: loading 1.5s infinite;
|
||||
}
|
||||
|
||||
@keyframes loading {
|
||||
0% {
|
||||
background-position: 200% 0;
|
||||
}
|
||||
100% {
|
||||
background-position: -200% 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 图片加载优化 */
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
loading: lazy;
|
||||
}
|
||||
|
||||
/* 减少重绘重排 */
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* GPU加速 */
|
||||
.gpu-accelerated {
|
||||
transform: translateZ(0);
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
/* 系统入口功能区 */
|
||||
.systems-section {
|
||||
padding: 5rem 0;
|
||||
|
||||
BIN
website/assets/images/case1.jpg
Normal file
|
After Width: | Height: | Size: 5.5 MiB |
94
website/assets/images/case1.svg
Normal file
@@ -0,0 +1,94 @@
|
||||
<svg width="400" height="300" viewBox="0 0 400 300" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="skyGradient" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#87CEEB;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#E0F6FF;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient id="farmGradient" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#8FBC8F;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#228B22;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- 背景天空 -->
|
||||
<rect width="400" height="200" fill="url(#skyGradient)"/>
|
||||
|
||||
<!-- 地面 -->
|
||||
<rect x="0" y="200" width="400" height="100" fill="url(#farmGradient)"/>
|
||||
|
||||
<!-- 云朵 -->
|
||||
<ellipse cx="80" cy="50" rx="25" ry="15" fill="white" opacity="0.8"/>
|
||||
<ellipse cx="95" cy="45" rx="20" ry="12" fill="white" opacity="0.8"/>
|
||||
<ellipse cx="320" cy="70" rx="30" ry="18" fill="white" opacity="0.8"/>
|
||||
|
||||
<!-- 养殖场建筑 -->
|
||||
<rect x="50" y="120" width="120" height="80" fill="#8B4513" stroke="#654321" stroke-width="2"/>
|
||||
<polygon points="50,120 110,80 170,120" fill="#DC143C" stroke="#B22222" stroke-width="2"/>
|
||||
|
||||
<!-- 窗户 -->
|
||||
<rect x="70" y="140" width="20" height="20" fill="#FFD700" stroke="#FFA500" stroke-width="1"/>
|
||||
<rect x="130" y="140" width="20" height="20" fill="#FFD700" stroke="#FFA500" stroke-width="1"/>
|
||||
|
||||
<!-- 门 -->
|
||||
<rect x="100" y="170" width="20" height="30" fill="#8B4513" stroke="#654321" stroke-width="1"/>
|
||||
<circle cx="115" cy="185" r="2" fill="#FFD700"/>
|
||||
|
||||
<!-- 智能设备 -->
|
||||
<!-- 监控摄像头 -->
|
||||
<rect x="45" y="115" width="8" height="6" fill="#2F4F4F" rx="2"/>
|
||||
<circle cx="49" cy="118" r="3" fill="#000" stroke="#2F4F4F" stroke-width="1"/>
|
||||
|
||||
<!-- 传感器 -->
|
||||
<rect x="175" y="130" width="6" height="15" fill="#4169E1" rx="3"/>
|
||||
<circle cx="178" cy="125" r="3" fill="#1E90FF"/>
|
||||
|
||||
<!-- 数据传输线 -->
|
||||
<path d="M 178 125 Q 200 100 250 110" stroke="#4169E1" stroke-width="2" fill="none" stroke-dasharray="5,5">
|
||||
<animate attributeName="stroke-dashoffset" values="0;10" dur="2s" repeatCount="indefinite"/>
|
||||
</path>
|
||||
|
||||
<!-- 控制中心 -->
|
||||
<rect x="230" y="100" width="80" height="60" fill="#F5F5DC" stroke="#D3D3D3" stroke-width="2" rx="5"/>
|
||||
<rect x="240" y="110" width="60" height="40" fill="#000" stroke="#333" stroke-width="1"/>
|
||||
|
||||
<!-- 屏幕显示 -->
|
||||
<rect x="245" y="115" width="50" height="30" fill="#00FF00" opacity="0.3"/>
|
||||
<text x="270" y="130" text-anchor="middle" font-family="Arial, sans-serif" font-size="8" fill="#000">监控中心</text>
|
||||
<text x="270" y="140" text-anchor="middle" font-family="Arial, sans-serif" font-size="6" fill="#000">实时数据</text>
|
||||
|
||||
<!-- 动物 -->
|
||||
<!-- 牛 -->
|
||||
<ellipse cx="100" cy="230" rx="25" ry="15" fill="#8B4513"/>
|
||||
<ellipse cx="85" cy="225" rx="8" ry="6" fill="#8B4513"/>
|
||||
<rect x="82" y="220" width="3" height="8" fill="#654321"/>
|
||||
<rect x="87" y="220" width="3" height="8" fill="#654321"/>
|
||||
|
||||
<!-- 羊 -->
|
||||
<ellipse cx="150" cy="235" rx="20" ry="12" fill="#F5F5F5"/>
|
||||
<ellipse cx="138" cy="230" rx="6" ry="5" fill="#F5F5F5"/>
|
||||
<rect x="136" y="225" width="2" height="6" fill="#000"/>
|
||||
<rect x="140" y="225" width="2" height="6" fill="#000"/>
|
||||
|
||||
<!-- 智能标签 -->
|
||||
<rect x="95" y="215" width="10" height="6" fill="#FF6347" rx="2"/>
|
||||
<text x="100" y="220" text-anchor="middle" font-family="Arial, sans-serif" font-size="4" fill="white">ID</text>
|
||||
|
||||
<rect x="145" y="220" width="10" height="6" fill="#FF6347" rx="2"/>
|
||||
<text x="150" y="225" text-anchor="middle" font-family="Arial, sans-serif" font-size="4" fill="white">ID</text>
|
||||
|
||||
<!-- 信号波纹 -->
|
||||
<g opacity="0.6">
|
||||
<circle cx="100" cy="218" r="15" fill="none" stroke="#FF6347" stroke-width="1">
|
||||
<animate attributeName="r" values="5;20;5" dur="3s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="1;0;1" dur="3s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="150" cy="223" r="12" fill="none" stroke="#FF6347" stroke-width="1">
|
||||
<animate attributeName="r" values="5;18;5" dur="2.5s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="1;0;1" dur="2.5s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
</g>
|
||||
|
||||
<!-- 标题 -->
|
||||
<rect x="0" y="270" width="400" height="30" fill="rgba(0,0,0,0.7)"/>
|
||||
<text x="200" y="290" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="16" font-weight="bold" fill="white">智能养殖监控系统</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
BIN
website/assets/images/case2.jpg
Normal file
|
After Width: | Height: | Size: 5.2 MiB |
112
website/assets/images/case2.svg
Normal file
@@ -0,0 +1,112 @@
|
||||
<svg width="400" height="300" viewBox="0 0 400 300" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="bgGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#667eea;stop-opacity:0.1" />
|
||||
<stop offset="100%" style="stop-color:#764ba2;stop-opacity:0.1" />
|
||||
</linearGradient>
|
||||
<linearGradient id="screenGradient" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#1a202c;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#2d3748;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- 背景 -->
|
||||
<rect width="400" height="300" fill="url(#bgGradient)"/>
|
||||
|
||||
<!-- 办公室环境 -->
|
||||
<rect x="0" y="200" width="400" height="100" fill="#f7fafc"/>
|
||||
|
||||
<!-- 大屏幕显示器 -->
|
||||
<rect x="50" y="50" width="300" height="180" fill="url(#screenGradient)" stroke="#4a5568" stroke-width="3" rx="10"/>
|
||||
<rect x="60" y="60" width="280" height="160" fill="#000" rx="5"/>
|
||||
|
||||
<!-- 数据图表区域 -->
|
||||
<!-- 折线图 -->
|
||||
<g transform="translate(70, 70)">
|
||||
<text x="0" y="15" font-family="Arial, sans-serif" font-size="12" fill="#00ff00">养殖数据趋势分析</text>
|
||||
|
||||
<!-- 坐标轴 -->
|
||||
<line x1="10" y1="120" x2="120" y2="120" stroke="#4a5568" stroke-width="1"/>
|
||||
<line x1="10" y1="20" x2="10" y2="120" stroke="#4a5568" stroke-width="1"/>
|
||||
|
||||
<!-- 折线图数据 -->
|
||||
<polyline points="10,100 30,80 50,60 70,70 90,50 110,40"
|
||||
fill="none" stroke="#00ff00" stroke-width="2"/>
|
||||
<polyline points="10,110 30,95 50,85 70,90 90,75 110,65"
|
||||
fill="none" stroke="#ff6b6b" stroke-width="2"/>
|
||||
|
||||
<!-- 数据点 -->
|
||||
<circle cx="10" cy="100" r="3" fill="#00ff00"/>
|
||||
<circle cx="30" cy="80" r="3" fill="#00ff00"/>
|
||||
<circle cx="50" cy="60" r="3" fill="#00ff00"/>
|
||||
<circle cx="70" cy="70" r="3" fill="#00ff00"/>
|
||||
<circle cx="90" cy="50" r="3" fill="#00ff00"/>
|
||||
<circle cx="110" cy="40" r="3" fill="#00ff00"/>
|
||||
|
||||
<!-- 图例 -->
|
||||
<line x1="130" y1="30" x2="145" y2="30" stroke="#00ff00" stroke-width="2"/>
|
||||
<text x="150" y="35" font-family="Arial, sans-serif" font-size="10" fill="#00ff00">产量</text>
|
||||
<line x1="130" y1="45" x2="145" y2="45" stroke="#ff6b6b" stroke-width="2"/>
|
||||
<text x="150" y="50" font-family="Arial, sans-serif" font-size="10" fill="#ff6b6b">成本</text>
|
||||
</g>
|
||||
|
||||
<!-- 饼图 -->
|
||||
<g transform="translate(220, 70)">
|
||||
<text x="0" y="15" font-family="Arial, sans-serif" font-size="12" fill="#00ff00">养殖结构分布</text>
|
||||
|
||||
<!-- 饼图扇形 -->
|
||||
<path d="M 40 70 L 40 40 A 30 30 0 0 1 65 55 Z" fill="#4facfe"/>
|
||||
<path d="M 40 70 L 65 55 A 30 30 0 0 1 55 95 Z" fill="#43e97b"/>
|
||||
<path d="M 40 70 L 55 95 A 30 30 0 0 1 15 85 Z" fill="#f093fb"/>
|
||||
<path d="M 40 70 L 15 85 A 30 30 0 1 1 40 40 Z" fill="#feca57"/>
|
||||
|
||||
<!-- 标签 -->
|
||||
<text x="0" y="110" font-family="Arial, sans-serif" font-size="8" fill="#4facfe">■ 牛 35%</text>
|
||||
<text x="0" y="120" font-family="Arial, sans-serif" font-size="8" fill="#43e97b">■ 羊 25%</text>
|
||||
<text x="0" y="130" font-family="Arial, sans-serif" font-size="8" fill="#f093fb">■ 猪 20%</text>
|
||||
<text x="0" y="140" font-family="Arial, sans-serif" font-size="8" fill="#feca57">■ 鸡 20%</text>
|
||||
</g>
|
||||
|
||||
<!-- 实时数据面板 -->
|
||||
<rect x="70" y="170" width="260" height="40" fill="#2d3748" stroke="#4a5568" stroke-width="1" rx="5"/>
|
||||
|
||||
<!-- 数据指标 -->
|
||||
<g transform="translate(80, 180)">
|
||||
<text x="0" y="12" font-family="Arial, sans-serif" font-size="10" fill="#a0aec0">实时监控数据</text>
|
||||
|
||||
<text x="0" y="25" font-family="Arial, sans-serif" font-size="9" fill="#00ff00">温度: 24°C</text>
|
||||
<text x="60" y="25" font-family="Arial, sans-serif" font-size="9" fill="#00ff00">湿度: 65%</text>
|
||||
<text x="120" y="25" font-family="Arial, sans-serif" font-size="9" fill="#00ff00">存栏: 1,250头</text>
|
||||
<text x="180" y="25" font-family="Arial, sans-serif" font-size="9" fill="#ff6b6b">预警: 2条</text>
|
||||
</g>
|
||||
|
||||
<!-- 工作人员 -->
|
||||
<g transform="translate(320, 160)">
|
||||
<!-- 人物轮廓 -->
|
||||
<ellipse cx="15" cy="35" rx="8" ry="12" fill="#4a5568"/>
|
||||
<circle cx="15" cy="20" r="6" fill="#f7fafc"/>
|
||||
<rect x="12" y="47" width="6" height="15" fill="#2d3748"/>
|
||||
<rect x="8" y="62" width="4" height="8" fill="#2d3748"/>
|
||||
<rect x="18" y="62" width="4" height="8" fill="#2d3748"/>
|
||||
|
||||
<!-- 手持设备 -->
|
||||
<rect x="25" y="30" width="8" height="12" fill="#4a5568" rx="2"/>
|
||||
<rect x="26" y="31" width="6" height="8" fill="#00ff00" opacity="0.3"/>
|
||||
</g>
|
||||
|
||||
<!-- 数据流动效果 -->
|
||||
<g opacity="0.6">
|
||||
<circle cx="100" cy="100" r="2" fill="#00ff00">
|
||||
<animate attributeName="cx" values="100;200;300" dur="3s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="1;0.5;0" dur="3s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="150" cy="120" r="2" fill="#4facfe">
|
||||
<animate attributeName="cx" values="150;250;350" dur="4s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="1;0.5;0" dur="4s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
</g>
|
||||
|
||||
<!-- 标题 -->
|
||||
<rect x="0" y="270" width="400" height="30" fill="rgba(0,0,0,0.7)"/>
|
||||
<text x="200" y="290" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="16" font-weight="bold" fill="white">数据分析与决策支持</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.3 KiB |
BIN
website/assets/images/case3.jpg
Normal file
|
After Width: | Height: | Size: 280 KiB |
146
website/assets/images/case3.svg
Normal file
@@ -0,0 +1,146 @@
|
||||
<svg width="400" height="300" viewBox="0 0 400 300" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="mobileGradient" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#667eea;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#764ba2;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient id="fieldGradient" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#87CEEB;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#98FB98;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- 背景 - 户外场景 -->
|
||||
<rect width="400" height="300" fill="url(#fieldGradient)"/>
|
||||
|
||||
<!-- 地面 -->
|
||||
<rect x="0" y="220" width="400" height="80" fill="#228B22"/>
|
||||
|
||||
<!-- 云朵 -->
|
||||
<ellipse cx="60" cy="40" rx="20" ry="12" fill="white" opacity="0.8"/>
|
||||
<ellipse cx="340" cy="60" rx="25" ry="15" fill="white" opacity="0.8"/>
|
||||
|
||||
<!-- 养殖场围栏 -->
|
||||
<g stroke="#8B4513" stroke-width="3" fill="none">
|
||||
<line x1="50" y1="180" x2="350" y2="180"/>
|
||||
<line x1="50" y1="180" x2="50" y2="220"/>
|
||||
<line x1="350" y1="180" x2="350" y2="220"/>
|
||||
|
||||
<!-- 围栏柱子 -->
|
||||
<line x1="100" y1="175" x2="100" y2="225"/>
|
||||
<line x1="150" y1="175" x2="150" y2="225"/>
|
||||
<line x1="200" y1="175" x2="200" y2="225"/>
|
||||
<line x1="250" y1="175" x2="250" y2="225"/>
|
||||
<line x1="300" y1="175" x2="300" y2="225"/>
|
||||
</g>
|
||||
|
||||
<!-- 动物群 -->
|
||||
<!-- 牛群 -->
|
||||
<ellipse cx="120" cy="200" rx="15" ry="10" fill="#8B4513"/>
|
||||
<ellipse cx="110" cy="195" rx="5" ry="4" fill="#8B4513"/>
|
||||
|
||||
<ellipse cx="180" cy="205" rx="15" ry="10" fill="#654321"/>
|
||||
<ellipse cx="170" cy="200" rx="5" ry="4" fill="#654321"/>
|
||||
|
||||
<ellipse cx="250" cy="195" rx="15" ry="10" fill="#8B4513"/>
|
||||
<ellipse cx="240" cy="190" rx="5" ry="4" fill="#8B4513"/>
|
||||
|
||||
<!-- 管理员人物 -->
|
||||
<g transform="translate(80, 120)">
|
||||
<!-- 身体 -->
|
||||
<ellipse cx="0" cy="30" rx="12" ry="20" fill="#4169E1"/>
|
||||
<!-- 头部 -->
|
||||
<circle cx="0" cy="10" r="8" fill="#FDBCB4"/>
|
||||
<!-- 帽子 -->
|
||||
<ellipse cx="0" cy="5" rx="10" ry="4" fill="#FF6347"/>
|
||||
<!-- 手臂 -->
|
||||
<ellipse cx="-8" cy="25" rx="4" ry="12" fill="#FDBCB4" transform="rotate(-20)"/>
|
||||
<ellipse cx="8" cy="25" rx="4" ry="12" fill="#FDBCB4" transform="rotate(20)"/>
|
||||
<!-- 腿部 -->
|
||||
<rect x="-6" y="50" width="5" height="20" fill="#2F4F4F"/>
|
||||
<rect x="1" y="50" width="5" height="20" fill="#2F4F4F"/>
|
||||
</g>
|
||||
|
||||
<!-- 手机设备 -->
|
||||
<g transform="translate(120, 140)">
|
||||
<!-- 手机外壳 -->
|
||||
<rect x="0" y="0" width="40" height="70" fill="#2F4F4F" rx="8" stroke="#1C1C1C" stroke-width="2"/>
|
||||
<!-- 屏幕 -->
|
||||
<rect x="3" y="8" width="34" height="54" fill="#000" rx="4"/>
|
||||
|
||||
<!-- 屏幕内容 -->
|
||||
<rect x="5" y="10" width="30" height="50" fill="url(#mobileGradient)" rx="3"/>
|
||||
|
||||
<!-- APP界面 -->
|
||||
<text x="20" y="20" text-anchor="middle" font-family="Arial, sans-serif" font-size="6" fill="white">养殖管理</text>
|
||||
|
||||
<!-- 状态指示器 -->
|
||||
<circle cx="10" cy="28" r="3" fill="#00FF00"/>
|
||||
<text x="15" y="32" font-family="Arial, sans-serif" font-size="4" fill="white">在线</text>
|
||||
|
||||
<!-- 数据显示 -->
|
||||
<rect x="7" y="35" width="26" height="8" fill="rgba(255,255,255,0.2)" rx="2"/>
|
||||
<text x="20" y="41" text-anchor="middle" font-family="Arial, sans-serif" font-size="4" fill="white">存栏: 125头</text>
|
||||
|
||||
<rect x="7" y="45" width="26" height="8" fill="rgba(255,255,255,0.2)" rx="2"/>
|
||||
<text x="20" y="51" text-anchor="middle" font-family="Arial, sans-serif" font-size="4" fill="white">温度: 22°C</text>
|
||||
|
||||
<!-- 按钮 -->
|
||||
<rect x="7" y="55" width="12" height="6" fill="#FF6347" rx="2"/>
|
||||
<text x="13" y="59" text-anchor="middle" font-family="Arial, sans-serif" font-size="3" fill="white">报警</text>
|
||||
|
||||
<rect x="21" y="55" width="12" height="6" fill="#32CD32" rx="2"/>
|
||||
<text x="27" y="59" text-anchor="middle" font-family="Arial, sans-serif" font-size="3" fill="white">记录</text>
|
||||
|
||||
<!-- Home键 -->
|
||||
<circle cx="20" cy="66" r="2" fill="#4A4A4A"/>
|
||||
</g>
|
||||
|
||||
<!-- 无线信号传输 -->
|
||||
<g opacity="0.7">
|
||||
<!-- 从动物到手机的信号 -->
|
||||
<path d="M 120 190 Q 140 160 140 150" stroke="#00FF00" stroke-width="2" fill="none" stroke-dasharray="3,3">
|
||||
<animate attributeName="stroke-dashoffset" values="0;6" dur="1.5s" repeatCount="indefinite"/>
|
||||
</path>
|
||||
|
||||
<path d="M 180 195 Q 160 170 150 155" stroke="#00FF00" stroke-width="2" fill="none" stroke-dasharray="3,3">
|
||||
<animate attributeName="stroke-dashoffset" values="0;6" dur="2s" repeatCount="indefinite"/>
|
||||
</path>
|
||||
|
||||
<!-- 信号波纹 -->
|
||||
<g transform="translate(140, 150)">
|
||||
<circle cx="0" cy="0" r="8" fill="none" stroke="#00FF00" stroke-width="1">
|
||||
<animate attributeName="r" values="3;15;3" dur="2s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="1;0;1" dur="2s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- 智能标签 -->
|
||||
<rect x="115" y="185" width="10" height="5" fill="#FF6347" rx="2"/>
|
||||
<rect x="175" y="190" width="10" height="5" fill="#FF6347" rx="2"/>
|
||||
<rect x="245" y="180" width="10" height="5" fill="#FF6347" rx="2"/>
|
||||
|
||||
<!-- GPS定位图标 -->
|
||||
<g transform="translate(300, 50)">
|
||||
<circle cx="0" cy="0" r="15" fill="none" stroke="#FF6347" stroke-width="2"/>
|
||||
<circle cx="0" cy="0" r="3" fill="#FF6347"/>
|
||||
<text x="0" y="25" text-anchor="middle" font-family="Arial, sans-serif" font-size="8" fill="#2F4F4F">GPS定位</text>
|
||||
</g>
|
||||
|
||||
<!-- 数据上传云端 -->
|
||||
<g transform="translate(200, 30)">
|
||||
<!-- 云朵图标 -->
|
||||
<path d="M 0 15 c -8 0 -15 -7 -15 -15 c 0 -4 2 -8 5 -11 c 1 -6 6 -10 12 -10 c 8 0 15 7 15 15 c 0 1 0 2 -1 3 c 3 2 5 5 5 8 c 0 5 -4 10 -10 10 H 0 z" fill="white" stroke="#4A90E2" stroke-width="1"/>
|
||||
|
||||
<!-- 上传箭头 -->
|
||||
<path d="M 0 5 L -3 8 L 3 8 Z" fill="#4A90E2"/>
|
||||
<line x1="0" y1="5" x2="0" y2="12" stroke="#4A90E2" stroke-width="2"/>
|
||||
|
||||
<text x="0" y="25" text-anchor="middle" font-family="Arial, sans-serif" font-size="8" fill="#2F4F4F">云端同步</text>
|
||||
</g>
|
||||
|
||||
<!-- 标题 -->
|
||||
<rect x="0" y="270" width="400" height="30" fill="rgba(0,0,0,0.7)"/>
|
||||
<text x="200" y="290" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="16" font-weight="bold" fill="white">移动端智能管理</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.3 KiB |
73
website/assets/images/hero-bg.svg
Normal file
@@ -0,0 +1,73 @@
|
||||
<svg width="1920" height="1080" viewBox="0 0 1920 1080" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="bgGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#667eea;stop-opacity:0.8" />
|
||||
<stop offset="50%" style="stop-color:#764ba2;stop-opacity:0.6" />
|
||||
<stop offset="100%" style="stop-color:#667eea;stop-opacity:0.4" />
|
||||
</linearGradient>
|
||||
|
||||
<pattern id="gridPattern" x="0" y="0" width="100" height="100" patternUnits="userSpaceOnUse">
|
||||
<path d="M 100 0 L 0 0 0 100" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="1"/>
|
||||
</pattern>
|
||||
|
||||
<filter id="glow">
|
||||
<feGaussianBlur stdDeviation="3" result="coloredBlur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="coloredBlur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- 主背景 -->
|
||||
<rect width="1920" height="1080" fill="url(#bgGradient)"/>
|
||||
|
||||
<!-- 网格图案 -->
|
||||
<rect width="1920" height="1080" fill="url(#gridPattern)" opacity="0.3"/>
|
||||
|
||||
<!-- 装饰性几何图形 -->
|
||||
<g opacity="0.2">
|
||||
<!-- 大圆 -->
|
||||
<circle cx="1600" cy="200" r="150" fill="none" stroke="rgba(255,255,255,0.3)" stroke-width="2"/>
|
||||
<circle cx="1600" cy="200" r="100" fill="none" stroke="rgba(255,255,255,0.2)" stroke-width="1"/>
|
||||
|
||||
<!-- 小圆群 -->
|
||||
<circle cx="300" cy="800" r="80" fill="rgba(255,255,255,0.1)"/>
|
||||
<circle cx="250" cy="750" r="40" fill="rgba(255,255,255,0.15)"/>
|
||||
<circle cx="350" cy="720" r="30" fill="rgba(255,255,255,0.1)"/>
|
||||
|
||||
<!-- 三角形 -->
|
||||
<polygon points="1400,900 1500,700 1600,900" fill="none" stroke="rgba(255,255,255,0.2)" stroke-width="2"/>
|
||||
|
||||
<!-- 六边形 -->
|
||||
<polygon points="100,300 150,250 200,300 200,400 150,450 100,400" fill="rgba(255,255,255,0.1)" stroke="rgba(255,255,255,0.2)" stroke-width="1"/>
|
||||
</g>
|
||||
|
||||
<!-- 浮动粒子效果 -->
|
||||
<g opacity="0.6">
|
||||
<circle cx="200" cy="200" r="3" fill="#ffffff" filter="url(#glow)">
|
||||
<animate attributeName="cy" values="200;180;200" dur="3s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="800" cy="300" r="2" fill="#ffffff" filter="url(#glow)">
|
||||
<animate attributeName="cy" values="300;280;300" dur="4s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="1200" cy="500" r="4" fill="#ffffff" filter="url(#glow)">
|
||||
<animate attributeName="cy" values="500;470;500" dur="5s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="1500" cy="600" r="2" fill="#ffffff" filter="url(#glow)">
|
||||
<animate attributeName="cy" values="600;580;600" dur="3.5s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="400" cy="900" r="3" fill="#ffffff" filter="url(#glow)">
|
||||
<animate attributeName="cy" values="900;870;900" dur="4.5s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
</g>
|
||||
|
||||
<!-- 底部渐变遮罩 -->
|
||||
<defs>
|
||||
<linearGradient id="bottomMask" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:rgba(0,0,0,0);stop-opacity:0" />
|
||||
<stop offset="100%" style="stop-color:rgba(0,0,0,0.3);stop-opacity:1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="0" y="800" width="1920" height="280" fill="url(#bottomMask)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
BIN
website/assets/images/hero-image.png
Normal file
|
After Width: | Height: | Size: 306 KiB |
35
website/assets/images/logo.svg
Normal file
@@ -0,0 +1,35 @@
|
||||
<svg width="200" height="60" viewBox="0 0 200 60" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="logoGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#667eea;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#764ba2;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- 背景圆形 -->
|
||||
<circle cx="30" cy="30" r="25" fill="url(#logoGradient)" opacity="0.1"/>
|
||||
|
||||
<!-- 主图标 - 云朵和农场 -->
|
||||
<g transform="translate(10, 10)">
|
||||
<!-- 云朵 -->
|
||||
<path d="M15 20c-3.3 0-6-2.7-6-6 0-1.8.8-3.4 2.1-4.5C11.7 7.6 13.7 6 16 6c3.3 0 6 2.7 6 6 0 .5-.1 1-.2 1.4 1.2.8 2 2.2 2 3.6 0 2.2-1.8 4-4 4H15z" fill="url(#logoGradient)"/>
|
||||
|
||||
<!-- 农场建筑 -->
|
||||
<rect x="8" y="25" width="24" height="15" fill="#4a5568" opacity="0.8"/>
|
||||
<polygon points="8,25 20,15 32,25" fill="#e53e3e" opacity="0.8"/>
|
||||
|
||||
<!-- 窗户 -->
|
||||
<rect x="12" y="28" width="4" height="4" fill="#ffd700"/>
|
||||
<rect x="24" y="28" width="4" height="4" fill="#ffd700"/>
|
||||
|
||||
<!-- 门 -->
|
||||
<rect x="18" y="32" width="4" height="8" fill="#8b4513"/>
|
||||
</g>
|
||||
|
||||
<!-- 文字部分 -->
|
||||
<text x="65" y="25" font-family="'Microsoft YaHei', sans-serif" font-size="16" font-weight="bold" fill="url(#logoGradient)">宁夏智慧养殖</text>
|
||||
<text x="65" y="42" font-family="'Microsoft YaHei', sans-serif" font-size="12" fill="#666">监管平台</text>
|
||||
|
||||
<!-- 装饰线条 -->
|
||||
<line x1="65" y1="48" x2="190" y2="48" stroke="url(#logoGradient)" stroke-width="2" opacity="0.3"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
BIN
website/assets/images/tech-architecture.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
125
website/assets/images/tech-architecture.svg
Normal file
@@ -0,0 +1,125 @@
|
||||
<svg width="800" height="600" viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="layerGradient1" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#667eea;stop-opacity:0.8" />
|
||||
<stop offset="100%" style="stop-color:#764ba2;stop-opacity:0.8" />
|
||||
</linearGradient>
|
||||
<linearGradient id="layerGradient2" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#f093fb;stop-opacity:0.8" />
|
||||
<stop offset="100%" style="stop-color:#f5576c;stop-opacity:0.8" />
|
||||
</linearGradient>
|
||||
<linearGradient id="layerGradient3" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#4facfe;stop-opacity:0.8" />
|
||||
<stop offset="100%" style="stop-color:#00f2fe;stop-opacity:0.8" />
|
||||
</linearGradient>
|
||||
<linearGradient id="layerGradient4" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#43e97b;stop-opacity:0.8" />
|
||||
<stop offset="100%" style="stop-color:#38f9d7;stop-opacity:0.8" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- 背景 -->
|
||||
<rect width="800" height="600" fill="#f8f9fa"/>
|
||||
|
||||
<!-- 标题 -->
|
||||
<text x="400" y="30" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="24" font-weight="bold" fill="#2d3748">智慧养殖监管平台技术架构</text>
|
||||
|
||||
<!-- 表示层 -->
|
||||
<rect x="50" y="80" width="700" height="80" rx="10" fill="url(#layerGradient1)" stroke="#667eea" stroke-width="2"/>
|
||||
<text x="70" y="105" font-family="Microsoft YaHei, sans-serif" font-size="16" font-weight="bold" fill="white">表示层 (Presentation Layer)</text>
|
||||
|
||||
<!-- 表示层组件 -->
|
||||
<rect x="80" y="115" width="120" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#667eea"/>
|
||||
<text x="140" y="135" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="12" fill="#2d3748">Web管理界面</text>
|
||||
|
||||
<rect x="220" y="115" width="120" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#667eea"/>
|
||||
<text x="280" y="135" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="12" fill="#2d3748">移动端APP</text>
|
||||
|
||||
<rect x="360" y="115" width="120" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#667eea"/>
|
||||
<text x="420" y="135" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="12" fill="#2d3748">数据大屏</text>
|
||||
|
||||
<rect x="500" y="115" width="120" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#667eea"/>
|
||||
<text x="560" y="135" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="12" fill="#2d3748">API接口</text>
|
||||
|
||||
<!-- 业务层 -->
|
||||
<rect x="50" y="200" width="700" height="80" rx="10" fill="url(#layerGradient2)" stroke="#f5576c" stroke-width="2"/>
|
||||
<text x="70" y="225" font-family="Microsoft YaHei, sans-serif" font-size="16" font-weight="bold" fill="white">业务层 (Business Layer)</text>
|
||||
|
||||
<!-- 业务层组件 -->
|
||||
<rect x="80" y="235" width="100" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#f5576c"/>
|
||||
<text x="130" y="255" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="11" fill="#2d3748">养殖管理</text>
|
||||
|
||||
<rect x="200" y="235" width="100" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#f5576c"/>
|
||||
<text x="250" y="255" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="11" fill="#2d3748">监控预警</text>
|
||||
|
||||
<rect x="320" y="235" width="100" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#f5576c"/>
|
||||
<text x="370" y="255" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="11" fill="#2d3748">数据分析</text>
|
||||
|
||||
<rect x="440" y="235" width="100" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#f5576c"/>
|
||||
<text x="490" y="255" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="11" fill="#2d3748">用户权限</text>
|
||||
|
||||
<rect x="560" y="235" width="100" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#f5576c"/>
|
||||
<text x="610" y="255" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="11" fill="#2d3748">系统配置</text>
|
||||
|
||||
<!-- 服务层 -->
|
||||
<rect x="50" y="320" width="700" height="80" rx="10" fill="url(#layerGradient3)" stroke="#4facfe" stroke-width="2"/>
|
||||
<text x="70" y="345" font-family="Microsoft YaHei, sans-serif" font-size="16" font-weight="bold" fill="white">服务层 (Service Layer)</text>
|
||||
|
||||
<!-- 服务层组件 -->
|
||||
<rect x="80" y="355" width="100" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#4facfe"/>
|
||||
<text x="130" y="375" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="11" fill="#2d3748">数据采集</text>
|
||||
|
||||
<rect x="200" y="355" width="100" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#4facfe"/>
|
||||
<text x="250" y="375" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="11" fill="#2d3748">消息队列</text>
|
||||
|
||||
<rect x="320" y="355" width="100" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#4facfe"/>
|
||||
<text x="370" y="375" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="11" fill="#2d3748">缓存服务</text>
|
||||
|
||||
<rect x="440" y="355" width="100" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#4facfe"/>
|
||||
<text x="490" y="375" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="11" fill="#2d3748">文件存储</text>
|
||||
|
||||
<rect x="560" y="355" width="100" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#4facfe"/>
|
||||
<text x="610" y="375" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="11" fill="#2d3748">第三方集成</text>
|
||||
|
||||
<!-- 数据层 -->
|
||||
<rect x="50" y="440" width="700" height="80" rx="10" fill="url(#layerGradient4)" stroke="#43e97b" stroke-width="2"/>
|
||||
<text x="70" y="465" font-family="Microsoft YaHei, sans-serif" font-size="16" font-weight="bold" fill="white">数据层 (Data Layer)</text>
|
||||
|
||||
<!-- 数据层组件 -->
|
||||
<rect x="80" y="475" width="120" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#43e97b"/>
|
||||
<text x="140" y="495" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="12" fill="#2d3748">MySQL数据库</text>
|
||||
|
||||
<rect x="220" y="475" width="120" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#43e97b"/>
|
||||
<text x="280" y="495" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="12" fill="#2d3748">Redis缓存</text>
|
||||
|
||||
<rect x="360" y="475" width="120" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#43e97b"/>
|
||||
<text x="420" y="495" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="12" fill="#2d3748">时序数据库</text>
|
||||
|
||||
<rect x="500" y="475" width="120" height="35" rx="5" fill="rgba(255,255,255,0.9)" stroke="#43e97b"/>
|
||||
<text x="560" y="495" text-anchor="middle" font-family="Microsoft YaHei, sans-serif" font-size="12" fill="#2d3748">文件系统</text>
|
||||
|
||||
<!-- 连接线 -->
|
||||
<g stroke="#718096" stroke-width="2" fill="none" opacity="0.6">
|
||||
<!-- 表示层到业务层 -->
|
||||
<line x1="140" y1="160" x2="130" y2="200"/>
|
||||
<line x1="280" y1="160" x2="250" y2="200"/>
|
||||
<line x1="420" y1="160" x2="370" y2="200"/>
|
||||
<line x1="560" y1="160" x2="490" y2="200"/>
|
||||
|
||||
<!-- 业务层到服务层 -->
|
||||
<line x1="130" y1="280" x2="130" y2="320"/>
|
||||
<line x1="250" y1="280" x2="250" y2="320"/>
|
||||
<line x1="370" y1="280" x2="370" y2="320"/>
|
||||
<line x1="490" y1="280" x2="490" y2="320"/>
|
||||
<line x1="610" y1="280" x2="610" y2="320"/>
|
||||
|
||||
<!-- 服务层到数据层 -->
|
||||
<line x1="130" y1="400" x2="140" y2="440"/>
|
||||
<line x1="250" y1="400" x2="280" y2="440"/>
|
||||
<line x1="370" y1="400" x2="420" y2="440"/>
|
||||
<line x1="490" y1="400" x2="560" y2="440"/>
|
||||
</g>
|
||||
|
||||
<!-- 技术栈标注 -->
|
||||
<text x="50" y="570" font-family="Microsoft YaHei, sans-serif" font-size="14" font-weight="bold" fill="#4a5568">技术栈:Vue.js 3 + Node.js + MySQL + Redis + Docker</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.8 KiB |
@@ -1,5 +1,8 @@
|
||||
// 页面加载完成后执行
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// 页面加载动画
|
||||
initPageLoader();
|
||||
|
||||
// 初始化导航栏滚动效果
|
||||
initNavbarScroll();
|
||||
|
||||
@@ -11,8 +14,116 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
// 初始化数据统计动画
|
||||
initStatsCounter();
|
||||
|
||||
// 图片懒加载
|
||||
initLazyLoading();
|
||||
|
||||
// 性能优化
|
||||
initPerformanceOptimizations();
|
||||
});
|
||||
|
||||
// 页面加载动画
|
||||
function initPageLoader() {
|
||||
// 创建加载器
|
||||
const loader = document.createElement('div');
|
||||
loader.className = 'page-loader';
|
||||
loader.innerHTML = `
|
||||
<div class="loader-content">
|
||||
<div class="spinner"></div>
|
||||
<div class="loader-text">宁夏智慧养殖监管平台</div>
|
||||
<div class="loader-subtitle">正在加载中...</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
document.body.appendChild(loader);
|
||||
|
||||
// 页面加载完成后隐藏加载器
|
||||
window.addEventListener('load', function() {
|
||||
setTimeout(() => {
|
||||
loader.classList.add('fade-out');
|
||||
setTimeout(() => {
|
||||
if (loader.parentNode) {
|
||||
loader.parentNode.removeChild(loader);
|
||||
}
|
||||
}, 500);
|
||||
}, 800);
|
||||
});
|
||||
}
|
||||
|
||||
// 图片懒加载
|
||||
function initLazyLoading() {
|
||||
const images = document.querySelectorAll('img[data-src]');
|
||||
|
||||
const imageObserver = new IntersectionObserver((entries, observer) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
const img = entry.target;
|
||||
img.src = img.dataset.src;
|
||||
img.classList.add('lazy-image');
|
||||
|
||||
img.onload = () => {
|
||||
img.classList.add('loaded');
|
||||
};
|
||||
|
||||
observer.unobserve(img);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
images.forEach(img => imageObserver.observe(img));
|
||||
}
|
||||
|
||||
// 性能优化
|
||||
function initPerformanceOptimizations() {
|
||||
// 导航栏滚动优化
|
||||
let ticking = false;
|
||||
|
||||
function updateNavbar() {
|
||||
const navbar = document.querySelector('.navbar');
|
||||
if (window.scrollY > 50) {
|
||||
navbar.classList.add('scrolled');
|
||||
} else {
|
||||
navbar.classList.remove('scrolled');
|
||||
}
|
||||
ticking = false;
|
||||
}
|
||||
|
||||
window.addEventListener('scroll', () => {
|
||||
if (!ticking) {
|
||||
requestAnimationFrame(updateNavbar);
|
||||
ticking = true;
|
||||
}
|
||||
});
|
||||
|
||||
// 平滑滚动到锚点
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
const target = document.querySelector(this.getAttribute('href'));
|
||||
if (target) {
|
||||
target.scrollIntoView({
|
||||
behavior: 'smooth',
|
||||
block: 'start'
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 预加载关键资源
|
||||
const criticalImages = [
|
||||
'assets/images/hero-bg.svg',
|
||||
'assets/images/logo.svg'
|
||||
];
|
||||
|
||||
criticalImages.forEach(src => {
|
||||
const link = document.createElement('link');
|
||||
link.rel = 'preload';
|
||||
link.as = 'image';
|
||||
link.href = src;
|
||||
document.head.appendChild(link);
|
||||
});
|
||||
}
|
||||
|
||||
// 导航栏滚动效果
|
||||
function initNavbarScroll() {
|
||||
const navbar = document.querySelector('.navbar');
|
||||
@@ -79,9 +190,12 @@ function validateForm(form) {
|
||||
if (input.hasAttribute('required') && !input.value.trim()) {
|
||||
showInputError(input, '此字段为必填项');
|
||||
isValid = false;
|
||||
} else if (input.type === 'email' && !isValidEmail(input.value)) {
|
||||
} else if (input.type === 'email' && input.value && !isValidEmail(input.value)) {
|
||||
showInputError(input, '请输入有效的邮箱地址');
|
||||
isValid = false;
|
||||
} else if (input.type === 'tel' && input.value && !isValidPhone(input.value)) {
|
||||
showInputError(input, '请输入有效的手机号码');
|
||||
isValid = false;
|
||||
} else {
|
||||
clearInputError(input);
|
||||
}
|
||||
@@ -90,6 +204,84 @@ function validateForm(form) {
|
||||
return isValid;
|
||||
}
|
||||
|
||||
// 手机号验证
|
||||
function isValidPhone(phone) {
|
||||
const phoneRegex = /^1[3-9]\d{9}$/;
|
||||
return phoneRegex.test(phone);
|
||||
}
|
||||
|
||||
// 提交联系表单
|
||||
function submitContactForm(event) {
|
||||
event.preventDefault();
|
||||
|
||||
const form = event.target;
|
||||
if (!validateForm(form)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const formData = new FormData(form);
|
||||
const data = {
|
||||
name: formData.get('name'),
|
||||
email: formData.get('email'),
|
||||
phone: formData.get('phone'),
|
||||
message: formData.get('message'),
|
||||
timestamp: new Date().toISOString()
|
||||
};
|
||||
|
||||
// 显示提交中状态
|
||||
const submitBtn = form.querySelector('button[type="submit"]');
|
||||
const originalText = submitBtn.innerHTML;
|
||||
submitBtn.innerHTML = '<i class="bi bi-hourglass-split me-2"></i>提交中...';
|
||||
submitBtn.disabled = true;
|
||||
|
||||
// 模拟提交到后端(实际项目中替换为真实API)
|
||||
setTimeout(() => {
|
||||
// 这里应该是实际的API调用
|
||||
console.log('表单数据:', data);
|
||||
|
||||
// 显示成功消息
|
||||
showNotification('消息发送成功!我们会尽快回复您。', 'success');
|
||||
|
||||
// 重置表单
|
||||
form.reset();
|
||||
|
||||
// 恢复按钮状态
|
||||
submitBtn.innerHTML = originalText;
|
||||
submitBtn.disabled = false;
|
||||
|
||||
// 存储到本地(演示用)
|
||||
saveContactToLocal(data);
|
||||
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
// 显示通知消息
|
||||
function showNotification(message, type = 'info') {
|
||||
const notification = document.createElement('div');
|
||||
notification.className = `alert alert-${type === 'success' ? 'success' : 'info'} alert-dismissible fade show position-fixed`;
|
||||
notification.style.cssText = 'top: 20px; right: 20px; z-index: 9999; min-width: 300px;';
|
||||
notification.innerHTML = `
|
||||
${message}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
|
||||
`;
|
||||
|
||||
document.body.appendChild(notification);
|
||||
|
||||
// 自动移除通知
|
||||
setTimeout(() => {
|
||||
if (notification.parentNode) {
|
||||
notification.parentNode.removeChild(notification);
|
||||
}
|
||||
}, 5000);
|
||||
}
|
||||
|
||||
// 保存联系信息到本地存储(演示用)
|
||||
function saveContactToLocal(formData) {
|
||||
let contacts = JSON.parse(localStorage.getItem('contacts') || '[]');
|
||||
contacts.push(formData);
|
||||
localStorage.setItem('contacts', JSON.stringify(contacts));
|
||||
}
|
||||
|
||||
// 邮箱验证
|
||||
function isValidEmail(email) {
|
||||
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
||||
|
||||
25
website/favicon.svg
Normal file
@@ -0,0 +1,25 @@
|
||||
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="faviconGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#667eea;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#764ba2;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- 背景圆形 -->
|
||||
<circle cx="16" cy="16" r="15" fill="url(#faviconGradient)"/>
|
||||
|
||||
<!-- 云朵图标 -->
|
||||
<path d="M10 18c-2.2 0-4-1.8-4-4 0-1.2.5-2.3 1.4-3C7.8 9.7 9.2 8.5 11 8.5c2.2 0 4 1.8 4 4 0 .3-.1.7-.1.9.8.5 1.3 1.5 1.3 2.4 0 1.5-1.2 2.7-2.7 2.7H10z" fill="white" opacity="0.9"/>
|
||||
|
||||
<!-- 农场建筑简化版 -->
|
||||
<rect x="8" y="20" width="16" height="8" fill="white" opacity="0.8"/>
|
||||
<polygon points="8,20 16,14 24,20" fill="white" opacity="0.9"/>
|
||||
|
||||
<!-- 窗户 -->
|
||||
<rect x="11" y="22" width="2" height="2" fill="#667eea"/>
|
||||
<rect x="19" y="22" width="2" height="2" fill="#667eea"/>
|
||||
|
||||
<!-- 门 -->
|
||||
<rect x="14.5" y="24" width="3" height="4" fill="#667eea"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -5,7 +5,21 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>宁夏智慧养殖监管平台 - 数字化养殖管理解决方案</title>
|
||||
<meta name="description" content="宁夏智慧养殖监管平台,提供全面的数字化养殖管理解决方案,实时监控、数据分析、智能预警,助力养殖业数字化转型">
|
||||
<meta name="keywords" content="智慧养殖,养殖监管,数字化管理,宁夏养殖,物联网养殖">
|
||||
<meta name="keywords" content="智慧养殖,养殖监管,数字化管理,宁夏养殖,物联网养殖,农业科技,畜牧业管理">
|
||||
|
||||
<!-- SEO优化 -->
|
||||
<meta name="author" content="宁夏智慧养殖监管平台">
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta property="og:title" content="宁夏智慧养殖监管平台 - 数字化养殖管理解决方案">
|
||||
<meta property="og:description" content="提供全面的数字化养殖管理解决方案,实时监控、数据分析、智能预警">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://www.nxfarm.com">
|
||||
<meta property="og:image" content="assets/images/hero-image.png">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
|
||||
<!-- 网站图标 -->
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<link rel="apple-touch-icon" href="assets/images/logo.svg">
|
||||
|
||||
<!-- Bootstrap 5 CSS -->
|
||||
<link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.2/css/bootstrap.min.css" rel="stylesheet">
|
||||
@@ -24,8 +38,8 @@
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="#home">
|
||||
<i class="bi bi-cloud-fog2 me-2"></i>
|
||||
宁夏智慧养殖监管平台
|
||||
<img src="assets/images/logo.svg" alt="宁夏智慧养殖监管平台" height="40" class="me-2">
|
||||
<span class="d-none d-md-inline">宁夏智慧养殖监管平台</span>
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
@@ -85,7 +99,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 text-center">
|
||||
<img src="assets/images/hero-image.png" alt="智慧养殖平台" class="img-fluid hero-image" style="max-width: 500px;">
|
||||
<img src="assets/images/hero-image.png" alt="智慧养殖平台" class="img-fluid hero-image" style="width: 800px;height: 500px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -161,7 +175,7 @@
|
||||
<div class="col-md-4 mb-4">
|
||||
<div class="feature-card">
|
||||
<div class="feature-icon">
|
||||
<i class="bi bi-map-marked"></i>
|
||||
<i class="bi bi-geo-alt-fill"></i>
|
||||
</div>
|
||||
<h4>地图管理</h4>
|
||||
<p>基于地理位置的可视化管理,直观展示养殖场分布和状态</p>
|
||||
@@ -170,7 +184,7 @@
|
||||
<div class="col-md-4 mb-4">
|
||||
<div class="feature-card">
|
||||
<div class="feature-icon">
|
||||
<i class="bi bi-users"></i>
|
||||
<i class="bi bi-shield-lock-fill"></i>
|
||||
</div>
|
||||
<h4>权限管理</h4>
|
||||
<p>多级权限控制系统,确保数据安全和操作规范</p>
|
||||
@@ -179,7 +193,7 @@
|
||||
<div class="col-md-4 mb-4">
|
||||
<div class="feature-card">
|
||||
<div class="feature-icon">
|
||||
<i class="bi bi-mobile-alt"></i>
|
||||
<i class="bi bi-laptop"></i>
|
||||
</div>
|
||||
<h4>移动办公</h4>
|
||||
<p>支持多终端访问,随时随地管理养殖业务</p>
|
||||
@@ -193,7 +207,7 @@
|
||||
<section id="technology" class="technology-section py-5 bg-dark text-white">
|
||||
<div class="container">
|
||||
<div class="text-center mb-5">
|
||||
<h2 class="section-title">技术优势</h2>
|
||||
<h2 class="section-title" style="color: #fff;">技术优势</h2>
|
||||
<p class="section-subtitle">领先的技术架构,确保系统稳定可靠</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
@@ -213,8 +227,8 @@
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="tech-image text-center">
|
||||
<img src="assets/images/tech-architecture.png" alt="技术架构" class="img-fluid rounded">
|
||||
<p class="mt-2 text-muted">系统技术架构图</p>
|
||||
<img src="assets/images/tech-architecture.png" alt="技术架构" class="img-fluid rounded" style="width: 600px;height: 400px;">
|
||||
<p class="mt-2 text-muted" style="color: #fff;">系统技术架构图</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -361,50 +375,75 @@
|
||||
<h2 class="section-title">联系我们</h2>
|
||||
<p class="section-subtitle">期待与您合作</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="row g-4 align-items-stretch">
|
||||
<!-- 左侧:百度地图 -->
|
||||
<div class="col-lg-6">
|
||||
<div class="contact-info">
|
||||
<div class="contact-item">
|
||||
<i class="bi bi-geo-alt"></i>
|
||||
<div>
|
||||
<h5>地址</h5>
|
||||
<p>宁夏回族自治区银川市金凤区</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contact-item">
|
||||
<i class="bi bi-telephone"></i>
|
||||
<div>
|
||||
<h5>电话</h5>
|
||||
<p>0951-88888888</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contact-item">
|
||||
<i class="bi bi-envelope"></i>
|
||||
<div>
|
||||
<h5>邮箱</h5>
|
||||
<p>info@nxfarm.com</p>
|
||||
<div id="baidu-map-container" class="rounded shadow-sm" style="height:360px;width:100%;background:#f8f9fa;">
|
||||
<div class="d-flex align-items-center justify-content-center h-100 text-muted">
|
||||
<div class="text-center">
|
||||
<div class="spinner-border text-primary mb-3" role="status">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
<p>地图加载中...</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 右侧:表单 -->
|
||||
<div class="col-lg-6">
|
||||
<div class="contact-form">
|
||||
<h4>发送消息</h4>
|
||||
<form>
|
||||
<div class="mb-3">
|
||||
<input type="text" class="form-control" placeholder="您的姓名" required>
|
||||
<div class="contact-form p-4 bg-white rounded shadow-sm h-100">
|
||||
<h4 class="mb-3">发送消息</h4>
|
||||
<form id="contact-form" onsubmit="submitContactForm(event)">
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-3">
|
||||
<input type="text" class="form-control" placeholder="您的姓名" required>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<input type="email" class="form-control" placeholder="您的邮箱" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<input type="email" class="form-control" placeholder="您的邮箱" required>
|
||||
<input type="tel" class="form-control" placeholder="您的电话" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<textarea class="form-control" rows="4" placeholder="您的消息" required></textarea>
|
||||
<textarea class="form-control" rows="5" placeholder="其他说明" required></textarea>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary w-100">发送消息</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 底部:联系信息 -->
|
||||
<div class="row text-center mt-5 g-4">
|
||||
<div class="col-12 col-md-3">
|
||||
<div class="p-3">
|
||||
<div class="display-6 text-primary mb-2"><i class="bi bi-geo-alt-fill"></i></div>
|
||||
<h6 class="mb-1">地址</h6>
|
||||
<div class="text-muted small">宁夏回族自治区银川市金凤区</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-3">
|
||||
<div class="p-3">
|
||||
<div class="display-6 text-success mb-2"><i class="bi bi-envelope-fill"></i></div>
|
||||
<h6 class="mb-1">Email</h6>
|
||||
<div class="text-muted small">info@nxfarm.com</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-3">
|
||||
<div class="p-3">
|
||||
<div class="display-6 text-info mb-2"><i class="bi bi-globe"></i></div>
|
||||
<h6 class="mb-1">官网</h6>
|
||||
<div class="text-muted small">www.nxfarm.com</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-3">
|
||||
<div class="p-3">
|
||||
<div class="display-6 text-warning mb-2"><i class="bi bi-telephone-outbound-fill"></i></div>
|
||||
<h6 class="mb-1">电话</h6>
|
||||
<div class="text-muted small">0951-88888888</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -427,5 +466,72 @@
|
||||
<script src="https://cdn.bootcdn.net/ajax/libs/bootstrap/5.3.2/js/bootstrap.bundle.min.js"></script>
|
||||
<!-- 自定义脚本 -->
|
||||
<script src="assets/js/script.js"></script>
|
||||
<!-- 百度地图API -->
|
||||
<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=SOawZTeQbxdgrKYYx0o2hn34G0DyU2uo"></script>
|
||||
|
||||
<script>
|
||||
// 初始化百度地图
|
||||
function initBaiduMap() {
|
||||
try {
|
||||
// 创建地图实例
|
||||
var map = new BMap.Map("baidu-map-container");
|
||||
|
||||
// 设置中心点坐标(银川市金凤区)
|
||||
var point = new BMap.Point(106.278179, 38.46637);
|
||||
|
||||
// 初始化地图,设置中心点坐标和地图级别
|
||||
map.centerAndZoom(point, 15);
|
||||
|
||||
// 启用滚轮放大缩小
|
||||
map.enableScrollWheelZoom(true);
|
||||
|
||||
// 添加地图类型控件
|
||||
map.addControl(new BMap.MapTypeControl());
|
||||
|
||||
// 添加缩放控件
|
||||
map.addControl(new BMap.NavigationControl());
|
||||
|
||||
// 添加比例尺控件
|
||||
map.addControl(new BMap.ScaleControl());
|
||||
|
||||
// 创建标注
|
||||
var marker = new BMap.Marker(point);
|
||||
map.addOverlay(marker);
|
||||
|
||||
// 创建信息窗口
|
||||
var infoWindow = new BMap.InfoWindow("<div style='padding:10px;'><h6>宁夏智慧养殖监管平台</h6><p>宁夏·银川(金凤区)</p></div>");
|
||||
|
||||
// 点击标注显示信息窗口
|
||||
marker.addEventListener("click", function(){
|
||||
map.openInfoWindow(infoWindow, point);
|
||||
});
|
||||
|
||||
// 默认显示信息窗口
|
||||
map.openInfoWindow(infoWindow, point);
|
||||
|
||||
console.log('百度地图初始化成功');
|
||||
} catch (error) {
|
||||
console.error('百度地图初始化失败:', error);
|
||||
// 如果地图加载失败,显示备用内容
|
||||
document.getElementById('baidu-map-container').innerHTML =
|
||||
'<div class="d-flex align-items-center justify-content-center h-100 bg-light text-muted">' +
|
||||
'<div class="text-center">' +
|
||||
'<i class="bi bi-geo-alt-fill display-4 mb-3"></i>' +
|
||||
'<h5>地图加载中...</h5>' +
|
||||
'<p>如果地图无法显示,请检查网络连接</p>' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
}
|
||||
}
|
||||
|
||||
// 页面加载完成后初始化地图
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// 延迟初始化,确保百度地图API已加载
|
||||
setTimeout(initBaiduMap, 1000);
|
||||
});
|
||||
|
||||
// 如果百度地图API加载失败的回调
|
||||
window.BMap_loadScriptTime = (new Date).getTime();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||