XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

STHApplication

【MAUI】寄当家——安卓端交易管理系统

公开
关注 0 Fork 0 Star 0
UTF-8
using JiDangJia.Core;

namespace JiDangJia.Views;

public sealed class ReminderInboxPage : ContentPage
{
    private readonly BusinessService service;
    private readonly VerticalStackLayout body=Ui.Stack();
    public ReminderInboxPage(BusinessService service){this.service=service;Title="消息提醒";body.Padding=18;Content=new ScrollView{Content=body};}
    protected override void OnAppearing(){base.OnAppearing();Render();}
    private void Render()
    {
        var items=ReminderInbox.Read(service.Db,DateTime.Today);body.Clear();
        body.Add(Ui.Section("到期提醒",items.Count(n=>n.Unread)+" 条未读"));
        body.Add(Ui.Text("到期前 7 天和到期当天各提醒一次。点击消息查看单据后,该条记为已读。",12,Ui.Muted));
        body.Add(Ui.Button("全部已读",()=>{ReminderInbox.MarkRead(service.Db,items.Where(n=>n.Unread).Select(n=>n.Id));Render();return Task.CompletedTask;},false));
        foreach(var item in items)body.Add(Ui.Tap(Ui.Card(Ui.Stack(Ui.Spread(Ui.Text(item.Title,16,bold:true),Ui.Pill(item.Unread?"未读":"已读",item.Unread?Ui.Red:Ui.Muted)),Ui.Text(item.Summary,13),Ui.Text(item.Day,11,Ui.Muted))),async()=>{ReminderInbox.MarkRead(service.Db,[item.Id]);Render();await Navigation.PushAsync(new DetailPage(service,item.Table,item.RecordId));},item.Title));
        if(items.Count==0)body.Add(Ui.Empty("暂无消息提醒","有即将到期或到期业务时会在这里提示"));
#if ANDROID
        if(items.All(n=>!n.Unread))NotificationPlatform.ClearReminder();
#endif
    }
}