用户界面¶
UI-PROTOTYPE 内置了一套常用的模块化用户界面,只需引入所需的界面即可使用。
API¶
所有通用的用户界面相关文件都储存在src/shared,下文均以src/shared为工作目录。
窗口¶
| 类型 | 路径 |
|---|---|
| 脚本文件 | ui/window.ts |
该模块为渲染进程中窗口管理,主线程中管理窗口请参考:窗口。
函数:initWindowEvents¶
初始化窗口事件。
标题栏¶
| 类型 | 路径 |
|---|---|
| HTML 模板 | views/_titlebar.pug |
| 样式文件 | styles/_titlebar.styl |
| 脚本文件 | ui/titlebar.ts |
| 定义文件 | types/ui.d.ts |
若要使用标题栏组件,需要在 HTML 模板中引入 views/_titlebar.pug 和 styles/_titlebar.styl。
实例:titlebar¶
该对象为接口 Titlebar 实例。
接口:Titlebar¶
方法:init¶
初始化标题栏。
方法:toggleButtonHidden¶
切换标题栏上指定 ID 的按钮显示或隐藏。
方法:toggleButtonDisabled¶
切换标题栏上指定 ID 的按钮禁用或启用。
方法:toggleWindowControlHidden¶
切换窗口右上角指定 ID 的按钮显示或隐藏。
方法:toggleWindowControlDisabled¶
切换窗口右上角上指定 ID 的按钮禁用或启用。
属性:state¶
应用程序状态信息。
属性:buttons¶
标题栏左侧按钮数组。参考:
TitlebarButton。
属性:searchbar¶
标题栏搜索框,允许设置为 UIText 或 HTMLInputElement 元素。设置为 null 时移除搜索栏。
参考:UIText。
属性:avatar¶
可选参数,标题栏右侧头像按钮。参考:
TitlebarAvatar。
属性:windowControls¶
窗口右上角按钮。
参考:TitlebarButton。
属性:windowControlMinimize¶
检查或设置窗口最小化按钮显示或隐藏。
属性:windowControlResize¶
检查或设置窗口最大化/还原按钮显示或隐藏。
属性:windowControlClose¶
检查或设置窗口关闭按钮。
| 值 | 说明 |
|---|---|
close |
显示该按钮,点击后关闭窗口 |
hide |
显示该按钮,点击后隐藏窗口 |
none |
隐藏该按钮 |
接口:TitlebarButton¶
属性:id¶
必要属性,按钮的 ID,应当保持唯一性。
属性:icon¶
必要属性,按钮的图标名,按钮上不会显示任何文字,所以应当设置一个图标。参考:图标。
属性:action¶
必要属性,按钮点击回调。
属性:tooltip¶
可选参数,图标的工具提示,设置为 undefined 时移除工具提示。
参考:Tooltip。
属性:hidden¶
可选参数,设置为 true 时,使按钮隐藏。
属性:disabled¶
可选参数,设置为 true 时,按钮禁用。
接口:TitlebarAvatar¶
属性:img¶
必要属性,头像文件路径。
属性:action¶
可选参数,头像点击回调。
属性:action¶
窗口背景¶
| 类型 | 路径 |
|---|---|
| 样式文件 | styles/_background.styl |
| 脚本文件 | ui/background.ts |
函数:initMica¶
初始化模拟的 Mica 背景。默认不使用
mica alt,若修改默认行为,请修改 config/ui.json 中 micaAlt 参数。注意:不稳定。
已知问题:多屏幕时显示异常。
多页面¶
| 类型 | 路径 |
|---|---|
| 样式文件 | styles/_pages.styl |
| 脚本文件 | ui/pages.ts |
| 定义文件 | types/pages.d.ts |
UI-PROTOTYPE 提供一套可选的页面管理接口,可以轻松的实现多页面、历史记录、页面切换动画。
事件¶
| 名称 | 说明 |
|---|---|
open |
将要打开新页面时触发 |
back |
将要切换到前一页面时触发 |
jump |
将要跳转页面时触发 |
home |
将要切换到主页时触发 |
shortcut |
使用快捷键切换页面时触发 |
参考:IPagesEvent。
实例:pages¶
该对象为接口 IPages 实例。
接口:IPages¶
方法:init¶
初始化页面管理,推荐在定义主页后初始化。参考:
PagesInitOptions,define。
方法:home¶
清理历史记录并回到主页。当主页未定义或事件被阻止时返回
false。
方法:back¶
回到上一页面。
方法:open¶
function open(
name: string,
options?: any,
animation?: PageSwitchAimationOptions
): Promise<boolean>;
name 为要打开的页面名称。
options 为页面构建参数。
animation 为页面打开动画,参考:PageSwitchAimationOptions。
当要打开的页面未定义或事件被阻止时返回 false。
方法:jump¶
跳转到指定页面。当
index 对应页面不存在或事件被阻止时返回 false。
方法:define¶
定义一个页面。
name 为页面唯一名称,只能使用字母、数字、连字符和下划线。
constructor 为页面类,参考:PageConstructor 和 IPage。
方法:on¶
function on<K extends keyof PagesEventMap>(
name: K,
listener: (event: PagesEventMap[K]) => any
): void;
参考:
PagesEventMap 和 IPagesEvent。
方法:off¶
function off<K extends keyof PagesEventMap>(
name: K,
listener: (event: PagesEventMap[K]) => any
): void;
参考:
PagesEventMap 和 IPagesEvent。
属性:history¶
只读属性,已打开的页面名称数组。
属性:shortcutDisabled¶
启用或禁用页面切换快捷键。
接口:IPage¶
页面接口。有关页面类构造函数及静态接口:PageConstructor。
方法:onShow¶
可选方法,页面将显示时调用。heroOptions 为英雄动画参数,参考:HeroOptions。
方法:onHide¶
可选方法,页面将隐藏时调用。heroOptions 为英雄动画参数,参考:HeroOptions。
方法:onClose¶
页面将关闭时调用,若页面为单例页面,此方法永远不会被调用。返回
true 将阻止页面关闭。
接口:PageConstructor¶
页面构造函数及静态接口,有关页面类实例接口请参考:IPage。
构造函数¶
页面被创建时调用,若页面为单例页面,则只调用一次。node 为页面元素实例。
utils 为页面工具,参考:IPageUtils。
options 为页面构建参数。
静态函数:getLayoutOptions¶
可选函数,页面元素创建前调用,返回值若为 Object,将会作为页面 HTML 模板编译参数。
静态属性:SINGLETON_INSTANCE¶
为 true 时,页面为单例页面。
静态属性:LAYOUT_TEMPLATE¶
当为 true 时,将使用渲染线程目录下 views/pages/<page_name>.pug 模板构建页面元素。
接口:IPageUtils¶
页面工具。
方法:close¶
调用该方法以主动关闭页面。仅在页面为当前页面时有效。
接口:IPagesEvent¶
页面事件接口。
方法:prevent¶
阻止事件默认行为。
属性:target¶
只读属性,与该事件有关的页面实例。
属性:node¶
只读属性,与该事件有关的页面元素。
属性:type¶
只读属性,事件类型。
接口:PagesEventMap¶
页面事件枚举接口。
接口:PagesInitOptions¶
页面管理初始化参数接口。
属性:home¶
可选参数,主页名称,默认 home。
属性:shortcutDisabled¶
可选参数,启用或禁用页面切换快捷键,默认 false。
接口:HeroOptions¶
英雄动画参数接口。
注意:不稳定。
属性:node¶
英雄动画相关元素。
属性:rect¶
英雄动画相关元素初始位置尺寸信息。
接口:BasicPageSwitchAnimationOptions¶
基本页面切换动画参数。
属性:hero¶
可选参数,英雄动画参数。
接口:EntrancePageSwitchAnimationOptions¶
参数 type 固定为 entrance。
属性:from¶
可选参数,动画进入方向,默认 bottom。
接口:SlidePageSwitchAnimationOptions¶
参数 type 固定为 slide。
属性:from¶
可选参数,动画进入方向,默认 right。
接口:DrillPageSwitchAnimationOptions¶
参数 type 固定为 drill。
属性:from¶
可选参数,动画进入方向,默认 in。
接口:FadePageSwitchAnimationOptions¶
参数 type 固定为 fade。
属性:outroDuration¶
可选参数,淡出时长,单位毫秒,默认 100。
属性:introDuration¶
可选参数,淡入时长,单位毫秒,默认 100。
属性:introWhen¶
可选参数,淡入开始时间,单位毫秒,默认 0。
接口:PageSwitchAimationOptions¶
页面切换动画参数。
由基本参数 BasicPageSwitchAnimationOptions 和其他切换动画参数组成。
默认切换动画类型 entrance。
若要修改默认动画类型,请修改 config/ui.json 中参数 defaultPageSwitchAnimation。
UI 组件¶
| 类型 | 路径 |
|---|---|
| 样式文件 | styles/_components/* |
| 脚本文件 | ui/components.ts |
| 组件脚本文件 | components/* |
函数:initComponents¶
按需初始化 UI 组件。
函数:initAllComponents¶
初始化所有 UI 组件。
类:UILang¶
多语言元素。根据键名自动设置翻译文本。
模板:
方法:update¶
强制更新翻译文本。
属性:key¶
翻译键名。
类:UIScroll¶
滚动条元素。
属性:target¶
绑定的滚动视图元素。
属性:horizontal¶
检索或设置滚动条为横向滚动条,false 时为纵向滚动条。
类:UIText¶
输入框元素。
ui-text(multiLine disabled readonly header="<b>Header</b>" placeholder="<ui-lang>app.name</ui-lang>" value="Value")
静态方法:generateClearButton¶
function generateClearButton(
text: UIText,
btnId = 'clear'
): {
button: UITextButton;
handler: Function;
};
方法:toggleButtonHidden¶
切换指定 ID 的按钮显示或隐藏。
方法:toggleButtonDisabled¶
切换指定 ID 的按钮启用或禁用。
属性:multiLine¶
查询或设置输入框为单行或多行。
属性:disabled¶
查询或设置输入框禁用或启用。
属性:readonly¶
查询或设置输入框只读模式。
属性:header¶
查询或设置输入框头部。
属性:placeholder¶
查询或设置输入框占位符。
属性:value¶
查询或设置输入框内容。
属性:autoSuggest¶
查询或设置输入框自动补全回调或自动补全内容。参考:
UITextSuggest、AutoSuggest。
属性:isSelectingSuggest¶
只读属性,查询用户是否正在选择自动补全。
属性:leftButtons¶
查询或设置输入框左侧按钮。参考:
UITextButton。
属性:rightButtons¶
查询或设置输入框右侧按钮。参考:
UITextButton。
类型:AutoSuggest¶
接受用户输入的文本,动态生成自动补全或建议。
接口:UITextSuggest¶
属性:label¶
建议内容。
属性:text¶
可选参数,自动补全内容。
属性:action¶
可选参数,选择建议时的回调函数。
接口:UITextButton¶
属性:icon¶
按钮图标。参考:图标。
属性:action¶
按钮被点击时的回调函数。id 为按钮 ID。
属性:tooltip¶
可选参数,按钮的工具提示。
属性:id¶
可选参数,按钮 ID。
属性:disabled¶
可选参数,禁用按钮。
属性:hidden¶
可选参数,隐藏按钮。
模块:components\tooltip.ts¶
工具提示模块。
该模块没有导出,只需引入该模块,就可以使用工具提示。