Fleet Mobile
Search Results for

    设计约定


    • 普通页面可继承 BasePage,提供了许多工具函数,详情请查看文档。

    • 前端模型类可考虑继承 BaseObject,提供了一些工具函数,详情请查看文档。

    • 前端配置项类可继承 PreferenceObject<T>。

      示例可参考 Fleet.Mobile.WorkOrder.WorkOrderFilter 类的实现。

    • 提供工具类 Util,与验证类 Validator,函数详情请查看文档。

    • 公共常量请考虑放在 Fleet.Mobile.Constants 静态类中。

    • 列表类页面均可继承 SearchingPage<T>。

      详情参考 列表页面范例 文档。

      通过实现抽象函数 DoGetDataAsync 来组织数据(函数内不需要捕获异常),根据是否需要搜索/排序功能实现虚函数 DoSearch 和 DoSort。

      调用顺序为 DoGetDataAsync > DoSearch > DoSort。

      提供以下方法触发数据刷新:

      • IsLoading = True: 若子类含有 RefreshView,且绑定了 RefreshCommand 则可以通过该属性赋值主动触发数据刷新。

        若未带有 RefreshView,则需要把 CostTime 覆盖为 0,或重写 OnNavigatedTo 以避免页面打开时无法获取数据。

      • OnRefreshInternal(bool):除了不把 IsLoading 设为 True 以外和上面的效果一样。

      • OnSearchInternal(string?):触发从 DoSearch 函数开始的逻辑。

      • OnSortInternal():仅触发 DoSort 后呈现数据。

      具体逻辑参考 Container/AssetsPage.xaml 见的实现,Sort 则参考 WorkOrder/WorkOrdersPage.xaml 的实现。

    • 弹出类型的页面请通过继承 DialogPopup<T> 来实现。

      页面调用时在 UI 线程上实例化 Popup<T>,并通过 this.ShowPopupAsync<T> 扩展方法来显示。

      页面选择对话框

      示例可参考 Fleet.Mobile.Inspection.PageSelectorPopup 类的实现,xaml 页面的话参考 Containers/Popup/ActionPopup.xaml 编写。

    • Containers 文件夹下包含可复用的控件。(假设 XML-namespace 为 c)

      • <c:ElementBorder/> 用来显示横向分割线。

      • <c:ElementMask/> 用来充当背景遮罩层,提供 Clicked 事件。

      • <c:ElementNetworkFailed/> 用来显示网络异常的标识,一般搭配 INetworkIndicator 接口的属性使用。

      • <c:MaskIndicator IsRunning="{Binding IsLoading}"/> 用来显示带进度标识的遮罩层。

      • <c:SearchView/> 搜索框。

      • <c:SwitchView/> 带文字显示的开关切换控件。

        设置项类

      • <c:SwitchSettingsView/> 开关类型的设置项。

      • <c:EntrySettingsView/> 单行输入框类型的设置项。

      • <c:EditorSettingsView/> 多行数据框类型的设置项。

      • <c:DatePickerSettingsView/> 日期选择类型的设置项。

      • <c:PickerSettingsView/> 选择项类型的设置项。

      • <c:EntryPickerSettingsView/> 文本框+选择项类型的组合设置项。

      • <c:DropdownSettingsView/> 弹出页面选择的设置项。

      • <c:EntryDropdownSettingsView/> 文本框+弹出页面选择的组合设置项。

      • <c:SettingsView/> 自定义设置项,可以参考 WorkOrder/EditWorkOrderPage.xaml 中的 Scheduling 设置项。

        详情参考 设置类页面组成范例 文档。

    • 可复用页面

      • SignaturePage 签名调用该页面实现,调用方需要实现 ISignaturePage 接口。

        签名完成时会在 UI 线程上调用接口的 SetSignatureBytesAsync 方法。

      • Media.ImageViewPage 图片查看页面。

      • Media.VideoPlayerPage 视频查看页面。

      • Media.EditPicturePage 图片编辑页面。

        媒体相关的辅助函数请参考 MediaHelper 文档。

    • 扩展类型(假设 XML-namespace 为 m)

      • {m:Text FLT_XXXXXX, Default='Default Text'}

        多语言资源扩展,内容属性为资源 ID,Default 属性为默认资源内容。

      • {m:FontImage {x:Static m:Icons.Refresh}, FontFamily=FontAwesomeSolid, Size=20}

        字体图形源扩展,内容属性为显示字符串,FontFamily 属性为字体,默认值为 "FontAwesomeSolid",可设置为 "FontAwesome"、"FontAwesomeLight",Size 属性为文字大小,默认值为 20。后两个属性非必须。

      • UIExtensions 为 UI 类型扩展类,具体可参考文档说明。

      • ExceptionExtensions 为异常类型扩展类,提供异常判断、异常显示等扩展方法,具体参考文档说明。

        启动安全任务推荐统一使用 StartSafeTaskAsync 扩展方法。

      • Extensions 为通用扩展类,提供延时等扩展方法,具体参考文档说明。

    In this article
    Back to top Generated by DocFX