-
-
- OPERATIONS CONSOLE
-
- FSE铁路票务系统控制台
- 集中处理票务、线路、资源和运营日志。
-
-
- 返回首页
-
-
- 仪表盘
-
- 线路与票价
-
- 票价地图
+
-
+
-
+
-
+
-
+ OPERATIONS CONSOLE
+
+ FSE铁路票务系统控制台
+ 集中处理票务、线路、资源和运营日志。
+
+
+ 返回首页
+
+
+ 仪表盘
+
+
+ 线路与票价
+
+
+ 票价地图
+
+
+ 车票记录
+
+
+ 凭证记录
+
+
+ IC卡管理
+
+
+ 问题汇总
+
+
+ 线路图上传
+
+
+ 系统设置
+
+
+ 日志
+
+
- 车票记录
-
-
- 凭证记录
-
-
- IC卡管理
-
-
- 问题汇总
-
-
- 线路图上传
-
-
- 系统设置
-
-
- 日志
-
-
-
-
-
-
-
-
+
-
+
-
+
+
+
+
+
+
+
+ OPERATIONS CONSOLE
+
+ {{ viewTitle }}
+
+
+
+ 当前模块
+ {{ viewTitle }}
+
+
+ 最近同步
+ {{ lastSyncText }}
+
+
+
+
OPERATIONS CONSOLE
-
-
-
-
- 当前模块
- {{ viewTitle }}
-
-
- 最近同步
- {{ lastSyncText }}
-
-
-
-
- OPERATIONS CONSOLE
-
+
铁路票务后台控制台
-铁路票务后台控制台
+ - -
-
-
-
-
-
-
-
- 今日售票额
- {{ stats.sold_tickets || 0 }}
-
-
- 站点数
- {{ stations.length }}
-
-
- 运营线路
- {{ lines.length }}
-
-
-
-
-
-
-
- 线路列表
- -
-
-
-
-
-
-
-
-
+
+
+
-
-
+
-
+
- 今日售票额
+ {{ stats.sold_tickets || 0 }}
-
-
-
-
-
-
- {{ l.name || l.id }}
- {{ (l.stations || []).length }} 站
-
-
-
+
+
- 站点数
+ {{ stations.length }}
-
-
-
-
-
-
-
-
- {{ selectedLine.name || selectedLine.id - }}
- {{ selectedLine.id }} -
-
- {{ selectedLine.en_name || 'N/A' }}
-
-
-
-
- 选择左侧线路进行管理
-
-
-
+
+
运营线路
+ {{ lines.length }}
-
-
-
-
-
-
- 点击两个站点以设置票价
-
- 点击站点以设置换乘
-
- 点击站点删除
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+ 线路列表
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ l.name || l.id }}
+ {{ (l.stations || []).length }} 站
+
+
+
+
+
+
+
+
-
+
+
+
+
+ {{ selectedLine.name || + selectedLine.id + }}
+ {{ selectedLine.id }} +
+
+ {{ selectedLine.en_name || 'N/A'
+ }}
+
+
+
+
+ 选择左侧线路进行管理
+
+
+
+
-
- 添加站点:
-
-
-
-
-
-
+
-
+
- {{ getFareText(i) }}
-
+
+
-
-
-
+
+
+
-
-
+ 点击两个站点以设置票价
+
+
+ 点击站点以设置换乘/编辑车站
+
+
+ 点击站点删除
+
+
-
-
-
+
-
-
-
-
- 此线路暂无站点,请从上方添加
-
-
-
-
-
- 设置票价
-
-
-
- {{ getStationName(fareSelection[0]) }}
-
- {{ getStationName(fareSelection[1]) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 站点编辑
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 提示:系统会自动将中文名或英文名相同的站点连接为换乘站,无需手动设置。 -
-
-
-
-
- 按住 Ctrl / Cmd 键多选
-
-
-
-
-
-
-
-
-
- 线路编辑
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 票价地图
-
-
-
-
-
-
-
- 加载中...
- {{ fareMapError }}
-
-
-
-
-
+
-
-
-
-
- 凭证总数
- {{ orderStats.total }}
-
-
- 待使用
- {{ orderStats.valid }}
-
-
- 已使用
- {{ orderStats.used }}
-
-
- 已过期
- {{ orderStats.expired }}
-
+
+
+
-
+
+ 设置票价
+
+
+
+ {{ getStationName(fareSelection[0]) }}
+
+ {{ getStationName(fareSelection[1]) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
- IC 卡总数
- {{ icCardStats.total }}
-
-
- 待领卡
- {{ icCardStats.pending }}
-
-
- 正常启用
- {{ icCardStats.active }}
-
-
- 储值总额
- {{ formatMoney(icCardStats.balance) }}
-
+
-
+
+ 站点编辑
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + 提示:系统会自动将中文名或英文名相同的站点连接为换乘站,无需手动设置。 +
+
+
+
+
+ 按住 Ctrl / + Cmd 键多选
+
+
+
+
+
+
-
-
+
+
+
+
+
+ 线路编辑
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- 卡片列表
-支持按卡号、订单号、凭证码和持卡人姓名检索。
+ 票价地图
+
+
+
+
+
+
- {{ icCards.length }}
-
-
-
-
-
- 暂无 IC 卡记录。
-
-
-
+
-
- {{ displayIcCardId(card) }}
- {{ card.holder_name || '未登记持卡人' }} · IC 储值卡
- 订单 {{ cardOrderCode(card) }} · 余额 {{ formatMoney(card.balance) }}
-
- {{ icStatusInfo(card.status).text }}
-
- 加载中...
+ {{ fareMapError }}
+
+
+
+
+
+
+
+ 凭证总数
+ {{ orderStats.total }}
+
+
+ 待使用
+ {{ orderStats.valid }}
+
+
+ 已使用
+ {{ orderStats.used }}
+
+
+ 已过期
+ {{ orderStats.expired }}
+
-
-
-
- 卡片详情
-
-
-
-
-
+
- 凭证列表
+
+
-
-
- 从左侧选择一张 IC 卡以查看详情。
-
-
-
-
-
-
- {{ icStatusInfo(icSelectedCard.status).text }}
- {{ displayIcCardId(icSelectedCard) }}
- 订单号 {{ cardOrderCode(icSelectedCard) }} · 来源 {{ icSelectedCard.source || '---' }}
-
-
+
+
+
+
- 当前余额
- {{ formatMoney(icSelectedCard.balance) }}
- 支持直接发起充值。
-
-
- 事件记录
- {{ icSelectedEvents.length }}
- 用于追踪开卡与状态变更。
-
+ | 凭证 | +线路 | +车型 | +票价 | +状态 | +创建时间 | +操作 | +
|---|---|---|---|---|---|---|
| {{ o.code }} + | +{{ o.start_name }} {{ + o.terminal_name }} | +{{ formatTrainType(o.train_type) }} | +{{ o.price }} | +{{ + formatTicketStatus(o.status).text }} | +{{ formatTime(o.created_ts) }} | ++ + | +
-
-
-
-
-
-
-
+ 创建时间{{ formatTime(icSelectedCard.created_ts) }}
- 最后更新{{ formatTime(icSelectedCard.last_update_ts) }}
- 首次充值{{ formatMoney(icSelectedCard.purchase_amount ?? icSelectedCard.balance) }}
- 购卡金额{{ formatMoney(icSelectedCard.purchase_amount) }}
-
+
+
-
-
-
+
-
+
+ IC 卡总数
+ {{ icCardStats.total }}
+
+
+ 待领卡
+ {{ icCardStats.pending }}
+
+
+ 正常启用
+ {{ icCardStats.active }}
+
+
储值总额
+ {{ formatMoney(icCardStats.balance) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ icCards.length }}
+ 卡片列表
+支持按卡号、订单号、凭证码和持卡人姓名检索。
+
+
+
+
+
+
+
+ 暂无 IC 卡记录。
+
+
+
+
+
+ {{ displayIcCardId(card) }}
+ {{ card.holder_name || '未登记持卡人' }} · IC 储值卡
+
+ 订单 {{ cardOrderCode(card) }} · 余额 {{
+ formatMoney(card.balance) }}
+
+ {{
+ icStatusInfo(card.status).text }}
+
+
+
+
+
+
+
+
+
+
+ 卡片详情
+
+
+
+
+
+
+
+
+
+ 从左侧选择一张 IC 卡以查看详情。
+
+
+
+
+
+
+ {{
+ icStatusInfo(icSelectedCard.status).text }}
+ {{
+ displayIcCardId(icSelectedCard) }}
+ 订单号 {{
+ cardOrderCode(icSelectedCard) }} · 来源 {{ icSelectedCard.source
+ || '---' }}
+
+
+
+ 当前余额
+ {{ formatMoney(icSelectedCard.balance) }}
+ 支持直接发起充值。
+
+
+ 事件记录
+ {{ icSelectedEvents.length }}
+ 用于追踪开卡与状态变更。
+
+
+
+
+
+
+
+
+
+
+ 创建时间{{
+ formatTime(icSelectedCard.created_ts) }}
+ 最后更新{{
+ formatTime(icSelectedCard.last_update_ts) }}
+ 首次充值{{
+ formatMoney(icSelectedCard.purchase_amount ??
+ icSelectedCard.balance) }}
+ 购卡金额{{
+ formatMoney(icSelectedCard.purchase_amount) }}
+
+
+
+
+ 操作记录
+
+
+ 选择卡片后显示事件流。
+ 暂无事件记录。
+
+
+
+
+
+
+ {{ icEventTitle(event) }}
+ {{
+ formatTime(event.ts) }}
+
+ {{
+ formatIcEventDetail(event) }}
+
+
-
-
+
+
+
+ 车票总数
+ {{ ticketStats.total }}
+
+
+ 有效
+ {{ ticketStats.valid }}
+
+
+ 已使用
+ {{ ticketStats.used }}
+
-
- 操作记录
-
-
- 选择卡片后显示事件流。
- 暂无事件记录。
-
-
-
-
-
+
- {{ icEventTitle(event) }}
- {{ formatTime(event.ts) }}
-
- {{ formatIcEventDetail(event) }}
- 车票记录
+
+
+
-
-
-
-
- 车票总数
- {{ ticketStats.total }}
-
-
- 有效
- {{ ticketStats.valid }}
-
-
- 已使用
- {{ ticketStats.used }}
-
-
-
-
-
-
-
-
-
- 车票记录
-
-
-
-
- | ID | -起点 | -终点 | -类型 | -状态 | -时间 | -
|---|---|---|---|---|---|
| {{ t.ticket_id }} | -
-
-
-
- {{ getStationInfo(t.start).name }}
- {{ t.start }}
-
- {{ getStationInfo(t.start).en_name }}
- |
-
-
-
-
- {{ getStationInfo(t.terminal).name }}
- {{ t.terminal }}
-
- {{ getStationInfo(t.terminal).en_name }}
- |
- {{ formatTrainType(t.type) }} | -{{ - formatTicketStatus(t.status).text }} | -{{ formatTime(t.ts) }} | -
-
-
-
+
+
- 车票详情
- +| ID | +起点 | +终点 | +类型 | +状态 | +时间 | +
|---|---|---|---|---|---|
| {{ t.ticket_id }} | +
+
+
+
+ {{ getStationInfo(t.start).name }}
+ {{ t.start }}
+
+ {{ getStationInfo(t.start).en_name }}
+ |
+
+
+
+
+ {{ getStationInfo(t.terminal).name
+ }}
+ {{ t.terminal }}
+
+ {{ getStationInfo(t.terminal).en_name }}
+ |
+ {{ formatTrainType(t.type) }} | +{{ + formatTicketStatus(t.status).text }} | +{{ formatTime(t.ts) }} | +
-
-
- {{ selectedTicket.ticket_id }}
-
- {{ formatTicketStatus(selectedTicket.index.status).text }}
-
+
+
+
+
-
+
- 车票详情
+
-
-
-
-
-
- {{ selectedTicket.index.start_name ||
- selectedTicket.index.start }}
- {{ selectedTicket.index.start }}
-
- {{ selectedTicket.index.start_en || '' }}
-
-
-
- {{ selectedTicket.index.terminal_name ||
- selectedTicket.index.terminal }}
- {{ selectedTicket.index.terminal }}
-
- {{ selectedTicket.index.terminal_en || '' }}
-
- 类型: {{ formatTrainType(selectedTicket.index.type ||
- selectedTicket.index.train_type) }} | 票价: {{ selectedTicket.index.price ||
- selectedTicket.index.cost }}
-
- 行程记录
-
-
-
-
-
-
-
-
-
- {{ formatTicketEvent(ev) }}
+
-
+
+
+
+ {{ selectedTicket.ticket_id }}
+
+ {{ formatTicketStatus(selectedTicket.index.status).text }}
+
-
- {{ formatTicketEventUnified(ev) }}
+
+
+
+
+
+
+
+
+ {{ selectedTicket.index.start_name ||
+ selectedTicket.index.start }}
+ {{ selectedTicket.index.start }}
+
+ {{ selectedTicket.index.start_en || '' }}
+
+
+
+ {{ selectedTicket.index.terminal_name ||
+ selectedTicket.index.terminal }}
+ {{ selectedTicket.index.terminal }}
+
+ {{ selectedTicket.index.terminal_en || '' }}
+
+
+ 类型: {{ formatTrainType(selectedTicket.index.type ||
+ selectedTicket.index.train_type) }} | 票价: {{ selectedTicket.index.price
+ ||
+ selectedTicket.index.cost }}
+
+ 行程记录
+
+
+
+
+
+ {{ formatTicketEvent(ev)
+ }}
+
+
+ {{ formatTicketEventUnified(ev) }}
+
+ 加载中...
加载中...
-
-
-
-
-
-
- 线路图上传
-上传后会用于首页展示,也会在购票页未选择线路时显示为总览图。
-
-
-
-
-
-
上传说明
-
-
- 支持格式:PNG、JPG、WEBP、SVG
- 建议上传横向长图,便于首页和购票页展示。
- 再次上传会自动替换旧文件。
-
-
-
许可协议固定为 CC BY 4.0
+
+
+
-
+
-
+
线路图上传
+上传后会用于首页展示,也会在购票页未选择线路时显示为总览图。
+
-
-
- 当前文件: {{ assetsManifest.routeMap || '未上传' }}
- 当前署名: {{ assetsManifest.routeMapCredit || '未填写' }}
-
- 更新时间: {{ assetsManifest.updatedAt ? formatTime(assetsManifest.updatedAt) : '暂无' }}
-
-
-
-
-
-
-
-
- 线路图署名:{{ assetsManifest.routeMapCredit || '未填写' }}
- 许可协议:
- {{ assetsManifest.routeMapLicense }}
+
-
+
+
+
+ 上传说明
+
+
+ 支持格式:PNG、JPG、WEBP、SVG
+ 建议上传横向长图,便于首页和购票页展示。
+ 再次上传会自动替换旧文件。
+
+
+
+ 许可协议固定为 CC BY 4.0
+
+
+ 保存署名
+
+
+
+
+ 当前文件: {{ assetsManifest.routeMap || '未上传' }}
+ 当前署名: {{ assetsManifest.routeMapCredit || '未填写' }}
+
+
+ 更新时间: {{ assetsManifest.updatedAt ?
+ formatTime(assetsManifest.updatedAt) : '暂无' }}
+
+
+
+
+
-
-
+ 线路图署名:{{ assetsManifest.routeMapCredit || '未填写' }}
+ 许可协议:
+ {{ assetsManifest.routeMapLicense }}
+
+
+
+ 暂无线路图,请先上传一张线路图。
+
- 暂无线路图,请先上传一张线路图。
-
-
-
-
@@ -1049,4 +1161,4 @@
-
-
- 保存
+
+
+
-
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
+ {{ isPushingUpdate ? '推送中...' :
+ '手动推送更新' }}
+
+
+
+ 点击按钮后,将向全服所有终端发送更新指令,并在 5 秒内生效。
终端将在业务空闲时静默下载更新并重启,未加载的机器在加载后也会第一时间更新。 +
+ 终端将在业务空闲时静默下载更新并重启,未加载的机器在加载后也会第一时间更新。 +
+
数据管理
+
+ 导出数据 JSON
+
-
-
-
-
-
-
- {{ isPushingUpdate ? '推送中...' : '手动推送更新' }}
+
+
+
-
-
-
+
-
+
+
+
+
+
+
+ 日志
+
+
+
+
+
+
+
+
+
+ 筛选
-
- 点击按钮后,将向全服所有终端发送更新指令,并在 5 秒内生效。
终端将在业务空闲时静默下载更新并重启,未加载的机器在加载后也会第一时间更新。 + +
+
+
+
+ 终端将在业务空闲时静默下载更新并重启,未加载的机器在加载后也会第一时间更新。 + +
加载中...
+ | 时间 | +来源 | +类型 | +IP | +详情 | +
|---|---|---|---|---|
| {{ formatTime(l.ts) }} | +{{ l.category || 'legacy' }} | +{{ l.type || 'event' }} | +{{ l.ip || '' }} | +
+
+
+ 查看+{{ formatLogDetail(l) }}
+ |
+
+
-
+
+
+
+
+
+
+ 问题汇总
+
+
+
+ | 时间 | +设备 | +车站 | +错误信息 | +详细信息 | +
|---|---|---|---|---|
| {{ formatTime(issue.ts) }} | +
+ {{ issue.displayDevice }}
+ {{ issue.machine_id }}
+ |
+
+ {{ issue.displayStation }}
+ {{
+ issue.station_code }}
+ |
+
+ {{ issue.displayError }}
+ |
+
+
+
+
+
+
+ {{ entry.label }}
+ {{ entry.value }}
+
+
+
+ 查看原始内容+{{ issue.detailRaw }}
+
+
+ 无
+ {{ issue.detailRaw }}
+ |
+
+
+
暂无问题上报记录
-
数据管理
-
- 导出数据 JSON
-
+
+
-
-
-
-
-
-
-
-
-
-
-
- 日志
-
-
-
-
-
-
-
-
-
- 筛选
-
-
-
- 加载中...
- | 时间 | -来源 | -类型 | -IP | -详情 | -
|---|---|---|---|---|
| {{ formatTime(l.ts) }} | -{{ l.category || 'legacy' }} | -{{ l.type || 'event' }} | -{{ l.ip || '' }} | -
-
-
- 查看-{{ formatLogDetail(l) }}
- |
-
-
-
-
-
-
-
-
-
-
-
- 问题汇总
-
-
-
- | 时间 | -设备 | -车站 | -错误信息 | -详细信息 | -
|---|---|---|---|---|
| {{ formatTime(issue.ts) }} | -
- {{ issue.displayDevice }}
- {{ issue.machine_id }}
- |
-
- {{ issue.displayStation }}
- {{ issue.station_code }}
- |
-
- {{ issue.displayError }}
- |
-
-
-
-
-
-
- {{ entry.label }}
- {{ entry.value }}
-
-
-
- 查看原始内容-{{ issue.detailRaw }}
-
-
- 无
- {{ issue.detailRaw }}
- |
-
-
-
- 暂无问题上报记录
-