2026-06-21 10:00:13 +08:00
|
|
|
<!doctype html>
|
|
|
|
|
<html lang="zh-CN">
|
|
|
|
|
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="utf-8" />
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
|
|
|
<title>线上预定</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">
|
2026-06-21 10:37:25 +08:00
|
|
|
<link rel="stylesheet" href="/style.css?v=13">
|
2026-06-21 10:00:13 +08:00
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body class="public-search jr-order-page">
|
|
|
|
|
<div class="jr-order-shell">
|
|
|
|
|
<header class="jr-topbar">
|
|
|
|
|
<div class="jr-topbar-inner">
|
|
|
|
|
<a href="https://ticket.fse-media.group" id="homeLink" class="jr-top-link">
|
|
|
|
|
<i class="fas fa-arrow-left"></i>
|
|
|
|
|
<span>返回首页</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">
|
2026-06-28 11:02:32 +08:00
|
|
|
<strong>FarSight-T.N.E铁路运输</strong>
|
2026-06-21 10:00:13 +08:00
|
|
|
<span>线上预定</span>
|
|
|
|
|
</div>
|
|
|
|
|
</a>
|
|
|
|
|
<nav class="jr-nav" aria-label="站点导航">
|
|
|
|
|
<a href="https://ticket.fse-media.group/home.html" data-link="home">首页</a>
|
|
|
|
|
<a href="https://ticket.fse-media.group/order" data-link="order" class="is-active">线上预定</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-main">
|
|
|
|
|
<section class="jr-hero">
|
|
|
|
|
<div class="jr-hero-copy">
|
|
|
|
|
<p class="jr-eyebrow">FSE ONLINE RESERVATION</p>
|
|
|
|
|
<h1>完成一张车票预定</h1>
|
|
|
|
|
<p class="jr-hero-text">
|
|
|
|
|
先在线选择区间与车型,再生成凭证码,最后在游戏内售票机完成兑票。</p>
|
|
|
|
|
<div class="jr-hero-actions">
|
|
|
|
|
<a href="#reservationPanel" class="jr-cta-primary">开始预定</a>
|
|
|
|
|
<a href="https://ticket.fse-media.group/search" data-link="search" class="jr-cta-secondary">查询已有订单</a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<aside class="jr-hero-panel">
|
|
|
|
|
<div class="jr-panel-head">
|
|
|
|
|
<span class="jr-panel-kicker">旅客须知</span>
|
|
|
|
|
<h2>预定流程</h2>
|
|
|
|
|
</div>
|
|
|
|
|
<ol class="jr-process-list">
|
|
|
|
|
<li>在线选择出发站、到达站与车型。</li>
|
|
|
|
|
<li>系统自动估算票价并显示预计路径。</li>
|
|
|
|
|
<li>生成凭证码后,在游戏内任意售票机兑票。</li>
|
|
|
|
|
</ol>
|
|
|
|
|
<div class="jr-service-strip">
|
|
|
|
|
<div>
|
|
|
|
|
<span class="jr-service-label">售票模式</span>
|
|
|
|
|
<strong>线上预订 / 站内兑票</strong>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<span class="jr-service-label">支持车型</span>
|
|
|
|
|
<strong>普通 / 特急</strong>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</aside>
|
|
|
|
|
</section>
|
|
|
|
|
<section class="jr-alert-band" aria-label="服务公告">
|
|
|
|
|
<div class="jr-alert-title">
|
|
|
|
|
<i class="fas fa-circle-info"></i>
|
|
|
|
|
<span>服务提醒</span>
|
|
|
|
|
</div>
|
|
|
|
|
<p>
|
|
|
|
|
票价将根据当前配置自动计算;生成的凭证码仅用于一次有效兑票,请妥善保存。</p>
|
|
|
|
|
</section>
|
|
|
|
|
<section class="jr-quick-links" aria-label="快捷入口">
|
|
|
|
|
<a class="jr-quick-link" href="https://ticket.fse-media.group/search" data-link="search">
|
|
|
|
|
<span class="jr-quick-icon"><i class="fas fa-magnifying-glass"></i></span>
|
|
|
|
|
<span class="jr-quick-text">
|
|
|
|
|
<strong>车票查询</strong>
|
|
|
|
|
<span>查询已有票据与乘车信息</span>
|
|
|
|
|
</span>
|
|
|
|
|
</a>
|
|
|
|
|
<a class="jr-quick-link" href="#reservationPanel">
|
|
|
|
|
<span class="jr-quick-icon"><i class="fas fa-route"></i></span>
|
|
|
|
|
<span class="jr-quick-text">
|
|
|
|
|
<strong>选择线路</strong>
|
|
|
|
|
<span>在系统线路图中选择起终点</span>
|
|
|
|
|
</span>
|
|
|
|
|
</a>
|
|
|
|
|
<a class="jr-quick-link" href="#voucherPanel">
|
|
|
|
|
<span class="jr-quick-icon"><i class="fas fa-receipt"></i></span>
|
|
|
|
|
<span class="jr-quick-text">
|
|
|
|
|
<strong>查看凭证</strong>
|
|
|
|
|
<span>预定成功后获取兑票代码</span>
|
|
|
|
|
</span>
|
|
|
|
|
</a>
|
|
|
|
|
</section>
|
|
|
|
|
<section class="jr-content-grid">
|
|
|
|
|
<div class="jr-column-main">
|
|
|
|
|
<article class="jr-section-card" id="reservationPanel">
|
|
|
|
|
<div class="jr-section-head">
|
|
|
|
|
<div>
|
|
|
|
|
<p class="jr-section-label">Reservation</p>
|
|
|
|
|
<h2>选择乘车区间</h2>
|
|
|
|
|
</div>
|
|
|
|
|
<p class="jr-section-note">点击下方线路图中的站点,依次选择起点与终点。</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="stationMap" class="station-map-container jr-station-map">
|
|
|
|
|
<div class="loading">加载线路图中...</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="jr-selection-summary">
|
|
|
|
|
<div class="jr-selection-card jr-selection-start">
|
|
|
|
|
<span class="jr-selection-tag">出发站</span>
|
|
|
|
|
<strong id="fromDisplay">请在上方地图选择</strong>
|
|
|
|
|
<input id="from" type="hidden" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="jr-selection-arrow">
|
|
|
|
|
<i class="fas fa-arrow-right"></i>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="jr-selection-card jr-selection-end">
|
|
|
|
|
<span class="jr-selection-tag">到达站</span>
|
|
|
|
|
<strong id="toDisplay">请在上方地图选择</strong>
|
|
|
|
|
<input id="to" type="hidden" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="jr-form-grid">
|
|
|
|
|
<div class="jr-form-block">
|
|
|
|
|
<div class="jr-field-head">
|
|
|
|
|
<span class="jr-field-label">车型</span>
|
|
|
|
|
<span class="jr-field-note">根据停靠站不同计算票价</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="train-type-group jr-train-type-group" id="typeGroup">
|
|
|
|
|
<label>
|
|
|
|
|
<input type="radio" name="trainType" value="Local" checked>
|
|
|
|
|
<div class="type-card jr-type-card">
|
|
|
|
|
<div class="type-title">普通 Local</div>
|
|
|
|
|
<div class="type-desc">每站停靠,适合常规出行</div>
|
|
|
|
|
</div>
|
|
|
|
|
</label>
|
|
|
|
|
<label>
|
|
|
|
|
<input type="radio" name="trainType" value="Express">
|
|
|
|
|
<div class="type-card jr-type-card">
|
|
|
|
|
<div class="type-title">特急 Express</div>
|
|
|
|
|
<div class="type-desc">仅停主要车站,票价更高</div>
|
|
|
|
|
</div>
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="jr-form-block jr-trip-block">
|
|
|
|
|
<div class="jr-field-head">
|
|
|
|
|
<label class="jr-field-label" for="trips">乘次数量</label>
|
|
|
|
|
<span class="jr-field-note">至少 1 次</span>
|
|
|
|
|
</div>
|
|
|
|
|
<input id="trips" type="number" min="1" value="1" class="input jr-quantity-input" placeholder="请输入乘次数量"
|
|
|
|
|
title="乘次数量" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="toolbar jr-toolbar">
|
|
|
|
|
<button id="createOrder" class="btn primary jr-submit-btn">
|
|
|
|
|
<i class="fas fa-check-circle"></i>
|
|
|
|
|
<span>生成凭证码</span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</article>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<aside class="jr-column-side">
|
|
|
|
|
<article class="jr-section-card jr-side-card">
|
|
|
|
|
<div class="jr-section-head">
|
|
|
|
|
<div>
|
|
|
|
|
<p class="jr-section-label">Estimate</p>
|
|
|
|
|
<h2>票价与路径</h2>
|
|
|
|
|
</div>
|
|
|
|
|
<p class="jr-section-note">选择完整区间后自动刷新。</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="priceBox" class="list jr-price-list">
|
|
|
|
|
<div class="empty-state jr-empty-state">
|
|
|
|
|
<p>请选择起点与终点后查看票价估算。</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</article>
|
|
|
|
|
|
|
|
|
|
<article class="jr-section-card jr-side-card" id="voucherPanel">
|
|
|
|
|
<div class="jr-section-head">
|
|
|
|
|
<div>
|
|
|
|
|
<p class="jr-section-label">Voucher</p>
|
|
|
|
|
<h2>凭证与兑票</h2>
|
|
|
|
|
</div>
|
|
|
|
|
<p class="jr-section-note">生成后即可前往游戏内售票机兑票。</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="voucherBox" class="list jr-voucher-list">
|
|
|
|
|
<div class="empty-state jr-empty-state jr-voucher-empty">
|
|
|
|
|
<p>尚未生成凭证码。</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</article>
|
|
|
|
|
|
|
|
|
|
<article class="jr-section-card jr-side-card">
|
|
|
|
|
<div class="jr-section-head">
|
|
|
|
|
<div>
|
|
|
|
|
<p class="jr-section-label">Guide</p>
|
|
|
|
|
<h2>使用说明</h2>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<ul class="jr-guide-list">
|
|
|
|
|
<li>若重新选择站点,票价与路径会自动重新计算。</li>
|
|
|
|
|
<li>凭证码生成后建议立即截图或复制保存。</li>
|
|
|
|
|
<li>如需核验订单,可前往“车票查询”页面查看详情。</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</article>
|
|
|
|
|
</aside>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<footer class="site-footer jr-site-footer">
|
|
|
|
|
<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>
|
|
|
|
|
|
2026-06-21 10:37:25 +08:00
|
|
|
<script src="/custom-dialog.js?v=12"></script>
|
2026-06-21 10:18:04 +08:00
|
|
|
<script src="/ticket-order.js?v=21"></script>
|
2026-06-21 10:00:13 +08:00
|
|
|
<script src="/public-status.js?v=13"></script>
|
|
|
|
|
<script src="/ai-assistant.js?v=6"></script>
|
|
|
|
|
<script>
|
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
|
|
|
const isRemote = location.hostname.includes('fse-media.group');
|
|
|
|
|
const links = {
|
|
|
|
|
home: isRemote ? 'https://ticket.fse-media.group' : '/home.html',
|
|
|
|
|
order: isRemote ? 'https://ticket.fse-media.group/order' : '/ticket-order.html',
|
|
|
|
|
search: isRemote ? 'https://ticket.fse-media.group/search' : '/ticket-search.html',
|
|
|
|
|
'card-search': isRemote ? 'https://ticket.fse-media.group/ic-card/search' : '/ic-card-search.html',
|
|
|
|
|
'card-order': isRemote ? 'https://ticket.fse-media.group/ic-card/order' : '/ic-card-order.html'
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const homeLink = document.getElementById('homeLink');
|
|
|
|
|
const brandLink = document.getElementById('brandLink');
|
|
|
|
|
if (homeLink) homeLink.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];
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
</html>
|
2026-06-21 10:37:25 +08:00
|
|
|
|