@using AI.Platform.Page.Pages.Media.Model @using System.Threading.Tasks @using System.Text.Json @if (IsVisible) { } @code { /// /// 信息回调 /// [Parameter] public EventCallback ModelChanged { get; set; } /// /// 打开/关闭窗口回调 /// [Parameter] public EventCallback IsVisibleChanged { get; set; } /// /// 信息回调 /// [Parameter] public EventCallback onCallback { get; set; } /// /// 打开/关闭窗口回调 /// [Parameter] public EventCallback onVisibleCallback { get; set; } /// /// 数据 /// [Parameter] public MediaDialogModel Model { get; set; } /// /// 配置是否弹窗 /// [Parameter] public bool IsVisible { get; set; } /// /// 上传文件 /// private List fileList = new List(); /// /// 用于显示当前有效时间范围 /// private DateTime?[] EffecitiveTime = new DateTime?[2]; /// /// 用于显示当前播放时段 /// private DateTime?[] playRange = new DateTime?[2]; protected override void OnParametersSet() { fileList.Clear(); EffecitiveTime = new DateTime?[] { Model?.EffecitiveTime, Model?.FailureTime }; int startTimeInt = Math.Max(0, Math.Min(23, Model?.StartTime ?? 0)); int endTimeInt = Math.Max(0, Math.Min(23, Model?.EndTime ?? 0)); DateTime startTime = DateTime.Today.AddHours(startTimeInt); DateTime endTime = DateTime.Today.AddHours(endTimeInt); playRange = new DateTime?[] { startTime,endTime }; } /// /// 关闭弹窗 /// public async Task Close() { await OnlyClose(); if(Model.SavePath.IsNotNullOrEmpty()) File.Delete(Model.SavePath); } /// /// 仅关闭弹窗 /// /// private async Task OnlyClose() { if (IsVisibleChanged.HasDelegate) { await IsVisibleChanged.InvokeAsync(false); } if (onVisibleCallback.HasDelegate) { await onVisibleCallback.InvokeAsync(false); } } /// /// 上传文件完毕 /// /// private void OnUploadCompleted(UploadInfo info) { string responseJson = info.File.Response; var response = JsonSerializer.Deserialize>(responseJson); Model.FileName = response?.data.fileName ?? ""; Model.SavePath = response?.data.savePath ?? ""; Model.GuidFileName = response?.data.guidName ?? ""; Model.FileExtension = response?.data.extension ?? ""; } private async Task OnRemove(UploadFileItem fileItem) { Console.WriteLine(fileItem); if (Model.SavePath.IsNotNullOrEmpty()) File.Delete(Model.SavePath); return true; } /// /// 单选选择器选择事件 /// /// 选择的值 private void OnSelectItemChange(string value) { Console.WriteLine(value); int state = -1; int.TryParse(value, out state); Model.MediaState = state; } /// /// 多选选择器选择事件 /// /// 选择的值 private void OnSelectItemsChange(IEnumerable values) { Console.WriteLine(values); Model.MachineStateList = values.ToList(); } /// /// 日期选择器选择回调 /// /// 选择的日期 /// 1:有效时间段;2:播放时段 private void onDateChage(DateRangeChangedEventArgs value, int type) { switch (type) { case 1: Model.EffecitiveTime = value.Dates[0]; Model.FailureTime = value.Dates[1]; EffecitiveTime = new DateTime?[] { value.Dates[0],value.Dates[1] }; break; case 2: DateTime? startTime = value.Dates[0]; DateTime? endTime = value.Dates[1]; Model.StartTime = startTime?.Hour; Model.EndTime = endTime?.Hour; playRange = new DateTime?[] { value.Dates[0], value.Dates[1] }; break; } } /// /// 确定按钮事件 /// /// private async Task onSure() { if (ModelChanged.HasDelegate) { await ModelChanged.InvokeAsync(Model); } if (onCallback.HasDelegate) { await onCallback.InvokeAsync(Model); } await OnlyClose(); } }