2025-11-26 16:28:14 +08:00
|
|
|
<!DOCTYPE html>
|
2025-11-28 12:58:45 +08:00
|
|
|
<html lang="zh-CN">
|
2025-11-26 16:28:14 +08:00
|
|
|
<head>
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
2025-11-28 12:58:45 +08:00
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
|
|
<meta name="description" content="天津市林草资源专项调查管理平台 - 专业的林业资源管理与调查系统">
|
|
|
|
|
<meta name="keywords" content="林草资源,林业管理,资源调查,天津林业">
|
|
|
|
|
<meta name="author" content="天津市林草资源专项调查管理平台">
|
|
|
|
|
<title>天津市林草资源专项调查管理平台</title>
|
|
|
|
|
|
|
|
|
|
<!-- 预加载字体 -->
|
|
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
|
|
|
|
|
|
|
|
<!-- Favicon -->
|
|
|
|
|
<link rel="icon" type="image/png" href="/static/img/favicon.png">
|
|
|
|
|
|
|
|
|
|
<!-- 地图API -->
|
2025-11-26 16:28:14 +08:00
|
|
|
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=eT72K2voLkPnlDLUBzeRroxMW5vIrbH1"></script>
|
|
|
|
|
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.4&key=9355e88d3f4f88925d8b6a8ba53d19c6&plugin=AMap.MouseTool&plugin=AMap.Autocomplete&plugin=AMap.PolyEditor"></script>
|
2025-11-28 12:58:45 +08:00
|
|
|
|
|
|
|
|
<!-- 页面加载样式 -->
|
|
|
|
|
<style>
|
|
|
|
|
* {
|
|
|
|
|
margin: 0;
|
|
|
|
|
padding: 0;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
html, body {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
font-family: 'PingFang SC', 'Microsoft YaHei', 'SimHei', 'STHeiti', 'Helvetica Neue', Arial, sans-serif;
|
|
|
|
|
-webkit-font-smoothing: antialiased;
|
|
|
|
|
-moz-osx-font-smoothing: grayscale;
|
|
|
|
|
background: #F1F8F4;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#app {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 加载动画 */
|
|
|
|
|
.loading-container {
|
|
|
|
|
position: fixed;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
background: #F1F8F4;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
z-index: 9999;
|
|
|
|
|
transition: opacity 0.3s ease;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.loading-container.hidden {
|
|
|
|
|
opacity: 0;
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.loading-logo {
|
|
|
|
|
width: 80px;
|
|
|
|
|
height: 80px;
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
animation: pulse 2s ease-in-out infinite;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.loading-spinner {
|
|
|
|
|
width: 50px;
|
|
|
|
|
height: 50px;
|
|
|
|
|
border: 4px solid rgba(76, 175, 80, 0.2);
|
|
|
|
|
border-top-color: #4CAF50;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
animation: spin 1s linear infinite;
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.loading-text {
|
|
|
|
|
color: #2E7D32;
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
letter-spacing: 2px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes spin {
|
|
|
|
|
to { transform: rotate(360deg); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes pulse {
|
|
|
|
|
0%, 100% { transform: scale(1); opacity: 1; }
|
|
|
|
|
50% { transform: scale(1.1); opacity: 0.8; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 滚动条样式 */
|
|
|
|
|
::-webkit-scrollbar {
|
|
|
|
|
width: 8px;
|
|
|
|
|
height: 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::-webkit-scrollbar-track {
|
|
|
|
|
background: #E8F5E9;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
|
|
|
background: #81C784;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
|
|
|
background: #66BB6A;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
2025-11-26 16:28:14 +08:00
|
|
|
</head>
|
|
|
|
|
<body>
|
2025-11-28 12:58:45 +08:00
|
|
|
<!-- 加载动画 -->
|
|
|
|
|
<div id="loading" class="loading-container">
|
|
|
|
|
<div class="loading-spinner"></div>
|
|
|
|
|
<div class="loading-text">加载中...</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2025-11-26 16:28:14 +08:00
|
|
|
<div id="app"></div>
|
2025-11-28 12:58:45 +08:00
|
|
|
|
2025-11-26 16:28:14 +08:00
|
|
|
<!-- built files will be auto injected -->
|
|
|
|
|
<script type="text/javascript" src="/static/js/sockjs.min.js"></script>
|
|
|
|
|
<script>
|
2025-11-28 12:58:45 +08:00
|
|
|
// 平台名称配置
|
2025-11-28 14:46:02 +08:00
|
|
|
const myname = '天津市林草资源专项调查管理平台 v20251006';
|
2025-11-26 16:28:14 +08:00
|
|
|
document.getElementsByTagName('title')[0].innerText = myname;
|
2025-11-28 12:58:45 +08:00
|
|
|
|
|
|
|
|
// 页面加载完成后隐藏加载动画
|
|
|
|
|
window.addEventListener('load', function() {
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
const loading = document.getElementById('loading');
|
|
|
|
|
if (loading) {
|
|
|
|
|
loading.classList.add('hidden');
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
loading.style.display = 'none';
|
|
|
|
|
}, 300);
|
|
|
|
|
}
|
|
|
|
|
}, 500);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 如果 Vue 应用已经加载,也隐藏加载动画
|
|
|
|
|
if (document.readyState === 'complete') {
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
const loading = document.getElementById('loading');
|
|
|
|
|
if (loading) {
|
|
|
|
|
loading.classList.add('hidden');
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
loading.style.display = 'none';
|
|
|
|
|
}, 300);
|
|
|
|
|
}
|
|
|
|
|
}, 500);
|
|
|
|
|
}
|
2025-11-26 16:28:14 +08:00
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|