250 lines
12 KiB
HTML
250 lines
12 KiB
HTML
|
|
<!DOCTYPE html>
|
||
|
|
<html lang="zh-CN">
|
||
|
|
<head>
|
||
|
|
<meta charset="UTF-8">
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
|
<title>FSE 铁路票务系统 - 首页</title>
|
||
|
|
<link rel="icon" type="image/png" href="/FSE-ticket.png">
|
||
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||
|
|
<link rel="stylesheet" href="/style.css?v=12">
|
||
|
|
</head>
|
||
|
|
<body class="public-search jr-public-page">
|
||
|
|
<div class="jr-public-shell">
|
||
|
|
<header class="jr-topbar">
|
||
|
|
<div class="jr-topbar-inner">
|
||
|
|
<a href="https://ticket.fse-media.group" class="jr-top-link" id="homeTopLink">
|
||
|
|
<i class="fas fa-train"></i>
|
||
|
|
<span>FSE铁路运输票务系统</span>
|
||
|
|
</a>
|
||
|
|
<div class="jr-top-status is-checking" data-server-status-root>
|
||
|
|
<span class="jr-top-status-label">服务器状态</span>
|
||
|
|
<span class="jr-top-status-dot"></span>
|
||
|
|
<span class="jr-top-status-value" data-server-status-value>检测中</span>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</header>
|
||
|
|
|
||
|
|
<div class="jr-brandbar">
|
||
|
|
<div class="jr-brandbar-inner">
|
||
|
|
<a href="https://ticket.fse-media.group" class="jr-brand" id="brandLink">
|
||
|
|
<img src="/FSE-ticket.png" alt="FSE Railway" class="jr-brand-logo" />
|
||
|
|
<div class="jr-brand-copy">
|
||
|
|
<strong>FarSight-T.N.E铁路运输</strong>
|
||
|
|
<span>票务服务</span>
|
||
|
|
</div>
|
||
|
|
</a>
|
||
|
|
<nav class="jr-nav" aria-label="站点导航">
|
||
|
|
<a href="https://ticket.fse-media.group/home.html" data-link="home" class="is-active">首页</a>
|
||
|
|
<a href="https://ticket.fse-media.group/order" data-link="order">线上预定</a>
|
||
|
|
<a href="https://ticket.fse-media.group/search" data-link="search">车票查询</a>
|
||
|
|
<a href="https://ticket.fse-media.group/ic-card/search" data-link="card-search">IC 卡查询</a>
|
||
|
|
<a href="https://ticket.fse-media.group/ic-card/order" data-link="card-order">线上购卡</a>
|
||
|
|
</nav>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<main class="jr-public-main">
|
||
|
|
<section class="jr-home-hero">
|
||
|
|
<article class="jr-home-hero-main">
|
||
|
|
<span class="jr-kicker">FSE PUBLIC TICKET PORTAL</span>
|
||
|
|
<h1>FSE 铁路运输票务系统</h1>
|
||
|
|
<p class="jr-home-hero-text">
|
||
|
|
⌈票行千里,智通未来⌋
|
||
|
|
购票、查询、办卡
|
||
|
|
</p>
|
||
|
|
<div class="jr-home-hero-actions">
|
||
|
|
<a href="https://ticket.fse-media.group/order" data-link="order" class="jr-cta-primary">开始预定</a>
|
||
|
|
<a href="https://ticket.fse-media.group/search" data-link="search" class="jr-cta-secondary">查询票据</a>
|
||
|
|
</div>
|
||
|
|
<div class="jr-home-hero-stats">
|
||
|
|
<div class="jr-home-stat">
|
||
|
|
<strong>线上预定</strong>
|
||
|
|
<span>生成凭证码并在站内兑票</span>
|
||
|
|
</div>
|
||
|
|
<div class="jr-home-stat">
|
||
|
|
<strong>电子票查询</strong>
|
||
|
|
<span>支持票号、区间和日期检索</span>
|
||
|
|
</div>
|
||
|
|
<div class="jr-home-stat">
|
||
|
|
<strong>线路资源</strong>
|
||
|
|
<span>查看线路图与票价图</span>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</article>
|
||
|
|
|
||
|
|
<aside class="jr-home-hero-side">
|
||
|
|
<div class="jr-home-side-head">
|
||
|
|
<span class="jr-kicker">SERVICE GUIDE</span>
|
||
|
|
<h2>乘车流程</h2>
|
||
|
|
</div>
|
||
|
|
<ol class="jr-process-list jr-home-process">
|
||
|
|
<li>在线选择起点、终点、车型和乘次数量</li>
|
||
|
|
<li>确认票价与路径后生成订单凭证</li>
|
||
|
|
<li>前往游戏内售票机输入凭证码兑票</li>
|
||
|
|
</ol>
|
||
|
|
<div class="jr-home-side-strip">
|
||
|
|
<div>
|
||
|
|
<span>支持服务</span>
|
||
|
|
<strong>订票 / 查询 / 办卡</strong>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</aside>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
<section class="jr-home-alert">
|
||
|
|
<div class="jr-alert-title">
|
||
|
|
<i class="fas fa-circle-info"></i>
|
||
|
|
<span>旅客提醒</span>
|
||
|
|
</div>
|
||
|
|
<p>线上预定生成的凭证码与IC卡订单号请及时保存;如需补查订单、车票状态或IC卡信息,可在对应查询页继续检索。</p>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
<section class="jr-page-intro">
|
||
|
|
<span class="jr-kicker">SERVICE ENTRY</span>
|
||
|
|
<h1>从首页直接进入票务服务</h1>
|
||
|
|
<p>线上预定 / 车票查询 / 凭证核验 / IC卡</p>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
<section class="jr-home-service-grid">
|
||
|
|
<a href="https://ticket.fse-media.group/order" data-link="order" class="jr-home-service-card jr-home-service-primary">
|
||
|
|
<span class="jr-feature-icon"><i class="fas fa-ticket-alt"></i></span>
|
||
|
|
<span class="jr-feature-copy">
|
||
|
|
<strong>线上预定</strong>
|
||
|
|
<span>在线选择区间、车型与乘次,并生成兑票凭证。</span>
|
||
|
|
</span>
|
||
|
|
</a>
|
||
|
|
<a href="https://ticket.fse-media.group/search" data-link="search" class="jr-home-service-card">
|
||
|
|
<span class="jr-feature-icon"><i class="fas fa-search"></i></span>
|
||
|
|
<span class="jr-feature-copy">
|
||
|
|
<strong>车票查询</strong>
|
||
|
|
<span>输入票号、站点或日期,快速查看票据详情和流转记录。</span>
|
||
|
|
</span>
|
||
|
|
</a>
|
||
|
|
<a href="https://ticket.fse-media.group/search" data-link="search" class="jr-home-service-card">
|
||
|
|
<span class="jr-feature-icon"><i class="fas fa-receipt"></i></span>
|
||
|
|
<span class="jr-feature-copy">
|
||
|
|
<strong>凭证核验</strong>
|
||
|
|
<span>查询订单凭证状态,确认是否已被使用或仍可兑票。</span>
|
||
|
|
</span>
|
||
|
|
</a>
|
||
|
|
<a href="https://ticket.fse-media.group/ic-card/order" data-link="ic-card-order" class="jr-home-service-card">
|
||
|
|
<span class="jr-feature-icon"><i class="fas fa-credit-card"></i></span>
|
||
|
|
<span class="jr-feature-copy">
|
||
|
|
<strong>线上购卡</strong>
|
||
|
|
<span>在线填写购卡信息,生成IC卡订单号与领卡卡号。</span>
|
||
|
|
</span>
|
||
|
|
</a>
|
||
|
|
<a href="https://ticket.fse-media.group/ic-card/search" data-link="ic-card-search" class="jr-home-service-card">
|
||
|
|
<span class="jr-feature-icon"><i class="fas fa-wallet"></i></span>
|
||
|
|
<span class="jr-feature-copy">
|
||
|
|
<strong>IC 卡查询</strong>
|
||
|
|
<span>输入卡号或订单号,查看卡状态、余额与最近记录。</span>
|
||
|
|
</span>
|
||
|
|
</a>
|
||
|
|
<article class="jr-home-mini-card">
|
||
|
|
<span class="jr-kicker">POPULAR</span>
|
||
|
|
<h3>常用操作</h3>
|
||
|
|
<ul class="jr-guide-list">
|
||
|
|
<li>先订票,再截图保存凭证码。</li>
|
||
|
|
<li>线上购卡后请同时保存卡号与订单号。</li>
|
||
|
|
<li>如票据状态不明,优先进入查询页核验。</li>
|
||
|
|
<li>查看线路资源时可对照票价图与线路图。</li>
|
||
|
|
</ul>
|
||
|
|
</article>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
<section class="jr-home-assets">
|
||
|
|
<article class="jr-panel-card">
|
||
|
|
<div class="jr-panel-headline">
|
||
|
|
<h3>票价图</h3>
|
||
|
|
<span class="jr-panel-note">Fare Map</span>
|
||
|
|
</div>
|
||
|
|
<div id="fareMapBox" class="jr-asset-frame">
|
||
|
|
<div class="text-muted">加载中...</div>
|
||
|
|
</div>
|
||
|
|
</article>
|
||
|
|
|
||
|
|
<article class="jr-panel-card">
|
||
|
|
<div class="jr-panel-headline">
|
||
|
|
<h3>线路图</h3>
|
||
|
|
<span class="jr-panel-note">Route Map</span>
|
||
|
|
</div>
|
||
|
|
<div id="routeMapBox" class="jr-asset-frame">
|
||
|
|
<div class="text-muted">加载中...</div>
|
||
|
|
</div>
|
||
|
|
</article>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
<footer class="site-footer jr-footer-space">
|
||
|
|
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">粤ICP备2025450093号</a>
|
||
|
|
<span class="version">v1.0.12</span>
|
||
|
|
</footer>
|
||
|
|
</main>
|
||
|
|
</div>
|
||
|
|
<script src="/custom-dialog.js?v=11"></script>
|
||
|
|
<script src="/public-status.js?v=13"></script>
|
||
|
|
<script src="/ai-assistant.js?v=6"></script>
|
||
|
|
<script>
|
||
|
|
const loadPublicAssets = async () => {
|
||
|
|
const fareMapBox = document.getElementById('fareMapBox');
|
||
|
|
const routeMapBox = document.getElementById('routeMapBox');
|
||
|
|
|
||
|
|
try {
|
||
|
|
const v = String(Date.now());
|
||
|
|
|
||
|
|
try {
|
||
|
|
const r2 = await fetch(`/api/public/fares/map/light?t=${encodeURIComponent(v)}`, { cache: 'no-store' });
|
||
|
|
const svg = await r2.text();
|
||
|
|
fareMapBox.innerHTML = `<div class="jr-asset-frame">${svg}</div>`;
|
||
|
|
} catch (e) {
|
||
|
|
fareMapBox.innerHTML = '<div class="text-muted">票价图加载失败</div>';
|
||
|
|
}
|
||
|
|
|
||
|
|
const r = await fetch('/api/assets/manifest', { cache: 'no-store' });
|
||
|
|
const m = await r.json();
|
||
|
|
const mv = (m && m.updatedAt) ? String(m.updatedAt) : v;
|
||
|
|
|
||
|
|
if (m && m.routeMap) {
|
||
|
|
const img = document.createElement('img');
|
||
|
|
img.alt = '线路图';
|
||
|
|
img.src = `/assets/${encodeURIComponent(m.routeMap)}?v=${encodeURIComponent(mv)}`;
|
||
|
|
routeMapBox.innerHTML = '<div class="jr-asset-frame"></div>';
|
||
|
|
routeMapBox.firstElementChild.appendChild(img);
|
||
|
|
} else {
|
||
|
|
routeMapBox.innerHTML = '<div class="text-muted">暂无线路图</div>';
|
||
|
|
}
|
||
|
|
} catch (e) {
|
||
|
|
fareMapBox.innerHTML = '<div class="text-muted">票价图加载失败</div>';
|
||
|
|
routeMapBox.innerHTML = '<div class="text-muted">线路图加载失败</div>';
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
document.addEventListener('DOMContentLoaded', () => {
|
||
|
|
const isDomain = location.hostname.includes('fse-media.group');
|
||
|
|
const links = {
|
||
|
|
home: isDomain ? 'https://ticket.fse-media.group' : '/home.html',
|
||
|
|
order: isDomain ? 'https://ticket.fse-media.group/order' : '/ticket-order.html',
|
||
|
|
search: isDomain ? 'https://ticket.fse-media.group/search' : '/ticket-search.html',
|
||
|
|
'card-search': isDomain ? 'https://ticket.fse-media.group/ic-card/search' : '/ic-card-search.html',
|
||
|
|
'card-order': isDomain ? 'https://ticket.fse-media.group/ic-card/order' : '/ic-card-order.html'
|
||
|
|
};
|
||
|
|
|
||
|
|
const homeTopLink = document.getElementById('homeTopLink');
|
||
|
|
const brandLink = document.getElementById('brandLink');
|
||
|
|
if (homeTopLink) homeTopLink.href = links.home;
|
||
|
|
if (brandLink) brandLink.href = links.home;
|
||
|
|
|
||
|
|
document.querySelectorAll('[data-link]').forEach((el) => {
|
||
|
|
const key = el.getAttribute('data-link');
|
||
|
|
if (links[key]) el.href = links[key];
|
||
|
|
});
|
||
|
|
|
||
|
|
loadPublicAssets();
|
||
|
|
});
|
||
|
|
</script>
|
||
|
|
</body>
|
||
|
|
</html>
|
||
|
|
|
||
|
|
|
||
|
|
|