- Debug 模式:使用固定的 http://192.168.0.113 和 ws://192.168.0.113
- Release 模式:使用动态域名逻辑
This commit is contained in:
@@ -30,6 +30,9 @@ class KRHomeController extends GetxController {
|
||||
// 修改地图控制器为可空类型
|
||||
MapController kr_mapController = MapController();
|
||||
|
||||
// 底部面板控制器
|
||||
DraggableScrollableController kr_sheetController = DraggableScrollableController();
|
||||
|
||||
/// 当前视图状态,登录状态
|
||||
final Rx<KRHomeViewsStatus> kr_currentViewStatus =
|
||||
KRHomeViewsStatus.kr_notLoggedIn.obs;
|
||||
@@ -320,6 +323,12 @@ class KRHomeController extends GetxController {
|
||||
} else {
|
||||
kr_updateBottomPanelHeight();
|
||||
}
|
||||
// 刷新地图标记显示
|
||||
showMarkersMap();
|
||||
// 调试:打印节点坐标信息
|
||||
Future.delayed(const Duration(milliseconds: 500), () {
|
||||
kr_debugPrintNodeCoordinates();
|
||||
});
|
||||
break;
|
||||
case KRSubscribeServiceStatus.kr_none:
|
||||
KRLogUtil.kr_i('订阅服务未初始化', tag: 'HomeController');
|
||||
@@ -544,6 +553,8 @@ class KRHomeController extends GetxController {
|
||||
} else {
|
||||
await KRSingBoxImp.instance.kr_stop();
|
||||
}
|
||||
// 刷新地图标记
|
||||
showMarkersMap();
|
||||
} catch (e) {
|
||||
KRLogUtil.kr_e('切换失败: $e', tag: 'HomeController');
|
||||
// 当启动失败时(如VPN权限被拒绝),强制同步状态
|
||||
@@ -1033,6 +1044,35 @@ class KRHomeController extends GetxController {
|
||||
});
|
||||
}
|
||||
|
||||
/// 刷新地图标记
|
||||
void showMarkersMap() {
|
||||
KRLogUtil.kr_i('========== 刷新地图标记 ==========', tag: 'HomeController');
|
||||
KRLogUtil.kr_i('当前选中节点: ${kr_cutSeletedTag.value}', tag: 'HomeController');
|
||||
KRLogUtil.kr_i('可用节点数: ${kr_subscribeService.allList.length}', tag: 'HomeController');
|
||||
KRLogUtil.kr_i('国家分组数: ${kr_subscribeService.countryOutboundList.length}', tag: 'HomeController');
|
||||
// 手动触发地图标记更新
|
||||
update(['map_markers']);
|
||||
KRLogUtil.kr_i('✅ 地图标记更新完成', tag: 'HomeController');
|
||||
}
|
||||
|
||||
/// 选择地图标记
|
||||
void selectMarkerMap(int index) {
|
||||
try {
|
||||
if (index >= 0 && index < kr_subscribeService.allList.length) {
|
||||
// 重置所有节点的选中状态
|
||||
for (var item in kr_subscribeService.allList) {
|
||||
item.selected = 0;
|
||||
}
|
||||
// 设置当前节点为选中状态
|
||||
kr_subscribeService.allList[index].selected = 1;
|
||||
// 手动触发更新
|
||||
update(['map_markers']);
|
||||
}
|
||||
} catch (e) {
|
||||
KRLogUtil.kr_e('选择地图标记失败: $e', tag: 'HomeController');
|
||||
}
|
||||
}
|
||||
|
||||
/// 手动触发 SingBox URL 测试(调试用)
|
||||
Future<void> kr_manualUrlTest() async {
|
||||
try {
|
||||
@@ -1207,6 +1247,48 @@ class KRHomeController extends GetxController {
|
||||
kr_currentNodeLatency.value = -2; // 设置为未连接状态
|
||||
}
|
||||
|
||||
/// 调试:打印所有节点的坐标信息
|
||||
void kr_debugPrintNodeCoordinates() {
|
||||
KRLogUtil.kr_i('========== 节点坐标调试信息 ==========', tag: 'HomeController');
|
||||
KRLogUtil.kr_i('节点总数: ${kr_subscribeService.allList.length}', tag: 'HomeController');
|
||||
|
||||
if (kr_subscribeService.allList.isEmpty) {
|
||||
KRLogUtil.kr_w('节点列表为空!请检查:', tag: 'HomeController');
|
||||
KRLogUtil.kr_w('1. 是否已登录', tag: 'HomeController');
|
||||
KRLogUtil.kr_w('2. 是否有订阅', tag: 'HomeController');
|
||||
KRLogUtil.kr_w('3. 订阅是否已加载完成', tag: 'HomeController');
|
||||
return;
|
||||
}
|
||||
|
||||
int validNodes = 0;
|
||||
int invalidNodes = 0;
|
||||
|
||||
for (int i = 0; i < kr_subscribeService.allList.length; i++) {
|
||||
final node = kr_subscribeService.allList[i];
|
||||
if (node.latitude != 0.0 || node.longitude != 0.0) {
|
||||
validNodes++;
|
||||
if (i < 5) { // 只打印前5个有效节点
|
||||
KRLogUtil.kr_i('节点[$i] ${node.tag}: (${node.latitude}, ${node.longitude})', tag: 'HomeController');
|
||||
}
|
||||
} else {
|
||||
invalidNodes++;
|
||||
if (i < 3) { // 只打印前3个无效节点
|
||||
KRLogUtil.kr_w('节点[$i] ${node.tag}: 坐标为(0, 0) - 无效!', tag: 'HomeController');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
KRLogUtil.kr_i('有效节点: $validNodes', tag: 'HomeController');
|
||||
KRLogUtil.kr_w('无效节点(坐标为0): $invalidNodes', tag: 'HomeController');
|
||||
|
||||
if (invalidNodes > 0) {
|
||||
KRLogUtil.kr_w('⚠️ 发现 $invalidNodes 个节点坐标为0,这些节点不会显示在地图上', tag: 'HomeController');
|
||||
KRLogUtil.kr_w('可能原因:', tag: 'HomeController');
|
||||
KRLogUtil.kr_w('1. 后端API未返回 latitude/longitude 字段', tag: 'HomeController');
|
||||
KRLogUtil.kr_w('2. 后端数据库中节点坐标未配置', tag: 'HomeController');
|
||||
}
|
||||
}
|
||||
|
||||
/// 强制同步连接状态
|
||||
void kr_forceSyncConnectionStatus() {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user