更新项目配置,新增设备同步模块,优化WebSocket和Swagger配置,增强SCADA系统的免登录接口,支持数据字典项和登录日志的免登录查询与记录。调整Java编译设置,确保更好的开发体验。
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
using YY.Admin.Helper;
|
||||
|
||||
namespace YY.Admin.ViewModels.Dialogs
|
||||
{
|
||||
public class ServerSettingsDialogViewModel : BindableBase, IDialogAware
|
||||
{
|
||||
private const string DefaultWebSocketPath = "/websocket/scada-sync";
|
||||
private string _loadedWebSocketUrl = string.Empty;
|
||||
private string _loadedAutoWebSocketUrl = string.Empty;
|
||||
public string Title => "服务器设置";
|
||||
|
||||
private string _ip = "127.0.0.1";
|
||||
public string Ip
|
||||
{
|
||||
get => _ip;
|
||||
set => SetProperty(ref _ip, value);
|
||||
}
|
||||
|
||||
private int _port = 8080;
|
||||
public int Port
|
||||
{
|
||||
get => _port;
|
||||
set => SetProperty(ref _port, value);
|
||||
}
|
||||
|
||||
private string _webSocketUrl = string.Empty;
|
||||
public string WebSocketUrl
|
||||
{
|
||||
get => _webSocketUrl;
|
||||
set => SetProperty(ref _webSocketUrl, value);
|
||||
}
|
||||
|
||||
private string _basePath = "/jeecg-boot";
|
||||
public string BasePath
|
||||
{
|
||||
get => _basePath;
|
||||
set => SetProperty(ref _basePath, value);
|
||||
}
|
||||
|
||||
private string _errorMessage = string.Empty;
|
||||
public string ErrorMessage
|
||||
{
|
||||
get => _errorMessage;
|
||||
set => SetProperty(ref _errorMessage, value);
|
||||
}
|
||||
|
||||
public DelegateCommand SaveCommand { get; }
|
||||
public DelegateCommand CancelCommand { get; }
|
||||
public DialogCloseListener RequestClose { get; private set; }
|
||||
|
||||
public ServerSettingsDialogViewModel()
|
||||
{
|
||||
SaveCommand = new DelegateCommand(Save);
|
||||
CancelCommand = new DelegateCommand(() => RequestClose.Invoke(new DialogResult(ButtonResult.Cancel)));
|
||||
}
|
||||
|
||||
public bool CanCloseDialog() => true;
|
||||
public void OnDialogClosed() { }
|
||||
|
||||
public void OnDialogOpened(IDialogParameters parameters)
|
||||
{
|
||||
var settings = ServerSettingsStore.Load();
|
||||
_loadedAutoWebSocketUrl = ServerSettingsStore.BuildDefaultWebSocketUrl(settings.BaseScheme, settings.Ip, settings.Port, settings.BasePath, settings.WebSocketPath);
|
||||
Ip = settings.Ip;
|
||||
Port = settings.Port;
|
||||
WebSocketUrl = string.IsNullOrWhiteSpace(settings.WebSocketUrl)
|
||||
? _loadedAutoWebSocketUrl
|
||||
: settings.WebSocketUrl;
|
||||
_loadedWebSocketUrl = WebSocketUrl;
|
||||
BasePath = string.IsNullOrWhiteSpace(settings.BasePath) ? "/jeecg-boot" : settings.BasePath;
|
||||
ErrorMessage = string.Empty;
|
||||
}
|
||||
|
||||
private void Save()
|
||||
{
|
||||
ErrorMessage = string.Empty;
|
||||
if (string.IsNullOrWhiteSpace(Ip))
|
||||
{
|
||||
ErrorMessage = "IP 不能为空";
|
||||
return;
|
||||
}
|
||||
if (Port <= 0 || Port > 65535)
|
||||
{
|
||||
ErrorMessage = "端口号必须在 1-65535 之间";
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var basePath = BasePath?.Trim() ?? "/jeecg-boot";
|
||||
var shouldAutoRebuildWs = string.IsNullOrWhiteSpace(WebSocketUrl)
|
||||
|| string.Equals(WebSocketUrl.Trim(), _loadedAutoWebSocketUrl, StringComparison.OrdinalIgnoreCase)
|
||||
|| string.Equals(WebSocketUrl.Trim(), _loadedWebSocketUrl, StringComparison.OrdinalIgnoreCase);
|
||||
var finalWsUrl = shouldAutoRebuildWs
|
||||
? ServerSettingsStore.BuildDefaultWebSocketUrl("http", Ip.Trim(), Port, basePath, DefaultWebSocketPath)
|
||||
: WebSocketUrl.Trim();
|
||||
|
||||
ServerSettingsStore.Save(new ServerSettingsStore.ServerSettingsModel
|
||||
{
|
||||
Ip = Ip.Trim(),
|
||||
Port = Port,
|
||||
BaseScheme = "http",
|
||||
BasePath = basePath,
|
||||
WebSocketUrl = finalWsUrl,
|
||||
WebSocketPath = DefaultWebSocketPath
|
||||
});
|
||||
RequestClose.Invoke(new DialogResult(ButtonResult.OK));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ErrorMessage = $"保存失败:{ex.Message}";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user