diff --git a/static/js/pages/settings.js b/static/js/pages/settings.js
index 8e15488..861b5e4 100644
--- a/static/js/pages/settings.js
+++ b/static/js/pages/settings.js
@@ -121,21 +121,16 @@ const PageSettings = {
if (id && port > 0) gamePorts[id] = port;
});
await API.updateConfig({ game_ports: gamePorts });
- Toast.show('端口已保存,切换游戏后生效', 'success');
+ Toast.show('端口已保存', 'success');
});
},
-
- _gamePortListHtml(games, cfg) {
- const gamePorts = cfg.game_ports || {};
- return games.map(g => `
${g.name}默认: ${g.default_port||20777}
`).join("");
- }
_addForward() {
const list = document.getElementById('forward-list');
const row = document.createElement('div');
row.className = 'forward-row glass-card';
row.style.cssText = 'padding:12px;margin-bottom:8px;display:flex;gap:8px;align-items:center;flex-wrap:wrap';
- row.innerHTML = '';
+ row.innerHTML = '';
list.appendChild(row);
},
@@ -152,9 +147,14 @@ const PageSettings = {
this._saveForwards(targets).then(() => Toast.show('已保存 ' + targets.length + ' 个转发目标', 'success'));
},
+ _gamePortListHtml(games, cfg) {
+ const gamePorts = cfg.game_ports || {};
+ return games.map(g => '' + g.name + '默认: ' + (g.default_port || 20777) + '
').join('');
+ },
+
_forwardListHtml(forwards) {
- if (!forwards || forwards.length === 0) return '暂无转发目标,点击下方添加
';
- return forwards.map(f => '').join('');
+ if (!forwards || forwards.length === 0) return '暂无转发目标
';
+ return forwards.map(f => '').join('');
},
_gamePluginListHtml(games) {
@@ -171,13 +171,13 @@ const PageSettings = {
'' +
+ '游戏插件管理
' + this._gamePluginListHtml(games) + '
' +
+
'数据备份
导出全量备份
打包仪表盘+场景+配置为 .tsb 文件
' +
- '开发工具
UI 测试模式
本地随机模拟遥测数据,用于测试仪表盘 UI
' +
+ '' +
- '游戏插件管理
' + this._gamePluginListHtml(games) + '
社区插件开发指南:
1. 创建包含 manifest.json + parser.py 的文件夹
2. manifest.json 定义元信息,parser.py 实现 get_parser() 函数
3. 返回对象实现 game_id() 和 parse(data, addr) 方法
4. 打包 zip 改后缀 .tsp 即可导入
5. TelemetryData 字段参考 server/telemetry/data.py
' +
-
- '关于
TurboSu
赛车遥测仪表盘 v1.0.0 · Yei.J. (AskaEth)
' +
+ '关于
TurboSu
赛车遥测仪表盘 · Yei.J. (AskaEth)
' +
'';
}