fix(web): 统一UI规范并移除多余菜单

1. 从 /admin 侧边栏彻底移除了多余的“站点管理”导航项和对应的引导页,统一仅在 /route 中维护。
2. 修复了 ticket-route.js 中添加、编辑、删除站点后列表不同步的问题,通过补充 await fetchData() 实现实时更新。
3. 更新 style.css 将所有 button 和 .btn 的 border-radius 设置为 0 !important,统一取消所有按钮圆角。
This commit is contained in:
2026-08-08 09:51:14 +08:00
parent 9cc3aba5e9
commit fa51aad3a7
4 changed files with 10 additions and 19 deletions
+2 -16
View File
@@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>控制台|FSE铁路运输票务系统</title> <title>控制台|FSE铁路运输票务系统</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <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=14"> <link rel="stylesheet" href="style.css?v=20">
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script> <script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
<script src="/socket.io/socket.io.js"></script> <script src="/socket.io/socket.io.js"></script>
</head> </head>
@@ -77,10 +77,6 @@
@click="currentView = 'vouchers'"> @click="currentView = 'vouchers'">
<span class="nav-icon"><i class="fas fa-receipt"></i></span> 凭证记录 <span class="nav-icon"><i class="fas fa-receipt"></i></span> 凭证记录
</div> </div>
<div class="nav-item" :class="{active: currentView === 'stations'}"
@click="currentView = 'stations'">
<span class="nav-icon"><i class="fas fa-map-marker-alt"></i></span> 站点管理
</div>
<div class="nav-item" :class="{active: currentView === 'iccards'}" <div class="nav-item" :class="{active: currentView === 'iccards'}"
@click="currentView = 'iccards'"> @click="currentView = 'iccards'">
<span class="nav-icon"><i class="fas fa-credit-card"></i></span> IC卡管理 <span class="nav-icon"><i class="fas fa-credit-card"></i></span> IC卡管理
@@ -571,17 +567,7 @@
</div> </div>
</div> </div>
<!-- 站点管理迁移引导 --> <!-- 站点管理迁移引导 移除 -->
<div v-if="currentView === 'stations'">
<div class="card mb-4" style="text-align: center; padding: 60px 20px;">
<i class="fas fa-map-marker-alt" style="font-size: 48px; color: var(--muted); margin-bottom: 20px; display: block;"></i>
<h3 style="margin-bottom: 12px;">站点与线路管理已迁移</h3>
<p class="text-muted" style="margin-bottom: 24px;">为了提供更专业的线路拓扑编辑和站点全局管理体验,该功能已被迁移至独立的「线路规划后台」。</p>
<a href="/route" class="btn primary" style="text-decoration: none; display: inline-flex; align-items: center; gap: 8px;">
前往 线路规划系统 <i class="fas fa-arrow-right"></i>
</a>
</div>
</div>
<div v-if="currentView === 'iccards'"> <div v-if="currentView === 'iccards'">
+1 -1
View File
@@ -255,7 +255,7 @@ button, .btn {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 8px 16px; padding: 8px 16px;
border-radius: 0; border-radius: 0 !important;
border: 1px solid var(--border); border: 1px solid var(--border);
background-color: transparent; background-color: transparent;
color: var(--text); color: var(--text);
+1 -1
View File
@@ -8,7 +8,7 @@
<title>线路规划|FSE铁路运输票务系统</title> <title>线路规划|FSE铁路运输票务系统</title>
<link rel="icon" type="image/png" href="/FSE-ticket.png"> <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="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="/style.css?v=19"> <link rel="stylesheet" href="/style.css?v=20">
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script> <script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
<script src="/socket.io/socket.io.js"></script> <script src="/socket.io/socket.io.js"></script>
</head> </head>
+6 -1
View File
@@ -649,6 +649,7 @@ createApp({
})) return; })) return;
await runMutation(async () => { await runMutation(async () => {
await requestJson(`/api/stations/${encodeURIComponent(code)}`, { method: 'DELETE' }, { expectOk: true }); await requestJson(`/api/stations/${encodeURIComponent(code)}`, { method: 'DELETE' }, { expectOk: true });
await fetchData();
}); });
}; };
@@ -712,7 +713,10 @@ createApp({
} }
Object.assign(newStation, { code: '', name: '', en_name: '' }); Object.assign(newStation, { code: '', name: '', en_name: '' });
showAddStation.value = false; if (currentView.value === 'stations') {
showAddStation.value = false;
}
await fetchData();
}); });
}; };
@@ -775,6 +779,7 @@ createApp({
await runMutation(async () => { await runMutation(async () => {
await requestJson(`/api/stations/${encodeURIComponent(oldCode)}`, { method: 'PUT', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(payload) }, { expectOk: true }); await requestJson(`/api/stations/${encodeURIComponent(oldCode)}`, { method: 'PUT', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(payload) }, { expectOk: true });
showStationModal.value = false; showStationModal.value = false;
await fetchData();
}); });
}; };