Files
2025-06-16 17:26:52 +08:00

394 lines
13 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
<!-- <meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> -->
<title></title>
<link rel="stylesheet" href="css/style.css">
<script src="plugins/echarts.min.js"></script>
<script src="plugins/jquery.js "></script>
<script src="js/public.js"></script>
<style>
/* RTL布局专用样式 */
body[dir="rtl"] {
text-align: right;
}
body[dir="rtl"] .cont {
direction: rtl;
}
#globalLoading {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 9999;
background: rgba(255, 255, 255, 0.8);
}
.loading-overlay {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
.loading-spinner {
width: 50px;
height: 50px;
border: 5px solid #f3f3f3;
border-top: 5px solid #3498db;
border-radius: 50%;
animation: spin 1s linear infinite;
margin: 0 auto;
}
.loading-text {
margin-top: 10px;
color: #333;
font-size: 16px;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body id="root-container">
<div id="globalLoading" style="display: none;">
<div class="loading-overlay">
<div class="loading-spinner"></div>
<div class="loading-text">Loading...</div>
</div>
</div>
<div id="world" style="height: 99%"></div>
<div class="cont">
<div class="custom-select toggle2">
<div class="select-selected" data-i18n="lang"></div>
<div class="select-items">
<div data-id="zh" data-i18n="zh"></div>
<div data-id="en" data-i18n="en"></div>
<div data-id="ru" data-i18n="ru"></div>
<div data-id="ar" data-i18n="ar"></div>
</div>
</div>
<div class="title">
<div data-i18n="title"></div>
<div class="times fadeIn delay16">
<p>
<span id="moth"></span>
<span id="week"></span>
</p>
<p>
<span id="time"></span>
</p>
<!-- <div class="switch-btn">
<label class="switch">
<input type="checkbox" id="mapSwitch" checked>
<span class="slider round"></span>
</label>
</div> -->
</div>
</div>
<div class="left">
<div class="box card" style="height:calc(20% - 0px)">
<div class="tit" data-i18n="carall"></div>
<div class="all" dir="ltr">
</div>
</div>
<div class="box card" style="height:calc(78% - 0px)">
<div class="tit" data-i18n="newdata"></div>
<div class="statusbtn">
<div class="statusall active" data-id="all" data-i18n="statusall"></div>
<div class="status1" data-id="1" data-i18n="status1"></div>
<div class="status2" data-id="2" data-i18n="status2"></div>
<div class="status3" data-id="3" data-i18n="status3"></div>
<div class="status4" data-id="4" data-i18n="status4"></div>
</div>
<div class="boxnav citylist">
<ul id="nav">
</ul>
</div>
<div class="boxfoot"></div>
</div>
</div>
<div class="centers">
<div class="cents-top">
<div class="centers-tabs">
<div class="centers-tab active" data-i18n="Intransit"></div>
<div class="centers-tab" data-i18n="Inport"></div>
</div>
<div class="centers-cont ">
<div class="centers-content active">
<div class="content-wrapper shipListdatas">
</div>
</div>
<div class="centers-content">
<div class="content-wrapper navigatedatas">
</div>
</div>
</div>
</div>
<div class="mores">
<img src="./img/la.png" alt="" />
</div>
</div>
<div class="right">
<div class="box card" style="height:calc(100% - 0px)">
<div class="tit" data-i18n="carinfo"></div>
<div class="boxnav">
<div class="cartitle"></div>
<div class="topimg">
<div class="inner">
</div>
</div>
<div class="carmsg ">
<p><span data-i18n="vin"></span> : <span class="vin"></span></p>
<p><span data-i18n="category"></span> : <span class="classify"></span></p>
<p><span data-i18n="vehicletype"></span> : <span class="model"></span></p>
<p><span data-i18n="destination1"></span> : <span class="destination"></span></p>
<p><span data-i18n="destination"></span> : <span class="fbo_destination"></span></p>
<p><span data-i18n="Departuretime"></span> : <span class="departure_time"></span></p>
<p><span data-i18n="Vehiclestatus"></span> : <span class="status"></span></p>
<p><span data-i18n="ArrivalDate"></span> : <span class="arrival_time"></span></p>
</div>
</div>
</div>
</div>
</div>
<!-- 弹出层 -->
<div class="modal-overlay" id="modalOverlay">
<div class="modal-container">
<!-- <div class="modal-header">
<div class="modal-title" ></div>
<div class="modal-close">&times;</div>
</div> -->
<!-- <div class="modal-close">
<img src="img/clone.png" alt="">
</div> -->
<div class="modal-tabs">
<div class="modal-tab active" data-tab="tab1" data-i18n="carinfo"></div>
<div class="modal-tab" data-tab="tab2" data-i18n="shipinfo"></div>
<div class="modal-tab" data-tab="tab3" data-i18n="history"></div>
</div>
<div class="modal-content">
<div class="tab-content active" id="tab1">
<div class="table-container">
<table class="modal-table">
<thead>
<tr>
<th data-i18n="carname"></th>
<th data-i18n="vin"></th>
<!-- <th data-i18n="vehicletype"></th> -->
<th data-i18n="Vehiclestatus"></th>
</tr>
</thead>
</table>
<div class="table-body-container">
<table class="modal-table">
<tbody id="vehicleTableBody" class="vehicleTableBody">
<!-- 数据将通过JavaScript动态加载 -->
</tbody>
</table>
<div data-i18n="errors" class="errors"></div>
</div>
<div class="infotimes">
<div>
<span class="label" data-i18n="destinationc"></span>:
<span class="value destinationc"></span>
</div>
<div>
<span class="label" data-i18n="yujidaodashijian"></span>:
<span class="value yujidaodashijian"></span>
</div>
</div>
<div class="pagination-container"></div>
<div class="pagination-container1"></div>
<div class="pagination-containerkp"></div>
<div class="pagination-containerkp1"></div>
</div>
</div>
<div class="tab-content" id="tab2">
<div class="ship-info">
<div class="ship-card">
<div class="ship-header">
<h3 class="shipname"></h3>
<!-- <span class="ship-status">在港</span> -->
</div>
<div class="ship-details">
<div class="detail-item">
<span class="label" data-i18n="mmsi"></span>
<span class="value mmsi"></span>
</div>
<div class="detail-item">
<span class="label" data-i18n="callsign"></span>
<span class="value callsign"></span>
</div>
<div class="detail-item">
<span class="label" data-i18n="shipname"></span>
<span class="value shipname"></span>
</div>
<div class="detail-item">
<span class="label" data-i18n="longitude"></span>
<span class="value longitude"></span>
</div>
<div class="detail-item">
<span class="label" data-i18n="latitude"></span>
<span class="value latitude"></span>
</div>
<div class="detail-item">
<span class="label" data-i18n="Nextstation"></span>
<span class="value Nextstation"></span>
</div>
<div class="detail-item">
<span class="label" data-i18n="Nexttime"></span>
<span class="value Nexttime"></span>
</div>
<div class="detail-item">
<span class="label" data-i18n="destinationc"></span>
<span class="value destinationc"></span>
</div>
<div class="detail-item">
<span class="label" data-i18n="yujidaodashijian"></span>
<span class="value yujidaodashijian"></span>
</div>
</div>
</div>
</div>
</div>
<div class="tab-content" id="tab3">
<div class="route-timeline" id="routetimeline">
<div data-i18n="errors" class="errors1"></div>
<!-- <div class="route-item">
<div class="route-time">2024-03-18 16:45</div>
<div class="route-content">
<div class="route-title">离开新加坡港</div>
<div class="route-desc">完成补给,启程前往上海</div>
<div class="route-status">已完成</div>
</div>
</div>
<div class="route-item">
<div class="route-time">2024-03-15 09:30</div>
<div class="route-content">
<div class="route-title">抵达新加坡港</div>
<div class="route-desc">进行补给和例行检查</div>
<div class="route-status">已完成</div>
</div>
</div> -->
</div>
</div>
</div>
<div class="modal-close">
<div data-i18n="close"></div>
</div>
</div>
</div>
<!-- 卡片 -->
<!-- 车详情弹出框 -->
<div class="modal-overlay" id="modalOverlaycar">
<div class="modal-containercar">
<!-- <div class="modal-header">
<div class="modal-title" ></div>
<div class="modal-close">&times;</div>
</div> -->
<div class="modal-content">
<div class="carinfos">
<p class="cartitlet"></p>
<p><span data-i18n="vin"></span> : <span class="vint"></span></p>
<p><span data-i18n="category"></span> : <span class="classifyt"></span></p>
<p><span data-i18n="vehicletype"></span> : <span class="modelt"></span></p>
<p><span data-i18n="destination1"></span> : <span class="destinationt"></span></p>
<p><span data-i18n="destination"></span> : <span class="fbo_destinationt"></span></p>
<p><span data-i18n="Departuretime"></span> : <span class="departure_timet"></span></p>
<p><span data-i18n="Vehiclestatus"></span> : <span class="statust"></span></p>
<p><span data-i18n="ArrivalDate"></span> : <span class="arrival_timet"></span></p>
</div>
<div class="carimg">
<!-- <img src="img/alertm1.png" alt="" /> -->
</div>
</div>
<div class="modal-close">
<div data-i18n="close"></div>
</div>
</div>
</div>
<script type="text/javascript" src="plugins/jquery.liMarquee.js"></script>
<script src="js/china.js"></script>
<script src="js/fz.js"></script>
<script src="js/pagination.js"></script>
<script type="text/javascript" src="js/world.js"></script>
<script src="js/i18n.js"></script>
<script>
$(window).load(function() {
$("body").addClass("load")
})
// Tab 切换功能
document.querySelectorAll('.modal-tab').forEach(tab => {
tab.addEventListener('click', () => {
// 移除所有 tab 的 active 类
document.querySelectorAll('.modal-tab').forEach(t => t.classList.remove('active'));
// 移除所有内容的 active 类
document.querySelectorAll('.tab-content').forEach(content => content.classList.remove('active'));
// 添加当前 tab 的 active 类
tab.classList.add('active');
// 显示对应的内容
const tabId = tab.getAttribute('data-tab');
document.getElementById(tabId).classList.add('active');
});
});
// 点击选择框时显示/隐藏选项
$(".select-selected").click(function() {
$(this).toggleClass("select-arrow-active");
$(this).next(".select-items").toggle();
});
// 点击页面其他位置时关闭下拉框
$(document).click(function(e) {
if (!$(e.target).closest(".custom-select").length) {
$(".select-selected").removeClass("select-arrow-active");
$(".select-items").hide();
}
});
const dpr = window.devicePixelRatio;
if (dpr >= 1.5) {
const container = document.getElementById('root-container');
const world = document.getElementById('world');
container.style.transform = `scale(${1/dpr})`;
container.style.width = `${dpr * 100}%`;
container.style.height = `${dpr * 100}vh`;
myChart.resize();
}
console.log(window.devicePixelRatio)
function handleHighDPR() {
const dpr = window.devicePixelRatio;
if (dpr >= 1.5) {
const container = document.getElementById('root-container');
const world = document.getElementById('world');
container.style.transform = `scale(${1/dpr})`;
container.style.width = `${dpr * 100}%`;
container.style.height = `${dpr * 100}vh`;
myChart.resize();
}
}
window.addEventListener('resize', handleHighDPR);
</script>
</body>
</html>