Browse Source

输送次数消息

master
Administrator 2 months ago
parent
commit
78aab33698
  1. 10
      Class/DataReceived.cs
  2. 169
      InfoPage.xaml
  3. 13
      InfoPage.xaml.cs
  4. 1
      Models/DataModel.cs
  5. 4
      ProfilePage.xaml

10
Class/DataReceived.cs

@ -124,12 +124,16 @@ namespace SunlightAggregationTerminal.Class
} }
if (data.TryGetValue("SysData", out var value_SysData)) if (data.TryGetValue("SysData", out var value_SysData))
{ {
var tmp = JsonSerializer.Deserialize<List<Dictionary<string, object>>>(value_SysData.ToString()!)!;
} }
if (data.TryGetValue("Info", out val) && val != null)//机台信息接受 if (data.TryGetValue("Info", out val) && val != null)//机台信息接受
{ {
DataModel.Info_data = JsonSerializer.Deserialize<List<Dictionary<string, object>>>(val.ToString()!)!; DataModel.Info_data = JsonSerializer.Deserialize<List<Dictionary<string, object>>>(val.ToString()!)!;
InfoPage.DyeMeasurementNumber = data.GetValue("DyeMeasurementNumber").ToString();
InfoPage.ChemicalNumber = data.GetValue("ChemicalNumber").ToString();
InfoPage.PowderNumber = data.GetValue("PowderNumber").ToString();
InfoPage.DyeDissolveNumber = data.GetValue("DyeDissolveNumber").ToString();
//发送消息 //发送消息
WeakReferenceMessenger.Default.Send(new object()); WeakReferenceMessenger.Default.Send(new object());
} }

169
InfoPage.xaml

@ -2,7 +2,7 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="SunlightAggregationTerminal.InfoPage" x:Class="SunlightAggregationTerminal.InfoPage"
xmlns:converters="clr-namespace:SunlightAggregationTerminal.Converters" xmlns:converters="clr-namespace:SunlightAggregationTerminal.Converters"
Title="设备信息"> Title="设备信息">
<ContentPage.Resources> <ContentPage.Resources>
<ResourceDictionary> <ResourceDictionary>
@ -12,73 +12,134 @@
</ContentPage.Resources> </ContentPage.Resources>
<RefreshView x:Name="myRefreshView_" > <RefreshView x:Name="myRefreshView_" >
<CollectionView x:Name="CardCollectionView"> <CollectionView x:Name="CardCollectionView">
<!-- 保持滚动条 --> <CollectionView.Header>
<CollectionView.ItemTemplate> <Border BackgroundColor="White"
<DataTemplate> Stroke="#CCCCCC"
<!-- 这里定义单个卡片的 UI 结构 --> Margin="10,0,10,10"
<Border BackgroundColor="White" Stroke="#CCCCCC" StrokeThickness="5"
StrokeShape="RoundRectangle 10">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Text="今日输送信息" Grid.Row="0" BackgroundColor="#CCCCCC"
FontAttributes="Bold" FontSize="24" TextColor="Black" Padding="5"/>
<Grid Grid.Row="1" ColumnDefinitions="Auto,*,Auto" Padding="5" ColumnSpacing="5">
<HorizontalStackLayout>
<!-- 图片 -->
<Image WidthRequest="100" HeightRequest="100" Source="sunlightlogo.png"/>
<!-- 设备状态文字内容 -->
<VerticalStackLayout Grid.Column="1" VerticalOptions="Center">
<ContentView>
<HorizontalStackLayout VerticalOptions="Center">
<Label Text="染料称量(次): " FontAttributes="Bold"
FontSize="20" TextColor="Black"/>
<Label x:Name="_DyeMeasurementNumber" FontAttributes="Bold"
FontSize="22" TextColor="Black"/>
</HorizontalStackLayout>
</ContentView>
<ContentView>
<HorizontalStackLayout VerticalOptions="Center">
<Label Text="染料输送(次): " FontAttributes="Bold"
FontSize="20" TextColor="Black"/>
<Label x:Name="_DyeDissolveNumber" FontAttributes="Bold"
FontSize="22" TextColor="Black"/>
</HorizontalStackLayout>
</ContentView>
<ContentView>
<HorizontalStackLayout VerticalOptions="Center">
<Label Text="助剂输送(次): " FontAttributes="Bold"
FontSize="20" TextColor="Black"/>
<Label x:Name="_ChemicalNumber" FontAttributes="Bold"
FontSize="22" TextColor="Black"/>
</HorizontalStackLayout>
</ContentView>
<ContentView>
<HorizontalStackLayout VerticalOptions="Center">
<Label Text="粉剂输送(次): " FontAttributes="Bold"
FontSize="20" TextColor="Black"/>
<Label x:Name="_PowderNumber" FontAttributes="Bold"
FontSize="22" TextColor="Black"/>
</HorizontalStackLayout>
</ContentView>
</VerticalStackLayout>
</HorizontalStackLayout>
</Grid>
</Grid>
<!-- 点击事件 -->
<Border.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_ChemicalStatistics"/>
</Border.GestureRecognizers>
</Border>
</CollectionView.Header>
<!-- 保持滚动条 -->
<CollectionView.ItemTemplate>
<DataTemplate>
<!-- 这里定义单个卡片的 UI 结构 -->
<Border BackgroundColor="White" Stroke="#CCCCCC"
StrokeThickness="2" Margin="10,0,10,10" StrokeThickness="2" Margin="10,0,10,10"
StrokeShape="RoundRectangle 10"> StrokeShape="RoundRectangle 10">
<Grid> <Grid>
<!-- 定义一行 --> <!-- 定义一行 -->
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="*" /> <RowDefinition Height="*" />
<RowDefinition Height="*" /> <RowDefinition Height="*" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid Grid.Row="0" BackgroundColor="#CCCCCC"> <Grid Grid.Row="0" BackgroundColor="#CCCCCC">
<Label Text="{Binding Name}" FontAttributes="Bold" <Label Text="{Binding Name}" FontAttributes="Bold"
FontSize="24" TextColor="Black" Padding="5"/> FontSize="24" TextColor="Black" Padding="5"/>
</Grid> </Grid>
<Grid Grid.Row="1"> <Grid Grid.Row="1">
<VerticalStackLayout> <VerticalStackLayout>
<Grid> <Grid>
<HorizontalStackLayout> <HorizontalStackLayout>
<!-- 图片 --> <!-- 图片 -->
<Image WidthRequest="100" HeightRequest="100" <Image WidthRequest="100" HeightRequest="100"
Source="{Binding Path=Model, Converter={StaticResource StringToImageConverter}}"/> Source="{Binding Path=Model, Converter={StaticResource StringToImageConverter}}"/>
<!-- 设备状态 --> <!-- 设备状态 -->
<VerticalStackLayout> <VerticalStackLayout>
<HorizontalStackLayout> <HorizontalStackLayout>
<Label Text="状态: " FontAttributes="Bold" <Label Text="状态: " FontAttributes="Bold"
FontSize="22" TextColor="Black"/> FontSize="22" TextColor="Black"/>
<Label Text="{Binding State}" FontAttributes="Bold" <Label Text="{Binding State}" FontAttributes="Bold"
FontSize="22" TextColor="Black"/> FontSize="22" TextColor="Black"/>
</HorizontalStackLayout> </HorizontalStackLayout>
<HorizontalStackLayout> <HorizontalStackLayout>
<Label Text="机台: " FontAttributes="Bold" <Label Text="机台: " FontAttributes="Bold"
FontSize="22" TextColor="Black"/> FontSize="22" TextColor="Black"/>
<Label Text="{Binding Machine}" FontAttributes="Bold" <Label Text="{Binding Machine}" FontAttributes="Bold"
FontSize="22" TextColor="Black"/> FontSize="22" TextColor="Black"/>
</HorizontalStackLayout> </HorizontalStackLayout>
</VerticalStackLayout> </VerticalStackLayout>
</HorizontalStackLayout> </HorizontalStackLayout>
</Grid> </Grid>
<BoxView HeightRequest="3" Color="#CCCCCC" /> <BoxView HeightRequest="3" Color="#CCCCCC" />
<!-- 设备信息 --> <!-- 设备信息 -->
<Label Text="{Binding ModelA}" FontAttributes="Bold" FontSize="22" TextColor="Black" <Label Text="{Binding ModelA}" FontAttributes="Bold" FontSize="22" TextColor="Black"
IsVisible="{Binding Path=ModelA, Converter={StaticResource StringToBoolConverter}}"/> IsVisible="{Binding Path=ModelA, Converter={StaticResource StringToBoolConverter}}"/>
<Label Text="{Binding ModelB}" FontAttributes="Bold" FontSize="22" TextColor="Black" <Label Text="{Binding ModelB}" FontAttributes="Bold" FontSize="22" TextColor="Black"
IsVisible="{Binding Path=ModelB, Converter={StaticResource StringToBoolConverter}}"/> IsVisible="{Binding Path=ModelB, Converter={StaticResource StringToBoolConverter}}"/>
<Label Text="{Binding ModelC}" FontAttributes="Bold" FontSize="22" TextColor="Black" <Label Text="{Binding ModelC}" FontAttributes="Bold" FontSize="22" TextColor="Black"
IsVisible="{Binding Path=ModelC, Converter={StaticResource StringToBoolConverter}}"/> IsVisible="{Binding Path=ModelC, Converter={StaticResource StringToBoolConverter}}"/>
<Label Text="{Binding ModelD}" FontAttributes="Bold" FontSize="22" TextColor="Black" <Label Text="{Binding ModelD}" FontAttributes="Bold" FontSize="22" TextColor="Black"
IsVisible="{Binding Path=ModelD, Converter={StaticResource StringToBoolConverter}}"/> IsVisible="{Binding Path=ModelD, Converter={StaticResource StringToBoolConverter}}"/>
<Label Text="{Binding ModelE}" FontAttributes="Bold" FontSize="22" TextColor="Black" <Label Text="{Binding ModelE}" FontAttributes="Bold" FontSize="22" TextColor="Black"
IsVisible="{Binding Path=ModelE, Converter={StaticResource StringToBoolConverter}}"/> IsVisible="{Binding Path=ModelE, Converter={StaticResource StringToBoolConverter}}"/>
<Label Text="{Binding ModelF}" FontAttributes="Bold" FontSize="22" TextColor="Black" <Label Text="{Binding ModelF}" FontAttributes="Bold" FontSize="22" TextColor="Black"
IsVisible="{Binding Path=ModelF, Converter={StaticResource StringToBoolConverter}}"/> IsVisible="{Binding Path=ModelF, Converter={StaticResource StringToBoolConverter}}"/>
<Label Text="{Binding Information}" FontAttributes="Bold" <Label Text="{Binding Information}" FontAttributes="Bold"
FontSize="22" TextColor="Black"/> FontSize="22" TextColor="Black"/>
</VerticalStackLayout> </VerticalStackLayout>
</Grid>
</Grid> </Grid>
<!-- 点击事件 --> </Grid>
<Border.GestureRecognizers> <!-- 点击事件 -->
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"/> <Border.GestureRecognizers>
</Border.GestureRecognizers> <TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"/>
</Border> </Border.GestureRecognizers>
</DataTemplate> </Border>
</CollectionView.ItemTemplate> </DataTemplate>
</CollectionView> </CollectionView.ItemTemplate>
</CollectionView>
</RefreshView> </RefreshView>
</ContentPage> </ContentPage>

13
InfoPage.xaml.cs

@ -11,6 +11,7 @@ public partial class InfoPage : ContentPage
{ {
public static ObservableCollection<InfoItem> InfoItems { get; set; } = new(); public static ObservableCollection<InfoItem> InfoItems { get; set; } = new();
private DateTime _lastRefreshTime = DateTime.MinValue; private DateTime _lastRefreshTime = DateTime.MinValue;
public static string? DyeMeasurementNumber, ChemicalNumber, PowderNumber, DyeDissolveNumber;
public InfoPage() public InfoPage()
{ {
@ -44,8 +45,18 @@ public partial class InfoPage : ContentPage
} }
}; };
} }
private void HandleUITrigger()
private void TapGestureRecognizer_ChemicalStatistics(object sender, TappedEventArgs e)
{ {
}
private void HandleUITrigger()
{
_DyeMeasurementNumber.Text = DyeMeasurementNumber;
_ChemicalNumber.Text = ChemicalNumber;
_PowderNumber.Text = PowderNumber;
_DyeDissolveNumber.Text = DyeDissolveNumber;
InfoItems.Clear(); InfoItems.Clear();
foreach (Dictionary<string, object> List in DataModel.Info_data) foreach (Dictionary<string, object> List in DataModel.Info_data)
{ {

1
Models/DataModel.cs

@ -38,6 +38,7 @@ namespace SunlightAggregationTerminal.Models
[ObservableProperty] [ObservableProperty]
public partial bool MessageNotificationMode { get; set; } public partial bool MessageNotificationMode { get; set; }
public class RefreshUISignal { } public class RefreshUISignal { }
public static List<Dictionary<string, object>> Info_data = new List<Dictionary<string, object>>(); public static List<Dictionary<string, object>> Info_data = new List<Dictionary<string, object>>();
} }

4
ProfilePage.xaml

@ -23,8 +23,8 @@
FontAttributes="Bold" FontAttributes="Bold"
TextColor="Black" /> TextColor="Black" />
<HorizontalStackLayout VerticalOptions="Center"> <HorizontalStackLayout VerticalOptions="Center">
<Label Text="ID:" FontSize="12" TextColor="Gray" Margin="0,0,0,0"/> <Label Text="ID:" FontSize="12" TextColor="Gray" Margin="0,0,0,0"/>
<Label Text="{Binding UserId}" FontSize="12" TextColor="Gray" Margin="0,0,0,0"/> <Label Text="{Binding UserId}" FontSize="12" TextColor="Gray" Margin="0,0,0,0"/>
</HorizontalStackLayout> </HorizontalStackLayout>
</VerticalStackLayout> </VerticalStackLayout>
</HorizontalStackLayout> </HorizontalStackLayout>

Loading…
Cancel
Save