Merge branch 'master' of http://www.scserverddns.top:13000/sc/SunlightAggregationTerminal
This commit is contained in:
commit
0b2d726287
5 files changed
+139
-2
No files matched your search
@@ -137,6 +137,10 @@ namespace SunlightAggregationTerminal.Class
|
||||
//发送消息
|
||||
WeakReferenceMessenger.Default.Send(new object());
|
||||
}
|
||||
if (data.TryGetValue("ChemicalStatistics", out val) && val != null)//查询接受
|
||||
{
|
||||
InfoChemicalStatistics.Total_data(val.ToString()!);
|
||||
}
|
||||
if (data.TryGetValue("Query", out val) && val != null)//查询接受
|
||||
{
|
||||
QueryPage.Query_data(val.ToString()!);
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="SunlightAggregationTerminal.InfoChemicalStatistics"
|
||||
Title="耗用统计">
|
||||
<Grid>
|
||||
<Grid>
|
||||
<CollectionView x:Name="CardCollectionView">
|
||||
<!-- 保持滚动条 -->
|
||||
<CollectionView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<!-- 这里定义单个卡片的 UI 结构 -->
|
||||
<Border BackgroundColor="White" Stroke="#CCCCCC"
|
||||
StrokeThickness="2" Margin="10,0,10,10"
|
||||
StrokeShape="RoundRectangle 10">
|
||||
<VerticalStackLayout>
|
||||
<!-- 设备信息 -->
|
||||
<HorizontalStackLayout>
|
||||
<Label Text="原料: " FontAttributes="Bold"
|
||||
FontSize="22" TextColor="Black"/>
|
||||
<Label Text="{Binding ProductName}" FontAttributes="Bold"
|
||||
FontSize="22" TextColor="Black"/>
|
||||
</HorizontalStackLayout>
|
||||
<HorizontalStackLayout>
|
||||
<Label Text="代码: " FontAttributes="Bold"
|
||||
FontSize="22" TextColor="Black"/>
|
||||
<Label Text="{Binding ProductCode}" FontAttributes="Bold"
|
||||
FontSize="22" TextColor="Black"/>
|
||||
</HorizontalStackLayout>
|
||||
<HorizontalStackLayout>
|
||||
<Label Text="用量(kg): " FontAttributes="Bold"
|
||||
FontSize="22" TextColor="Black"/>
|
||||
<Label Text="{Binding TotalDispenseGrams}" FontAttributes="Bold"
|
||||
FontSize="22" TextColor="Black"/>
|
||||
</HorizontalStackLayout>
|
||||
</VerticalStackLayout>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</CollectionView.ItemTemplate>
|
||||
</CollectionView>
|
||||
</Grid>
|
||||
<!-- 查询中动画页面 -->
|
||||
<Grid x:Name="LoadingIndicator" BackgroundColor="Gray"
|
||||
IsVisible="False" Opacity="0.9">
|
||||
<VerticalStackLayout Padding="30" Spacing="10"
|
||||
VerticalOptions="Center"
|
||||
HorizontalOptions="Center">
|
||||
<ActivityIndicator IsRunning="True"
|
||||
Color="#512BD4"
|
||||
HorizontalOptions="Center"
|
||||
VerticalOptions="Center" />
|
||||
<Label Text="查询中..." FontAttributes="Bold"
|
||||
FontSize="24" TextColor="Black"/>
|
||||
</VerticalStackLayout>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</ContentPage>
|
||||
@@ -0,0 +1,73 @@
|
||||
using SunlightAggregationTerminal.Class;
|
||||
using SunlightAggregationTerminal.Models;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Reflection;
|
||||
using System.Text.Json;
|
||||
using TouchSocket.Core;
|
||||
|
||||
namespace SunlightAggregationTerminal;
|
||||
|
||||
public partial class InfoChemicalStatistics : ContentPage
|
||||
{
|
||||
public class ChemicalTotal
|
||||
{
|
||||
public string? ProductName { get; set; }
|
||||
public string? ProductCode { get; set; }
|
||||
public float? TotalDispenseGrams { get; set; }
|
||||
}
|
||||
|
||||
public static ObservableCollection<ChemicalTotal> ChemicalTotals { get; set; } = new();
|
||||
public InfoChemicalStatistics()
|
||||
{
|
||||
InitializeComponent();
|
||||
Dictionary<string, object> Dictionary = new Dictionary<string, object>();
|
||||
Dictionary.Add("Command", "ChemicalStatistics");
|
||||
Total_Command(Dictionary.ToJsonString());
|
||||
}
|
||||
|
||||
public async void Total_Command(string dat)
|
||||
{
|
||||
LoadingIndicator.IsVisible = true;
|
||||
ChemicalTotals.Clear();
|
||||
|
||||
DataReceived.Transmit(dat);
|
||||
|
||||
// 创建一个 15 秒的延时任务
|
||||
Task delayTask = Task.Delay(15000);
|
||||
// 创建一个监测任务,不断检查变量
|
||||
Task monitorTask = Task.Run(async () =>
|
||||
{
|
||||
while (ChemicalTotals.Count == 0)
|
||||
{
|
||||
// 每隔 100 毫秒检查一次,避免 CPU 占用过高
|
||||
await Task.Delay(100);
|
||||
}
|
||||
});
|
||||
// 使用 Task.WhenAny 等待任意一个任务完成
|
||||
await Task.WhenAny(delayTask, monitorTask);
|
||||
CardCollectionView.ItemsSource = ChemicalTotals;
|
||||
|
||||
LoadingIndicator.IsVisible = false;
|
||||
}
|
||||
public static void Total_data(string dat)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
var data = JsonSerializer.Deserialize<List<ChemicalTotal>>(dat);
|
||||
|
||||
if (data != null)
|
||||
{
|
||||
foreach (var item in data)
|
||||
{
|
||||
item.TotalDispenseGrams = item.TotalDispenseGrams / 1000;
|
||||
|
||||
ChemicalTotals.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -46,9 +46,9 @@ public partial class InfoPage : ContentPage
|
||||
};
|
||||
}
|
||||
|
||||
private void TapGestureRecognizer_ChemicalStatistics(object sender, TappedEventArgs e)
|
||||
private async void TapGestureRecognizer_ChemicalStatistics(object sender, TappedEventArgs e)
|
||||
{
|
||||
|
||||
await Navigation.PushAsync(new InfoChemicalStatistics());
|
||||
}
|
||||
|
||||
private void HandleUITrigger()
|
||||
|
||||
@@ -102,6 +102,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<MauiXaml Update="InfoChemicalStatistics.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</MauiXaml>
|
||||
<MauiXaml Update="InfoDetail.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</MauiXaml>
|
||||
|
||||
Reference in new issue
Block a user