diff --git a/packages/uni-app-types/src/ad/ad-content-page.ts b/packages/uni-app-types/src/ad/ad-content-page.ts index 7619c67..a1cd1d6 100644 --- a/packages/uni-app-types/src/ad/ad-content-page.ts +++ b/packages/uni-app-types/src/ad/ad-content-page.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; type _AdContentPageOnLoadEvent = BaseEvent; @@ -124,22 +125,23 @@ type _AdContentPageOnCompleteEvent = type _AdContentPageOnComplete = (event: _AdContentPageOnCompleteEvent) => void; /** 短视频内容联盟广告属性 */ -type _AdContentPageProps = Partial<{ - /** APP 广告位 id */ - adpid: string; - /** 广告加载成功的回调 */ - onLoad: _AdContentPageOnLoad; - /** 广告加载失败的回调 */ - onError: _AdContentPageOnError; - /** 广告开始播放时触发 */ - onStart: _AdContentPageOnStart; - /** 广告暂停播放时触发 */ - onPause: _AdContentPageOnPause; - /** 广告恢复播放时触发 */ - onResume: _AdContentPageOnResume; - /** 广告完成播放时触发 */ - onComplete: _AdContentPageOnComplete; -}>; +type _AdContentPageProps = CommonProps & + Partial<{ + /** APP 广告位 id */ + adpid: string; + /** 广告加载成功的回调 */ + onLoad: _AdContentPageOnLoad; + /** 广告加载失败的回调 */ + onError: _AdContentPageOnError; + /** 广告开始播放时触发 */ + onStart: _AdContentPageOnStart; + /** 广告暂停播放时触发 */ + onPause: _AdContentPageOnPause; + /** 广告恢复播放时触发 */ + onResume: _AdContentPageOnResume; + /** 广告完成播放时触发 */ + onComplete: _AdContentPageOnComplete; + }>; /** 短视频内容联盟广告 */ type _AdContentPage = DefineComponent<_AdContentPageProps>; diff --git a/packages/uni-app-types/src/ad/ad-draw.ts b/packages/uni-app-types/src/ad/ad-draw.ts index a0752e6..d9c1dd6 100644 --- a/packages/uni-app-types/src/ad/ad-draw.ts +++ b/packages/uni-app-types/src/ad/ad-draw.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; type _AdDrawOnLoadEvent = BaseEvent; @@ -19,16 +20,17 @@ type _AdDrawOnErrorEvent = CustomEvent<_AdDrawOnErrorDetail>; type _AdDrawOnError = (event: _AdDrawOnErrorEvent) => void; /** 沉浸视频流广告属性 */ -type _AdDrawProps = Partial<{ - /** APP 广告位 id */ - adpid: string; - /** 广告数据 */ - data: Record; - /** 广告加载成功的回调 */ - onLoad: _AdDrawOnLoad; - /** 广告加载失败的回调 */ - onError: _AdDrawOnError; -}>; +type _AdDrawProps = CommonProps & + Partial<{ + /** APP 广告位 id */ + adpid: string; + /** 广告数据 */ + data: Record; + /** 广告加载成功的回调 */ + onLoad: _AdDrawOnLoad; + /** 广告加载失败的回调 */ + onError: _AdDrawOnError; + }>; /** 沉浸视频流广告 */ type _AdDraw = DefineComponent<_AdDrawProps>; diff --git a/packages/uni-app-types/src/ad/ad-fullscreen-video.ts b/packages/uni-app-types/src/ad/ad-fullscreen-video.ts index d58a81e..6058eb5 100644 --- a/packages/uni-app-types/src/ad/ad-fullscreen-video.ts +++ b/packages/uni-app-types/src/ad/ad-fullscreen-video.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; type _AdFullscreenVideoOnLoadEvent = BaseEvent; @@ -29,28 +30,29 @@ type _AdFullscreenVideoOnClose = ( ) => void; /** 全屏视频广告属性 */ -type _AdFullscreenVideoProps = Partial<{ - /** APP 广告位 id */ - adpid: string | number | (string | number)[]; - /** - * 是否在页面就绪后加载广告数据 - * - * 默认为 `true` - */ - preload: boolean; - /** - * 是否自动加载下一条广告数据 - * - * 默认为 false - */ - loadnext: boolean; - /** 广告加载成功的回调 */ - onLoad: _AdFullscreenVideoOnLoad; - /** 广告加载失败的回调 */ - onError: _AdFullscreenVideoOnError; - /** 广告关闭的回调 */ - onClose: _AdFullscreenVideoOnClose; -}>; +type _AdFullscreenVideoProps = CommonProps & + Partial<{ + /** APP 广告位 id */ + adpid: string | number | (string | number)[]; + /** + * 是否在页面就绪后加载广告数据 + * + * 默认为 `true` + */ + preload: boolean; + /** + * 是否自动加载下一条广告数据 + * + * 默认为 false + */ + loadnext: boolean; + /** 广告加载成功的回调 */ + onLoad: _AdFullscreenVideoOnLoad; + /** 广告加载失败的回调 */ + onError: _AdFullscreenVideoOnError; + /** 广告关闭的回调 */ + onClose: _AdFullscreenVideoOnClose; + }>; /** 全屏视频广告 */ type _AdFullscreenVideo = DefineComponent<_AdFullscreenVideoProps>; diff --git a/packages/uni-app-types/src/ad/ad-interactive.ts b/packages/uni-app-types/src/ad/ad-interactive.ts index 380d01f..51d4f52 100644 --- a/packages/uni-app-types/src/ad/ad-interactive.ts +++ b/packages/uni-app-types/src/ad/ad-interactive.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; type _AdInteractiveOnLoadEvent = BaseEvent; @@ -19,16 +20,17 @@ type _AdInteractiveOnErrorEvent = CustomEvent<_AdInteractiveOnErrorDetail>; type _AdInteractiveOnError = (event: _AdInteractiveOnErrorEvent) => void; /** 互动广告属性 */ -type _AdInteractiveProps = Partial<{ - /** APP 广告位 id */ - adpid: string; - /** 点击广告后打开的页面路径 */ - openPagePath: string; - /** 广告加载成功的回调 */ - onLoad: _AdInteractiveOnLoad; - /** 广告加载失败的回调 */ - onError: _AdInteractiveOnError; -}>; +type _AdInteractiveProps = CommonProps & + Partial<{ + /** APP 广告位 id */ + adpid: string; + /** 点击广告后打开的页面路径 */ + openPagePath: string; + /** 广告加载成功的回调 */ + onLoad: _AdInteractiveOnLoad; + /** 广告加载失败的回调 */ + onError: _AdInteractiveOnError; + }>; /** 互动广告 */ type _AdInteractive = DefineComponent<_AdInteractiveProps>; diff --git a/packages/uni-app-types/src/ad/ad-interstitial.ts b/packages/uni-app-types/src/ad/ad-interstitial.ts index f1a2b24..28debb5 100644 --- a/packages/uni-app-types/src/ad/ad-interstitial.ts +++ b/packages/uni-app-types/src/ad/ad-interstitial.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; type _AdInterstitialOnLoadEvent = BaseEvent; @@ -24,28 +25,29 @@ type _AdInterstitialOnCloseEvent = BaseEvent; type _AdInterstitialOnClose = (event: _AdInterstitialOnCloseEvent) => void; /** 插屏广告属性 */ -type _AdInterstitialProps = Partial<{ - /** APP 广告位 id */ - adpid: string | number | (string | number)[]; - /** - * 是否在页面就绪后加载广告数据 - * - * 默认为 `true` - */ - preload: boolean; - /** - * 是否自动加载下一条广告数据 - * - * 默认为 `false` - */ - loadnext: boolean; - /** 广告加载成功的回调 */ - onLoad: _AdInterstitialOnLoad; - /** 广告加载失败的回调 */ - onError: _AdInterstitialOnError; - /** 广告关闭的回调 */ - onClose: _AdInterstitialOnClose; -}>; +type _AdInterstitialProps = CommonProps & + Partial<{ + /** APP 广告位 id */ + adpid: string | number | (string | number)[]; + /** + * 是否在页面就绪后加载广告数据 + * + * 默认为 `true` + */ + preload: boolean; + /** + * 是否自动加载下一条广告数据 + * + * 默认为 `false` + */ + loadnext: boolean; + /** 广告加载成功的回调 */ + onLoad: _AdInterstitialOnLoad; + /** 广告加载失败的回调 */ + onError: _AdInterstitialOnError; + /** 广告关闭的回调 */ + onClose: _AdInterstitialOnClose; + }>; /** 插屏广告 */ type _AdInterstitial = DefineComponent<_AdInterstitialProps>; diff --git a/packages/uni-app-types/src/ad/ad-rewarded-video.ts b/packages/uni-app-types/src/ad/ad-rewarded-video.ts index f755ac7..8fee726 100644 --- a/packages/uni-app-types/src/ad/ad-rewarded-video.ts +++ b/packages/uni-app-types/src/ad/ad-rewarded-video.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** 服务器回调透传数据 */ @@ -30,30 +31,31 @@ type _AdRewardedVideoOnCloseEvent = BaseEvent; type _AdRewardedVideoOnClose = (event: _AdRewardedVideoOnCloseEvent) => void; /** 激励视频广告属性 */ -type _AdRewardedVideoProps = Partial<{ - /** APP 广告位 id */ - adpid: string | number | (string | number)[]; - /** - * 是否在页面就绪后加载广告数据 - * - * 默认为 `true` - */ - preload: boolean; - /** - * 是否自动加载下一条广告数据 - * - * 默认为 `false` - */ - loadnext: boolean; - /** 服务器回调透传数据 */ - urlCallback: _AdRewardedVideoUrlCallback; - /** 广告加载成功的回调 */ - onLoad: _AdRewardedVideoOnLoad; - /** 广告加载失败的回调 */ - onError: _AdRewardedVideoOnError; - /** 广告关闭的回调 */ - onClose: _AdRewardedVideoOnClose; -}>; +type _AdRewardedVideoProps = CommonProps & + Partial<{ + /** APP 广告位 id */ + adpid: string | number | (string | number)[]; + /** + * 是否在页面就绪后加载广告数据 + * + * 默认为 `true` + */ + preload: boolean; + /** + * 是否自动加载下一条广告数据 + * + * 默认为 `false` + */ + loadnext: boolean; + /** 服务器回调透传数据 */ + urlCallback: _AdRewardedVideoUrlCallback; + /** 广告加载成功的回调 */ + onLoad: _AdRewardedVideoOnLoad; + /** 广告加载失败的回调 */ + onError: _AdRewardedVideoOnError; + /** 广告关闭的回调 */ + onClose: _AdRewardedVideoOnClose; + }>; /** 激励视频广告 */ type _AdRewardedVideo = DefineComponent<_AdRewardedVideoProps>; diff --git a/packages/uni-app-types/src/ad/ad.ts b/packages/uni-app-types/src/ad/ad.ts index 9822225..ca2bb64 100644 --- a/packages/uni-app-types/src/ad/ad.ts +++ b/packages/uni-app-types/src/ad/ad.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; type _AdOnLoadEvent = BaseEvent; @@ -24,60 +25,61 @@ type _AdOnCloseEvent = BaseEvent; type _AdOnClose = (event: _AdOnCloseEvent) => void; /** 信息流广告属性 */ -type _AdProps = Partial<{ - /** APP 广告位 id */ - adpid: string; - /** 广告单元 id,可在小程序管理后台的流量主模块新建 */ - unitId: string; - /** - * 广告自动刷新的间隔时间,必须大于等于 30 - * - * 该参数不传入时 Banner 广告不会自动刷新 - * - * 单位为 `s` - */ - adIntervals: number; - /** 广告数据,优先级高于 adpid */ - data: Record; - /** 小程序应用 ID */ - appid: string; - /** 小程序广告位 ID */ - apid: string; - /** - * Type 为 feeds 时广告左边距,必须大于 0 - * - * 单位为 `px` - */ - adLeft: number; - /** - * Type 为 feeds 时广告上边距,必须大于 0 - * - * 单位为 `px` - */ - adTop: number; - /** - * Type 为 feeds 时广告宽度,最大值为屏幕宽度,最小值为 265 - * - * 单位为 `px` - * - * 默认为 `100%` - */ - adWidth: number; - /** - * Type 为 feeds 时广告高度,最大值为 160,最小值为 85 - * - * 单位为 `px` - */ - adHeight: number; - /** 广告类型 */ - type: string; - /** 广告加载成功的回调 */ - onLoad: _AdOnLoad; - /** 广告加载失败的回调 */ - onError: _AdOnError; - /** 广告关闭的回调 */ - onClose: _AdOnClose; -}>; +type _AdProps = CommonProps & + Partial<{ + /** APP 广告位 id */ + adpid: string; + /** 广告单元 id,可在小程序管理后台的流量主模块新建 */ + unitId: string; + /** + * 广告自动刷新的间隔时间,必须大于等于 30 + * + * 该参数不传入时 Banner 广告不会自动刷新 + * + * 单位为 `s` + */ + adIntervals: number; + /** 广告数据,优先级高于 adpid */ + data: Record; + /** 小程序应用 ID */ + appid: string; + /** 小程序广告位 ID */ + apid: string; + /** + * Type 为 feeds 时广告左边距,必须大于 0 + * + * 单位为 `px` + */ + adLeft: number; + /** + * Type 为 feeds 时广告上边距,必须大于 0 + * + * 单位为 `px` + */ + adTop: number; + /** + * Type 为 feeds 时广告宽度,最大值为屏幕宽度,最小值为 265 + * + * 单位为 `px` + * + * 默认为 `100%` + */ + adWidth: number; + /** + * Type 为 feeds 时广告高度,最大值为 160,最小值为 85 + * + * 单位为 `px` + */ + adHeight: number; + /** 广告类型 */ + type: string; + /** 广告加载成功的回调 */ + onLoad: _AdOnLoad; + /** 广告加载失败的回调 */ + onError: _AdOnError; + /** 广告关闭的回调 */ + onClose: _AdOnClose; + }>; /** 信息流广告 */ type _Ad = DefineComponent<_AdProps>; diff --git a/packages/uni-app-types/src/basic-components/icon.ts b/packages/uni-app-types/src/basic-components/icon.ts index 39244ad..389dda2 100644 --- a/packages/uni-app-types/src/basic-components/icon.ts +++ b/packages/uni-app-types/src/basic-components/icon.ts @@ -1,20 +1,22 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** 图标属性 */ -type _IconProps = Partial<{ - /** 类型 */ - type: string; - /** - * 大小 - * - * 单位为 px - * - * 默认为 23 - */ - size: number; - /** 颜色 */ - color: string; -}>; +type _IconProps = CommonProps & + Partial<{ + /** 类型 */ + type: string; + /** + * 大小 + * + * 单位为 px + * + * 默认为 23 + */ + size: number; + /** 颜色 */ + color: string; + }>; /** 图标 */ type _Icon = DefineComponent<_IconProps>; diff --git a/packages/uni-app-types/src/basic-components/progress.ts b/packages/uni-app-types/src/basic-components/progress.ts index 2a6928e..31171c4 100644 --- a/packages/uni-app-types/src/basic-components/progress.ts +++ b/packages/uni-app-types/src/basic-components/progress.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent } from "../events"; /** @@ -16,80 +17,81 @@ type _ProgressOnActiveendEvent = BaseEvent; type _ProgressOnActiveend = (event: _ProgressOnActiveendEvent) => void; /** 进度条属性 */ -type _ProgressProps = Partial<{ - /** - * 百分比 - * - * 取值范围为 0 - 100 - * - * 没有默认值 - */ - percent: number; - /** - * 是否在进度条右侧显示百分比 - * - * 默认为 false - */ - showInfo: boolean; - /** - * 圆角大小 - * - * 默认为 0 - */ - borderRadius: number | string; - /** - * 进度条右侧显示的百分比字体大小 - * - * 默认为 16 - */ - fontSize: number | string; - /** - * 进度条线的宽度 - * - * 单位为 px - * - * 默认为 6 - */ - strokeWidth: number; - /** - * 已选择的进度条的颜色 - * - * 默认为 #09bb07,百度默认为 #e6e6e6 - */ - activeColor: string; - /** - * 未选择的进度条的颜色 - * - * 默认为 #ebebeb - */ - backgroundColor: string; - /** - * 是否显示进度条从左往右的动画 - * - * 默认为 false - */ - active: boolean; - /** - * 动画播放方式 - * - * Backwards 动画从头播 - * - * Forwards 动画从上次结束点接着播 - * - * 默认为 backwards - */ - activeMode: _ProgressActiveMode; - /** - * 进度增加 1% 所需时间 - * - * 单位为 ms - * - * 默认为 30 - */ - duration: number; - /** 动画完成时触发 */ - onActiveend: _ProgressOnActiveend; -}>; +type _ProgressProps = CommonProps & + Partial<{ + /** + * 百分比 + * + * 取值范围为 0 - 100 + * + * 没有默认值 + */ + percent: number; + /** + * 是否在进度条右侧显示百分比 + * + * 默认为 false + */ + showInfo: boolean; + /** + * 圆角大小 + * + * 默认为 0 + */ + borderRadius: number | string; + /** + * 进度条右侧显示的百分比字体大小 + * + * 默认为 16 + */ + fontSize: number | string; + /** + * 进度条线的宽度 + * + * 单位为 px + * + * 默认为 6 + */ + strokeWidth: number; + /** + * 已选择的进度条的颜色 + * + * 默认为 #09bb07,百度默认为 #e6e6e6 + */ + activeColor: string; + /** + * 未选择的进度条的颜色 + * + * 默认为 #ebebeb + */ + backgroundColor: string; + /** + * 是否显示进度条从左往右的动画 + * + * 默认为 false + */ + active: boolean; + /** + * 动画播放方式 + * + * Backwards 动画从头播 + * + * Forwards 动画从上次结束点接着播 + * + * 默认为 backwards + */ + activeMode: _ProgressActiveMode; + /** + * 进度增加 1% 所需时间 + * + * 单位为 ms + * + * 默认为 30 + */ + duration: number; + /** 动画完成时触发 */ + onActiveend: _ProgressOnActiveend; + }>; /** 进度条 */ type _Progress = DefineComponent<_ProgressProps>; diff --git a/packages/uni-app-types/src/basic-components/rich-text.ts b/packages/uni-app-types/src/basic-components/rich-text.ts index f98f0b6..8b8844e 100644 --- a/packages/uni-app-types/src/basic-components/rich-text.ts +++ b/packages/uni-app-types/src/basic-components/rich-text.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { CustomEvent } from "../events"; /** 显示连续空格 */ @@ -30,40 +31,41 @@ type _RichTextOnItemclickEvent = CustomEvent<{ node: _RichTextNode }>; type _RichTextOnItemclick = (event: _RichTextOnItemclickEvent) => void; /** 富文本属性 */ -type _RichTextProps = Partial<{ - /** 节点列表 */ - nodes: _RichTextNodes; - /** - * 显示连续空格 - * - * 没有默认值 - */ - space: _RichTextSpace; - /** - * 富文本是否可以长按选中 - * - * 默认为 true - */ - selectable: boolean; - /** - * 是否阻止长按图片时弹起默认菜单 - * - * 只在初始化时有效,不支持动态修改 - * - * 默认为 false - */ - imageMenuPrevent: boolean; - /** - * 富文本中的图片是否可点击预览 - * - * 在不设置的情况下,若 rich-text 未监听点击事件,则默认开启 - * - * 未显示设置 preview 时会进行点击默认预览判断,建议显示设置 preview - */ - preview: boolean; - /** 拦截点击事件,支持 a 和 img 标签 */ - onItemclick: _RichTextOnItemclick; -}>; +type _RichTextProps = CommonProps & + Partial<{ + /** 节点列表 */ + nodes: _RichTextNodes; + /** + * 显示连续空格 + * + * 没有默认值 + */ + space: _RichTextSpace; + /** + * 富文本是否可以长按选中 + * + * 默认为 true + */ + selectable: boolean; + /** + * 是否阻止长按图片时弹起默认菜单 + * + * 只在初始化时有效,不支持动态修改 + * + * 默认为 false + */ + imageMenuPrevent: boolean; + /** + * 富文本中的图片是否可点击预览 + * + * 在不设置的情况下,若 rich-text 未监听点击事件,则默认开启 + * + * 未显示设置 preview 时会进行点击默认预览判断,建议显示设置 preview + */ + preview: boolean; + /** 拦截点击事件,支持 a 和 img 标签 */ + onItemclick: _RichTextOnItemclick; + }>; /** 富文本 */ type _RichText = DefineComponent<_RichTextProps>; diff --git a/packages/uni-app-types/src/basic-components/text.ts b/packages/uni-app-types/src/basic-components/text.ts index 5e1e8d9..3c61dfc 100644 --- a/packages/uni-app-types/src/basic-components/text.ts +++ b/packages/uni-app-types/src/basic-components/text.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** * 显示连续空格 @@ -12,38 +13,39 @@ import type { DefineComponent } from "vue"; type _TextSpace = "ensp" | "emsp" | "nbsp"; /** 文本组件属性 */ -type _TextProps = Partial<{ - /** - * 文本是否可选 - * - * 默认为 false - */ - selectable: boolean; - /** - * 文本是否可选,可能会使文本节点显示为 inline-block - * - * 默认为 false - */ - userSelect: boolean; - /** - * 显示连续空格 - * - * Ensp 中文字符空格一半大小 - * - * Emsp 中文字符空格大小 - * - * Nbsp 根据字体设置的空格大小 - * - * 没有默认值 - */ - space: _TextSpace; - /** - * 是否解码 - * - * 默认为 false - */ - decode: boolean; -}>; +type _TextProps = CommonProps & + Partial<{ + /** + * 文本是否可选 + * + * 默认为 false + */ + selectable: boolean; + /** + * 文本是否可选,可能会使文本节点显示为 inline-block + * + * 默认为 false + */ + userSelect: boolean; + /** + * 显示连续空格 + * + * Ensp 中文字符空格一半大小 + * + * Emsp 中文字符空格大小 + * + * Nbsp 根据字体设置的空格大小 + * + * 没有默认值 + */ + space: _TextSpace; + /** + * 是否解码 + * + * 默认为 false + */ + decode: boolean; + }>; /** * 文本组件 diff --git a/packages/uni-app-types/src/canvas/index.ts b/packages/uni-app-types/src/canvas/index.ts index 997983e..e412bd4 100644 --- a/packages/uni-app-types/src/canvas/index.ts +++ b/packages/uni-app-types/src/canvas/index.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent, TouchCanvasEvent } from "../events"; /** 类型 */ @@ -40,36 +41,37 @@ type _CanvasOnErrorEvent = CustomEvent<_CanvasOnErrorDetail>; type _CanvasOnError = (event: _CanvasOnErrorEvent) => void; /** 画布属性 */ -type _CanvasProps = Partial<{ - /** 类型 */ - type: _CanvasType; - /** 唯一标识符 */ - canvasId: string; - /** - * 当在 canvas 中移动时且有绑定手势事件时,是否禁止屏幕滚动以及下拉刷新 - * - * 默认为 false - */ - disableScroll: boolean; - /** - * 是否启用高清处理 - * - * 默认为 true - */ - hidpi: boolean; - /** 手指触摸动作开始时触发 */ - onTouchstart: _CanvasOnTouchstart; - /** 手指触摸后移动时触发 */ - onTouchmove: _CanvasOnTouchmove; - /** 手指触摸动作结束时触发 */ - onTouchend: _CanvasOnTouchend; - /** 手指触摸动作被打断时触发 */ - onTouchcancel: _CanvasOnTouchcancel; - /** 手指长按 500ms 之后触发,触发了长按事件后进行移动不会触发屏幕的滚动 */ - onLongtap: _CanvasOnLongtap; - /** 发生错误时触发 */ - onError: _CanvasOnError; -}>; +type _CanvasProps = CommonProps & + Partial<{ + /** 类型 */ + type: _CanvasType; + /** 唯一标识符 */ + canvasId: string; + /** + * 当在 canvas 中移动时且有绑定手势事件时,是否禁止屏幕滚动以及下拉刷新 + * + * 默认为 false + */ + disableScroll: boolean; + /** + * 是否启用高清处理 + * + * 默认为 true + */ + hidpi: boolean; + /** 手指触摸动作开始时触发 */ + onTouchstart: _CanvasOnTouchstart; + /** 手指触摸后移动时触发 */ + onTouchmove: _CanvasOnTouchmove; + /** 手指触摸动作结束时触发 */ + onTouchend: _CanvasOnTouchend; + /** 手指触摸动作被打断时触发 */ + onTouchcancel: _CanvasOnTouchcancel; + /** 手指长按 500ms 之后触发,触发了长按事件后进行移动不会触发屏幕的滚动 */ + onLongtap: _CanvasOnLongtap; + /** 发生错误时触发 */ + onError: _CanvasOnError; + }>; /** 画布 */ type _Canvas = DefineComponent<_CanvasProps>; diff --git a/packages/uni-app-types/src/common.ts b/packages/uni-app-types/src/common.ts new file mode 100644 index 0000000..f8944b6 --- /dev/null +++ b/packages/uni-app-types/src/common.ts @@ -0,0 +1,6 @@ +import type { StyleValue } from "vue"; + +export type CommonProps = { + class?: any; + style?: StyleValue; +}; diff --git a/packages/uni-app-types/src/form-components/button.ts b/packages/uni-app-types/src/form-components/button.ts index 8990bf8..7db7a18 100644 --- a/packages/uni-app-types/src/form-components/button.ts +++ b/packages/uni-app-types/src/form-components/button.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** @@ -247,281 +248,282 @@ type _ButtonOnAgreeprivacyauthorization = ( ) => void; /** 按钮属性 */ -type _ButtonProps = Partial<{ - /** - * 按钮的大小 - * - * Default 默认 - * - * Mini 小 - * - * 默认为 default - */ - size: _ButtonSize; - /** - * 按钮的样式类型 - * - * Primary 微信小程序、360 小程序为绿色,APP、H5、百度小程序、支付宝小程序、飞书小程序、快应用为蓝色,字节跳动小程序为红色,QQ - * 小程序为浅蓝色 - * - * Default 白色 - * - * Warn 红色 - * - * 默认为 default - */ - type: _ButtonType; - /** - * 按钮是否镂空,背景色透明 - * - * 默认为 false - */ - plain: boolean; - /** 是否禁用 */ - disabled: boolean; - /** - * 是否带 loading 图标 - * - * 默认为 false - */ - loading: boolean; - /** - * 用于 form 组件,点击分别会触发 form 组件的 submit / reset 事件 - * - * Submit 点击会触发 form 的 submit 事件 - * - * Reset 点击会触发 form 的 reset 事件 - * - * 没有默认值 - */ - formType: _ButtonFormType; - /** - * 开放能力 - * - * Feedback 打开“意见反馈”页面,用户可提交反馈内容并上传日志 - * - * Share 触发用户转发 - * - * GetUserInfo 获取用户信息,可以从 `@getuserinfo` 回调中获取到用户信息 - * - * Contact 打开客服会话,如果用户在会话中点击消息卡片后返回应用,可以从 `@contact` 回调中获得具体信息 - * - * GetPhoneNumber 获取用户手机号,可以从 `@getphonenumber` 回调中获取到用户信息 - * - * LaunchApp 小程序中打开APP,可以通过 `app-parameter` 属性设定向 APP 传的参数 - * - * OpenSetting 打开授权设置页 - * - * ChooseAvatar 获取用户头像,可以从 `@chooseavatar` 回调中获取到头像信息 - * - * GetAuthorize 支持小程序授权 - * - * Lifestyle 关注生活号 - * - * ContactShare 分享到通讯录好友 - * - * OpenGroupProfile 呼起 QQ 群资料卡页面,可以通过 group-id 属性设定需要打开的群资料卡的群号,同时 - * manifest.json 中必须配置 groupIdList - * - * OpenGuildProfile 呼起频道页面,可以通过 guild-id 属性设定需要打开的频道 ID - * - * OpenPublicProfile 打开公众号资料卡,可以通过 public-id 属性设定需要打开的公众号资料卡的号码,同时 - * manifest.json 中必须配置 publicIdList - * - * ShareMessageToFriend 在自定义开放数据域组件中,向指定好友发起分享 - * - * AddFriend 添加好友,对方需要通过该小程序进行授权,允许被加好友后才能调用成功用户授权 - * - * AddColorSign 添加彩签,点击后添加状态有用户提示,无回调 - * - * AddGroupApp 添加群应用(只有管理员或群主有权操作),添加后给 button 绑定 `@addgroupapp` 事件接收回调数据 - * - * AddToFavorites 收藏当前页面,点击按钮后会触发 Page.onAddToFavorites 方法 - * - * ChooseAddress 选择用户收货地址,可以从 `@chooseaddress` 回调中获取到用户选择的地址信息 - * - * ChooseInvoiceTitle 选择用户发票抬头,可以从 `@chooseinvoicetitle` 回调中获取到用户选择发票抬头信息 - * - * Login 登录,可以从 `@login` 回调中确认是否登录成功 - * - * Subscribe 订阅类模板消息,需要用户授权才可发送 - * - * Favorite 触发用户收藏 - * - * WatchLater 触发用户稍后再看 - * - * OpenProfile 触发打开用户主页 - */ - openType: _ButtonOpenType; - /** - * 指定按下去的样式类 - * - * 当 hover-class="none" 时,没有点击态效果 - * - * 默认为 button-hover - */ - hoverClass: string; - /** - * 按住后多久出现点击态 - * - * 单位为 ms - * - * 默认为 20 - */ - hoverStartTime: number; - /** - * 手指松开后点击态保留时间 - * - * 单位为 ms - * - * 默认为 70 - */ - hoverStayTime: number; - /** - * 打开 APP 时,向 APP 传递的参数 - * - * Open-type="launchApp" 时有效 - */ - appParameter: string; - /** - * 指定是否阻止本节点的祖先节点出现点击态 - * - * 默认为 false - */ - hoverStopPropagation: boolean; - /** - * 返回用户信息的语言 - * - * Zh_CN 简体中文 - * - * Zh_TW 繁体中文 - * - * En 英文 - * - * 默认为 en - */ - lang: _ButtonLang; - /** - * 会话来源 - * - * Open-type="contact" 时有效 - */ - sessionFrom: string; - /** - * 会话内消息卡片标题 - * - * Open-type="contact" 时有效 - * - * 默认为当前标题 - */ - sendMessageTitle: string; - /** - * 会话内消息卡片点击跳转小程序路径 - * - * Open-type="contact" 时有效 - * - * 默认为当前分享路径 - */ - sendMessagePath: string; - /** - * 会话内消息卡片图片 - * - * Open-type="contact" 时有效 - * - * 默认为截图 - */ - sendMessageImg: string; - /** - * 是否显示会话内消息卡片 - * - * 设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息 - * - * Open-type="contact" 时有效 - * - * 默认为 false - */ - showMessageCard: boolean; - /** - * 打开群资料卡时,传递的群号 - * - * Open-type="openGroupProfile" 时有效 - */ - groupId: string; - /** - * 打开频道页面时,传递的频道号 - * - * Open-type="openGuildProfile" 时有效 - */ - guildId: string; - /** - * 打开公众号资料卡时,传递的号码 - * - * Open-type="openPublicProfile" 时有效 - */ - publicId: string; - /** - * 获取用户手机号时回调 - * - * Open-type="getPhoneNumber" 时有效 - */ - onGetphonenumber: _ButtonOnGetphonenumber; - /** 使用开放能力发生错误时回调 */ - onError: _ButtonOnError; - /** - * 在打开授权设置页并关闭后回调 - * - * Open-type="openSetting" 时有效 - */ - onOpensetting: _ButtonOnOpensetting; - /** - * 从小程序成功打开 APP 回调 - * - * Open-type="launchApp" 时有效 - */ - onLaunchapp: _ButtonOnLaunchapp; - /** - * 获取用户头像回调 - * - * Open-type="chooseAvatar" 时有效 - */ - onChooseavatar: _ButtonOnChooseavatar; - /** - * 添加群应用回调 - * - * Open-type="addGroupApp" 时有效 - */ - onAddgroupapp: _ButtonOnAddgroupapp; - /** - * 用户编辑并选择收货地址回调 - * - * Open-type="chooseAddress" 时有效 - */ - onChooseaddress: _ButtonOnChooseaddress; - /** - * 用户选择发票抬头回调 - * - * Open-type="chooseInvoiceTitle" 时有效 - */ - onChooseinvoicetitle: _ButtonOnChooseinvoicetitle; - /** - * 订阅消息授权回调 - * - * Open-type="subscribe" 时有效 - */ - onSubscribe: _ButtonOnSubscribe; - /** - * 登录回调 - * - * Open-type="login" 时有效 - */ - onLogin: _ButtonOnLogin; - /** - * 用户同意隐私协议回调 - * - * Open-type="agreePrivacyAuthorization" 时有效 - */ - onAgreeprivacyauthorization: _ButtonOnAgreeprivacyauthorization; -}>; +type _ButtonProps = CommonProps & + Partial<{ + /** + * 按钮的大小 + * + * Default 默认 + * + * Mini 小 + * + * 默认为 default + */ + size: _ButtonSize; + /** + * 按钮的样式类型 + * + * Primary 微信小程序、360 小程序为绿色,APP、H5、百度小程序、支付宝小程序、飞书小程序、快应用为蓝色,字节跳动小程序为红色,QQ + * 小程序为浅蓝色 + * + * Default 白色 + * + * Warn 红色 + * + * 默认为 default + */ + type: _ButtonType; + /** + * 按钮是否镂空,背景色透明 + * + * 默认为 false + */ + plain: boolean; + /** 是否禁用 */ + disabled: boolean; + /** + * 是否带 loading 图标 + * + * 默认为 false + */ + loading: boolean; + /** + * 用于 form 组件,点击分别会触发 form 组件的 submit / reset 事件 + * + * Submit 点击会触发 form 的 submit 事件 + * + * Reset 点击会触发 form 的 reset 事件 + * + * 没有默认值 + */ + formType: _ButtonFormType; + /** + * 开放能力 + * + * Feedback 打开“意见反馈”页面,用户可提交反馈内容并上传日志 + * + * Share 触发用户转发 + * + * GetUserInfo 获取用户信息,可以从 `@getuserinfo` 回调中获取到用户信息 + * + * Contact 打开客服会话,如果用户在会话中点击消息卡片后返回应用,可以从 `@contact` 回调中获得具体信息 + * + * GetPhoneNumber 获取用户手机号,可以从 `@getphonenumber` 回调中获取到用户信息 + * + * LaunchApp 小程序中打开APP,可以通过 `app-parameter` 属性设定向 APP 传的参数 + * + * OpenSetting 打开授权设置页 + * + * ChooseAvatar 获取用户头像,可以从 `@chooseavatar` 回调中获取到头像信息 + * + * GetAuthorize 支持小程序授权 + * + * Lifestyle 关注生活号 + * + * ContactShare 分享到通讯录好友 + * + * OpenGroupProfile 呼起 QQ 群资料卡页面,可以通过 group-id 属性设定需要打开的群资料卡的群号,同时 + * manifest.json 中必须配置 groupIdList + * + * OpenGuildProfile 呼起频道页面,可以通过 guild-id 属性设定需要打开的频道 ID + * + * OpenPublicProfile 打开公众号资料卡,可以通过 public-id 属性设定需要打开的公众号资料卡的号码,同时 + * manifest.json 中必须配置 publicIdList + * + * ShareMessageToFriend 在自定义开放数据域组件中,向指定好友发起分享 + * + * AddFriend 添加好友,对方需要通过该小程序进行授权,允许被加好友后才能调用成功用户授权 + * + * AddColorSign 添加彩签,点击后添加状态有用户提示,无回调 + * + * AddGroupApp 添加群应用(只有管理员或群主有权操作),添加后给 button 绑定 `@addgroupapp` 事件接收回调数据 + * + * AddToFavorites 收藏当前页面,点击按钮后会触发 Page.onAddToFavorites 方法 + * + * ChooseAddress 选择用户收货地址,可以从 `@chooseaddress` 回调中获取到用户选择的地址信息 + * + * ChooseInvoiceTitle 选择用户发票抬头,可以从 `@chooseinvoicetitle` 回调中获取到用户选择发票抬头信息 + * + * Login 登录,可以从 `@login` 回调中确认是否登录成功 + * + * Subscribe 订阅类模板消息,需要用户授权才可发送 + * + * Favorite 触发用户收藏 + * + * WatchLater 触发用户稍后再看 + * + * OpenProfile 触发打开用户主页 + */ + openType: _ButtonOpenType; + /** + * 指定按下去的样式类 + * + * 当 hover-class="none" 时,没有点击态效果 + * + * 默认为 button-hover + */ + hoverClass: string; + /** + * 按住后多久出现点击态 + * + * 单位为 ms + * + * 默认为 20 + */ + hoverStartTime: number; + /** + * 手指松开后点击态保留时间 + * + * 单位为 ms + * + * 默认为 70 + */ + hoverStayTime: number; + /** + * 打开 APP 时,向 APP 传递的参数 + * + * Open-type="launchApp" 时有效 + */ + appParameter: string; + /** + * 指定是否阻止本节点的祖先节点出现点击态 + * + * 默认为 false + */ + hoverStopPropagation: boolean; + /** + * 返回用户信息的语言 + * + * Zh_CN 简体中文 + * + * Zh_TW 繁体中文 + * + * En 英文 + * + * 默认为 en + */ + lang: _ButtonLang; + /** + * 会话来源 + * + * Open-type="contact" 时有效 + */ + sessionFrom: string; + /** + * 会话内消息卡片标题 + * + * Open-type="contact" 时有效 + * + * 默认为当前标题 + */ + sendMessageTitle: string; + /** + * 会话内消息卡片点击跳转小程序路径 + * + * Open-type="contact" 时有效 + * + * 默认为当前分享路径 + */ + sendMessagePath: string; + /** + * 会话内消息卡片图片 + * + * Open-type="contact" 时有效 + * + * 默认为截图 + */ + sendMessageImg: string; + /** + * 是否显示会话内消息卡片 + * + * 设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息 + * + * Open-type="contact" 时有效 + * + * 默认为 false + */ + showMessageCard: boolean; + /** + * 打开群资料卡时,传递的群号 + * + * Open-type="openGroupProfile" 时有效 + */ + groupId: string; + /** + * 打开频道页面时,传递的频道号 + * + * Open-type="openGuildProfile" 时有效 + */ + guildId: string; + /** + * 打开公众号资料卡时,传递的号码 + * + * Open-type="openPublicProfile" 时有效 + */ + publicId: string; + /** + * 获取用户手机号时回调 + * + * Open-type="getPhoneNumber" 时有效 + */ + onGetphonenumber: _ButtonOnGetphonenumber; + /** 使用开放能力发生错误时回调 */ + onError: _ButtonOnError; + /** + * 在打开授权设置页并关闭后回调 + * + * Open-type="openSetting" 时有效 + */ + onOpensetting: _ButtonOnOpensetting; + /** + * 从小程序成功打开 APP 回调 + * + * Open-type="launchApp" 时有效 + */ + onLaunchapp: _ButtonOnLaunchapp; + /** + * 获取用户头像回调 + * + * Open-type="chooseAvatar" 时有效 + */ + onChooseavatar: _ButtonOnChooseavatar; + /** + * 添加群应用回调 + * + * Open-type="addGroupApp" 时有效 + */ + onAddgroupapp: _ButtonOnAddgroupapp; + /** + * 用户编辑并选择收货地址回调 + * + * Open-type="chooseAddress" 时有效 + */ + onChooseaddress: _ButtonOnChooseaddress; + /** + * 用户选择发票抬头回调 + * + * Open-type="chooseInvoiceTitle" 时有效 + */ + onChooseinvoicetitle: _ButtonOnChooseinvoicetitle; + /** + * 订阅消息授权回调 + * + * Open-type="subscribe" 时有效 + */ + onSubscribe: _ButtonOnSubscribe; + /** + * 登录回调 + * + * Open-type="login" 时有效 + */ + onLogin: _ButtonOnLogin; + /** + * 用户同意隐私协议回调 + * + * Open-type="agreePrivacyAuthorization" 时有效 + */ + onAgreeprivacyauthorization: _ButtonOnAgreeprivacyauthorization; + }>; /** 按钮 */ type _Button = DefineComponent<_ButtonProps>; diff --git a/packages/uni-app-types/src/form-components/checkbox-group.ts b/packages/uni-app-types/src/form-components/checkbox-group.ts index 35b8aa4..c90ceb9 100644 --- a/packages/uni-app-types/src/form-components/checkbox-group.ts +++ b/packages/uni-app-types/src/form-components/checkbox-group.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { CustomEvent } from "../events"; import type { CheckboxValue } from "./checkbox"; @@ -12,10 +13,11 @@ type _CheckboxGroupOnChangeEvent = CustomEvent<_CheckboxGroupOnChangeDetail>; type _CheckboxGroupOnChange = (event: _CheckboxGroupOnChangeEvent) => void; /** 多项选择器属性 */ -type _CheckboxGroupProps = Partial<{ - /** 选中项发生改变时触发 */ - onChange: _CheckboxGroupOnChange; -}>; +type _CheckboxGroupProps = CommonProps & + Partial<{ + /** 选中项发生改变时触发 */ + onChange: _CheckboxGroupOnChange; + }>; /** 多项选择器,内部由多个 checkbox 组成 */ type _CheckboxGroup = DefineComponent<_CheckboxGroupProps>; diff --git a/packages/uni-app-types/src/form-components/checkbox.ts b/packages/uni-app-types/src/form-components/checkbox.ts index 6be4b1d..0e6f3de 100644 --- a/packages/uni-app-types/src/form-components/checkbox.ts +++ b/packages/uni-app-types/src/form-components/checkbox.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** * 标识 @@ -8,30 +9,31 @@ import type { DefineComponent } from "vue"; type _CheckboxValue = string; /** 多选项目属性 */ -type _CheckboxProps = Partial<{ - /** 在 form 中作为 key */ - name: string; - /** - * 标识 - * - * 选中时触发 checkbox-group 的 change 事件并携带 value - */ - value: _CheckboxValue; - /** - * 是否禁用 - * - * 默认为 false - */ - disabled: boolean; - /** - * 当前是否选中,可用于设置默认选中 - * - * 默认为 false - */ - checked: boolean; - /** 颜色 */ - color: string; -}>; +type _CheckboxProps = CommonProps & + Partial<{ + /** 在 form 中作为 key */ + name: string; + /** + * 标识 + * + * 选中时触发 checkbox-group 的 change 事件并携带 value + */ + value: _CheckboxValue; + /** + * 是否禁用 + * + * 默认为 false + */ + disabled: boolean; + /** + * 当前是否选中,可用于设置默认选中 + * + * 默认为 false + */ + checked: boolean; + /** 颜色 */ + color: string; + }>; /** 多选项目 */ type _Checkbox = DefineComponent<_CheckboxProps>; diff --git a/packages/uni-app-types/src/form-components/editor.ts b/packages/uni-app-types/src/form-components/editor.ts index a038d13..fb5edf6 100644 --- a/packages/uni-app-types/src/form-components/editor.ts +++ b/packages/uni-app-types/src/form-components/editor.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; type _EditorOnReadyEvent = BaseEvent; @@ -45,44 +46,45 @@ type _EditorOnStatuschangeEvent = BaseEvent; type _EditorOnStatuschange = (event: _EditorOnStatuschangeEvent) => void; /** 编辑器属性 */ -type _EditorProps = Partial<{ - /** - * 是否只读 - * - * 默认为 false - */ - readOnly: boolean; - /** 提示信息 */ - placeholder: string; - /** - * 点击图片时是否显示图片大小控件 - * - * 默认为 false - */ - showImgSize: boolean; - /** - * 点击图片时是否显示工具栏控件 - * - * 默认为 false - */ - showImgToolbar: boolean; - /** - * 点击图片时是否显示修改尺寸控件 - * - * 默认为 false - */ - showImgResize: string; - /** 编辑器初始化完成时触发 */ - onReady: _EditorOnReady; - /** 编辑器聚焦时触发 */ - onFocus: _EditorOnFocus; - /** 编辑器失焦时触发 */ - onBlur: _EditorOnBlur; - /** 编辑器内容改变时触发 */ - onInput: _EditorOnInput; - /** 通过 Context 方法改变编辑器内样式时触发,返回选区已设置的样式 */ - onStatuschange: _EditorOnStatuschange; -}>; +type _EditorProps = CommonProps & + Partial<{ + /** + * 是否只读 + * + * 默认为 false + */ + readOnly: boolean; + /** 提示信息 */ + placeholder: string; + /** + * 点击图片时是否显示图片大小控件 + * + * 默认为 false + */ + showImgSize: boolean; + /** + * 点击图片时是否显示工具栏控件 + * + * 默认为 false + */ + showImgToolbar: boolean; + /** + * 点击图片时是否显示修改尺寸控件 + * + * 默认为 false + */ + showImgResize: string; + /** 编辑器初始化完成时触发 */ + onReady: _EditorOnReady; + /** 编辑器聚焦时触发 */ + onFocus: _EditorOnFocus; + /** 编辑器失焦时触发 */ + onBlur: _EditorOnBlur; + /** 编辑器内容改变时触发 */ + onInput: _EditorOnInput; + /** 通过 Context 方法改变编辑器内样式时触发,返回选区已设置的样式 */ + onStatuschange: _EditorOnStatuschange; + }>; /** * 富文本编辑器,可以对图片、文字进行编辑和混排 diff --git a/packages/uni-app-types/src/form-components/form.ts b/packages/uni-app-types/src/form-components/form.ts index c9cbb5c..3c3adfd 100644 --- a/packages/uni-app-types/src/form-components/form.ts +++ b/packages/uni-app-types/src/form-components/form.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; import type { CheckboxValue } from "./checkbox"; import type { InputValue } from "./input"; @@ -36,32 +37,33 @@ type _FormOnResetEvent = BaseEvent; type _FormOnReset = (event: _FormOnResetEvent) => void; /** 表单属性 */ -type _FormProps = Partial<{ - /** - * 是否返回 formId 用于发送模板消息 - * - * 默认为 false - */ - reportSubmit: boolean; - /** - * 等待一段时间以确认 formId 是否生效 - * - * 如果未指定这个参数,formId 有很小的概率无效(网络问题) - * - * 指定这个参数将可以检测 formId 是否有效,以这个参数的时间作为这项检测的超时时间 - * - * 如果无效,将返回 requestFormId:fail 开头的 formId - * - * 单位为 ms - * - * 默认为 0 - */ - reportSubmitTimeout: number; - /** 表单提交时触发 */ - onSubmit: _FormOnSubmit; - /** 表单重置时触发 */ - onReset: _FormOnReset; -}>; +type _FormProps = CommonProps & + Partial<{ + /** + * 是否返回 formId 用于发送模板消息 + * + * 默认为 false + */ + reportSubmit: boolean; + /** + * 等待一段时间以确认 formId 是否生效 + * + * 如果未指定这个参数,formId 有很小的概率无效(网络问题) + * + * 指定这个参数将可以检测 formId 是否有效,以这个参数的时间作为这项检测的超时时间 + * + * 如果无效,将返回 requestFormId:fail 开头的 formId + * + * 单位为 ms + * + * 默认为 0 + */ + reportSubmitTimeout: number; + /** 表单提交时触发 */ + onSubmit: _FormOnSubmit; + /** 表单重置时触发 */ + onReset: _FormOnReset; + }>; /** * 表单 diff --git a/packages/uni-app-types/src/form-components/input.ts b/packages/uni-app-types/src/form-components/input.ts index 9b999d6..fa40cfe 100644 --- a/packages/uni-app-types/src/form-components/input.ts +++ b/packages/uni-app-types/src/form-components/input.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { CustomEvent } from "../events"; /** 输入框的内容 */ @@ -141,227 +142,228 @@ type _InputOnKeyboardheightchange = ( ) => void; /** 输入框属性 */ -type _InputProps = Partial<{ - /** 在 form 中作为 key */ - name: string; - /** 输入框的初始内容 */ - value: _InputValue; - /** - * Input 类型 - * - * Text 文本输入键盘 - * - * Number 数字输入键盘 - * - * Idcard 身份证输入键盘 - * - * Digit 带小数点的数字键盘 - * - * Tel 电话输入键盘 - * - * Safe-password 密码安全输入键盘 - * - * Nickname 昵称输入键盘 - * - * 默认为 text - */ - type: _InputType; - /** - * 文本区域的语义,根据类型自动填充 - * - * OneTimeCode 一次性验证码 - */ - textContentType: _InputTextContentType; - /** - * 是否是密码类型 - * - * 默认为 false - */ - password: boolean; - /** 输入框为空时占位符 */ - placeholder: string; - /** 指定 placeholder 的样式 */ - placeholderStyle: string; - /** - * 指定 placeholder 的样式类 - * - * 默认为 input-placeholder - */ - placeholderClass: string; - /** - * 是否禁用 - * - * 默认为 false - */ - disabled: boolean; - /** - * 最大输入长度 - * - * 设置为 -1 的时候不限制最大长度 - * - * 默认为 140 - */ - maxlength: number; - /** - * 指定光标与键盘的距离 - * - * 取 input 距离底部的距离和 cursor-spacing 指定的距离的最小值作为光标与键盘的距离 - * - * 单位为 px - * - * 默认为 0 - */ - cursorSpacing: number; - /** - * 是否获取焦点 - * - * 默认为 false - */ - focus: boolean; - /** - * 是否自动聚焦,拉起键盘 - * - * 默认为 false - */ - autoFocus: boolean; - /** - * 设置键盘右下角按钮的文字 - * - * Send 发送 - * - * Search 搜索 - * - * Next 下一个 - * - * Go 前往 - * - * Type="text" 时有效 - * - * 默认为 done - * - * @decs done 完成 - */ - confirmType: _InputConfirmType; - /** - * 点击键盘右下角按钮时是否保持键盘不收起 - * - * 默认为 false - */ - confirmHold: boolean; - /** 指定 focus 时的光标位置 */ - cursor: number; - /** - * 光标起始位置,自动聚焦时有效,需与 selection-end 搭配使用 - * - * 默认为 -1 - */ - selectionStart: number; - /** - * 光标结束位置,自动聚焦时有效,需与 selection-start 搭配使用 - * - * 默认为 -1 - */ - selectionEnd: number; - /** - * 键盘弹起时,是否自动上推页面 - * - * 默认为 true - */ - adjustPosition: boolean; - /** - * 聚焦时,点击页面的时候是否不收起键盘 - * - * 默认为 false - */ - holdKeyboard: boolean; - /** - * 键盘收起时,是否自动失焦 - * - * 默认为 false - */ - autoBlur: boolean; - /** - * 是否忽略组件内对文本合成系统事件的处理 - * - * 为 false 时将触发 compositionstart、compositionend、compositionupdate - * 事件,且在文本合成期间会触发 input 事件 - * - * 默认为 true - */ - ignoreCompositionEvent: boolean; - /** - * 是否强制 input 处于同层状态,仅在 iOS 生效 - * - * 默认聚焦时 input 会切到非同层状态 - * - * 默认为 false - */ - alwaysEmbed: boolean; - /** 安全键盘加密公钥的路径,只支持包内路径 */ - safePasswordCertPath: string; - /** 安全键盘输入密码长度 */ - safePasswordLength: number; - /** 安全键盘加密时间戳 */ - safePasswordTimeStamp: number; - /** 安全键盘加密盐值 */ - safePasswordNonce: string; - /** 安全键盘计算 hash 盐值,若指定 custom-hash 则无效 */ - safePasswordSalt: string; - /** 安全键盘计算 hash 的算法表达式 */ - safePasswordCustomHash: string; - /** - * 当 type 为 number、digit、idcard 时,数字键盘是否随机排列 - * - * 默认为 false - */ - randomNumber: boolean; - /** - * 是否为受控组件 - * - * 为 true 时,value 内容会完全受 setData 控制 - * - * 默认为 false - */ - controlled: boolean; - /** - * 是否强制使用系统键盘和 Web-view 创建的 input 元素 - * - * 为 true 时,confirm-type、confirm-hold 可能失效 - * - * 默认为 false - */ - alwaysSystem: boolean; - /** - * 枚举属性,提供了用户在编辑元素或其内容时可能输入的数据类型的提示 - * - * None 无虚拟键盘,常用于实现自己的键盘输入控件 - * - * Text 使用用户本地区域设置的标准文本输入键盘 - * - * Decimal 小数输入键盘,包含数字和分隔符,减号键的显示与否因设备而异 - * - * Numeric 数字输入键盘,减号键的显示与否因设备而异 - * - * Tel 电话输入键盘,表单内电话输入框应使用 type="tel" - * - * Search 搜索输入键盘 - * - * Email 邮件地址输入键盘,表单内邮件地址输入框应使用 type="email" - * - * Url 网址输入键盘,表单内网址输入因 type="url" - */ - inputMode: _InputInputMode; - /** 输入时触发 */ - onInput: _InputOnInput; - /** 聚焦时触发 */ - onFocus: _InputOnFocus; - /** 失焦时触发 */ - onBlur: _InputOnBlur; - /** 点击完成按钮时触发 */ - onConfirm: _InputOnConfirm; - /** 键盘高度变化时触发 */ - onKeyboardheightchange: _InputOnKeyboardheightchange; -}>; +type _InputProps = CommonProps & + Partial<{ + /** 在 form 中作为 key */ + name: string; + /** 输入框的初始内容 */ + value: _InputValue; + /** + * Input 类型 + * + * Text 文本输入键盘 + * + * Number 数字输入键盘 + * + * Idcard 身份证输入键盘 + * + * Digit 带小数点的数字键盘 + * + * Tel 电话输入键盘 + * + * Safe-password 密码安全输入键盘 + * + * Nickname 昵称输入键盘 + * + * 默认为 text + */ + type: _InputType; + /** + * 文本区域的语义,根据类型自动填充 + * + * OneTimeCode 一次性验证码 + */ + textContentType: _InputTextContentType; + /** + * 是否是密码类型 + * + * 默认为 false + */ + password: boolean; + /** 输入框为空时占位符 */ + placeholder: string; + /** 指定 placeholder 的样式 */ + placeholderStyle: string; + /** + * 指定 placeholder 的样式类 + * + * 默认为 input-placeholder + */ + placeholderClass: string; + /** + * 是否禁用 + * + * 默认为 false + */ + disabled: boolean; + /** + * 最大输入长度 + * + * 设置为 -1 的时候不限制最大长度 + * + * 默认为 140 + */ + maxlength: number; + /** + * 指定光标与键盘的距离 + * + * 取 input 距离底部的距离和 cursor-spacing 指定的距离的最小值作为光标与键盘的距离 + * + * 单位为 px + * + * 默认为 0 + */ + cursorSpacing: number; + /** + * 是否获取焦点 + * + * 默认为 false + */ + focus: boolean; + /** + * 是否自动聚焦,拉起键盘 + * + * 默认为 false + */ + autoFocus: boolean; + /** + * 设置键盘右下角按钮的文字 + * + * Send 发送 + * + * Search 搜索 + * + * Next 下一个 + * + * Go 前往 + * + * Type="text" 时有效 + * + * 默认为 done + * + * @decs done 完成 + */ + confirmType: _InputConfirmType; + /** + * 点击键盘右下角按钮时是否保持键盘不收起 + * + * 默认为 false + */ + confirmHold: boolean; + /** 指定 focus 时的光标位置 */ + cursor: number; + /** + * 光标起始位置,自动聚焦时有效,需与 selection-end 搭配使用 + * + * 默认为 -1 + */ + selectionStart: number; + /** + * 光标结束位置,自动聚焦时有效,需与 selection-start 搭配使用 + * + * 默认为 -1 + */ + selectionEnd: number; + /** + * 键盘弹起时,是否自动上推页面 + * + * 默认为 true + */ + adjustPosition: boolean; + /** + * 聚焦时,点击页面的时候是否不收起键盘 + * + * 默认为 false + */ + holdKeyboard: boolean; + /** + * 键盘收起时,是否自动失焦 + * + * 默认为 false + */ + autoBlur: boolean; + /** + * 是否忽略组件内对文本合成系统事件的处理 + * + * 为 false 时将触发 compositionstart、compositionend、compositionupdate + * 事件,且在文本合成期间会触发 input 事件 + * + * 默认为 true + */ + ignoreCompositionEvent: boolean; + /** + * 是否强制 input 处于同层状态,仅在 iOS 生效 + * + * 默认聚焦时 input 会切到非同层状态 + * + * 默认为 false + */ + alwaysEmbed: boolean; + /** 安全键盘加密公钥的路径,只支持包内路径 */ + safePasswordCertPath: string; + /** 安全键盘输入密码长度 */ + safePasswordLength: number; + /** 安全键盘加密时间戳 */ + safePasswordTimeStamp: number; + /** 安全键盘加密盐值 */ + safePasswordNonce: string; + /** 安全键盘计算 hash 盐值,若指定 custom-hash 则无效 */ + safePasswordSalt: string; + /** 安全键盘计算 hash 的算法表达式 */ + safePasswordCustomHash: string; + /** + * 当 type 为 number、digit、idcard 时,数字键盘是否随机排列 + * + * 默认为 false + */ + randomNumber: boolean; + /** + * 是否为受控组件 + * + * 为 true 时,value 内容会完全受 setData 控制 + * + * 默认为 false + */ + controlled: boolean; + /** + * 是否强制使用系统键盘和 Web-view 创建的 input 元素 + * + * 为 true 时,confirm-type、confirm-hold 可能失效 + * + * 默认为 false + */ + alwaysSystem: boolean; + /** + * 枚举属性,提供了用户在编辑元素或其内容时可能输入的数据类型的提示 + * + * None 无虚拟键盘,常用于实现自己的键盘输入控件 + * + * Text 使用用户本地区域设置的标准文本输入键盘 + * + * Decimal 小数输入键盘,包含数字和分隔符,减号键的显示与否因设备而异 + * + * Numeric 数字输入键盘,减号键的显示与否因设备而异 + * + * Tel 电话输入键盘,表单内电话输入框应使用 type="tel" + * + * Search 搜索输入键盘 + * + * Email 邮件地址输入键盘,表单内邮件地址输入框应使用 type="email" + * + * Url 网址输入键盘,表单内网址输入因 type="url" + */ + inputMode: _InputInputMode; + /** 输入时触发 */ + onInput: _InputOnInput; + /** 聚焦时触发 */ + onFocus: _InputOnFocus; + /** 失焦时触发 */ + onBlur: _InputOnBlur; + /** 点击完成按钮时触发 */ + onConfirm: _InputOnConfirm; + /** 键盘高度变化时触发 */ + onKeyboardheightchange: _InputOnKeyboardheightchange; + }>; /** 输入框 */ type _Input = DefineComponent<_InputProps>; diff --git a/packages/uni-app-types/src/form-components/label.ts b/packages/uni-app-types/src/form-components/label.ts index fba8b43..333ed17 100644 --- a/packages/uni-app-types/src/form-components/label.ts +++ b/packages/uni-app-types/src/form-components/label.ts @@ -1,10 +1,12 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** 表单标签属性 */ -type _LabelProps = Partial<{ - /** 绑定控件的 id */ - for: string; -}>; +type _LabelProps = CommonProps & + Partial<{ + /** 绑定控件的 id */ + for: string; + }>; /** * 表单标签 diff --git a/packages/uni-app-types/src/form-components/picker-view-column.ts b/packages/uni-app-types/src/form-components/picker-view-column.ts index 938976a..fd7e07a 100644 --- a/packages/uni-app-types/src/form-components/picker-view-column.ts +++ b/packages/uni-app-types/src/form-components/picker-view-column.ts @@ -1,6 +1,7 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; -type _PickerViewColumnProps = Partial<{}>; +type _PickerViewColumnProps = CommonProps & Partial<{}>; type _PickerViewColumn = DefineComponent<_PickerViewColumnProps>; diff --git a/packages/uni-app-types/src/form-components/picker-view.ts b/packages/uni-app-types/src/form-components/picker-view.ts index 0812a73..6afdf89 100644 --- a/packages/uni-app-types/src/form-components/picker-view.ts +++ b/packages/uni-app-types/src/form-components/picker-view.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; type _PickerViewValueElement = number; @@ -25,36 +26,37 @@ type _PickerViewOnPickendEvent = BaseEvent; /** 滚动选择结束时触发 */ type _PickerViewOnPickend = (event: _PickerViewOnPickendEvent) => void; -type _PickerViewProps = Partial<{ - /** - * 依次表示 picker-view 内 picker-view-column 选择的下标 - * - * 超出 picker-view-column 可选项长度时,选择最后一项 - */ - value: _PickerViewValue; - /** 设置选择器中间选中框的样式 */ - indicatorStyle: string; - /** 设置选择器中间选中框的类名 */ - indicatorClass: string; - /** 设置蒙层的样式 */ - maskStyle: string; - /** 设置蒙层的类名 */ - maskClass: string; - /** - * 是否在手指松开时立即触发 change 事件 - * - * 若不开启则会在滚动动画结束后触发 change 事件 - * - * 默认为 false - */ - immediateChange: boolean; - /** Value 改变时触发 */ - onChange: _PickerViewOnChange; - /** 滚动选择开始时触发 */ - onPickstart: _PickerViewOnPickstart; - /** 滚动选择结束时触发 */ - onPickend: _PickerViewOnPickend; -}>; +type _PickerViewProps = CommonProps & + Partial<{ + /** + * 依次表示 picker-view 内 picker-view-column 选择的下标 + * + * 超出 picker-view-column 可选项长度时,选择最后一项 + */ + value: _PickerViewValue; + /** 设置选择器中间选中框的样式 */ + indicatorStyle: string; + /** 设置选择器中间选中框的类名 */ + indicatorClass: string; + /** 设置蒙层的样式 */ + maskStyle: string; + /** 设置蒙层的类名 */ + maskClass: string; + /** + * 是否在手指松开时立即触发 change 事件 + * + * 若不开启则会在滚动动画结束后触发 change 事件 + * + * 默认为 false + */ + immediateChange: boolean; + /** Value 改变时触发 */ + onChange: _PickerViewOnChange; + /** 滚动选择开始时触发 */ + onPickstart: _PickerViewOnPickstart; + /** 滚动选择结束时触发 */ + onPickend: _PickerViewOnPickend; + }>; /** 嵌入页面的滚动选择器,比 picker 更灵活 */ type _PickerView = DefineComponent<_PickerViewProps>; diff --git a/packages/uni-app-types/src/form-components/picker.ts b/packages/uni-app-types/src/form-components/picker.ts index 41ae976..a10e485 100644 --- a/packages/uni-app-types/src/form-components/picker.ts +++ b/packages/uni-app-types/src/form-components/picker.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** 需要展示的内容 */ @@ -24,46 +25,47 @@ type _SelectorPickerOnCancelEvent = BaseEvent; /** 取消选择时触发 */ type _SelectorPickerOnCancel = (event: _SelectorPickerOnCancelEvent) => void; -type _SelectorPickerProps = Partial<{ - /** 在 form 中作为 key */ - name: string; - /** 设置为普通选择器 */ - mode?: "selector"; - /** - * 需要展示的内容 - * - * 默认为 [] - */ - range: _SelectorPickerRange; - /** 当 range 是一个 Object Array 时,通过 range-key 来指定 Object 中 key 的值作为选择器显示内容 */ - rangeKey: string; - /** - * 当前选择的下标 - * - * 默认为 0 - */ - value: _SelectorPickerValue; - /** - * 大屏时 UI 类型,支持 picker、select、auto - * - * 默认在 iPad 以 picker 样式展示 - * - * 默认在 PC 以 select 样式展示 - * - * 默认为 auto - */ - selectorType: _SelectorPickerSelectorType; - /** - * 是否禁用 - * - * 默认为 false - */ - disabled: boolean; - /** Value 改变时触发 */ - onChange: _SelectorPickerOnChange; - /** 取消选择时触发 */ - onCancel: _SelectorPickerOnCancel; -}>; +type _SelectorPickerProps = CommonProps & + Partial<{ + /** 在 form 中作为 key */ + name: string; + /** 设置为普通选择器 */ + mode?: "selector"; + /** + * 需要展示的内容 + * + * 默认为 [] + */ + range: _SelectorPickerRange; + /** 当 range 是一个 Object Array 时,通过 range-key 来指定 Object 中 key 的值作为选择器显示内容 */ + rangeKey: string; + /** + * 当前选择的下标 + * + * 默认为 0 + */ + value: _SelectorPickerValue; + /** + * 大屏时 UI 类型,支持 picker、select、auto + * + * 默认在 iPad 以 picker 样式展示 + * + * 默认在 PC 以 select 样式展示 + * + * 默认为 auto + */ + selectorType: _SelectorPickerSelectorType; + /** + * 是否禁用 + * + * 默认为 false + */ + disabled: boolean; + /** Value 改变时触发 */ + onChange: _SelectorPickerOnChange; + /** 取消选择时触发 */ + onCancel: _SelectorPickerOnCancel; + }>; /** 需要展示的内容 */ type _MultiSelectorPickerRange = string[][] | Record[][]; diff --git a/packages/uni-app-types/src/form-components/radio-group.ts b/packages/uni-app-types/src/form-components/radio-group.ts index 9fc0f56..127dbd2 100644 --- a/packages/uni-app-types/src/form-components/radio-group.ts +++ b/packages/uni-app-types/src/form-components/radio-group.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { CustomEvent } from "../events"; import type { RadioValue } from "./radio"; @@ -12,10 +13,11 @@ type _RadioGroupOnChangeEvent = CustomEvent<_RadioGroupOnChangeDetail>; type _RadioGroupOnChange = (event: _RadioGroupOnChangeEvent) => void; /** 单项选择器属性 */ -type _RadioGroupProps = Partial<{ - /** 选中项发生变化时触发 */ - onChange: _RadioGroupOnChange; -}>; +type _RadioGroupProps = CommonProps & + Partial<{ + /** 选中项发生变化时触发 */ + onChange: _RadioGroupOnChange; + }>; /** * 单项选择器,内部由多个 radio 组成 diff --git a/packages/uni-app-types/src/form-components/radio.ts b/packages/uni-app-types/src/form-components/radio.ts index 4a36a5b..3474fa7 100644 --- a/packages/uni-app-types/src/form-components/radio.ts +++ b/packages/uni-app-types/src/form-components/radio.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** * 标识 @@ -8,30 +9,31 @@ import type { DefineComponent } from "vue"; type _RadioValue = string; /** 单选项目属性 */ -type _RadioProps = Partial<{ - /** 在 form 中作为 key */ - name: string; - /** - * 标识 - * - * 被选中时,radio-group 的 change 事件会携带该 value - */ - value: _RadioValue; - /** - * 当前是否选中 - * - * 默认为 false - */ - checked: boolean; - /** - * 是否禁用 - * - * 默认为 false - */ - disabled: boolean; - /** 颜色 */ - color: string; -}>; +type _RadioProps = CommonProps & + Partial<{ + /** 在 form 中作为 key */ + name: string; + /** + * 标识 + * + * 被选中时,radio-group 的 change 事件会携带该 value + */ + value: _RadioValue; + /** + * 当前是否选中 + * + * 默认为 false + */ + checked: boolean; + /** + * 是否禁用 + * + * 默认为 false + */ + disabled: boolean; + /** 颜色 */ + color: string; + }>; /** 单选项目 */ type _Radio = DefineComponent<_RadioProps>; diff --git a/packages/uni-app-types/src/form-components/slider.ts b/packages/uni-app-types/src/form-components/slider.ts index a052838..a5168ad 100644 --- a/packages/uni-app-types/src/form-components/slider.ts +++ b/packages/uni-app-types/src/form-components/slider.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { CustomEvent } from "../events"; /** 取值 */ @@ -23,76 +24,77 @@ type _SliderOnChangingEvent = CustomEvent<_SliderOnChangingDetail>; type _SliderOnChanging = (event: _SliderOnChangingEvent) => void; /** 滑动选择器属性 */ -type _SliderProps = Partial<{ - /** 在 form 中作为 key */ - name: string; - /** - * 最小值 - * - * 默认为 0 - */ - min: _SliderValue; - /** - * 最大值 - * - * 默认为 100 - */ - max: _SliderValue; - /** - * 步长,取值必须大于 0,并且可被 (max - min) 整除 - * - * 默认为 1 - */ - step: _SliderValue; - /** - * 是否禁用 - * - * 默认为 false - */ - disabled: boolean; - /** - * 当前取值 - * - * 默认为 0 - */ - value: _SliderValue; - /** - * 滑块左侧已选择部分的线条颜色 - * - * 默认为各平台默认色 - */ - activeColor: string; - /** - * 滑块右侧背景条的颜色 - * - * 默认为 #e9e9e9 - */ - backgroundColor: string; - /** - * 滑块的大小 - * - * 取值范围为 12 - 28 - * - * 默认为 28 - */ - blockSize: number; - /** - * 滑块的颜色 - * - * 默认为 #fff - */ - blockColor: string; - /** - * 是否显示当前 value - * - * 默认为 false - */ - showValue: boolean; - /** 完成一次拖动后触发 */ - onChange: _SliderOnChange; - /** 拖动过程中触发 */ - onChanging: _SliderOnChanging; -}>; +type _SliderProps = CommonProps & + Partial<{ + /** 在 form 中作为 key */ + name: string; + /** + * 最小值 + * + * 默认为 0 + */ + min: _SliderValue; + /** + * 最大值 + * + * 默认为 100 + */ + max: _SliderValue; + /** + * 步长,取值必须大于 0,并且可被 (max - min) 整除 + * + * 默认为 1 + */ + step: _SliderValue; + /** + * 是否禁用 + * + * 默认为 false + */ + disabled: boolean; + /** + * 当前取值 + * + * 默认为 0 + */ + value: _SliderValue; + /** + * 滑块左侧已选择部分的线条颜色 + * + * 默认为各平台默认色 + */ + activeColor: string; + /** + * 滑块右侧背景条的颜色 + * + * 默认为 #e9e9e9 + */ + backgroundColor: string; + /** + * 滑块的大小 + * + * 取值范围为 12 - 28 + * + * 默认为 28 + */ + blockSize: number; + /** + * 滑块的颜色 + * + * 默认为 #fff + */ + blockColor: string; + /** + * 是否显示当前 value + * + * 默认为 false + */ + showValue: boolean; + /** 完成一次拖动后触发 */ + onChange: _SliderOnChange; + /** 拖动过程中触发 */ + onChanging: _SliderOnChanging; + }>; /** 滑动选择器 */ type _Slider = DefineComponent<_SliderProps>; diff --git a/packages/uni-app-types/src/form-components/switch.ts b/packages/uni-app-types/src/form-components/switch.ts index 858976f..4e5a313 100644 --- a/packages/uni-app-types/src/form-components/switch.ts +++ b/packages/uni-app-types/src/form-components/switch.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { CustomEvent } from "../events"; /** 是否选中 */ @@ -17,28 +18,29 @@ type _SwitchOnChangeEvent = CustomEvent<_SwitchOnChangeDetail>; type _SwitchOnChange = (event: _SwitchOnChangeEvent) => void; /** 开关选择器属性 */ -type _SwitchProps = Partial<{ - /** 在 form 中作为 key */ - name: string; - /** - * 是否选中 - * - * 默认为 false - */ - checked: _SwitchChecked; - /** - * 是否禁用 - * - * 默认为 false - */ - disabled: boolean; - /** 样式 */ - type: _SwitchType; - /** 颜色 */ - color: string; - /** Checked 改变时触发 */ - onChange: _SwitchOnChange; -}>; +type _SwitchProps = CommonProps & + Partial<{ + /** 在 form 中作为 key */ + name: string; + /** + * 是否选中 + * + * 默认为 false + */ + checked: _SwitchChecked; + /** + * 是否禁用 + * + * 默认为 false + */ + disabled: boolean; + /** 样式 */ + type: _SwitchType; + /** 颜色 */ + color: string; + /** Checked 改变时触发 */ + onChange: _SwitchOnChange; + }>; /** 开关选择器 */ type _Switch = DefineComponent<_SwitchProps>; diff --git a/packages/uni-app-types/src/form-components/textarea.ts b/packages/uni-app-types/src/form-components/textarea.ts index b4c35b2..fd80c75 100644 --- a/packages/uni-app-types/src/form-components/textarea.ts +++ b/packages/uni-app-types/src/form-components/textarea.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { CustomEvent } from "../events"; /** 输入框内容 */ @@ -86,155 +87,156 @@ type _TextareaOnKeyboardheightchange = ( ) => void; /** 多行输入框属性 */ -type _TextareaProps = Partial<{ - /** 输入框的内容 */ - value: string; - /** 输入框为空时占位符 */ - placeholder: string; - /** 指定 placeholder 的样式 */ - placeholderStyle: string; - /** - * 指定 placeholder 的样式类 - * - * 默认为 textarea-placeholder - */ - placeholderClass: string; - /** - * 是否禁用 - * - * 默认为 false - */ - disabled: boolean; - /** - * 最大输入长度,设置为 -1 的时候不限制最大长度 - * - * 默认为 140 - */ - maxlength: number; - /** - * 是否获取焦点 - * - * 默认为 false - */ - focus: boolean; - /** - * 是否自动聚焦,拉起键盘 - * - * 默认为 false - */ - autoFocus: boolean; - /** - * 是否自动增高 - * - * 设置时,样式里的 height 不生效 - * - * 默认为 false - */ - autoHeight: boolean; - /** - * 如果 textarea 在 position: fixed 的区域内,需要指定为 true - * - * 默认为 false - */ - fixed: boolean; - /** - * 指定光标与键盘的距离 - * - * 取 textarea 距离底部的距离和 cursor-spacing 指定的距离的最小值作为光标与键盘的距离 - * - * 单位为 px - * - * 默认为 0 - */ - cursorSpacing: number; - /** 指定 focus 时的光标位置 */ - cursor: number; - /** - * 设置键盘右下角按钮的文字 - * - * Send 发送 - * - * Search 搜索 - * - * Next 下一个 - * - * Go 前往 - * - * Done 完成 - * - * 默认为 done - */ - confirmType: _TextareaConfirmType; - /** - * 点击键盘右下角按钮时是否保持键盘不收起 - * - * 默认为 false - */ - confirmHold: boolean; - /** - * 是否显示键盘上方带有”完成“按钮那一栏 - * - * 默认为 true - */ - showConfirmBar: boolean; - /** - * 光标起始位置,自动聚焦时有效,需与 selection-end 搭配使用 - * - * 默认为 -1 - */ - selectionStart: number; - /** - * 光标结束位置,自动聚焦时有效,需与 selection-start 搭配使用 - * - * 默认为 -1 - */ - selectionEnd: number; - /** - * 键盘弹起时,是否自动上推页面 - * - * 默认为 true - */ - adjustPosition: boolean; - /** - * 是否去掉 iOS 下的默认内边距 - * - * 默认为 false - */ - disableDefaultPadding: boolean; - /** - * 聚焦时点击页面的时候是否不收起键盘 - * - * 默认为 false - */ - holdKeyboard: boolean; - /** - * 键盘收起时是否自动失焦 - * - * 默认为 false - */ - autoBlur: boolean; - /** - * 是否忽略组件内对文本合成系统事件的处理 - * - * 为 false 时将触发 compositionstart、compositionend、compositionupdate - * 事件,且在文本合成期间会触发 input 事件 - * - * 默认为 true - */ - ignoreCompositionEvent: boolean; - /** 聚焦时触发 */ - onFocus: _TextareaOnFocus; - /** 失焦时触发 */ - onBlur: _TextareaOnBlur; - /** 输入框行数变化时触发 */ - onLinechange: _TextareaOnLinechange; - /** 输入时触发 */ - onInput: _TextareaOnInput; - /** 点击完成按钮时触发 */ - onConfirm: _TextareaOnConfirm; - /** 键盘高度变化时触发 */ - onKeyboardheightchange: _TextareaOnKeyboardheightchange; -}>; +type _TextareaProps = CommonProps & + Partial<{ + /** 输入框的内容 */ + value: string; + /** 输入框为空时占位符 */ + placeholder: string; + /** 指定 placeholder 的样式 */ + placeholderStyle: string; + /** + * 指定 placeholder 的样式类 + * + * 默认为 textarea-placeholder + */ + placeholderClass: string; + /** + * 是否禁用 + * + * 默认为 false + */ + disabled: boolean; + /** + * 最大输入长度,设置为 -1 的时候不限制最大长度 + * + * 默认为 140 + */ + maxlength: number; + /** + * 是否获取焦点 + * + * 默认为 false + */ + focus: boolean; + /** + * 是否自动聚焦,拉起键盘 + * + * 默认为 false + */ + autoFocus: boolean; + /** + * 是否自动增高 + * + * 设置时,样式里的 height 不生效 + * + * 默认为 false + */ + autoHeight: boolean; + /** + * 如果 textarea 在 position: fixed 的区域内,需要指定为 true + * + * 默认为 false + */ + fixed: boolean; + /** + * 指定光标与键盘的距离 + * + * 取 textarea 距离底部的距离和 cursor-spacing 指定的距离的最小值作为光标与键盘的距离 + * + * 单位为 px + * + * 默认为 0 + */ + cursorSpacing: number; + /** 指定 focus 时的光标位置 */ + cursor: number; + /** + * 设置键盘右下角按钮的文字 + * + * Send 发送 + * + * Search 搜索 + * + * Next 下一个 + * + * Go 前往 + * + * Done 完成 + * + * 默认为 done + */ + confirmType: _TextareaConfirmType; + /** + * 点击键盘右下角按钮时是否保持键盘不收起 + * + * 默认为 false + */ + confirmHold: boolean; + /** + * 是否显示键盘上方带有”完成“按钮那一栏 + * + * 默认为 true + */ + showConfirmBar: boolean; + /** + * 光标起始位置,自动聚焦时有效,需与 selection-end 搭配使用 + * + * 默认为 -1 + */ + selectionStart: number; + /** + * 光标结束位置,自动聚焦时有效,需与 selection-start 搭配使用 + * + * 默认为 -1 + */ + selectionEnd: number; + /** + * 键盘弹起时,是否自动上推页面 + * + * 默认为 true + */ + adjustPosition: boolean; + /** + * 是否去掉 iOS 下的默认内边距 + * + * 默认为 false + */ + disableDefaultPadding: boolean; + /** + * 聚焦时点击页面的时候是否不收起键盘 + * + * 默认为 false + */ + holdKeyboard: boolean; + /** + * 键盘收起时是否自动失焦 + * + * 默认为 false + */ + autoBlur: boolean; + /** + * 是否忽略组件内对文本合成系统事件的处理 + * + * 为 false 时将触发 compositionstart、compositionend、compositionupdate + * 事件,且在文本合成期间会触发 input 事件 + * + * 默认为 true + */ + ignoreCompositionEvent: boolean; + /** 聚焦时触发 */ + onFocus: _TextareaOnFocus; + /** 失焦时触发 */ + onBlur: _TextareaOnBlur; + /** 输入框行数变化时触发 */ + onLinechange: _TextareaOnLinechange; + /** 输入时触发 */ + onInput: _TextareaOnInput; + /** 点击完成按钮时触发 */ + onConfirm: _TextareaOnConfirm; + /** 键盘高度变化时触发 */ + onKeyboardheightchange: _TextareaOnKeyboardheightchange; + }>; /** 多行输入框 */ type _Textarea = DefineComponent<_TextareaProps>; diff --git a/packages/uni-app-types/src/map/index.ts b/packages/uni-app-types/src/map/index.ts index 9ccc8cf..be79dc6 100644 --- a/packages/uni-app-types/src/map/index.ts +++ b/packages/uni-app-types/src/map/index.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** 显示方式 */ @@ -553,160 +554,161 @@ type _MapOnPoitapEvent = CustomEvent<_MapOnPoitapDetail>; type _MapOnPoitap = (event: _MapOnPoitapEvent) => void; /** 地图属性 */ -type _MapProps = Partial<{ - /** - * 中心纬度 - * - * 取值范围为 -90 - 90 - */ - latitude: _MapLatitude; - /** - * 中心经度 - * - * 取值范围为 -180 - 180 - */ - longitude: _MapLongitude; - /** - * 缩放级别 - * - * 默认为 16 - */ - scale: number; - /** - * 主题 - * - * 只在初始化时有效,不能动态变更 - * - * 仅 Android 支持 - * - * Normal 正常 - * - * Satellite 卫星图 - * - * 默认为 normal - */ - theme: _MapTheme; - /** - * 最小缩放级别 - * - * 默认为 3 - */ - minScale: number; - /** - * 最大缩放级别 - * - * 默认为 20 - */ - maxScale: number; - /** - * 个性化地图配置的 style,不支持动态修改 - * - * 默认为 1 - */ - layerStyle: string | number; - /** 标记点数组 */ - markers: _MapMarker[]; - /** 路线 */ - polyline: _MapPolyline[]; - /** 圆 */ - circles: _MapCircle[]; - /** 控件 */ - controls: _MapControl[]; - /** 缩放视野以包含所有给定的坐标点 */ - includePoints: _MapPoint[]; - /** - * 是否显示 3D 楼块 - * - * 默认为 false - */ - enable3D: boolean; - /** - * 是否显示指南针 - * - * 默认为 false - */ - showCompass: boolean; - /** - * 是否支持缩放 - * - * 默认为 true - */ - enableZoom: boolean; - /** - * 是否支持拖动 - * - * 默认为 true - */ - enableScroll: boolean; - /** - * 是否支持旋转 - * - * 默认为 false - */ - enableRotate: boolean; - /** - * 是否开启俯视 - * - * 默认为 false - */ - enableOverlooking: boolean; - /** - * 是否开启卫星图 - * - * 默认为 false - */ - enableSatellite: boolean; - /** - * 是否开启实时路况 - * - * 默认为 false - */ - enableTraffic: boolean; - /** - * 是否展示 POI 点 - * - * 默认为 false - */ - enablePoi: boolean; - /** - * 是否展示建筑物 - * - * 默认为 false - */ - enableBuilding: boolean; - /** - * 是否显示带有方向的当前定位点 - * - * 默认为 false - */ - showLocation: boolean; - /** 多边形 */ - polygons: _MapPolygon[]; - /** - * 是否展示室内地图 - * - * 默认为 false - */ - enableIndoorMap: boolean; - /** 点击标记点时触发 */ - onMarkertap: _MapOnMarkertap; - /** 点击 label 时触发 */ - onLabeltap: _MapOnLabeltap; - /** 点击标记点对应的气泡时触发 */ - onCallouttap: _MapOnCallouttap; - /** 点击控件时触发 */ - onControltap: _MapOnControltap; - /** 视野发生变化时触发 */ - onRegionchange: _MapOnRegionchange; - /** 点击地图时触发 */ - onTap: _MapOnTap; - /** 地图渲染更新完成时触发 */ - onUpdated: _MapOnUpdated; - /** 点击定位标时触发 */ - onAnchorpointtap: _MapOnAnchorpointtap; - /** 点击地图 poi 点时触发 */ - onPoitap: _MapOnPoitap; -}>; +type _MapProps = CommonProps & + Partial<{ + /** + * 中心纬度 + * + * 取值范围为 -90 - 90 + */ + latitude: _MapLatitude; + /** + * 中心经度 + * + * 取值范围为 -180 - 180 + */ + longitude: _MapLongitude; + /** + * 缩放级别 + * + * 默认为 16 + */ + scale: number; + /** + * 主题 + * + * 只在初始化时有效,不能动态变更 + * + * 仅 Android 支持 + * + * Normal 正常 + * + * Satellite 卫星图 + * + * 默认为 normal + */ + theme: _MapTheme; + /** + * 最小缩放级别 + * + * 默认为 3 + */ + minScale: number; + /** + * 最大缩放级别 + * + * 默认为 20 + */ + maxScale: number; + /** + * 个性化地图配置的 style,不支持动态修改 + * + * 默认为 1 + */ + layerStyle: string | number; + /** 标记点数组 */ + markers: _MapMarker[]; + /** 路线 */ + polyline: _MapPolyline[]; + /** 圆 */ + circles: _MapCircle[]; + /** 控件 */ + controls: _MapControl[]; + /** 缩放视野以包含所有给定的坐标点 */ + includePoints: _MapPoint[]; + /** + * 是否显示 3D 楼块 + * + * 默认为 false + */ + enable3D: boolean; + /** + * 是否显示指南针 + * + * 默认为 false + */ + showCompass: boolean; + /** + * 是否支持缩放 + * + * 默认为 true + */ + enableZoom: boolean; + /** + * 是否支持拖动 + * + * 默认为 true + */ + enableScroll: boolean; + /** + * 是否支持旋转 + * + * 默认为 false + */ + enableRotate: boolean; + /** + * 是否开启俯视 + * + * 默认为 false + */ + enableOverlooking: boolean; + /** + * 是否开启卫星图 + * + * 默认为 false + */ + enableSatellite: boolean; + /** + * 是否开启实时路况 + * + * 默认为 false + */ + enableTraffic: boolean; + /** + * 是否展示 POI 点 + * + * 默认为 false + */ + enablePoi: boolean; + /** + * 是否展示建筑物 + * + * 默认为 false + */ + enableBuilding: boolean; + /** + * 是否显示带有方向的当前定位点 + * + * 默认为 false + */ + showLocation: boolean; + /** 多边形 */ + polygons: _MapPolygon[]; + /** + * 是否展示室内地图 + * + * 默认为 false + */ + enableIndoorMap: boolean; + /** 点击标记点时触发 */ + onMarkertap: _MapOnMarkertap; + /** 点击 label 时触发 */ + onLabeltap: _MapOnLabeltap; + /** 点击标记点对应的气泡时触发 */ + onCallouttap: _MapOnCallouttap; + /** 点击控件时触发 */ + onControltap: _MapOnControltap; + /** 视野发生变化时触发 */ + onRegionchange: _MapOnRegionchange; + /** 点击地图时触发 */ + onTap: _MapOnTap; + /** 地图渲染更新完成时触发 */ + onUpdated: _MapOnUpdated; + /** 点击定位标时触发 */ + onAnchorpointtap: _MapOnAnchorpointtap; + /** 点击地图 poi 点时触发 */ + onPoitap: _MapOnPoitap; + }>; /** 地图组件,用于展示地图 */ type _Map = DefineComponent<_MapProps>; diff --git a/packages/uni-app-types/src/media-components/audio.ts b/packages/uni-app-types/src/media-components/audio.ts index d2881b4..b5a7d71 100644 --- a/packages/uni-app-types/src/media-components/audio.ts +++ b/packages/uni-app-types/src/media-components/audio.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; interface _AudioOnErrorDetail { @@ -47,56 +48,57 @@ type _AudioOnEndedEvent = BaseEvent; type _AudioOnEnded = (event: _AudioOnEndedEvent) => void; /** 音频属性 */ -type _AudioProps = Partial<{ - /** Audio 组件的唯一标识符 */ - id: string; - /** 要播放音频的资源地址 */ - src: string; - /** - * 是否循环播放 - * - * 默认为 false - */ - loop: boolean; - /** - * 是否显示默认控件 - * - * 默认为 false - */ - controls: boolean; - /** - * 默认控件上的音频封面的图片资源地址 - * - * 如果 controls 值为 false 则无效 - */ - poster: string; - /** - * 默认控件上的音频名字 - * - * 如果 controls 值为 false 则无效 - * - * 默认为“未知音频” - */ - name: string; - /** - * 默认控件上的作者名字 - * - * 如果 controls 值为 false 则无效 - * - * 默认为“未知作者” - */ - author: string; - /** 发生错误时触发 */ - onError: _AudioOnError; - /** 开始/继续播放时触发 */ - onPlay: _AudioOnPlay; - /** 暂停播放时触发 */ - onPause: _AudioOnPause; - /** 播放进度改变时触发 */ - onTimeupdate: _AudioOnTimeupdate; - /** 播放到末尾时触发 */ - onEnded: _AudioOnEnded; -}>; +type _AudioProps = CommonProps & + Partial<{ + /** Audio 组件的唯一标识符 */ + id: string; + /** 要播放音频的资源地址 */ + src: string; + /** + * 是否循环播放 + * + * 默认为 false + */ + loop: boolean; + /** + * 是否显示默认控件 + * + * 默认为 false + */ + controls: boolean; + /** + * 默认控件上的音频封面的图片资源地址 + * + * 如果 controls 值为 false 则无效 + */ + poster: string; + /** + * 默认控件上的音频名字 + * + * 如果 controls 值为 false 则无效 + * + * 默认为“未知音频” + */ + name: string; + /** + * 默认控件上的作者名字 + * + * 如果 controls 值为 false 则无效 + * + * 默认为“未知作者” + */ + author: string; + /** 发生错误时触发 */ + onError: _AudioOnError; + /** 开始/继续播放时触发 */ + onPlay: _AudioOnPlay; + /** 暂停播放时触发 */ + onPause: _AudioOnPause; + /** 播放进度改变时触发 */ + onTimeupdate: _AudioOnTimeupdate; + /** 播放到末尾时触发 */ + onEnded: _AudioOnEnded; + }>; /** 音频 */ type _Audio = DefineComponent<_AudioProps>; diff --git a/packages/uni-app-types/src/media-components/camera.ts b/packages/uni-app-types/src/media-components/camera.ts index 5164777..d4a44e9 100644 --- a/packages/uni-app-types/src/media-components/camera.ts +++ b/packages/uni-app-types/src/media-components/camera.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** @@ -83,78 +84,79 @@ type _CameraOnScancodeEvent = BaseEvent; type _CameraOnScancode = (event: _CameraOnScancodeEvent) => void; /** 页面内嵌的区域相机组件属性 */ -type _CameraProps = Partial<{ - /** - * 应用模式,不支持动态修改 - * - * Normal 普通 - * - * ScanCode 扫码 - * - * 默认为 normal - */ - mode: _CameraMode; - /** - * 分辨率,不支持动态修改 - * - * Low 低 - * - * Medium 中等 - * - * High 高 - * - * 默认为 medium - */ - resolution: _CameraResolution; - /** - * 摄像头朝向 - * - * Front 前置摄像头 - * - * Back 后置摄像头 - * - * 默认为 back - */ - devicePosition: _CameraDevicePosition; - /** - * 闪光灯 - * - * Auto 自动 - * - * On 打开 - * - * Off 关闭 - * - * Torch 常亮 - * - * 默认为 auto - */ - flash: _CameraFlash; - /** - * 期望的相机帧数据尺寸 - * - * Small 小 - * - * Medium 中 - * - * Large 大 - * - * 默认为 medium - */ - frameSize: _CameraFrameSize; - /** 摄像头在非正常终止时触发 */ - onStop: _CameraOnStop; - /** 用户不允许使用摄像头时触发 */ - onError: _CameraOnError; - /** 相机初始化完成时触发 */ - onInitdone: _CameraOnInitdone; - /** - * 扫码识别成功时触发 - * - * Mode="scanCode" 时有效 - */ - onScancode: _CameraOnScancode; -}>; +type _CameraProps = CommonProps & + Partial<{ + /** + * 应用模式,不支持动态修改 + * + * Normal 普通 + * + * ScanCode 扫码 + * + * 默认为 normal + */ + mode: _CameraMode; + /** + * 分辨率,不支持动态修改 + * + * Low 低 + * + * Medium 中等 + * + * High 高 + * + * 默认为 medium + */ + resolution: _CameraResolution; + /** + * 摄像头朝向 + * + * Front 前置摄像头 + * + * Back 后置摄像头 + * + * 默认为 back + */ + devicePosition: _CameraDevicePosition; + /** + * 闪光灯 + * + * Auto 自动 + * + * On 打开 + * + * Off 关闭 + * + * Torch 常亮 + * + * 默认为 auto + */ + flash: _CameraFlash; + /** + * 期望的相机帧数据尺寸 + * + * Small 小 + * + * Medium 中 + * + * Large 大 + * + * 默认为 medium + */ + frameSize: _CameraFrameSize; + /** 摄像头在非正常终止时触发 */ + onStop: _CameraOnStop; + /** 用户不允许使用摄像头时触发 */ + onError: _CameraOnError; + /** 相机初始化完成时触发 */ + onInitdone: _CameraOnInitdone; + /** + * 扫码识别成功时触发 + * + * Mode="scanCode" 时有效 + */ + onScancode: _CameraOnScancode; + }>; /** 页面内嵌的区域相机组件 */ type _Camera = DefineComponent<_CameraProps>; diff --git a/packages/uni-app-types/src/media-components/image.ts b/packages/uni-app-types/src/media-components/image.ts index 6892d5e..07dc8fe 100644 --- a/packages/uni-app-types/src/media-components/image.ts +++ b/packages/uni-app-types/src/media-components/image.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** @@ -74,80 +75,81 @@ type _ImageOnLoadEvent = CustomEvent<_ImageOnLoadDetail>; type _ImageOnLoad = (event: _ImageOnLoadEvent) => void; /** 图片属性 */ -type _ImageProps = Partial<{ - /** 图片资源地址 */ - src: string; - /** - * 图片裁剪、缩放的模式 - * - * ScaleToFill 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素 - * - * AspectFit 保持纵横比缩放图片,使图片的长边能完全显示出来,可以完整地将图片显示出来 - * - * AspectFill 保持纵横比缩放图片,只保证图片的短边能完全显示出来,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取 - * - * WidthFix 宽度不变,高度自动变化,保持原图宽高比不变 - * - * HeightFix 高度不变,宽度自动变化,保持原图宽高比不变 - * - * Top 不缩放图片,只显示图片的顶部区域 - * - * Bottom 不缩放图片,只显示图片的底部区域 - * - * Center 不缩放图片,只显示图片的中间区域 - * - * Left 不缩放图片,只显示图片的左边区域 - * - * Right 不缩放图片,只显示图片的右边区域 - * - * Top left 不缩放图片,只显示图片的左上边区域 - * - * Top right 不缩放图片,只显示图片的右上边区域 - * - * Bottom left 不缩放图片,只显示图片的左下边区域 - * - * Bottom right 不缩放图片,只显示图片的右下边区域 - * - * 默认为 scaleToFill - */ - mode: _ImageMode; - /** - * 是否开启图片懒加载 - * - * 只对 page 与 scroll-view 下的 image 有效 - * - * 默认为 false - */ - lazyLoad: boolean; - /** - * 是否使用图片显示动画效果 - * - * 默认为 true - */ - fadeShow: boolean; - /** - * 在系统不支持 webp 的情况下是否单独启用 webp - * - * 默认为 false - */ - webp: boolean; - /** - * 是否开启长按图片显示识别小程序码菜单 - * - * 默认为 false - */ - showMenuByLongpress: boolean; - /** - * 是否能拖动图片 - * - * 默认为 true - */ - draggable: boolean; - /** 图片加载错误时触发 */ - onError: _ImageOnError; - /** 图片加载完毕时触发 */ - onLoad: _ImageOnLoad; -}>; +type _ImageProps = CommonProps & + Partial<{ + /** 图片资源地址 */ + src: string; + /** + * 图片裁剪、缩放的模式 + * + * ScaleToFill 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素 + * + * AspectFit 保持纵横比缩放图片,使图片的长边能完全显示出来,可以完整地将图片显示出来 + * + * AspectFill 保持纵横比缩放图片,只保证图片的短边能完全显示出来,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取 + * + * WidthFix 宽度不变,高度自动变化,保持原图宽高比不变 + * + * HeightFix 高度不变,宽度自动变化,保持原图宽高比不变 + * + * Top 不缩放图片,只显示图片的顶部区域 + * + * Bottom 不缩放图片,只显示图片的底部区域 + * + * Center 不缩放图片,只显示图片的中间区域 + * + * Left 不缩放图片,只显示图片的左边区域 + * + * Right 不缩放图片,只显示图片的右边区域 + * + * Top left 不缩放图片,只显示图片的左上边区域 + * + * Top right 不缩放图片,只显示图片的右上边区域 + * + * Bottom left 不缩放图片,只显示图片的左下边区域 + * + * Bottom right 不缩放图片,只显示图片的右下边区域 + * + * 默认为 scaleToFill + */ + mode: _ImageMode; + /** + * 是否开启图片懒加载 + * + * 只对 page 与 scroll-view 下的 image 有效 + * + * 默认为 false + */ + lazyLoad: boolean; + /** + * 是否使用图片显示动画效果 + * + * 默认为 true + */ + fadeShow: boolean; + /** + * 在系统不支持 webp 的情况下是否单独启用 webp + * + * 默认为 false + */ + webp: boolean; + /** + * 是否开启长按图片显示识别小程序码菜单 + * + * 默认为 false + */ + showMenuByLongpress: boolean; + /** + * 是否能拖动图片 + * + * 默认为 true + */ + draggable: boolean; + /** 图片加载错误时触发 */ + onError: _ImageOnError; + /** 图片加载完毕时触发 */ + onLoad: _ImageOnLoad; + }>; /** 图片 */ type _Image = DefineComponent<_ImageProps>; diff --git a/packages/uni-app-types/src/media-components/live-player.ts b/packages/uni-app-types/src/media-components/live-player.ts index 6f5991f..57c6d83 100644 --- a/packages/uni-app-types/src/media-components/live-player.ts +++ b/packages/uni-app-types/src/media-components/live-player.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** @@ -290,102 +291,103 @@ type _LivePlayerOnLeavepictureinpicture = ( ) => void; /** 实时音视频播放(直播拉流)属性 */ -type _LivePlayerProps = Partial<{ - /** 唯一标志符 */ - id: string; - /** 音视频地址 */ - src: string; - /** - * 实时模式 - * - * RTC 实时通话,该模式时延更低 - * - * 默认为 live - * - * @dec live 直播 - */ - mode: _LivePlayerMode; - /** - * 是否自动播放 - * - * 默认为 false - */ - autoplay: boolean; - /** - * 是否静音 - * - * 默认为 false - */ - muted: boolean; - /** - * 画面方向 - * - * Vertical 纵向 - * - * Horizontal 横向 - * - * 默认为 vertical - */ - orientation: _LivePlayerOrientation; - /** - * 填充模式 - * - * Contain 图像长边填满屏幕,短边区域会被填充⿊⾊ - * - * FillCrop 图像铺满屏幕,超出显示区域的部分将被截掉 - * - * 默认为 contain - */ - objectFit: _LivePlayerObjectFit; - /** - * 进入后台时是否静音 - * - * 默认为 false - */ - backgroundMute: boolean; - /** - * 声音输出方式 - * - * Speaker 扬声器 - * - * Ear 听筒 - * - * 默认为 speaker - */ - soundMode: _LivePlayerSoundMode; - /** - * 最小缓冲区 - * - * 单位为 s - * - * 默认为 1 - */ - minCache: number; - /** - * 最大缓冲区 - * - * 单位为 s - * - * 默认为 3 - */ - maxCache: number; - /** 设置小窗模式,空字符串或通过数组形式设置多种模式 */ - pictureInPictureMode: - | _LivePlayerPictureInPictureMode - | _LivePlayerPictureInPictureMode[]; - /** 播放状态变化时触发 */ - onStatechange: _LivePlayerOnStatechange; - /** 网络状态变化时触发 */ - onNetstatus: _LivePlayerOnNetstatus; - /** 全屏变化时触发 */ - onFullscreenchange: _LivePlayerOnFullscreenchange; - /** 播放音量变化时触发 */ - onAudiovolumenotify: _LivePlayerOnAudiovolumenotify; - /** 播放器进入小窗时触发 */ - onEnterpictureinpicture: _LivePlayerOnEnterpictureinpicture; - /** 播放器退出小窗时触发 */ - onLeavepictureinpicture: _LivePlayerOnLeavepictureinpicture; -}>; +type _LivePlayerProps = CommonProps & + Partial<{ + /** 唯一标志符 */ + id: string; + /** 音视频地址 */ + src: string; + /** + * 实时模式 + * + * RTC 实时通话,该模式时延更低 + * + * 默认为 live + * + * @dec live 直播 + */ + mode: _LivePlayerMode; + /** + * 是否自动播放 + * + * 默认为 false + */ + autoplay: boolean; + /** + * 是否静音 + * + * 默认为 false + */ + muted: boolean; + /** + * 画面方向 + * + * Vertical 纵向 + * + * Horizontal 横向 + * + * 默认为 vertical + */ + orientation: _LivePlayerOrientation; + /** + * 填充模式 + * + * Contain 图像长边填满屏幕,短边区域会被填充⿊⾊ + * + * FillCrop 图像铺满屏幕,超出显示区域的部分将被截掉 + * + * 默认为 contain + */ + objectFit: _LivePlayerObjectFit; + /** + * 进入后台时是否静音 + * + * 默认为 false + */ + backgroundMute: boolean; + /** + * 声音输出方式 + * + * Speaker 扬声器 + * + * Ear 听筒 + * + * 默认为 speaker + */ + soundMode: _LivePlayerSoundMode; + /** + * 最小缓冲区 + * + * 单位为 s + * + * 默认为 1 + */ + minCache: number; + /** + * 最大缓冲区 + * + * 单位为 s + * + * 默认为 3 + */ + maxCache: number; + /** 设置小窗模式,空字符串或通过数组形式设置多种模式 */ + pictureInPictureMode: + | _LivePlayerPictureInPictureMode + | _LivePlayerPictureInPictureMode[]; + /** 播放状态变化时触发 */ + onStatechange: _LivePlayerOnStatechange; + /** 网络状态变化时触发 */ + onNetstatus: _LivePlayerOnNetstatus; + /** 全屏变化时触发 */ + onFullscreenchange: _LivePlayerOnFullscreenchange; + /** 播放音量变化时触发 */ + onAudiovolumenotify: _LivePlayerOnAudiovolumenotify; + /** 播放器进入小窗时触发 */ + onEnterpictureinpicture: _LivePlayerOnEnterpictureinpicture; + /** 播放器退出小窗时触发 */ + onLeavepictureinpicture: _LivePlayerOnLeavepictureinpicture; + }>; /** 实时音视频播放(直播拉流) */ type _LivePlayer = DefineComponent<_LivePlayerProps>; diff --git a/packages/uni-app-types/src/media-components/live-pusher.ts b/packages/uni-app-types/src/media-components/live-pusher.ts index 277ccaf..ba5205a 100644 --- a/packages/uni-app-types/src/media-components/live-pusher.ts +++ b/packages/uni-app-types/src/media-components/live-pusher.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** @@ -436,208 +437,209 @@ type _LivePusherOnBgmcompleteEvent = BaseEvent; type _LivePusherOnBgmcomplete = (event: _LivePusherOnBgmcompleteEvent) => void; /** 实时音视频录制(直播推流)属性 */ -type _LivePusherProps = Partial<{ - /** 推流地址,支持 RTMP 协议 */ - url: string; - /** - * 推流视频模式 - * - * SD 标清 - * - * HD 高清 - * - * FHD 超清 - * - * 默认为 SD - */ - mode: _LivePusherMode; - /** - * 是否自动推流 - * - * 默认为 false - */ - autopush: boolean; - /** - * 视频宽高比例 - * - * 默认为 3:2 - */ - aspect: number; - /** - * 是否静音 - * - * 默认为 false - */ - muted: boolean; - /** - * 是否开启摄像头 - * - * 默认为 true - */ - enableCamera: boolean; - /** - * 自动聚焦 - * - * 默认为 true - */ - autoFocus: boolean; - /** - * 美颜 - * - * 取值范围为 0 - 9 - * - * 默认为 0 - */ - beauty: number; - /** - * 美白 - * - * 取值范围为 0 - 9 - * - * 默认为 0 - */ - whiteness: number; - /** - * 画面方向 - * - * Vertical 纵向 - * - * Horizontal 横向 - * - * 默认为 vertical - */ - orientation: _LivePusherOrientation; - /** - * 最小码率 - * - * 默认为 200 - */ - minBitrate: number; - /** - * 最大码率 - * - * 默认为 1000 - */ - maxBitrate: number; - /** - * 音质 - * - * High 高音质 48KHz - * - * Low 低音质 16KHz - * - * 默认为 high - */ - audioQuality: _LivePusherAudioQuality; - /** 进入后台时推流的等待画面 */ - waitingImage: string; - /** 等待画面资源的 MD5 值 */ - waitingImageMd5: string; - /** - * 是否调整焦距 - * - * 默认为 false - */ - zoom: boolean; - /** - * 使用的摄像头 - * - * Front 前置摄像头 - * - * Back 后置摄像头 - * - * 默认为 front - */ - devicePosition: _LivePusherDevicePosition; - /** - * 进入后台时是否静音 - * - * 默认为 false - */ - backgroundMute: boolean; - /** - * 设置推流画面是否镜像,产生的效果在 live-player 呈现 - * - * 默认为 false - */ - remoteMirror: boolean; - /** - * 控制本地预览画面是否镜像 - * - * Auto 前置摄像头镜像,后置摄像头不镜像 - * - * Enable 前后置摄像头均镜像 - * - * Disable 前后置摄像头均不镜像 - * - * 默认为 auto - */ - localMirror: _LivePusherLocalMirror; - /** - * 音频混响类型 - * - * 0 关闭 - * - * 1 KTV - * - * 2 小房间 - * - * 3 大会堂 - * - * 4 低沉 - * - * 5 洪亮 - * - * 6 金属声 - * - * 7 磁性 - * - * 默认为 0 - */ - audioReverbType: _LivePusherAudioReverbType; - /** - * 是否开启麦克风 - * - * 默认为 true - */ - enableMic: boolean; - /** - * 是否开启音频自动增益 - * - * 默认为 false - */ - enableAgc: boolean; - /** - * 是否开启音频噪声抑制 - * - * 默认为 false - */ - enableAns: boolean; - /** - * 音量类型 - * - * Auto 自动 - * - * Media 媒体音量 - * - * Voicecall 通话音量 - * - * 默认为 auto - */ - audioVolumeType: _LivePusherAudioVolumeType; - /** 播放状态变化时触发 */ - onStatechange: _LivePusherOnStatechange; - /** 网络状态变化时触发 */ - onNetstatus: _LivePusherOnNetstatus; - /** 渲染错误时触发 */ - onError: _LivePusherOnError; - /** 背景音开始播放时触发 */ - onBgmstart: _LivePusherOnBgmstart; - /** 背景音进度变化时触发 */ - onBgmprogress: _LivePusherOnBgmprogress; - /** 背景音播放完成时触发 */ - onBgmcomplete: _LivePusherOnBgmcomplete; -}>; +type _LivePusherProps = CommonProps & + Partial<{ + /** 推流地址,支持 RTMP 协议 */ + url: string; + /** + * 推流视频模式 + * + * SD 标清 + * + * HD 高清 + * + * FHD 超清 + * + * 默认为 SD + */ + mode: _LivePusherMode; + /** + * 是否自动推流 + * + * 默认为 false + */ + autopush: boolean; + /** + * 视频宽高比例 + * + * 默认为 3:2 + */ + aspect: number; + /** + * 是否静音 + * + * 默认为 false + */ + muted: boolean; + /** + * 是否开启摄像头 + * + * 默认为 true + */ + enableCamera: boolean; + /** + * 自动聚焦 + * + * 默认为 true + */ + autoFocus: boolean; + /** + * 美颜 + * + * 取值范围为 0 - 9 + * + * 默认为 0 + */ + beauty: number; + /** + * 美白 + * + * 取值范围为 0 - 9 + * + * 默认为 0 + */ + whiteness: number; + /** + * 画面方向 + * + * Vertical 纵向 + * + * Horizontal 横向 + * + * 默认为 vertical + */ + orientation: _LivePusherOrientation; + /** + * 最小码率 + * + * 默认为 200 + */ + minBitrate: number; + /** + * 最大码率 + * + * 默认为 1000 + */ + maxBitrate: number; + /** + * 音质 + * + * High 高音质 48KHz + * + * Low 低音质 16KHz + * + * 默认为 high + */ + audioQuality: _LivePusherAudioQuality; + /** 进入后台时推流的等待画面 */ + waitingImage: string; + /** 等待画面资源的 MD5 值 */ + waitingImageMd5: string; + /** + * 是否调整焦距 + * + * 默认为 false + */ + zoom: boolean; + /** + * 使用的摄像头 + * + * Front 前置摄像头 + * + * Back 后置摄像头 + * + * 默认为 front + */ + devicePosition: _LivePusherDevicePosition; + /** + * 进入后台时是否静音 + * + * 默认为 false + */ + backgroundMute: boolean; + /** + * 设置推流画面是否镜像,产生的效果在 live-player 呈现 + * + * 默认为 false + */ + remoteMirror: boolean; + /** + * 控制本地预览画面是否镜像 + * + * Auto 前置摄像头镜像,后置摄像头不镜像 + * + * Enable 前后置摄像头均镜像 + * + * Disable 前后置摄像头均不镜像 + * + * 默认为 auto + */ + localMirror: _LivePusherLocalMirror; + /** + * 音频混响类型 + * + * 0 关闭 + * + * 1 KTV + * + * 2 小房间 + * + * 3 大会堂 + * + * 4 低沉 + * + * 5 洪亮 + * + * 6 金属声 + * + * 7 磁性 + * + * 默认为 0 + */ + audioReverbType: _LivePusherAudioReverbType; + /** + * 是否开启麦克风 + * + * 默认为 true + */ + enableMic: boolean; + /** + * 是否开启音频自动增益 + * + * 默认为 false + */ + enableAgc: boolean; + /** + * 是否开启音频噪声抑制 + * + * 默认为 false + */ + enableAns: boolean; + /** + * 音量类型 + * + * Auto 自动 + * + * Media 媒体音量 + * + * Voicecall 通话音量 + * + * 默认为 auto + */ + audioVolumeType: _LivePusherAudioVolumeType; + /** 播放状态变化时触发 */ + onStatechange: _LivePusherOnStatechange; + /** 网络状态变化时触发 */ + onNetstatus: _LivePusherOnNetstatus; + /** 渲染错误时触发 */ + onError: _LivePusherOnError; + /** 背景音开始播放时触发 */ + onBgmstart: _LivePusherOnBgmstart; + /** 背景音进度变化时触发 */ + onBgmprogress: _LivePusherOnBgmprogress; + /** 背景音播放完成时触发 */ + onBgmcomplete: _LivePusherOnBgmcomplete; + }>; /** 实时音视频录制(直播推流) */ type _LivePusher = DefineComponent<_LivePusherProps>; diff --git a/packages/uni-app-types/src/media-components/video.ts b/packages/uni-app-types/src/media-components/video.ts index 6ffcc11..a98825a 100644 --- a/packages/uni-app-types/src/media-components/video.ts +++ b/packages/uni-app-types/src/media-components/video.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** 弹幕 */ @@ -188,265 +189,266 @@ type _VideoOnControlstoggleEvent = CustomEvent<_VideoOnControlstoggleDetail>; type _VideoOnControlstoggle = (event: _VideoOnControlstoggleEvent) => void; /** 视频播放组件属性 */ -type _VideoProps = Partial<{ - /** 要播放视频的资源地址 */ - src: string; - /** - * 是否自动播放 - * - * 默认为 false - */ - autoplay: boolean; - /** - * 是否循环播放 - * - * 默认为 false - */ - loop: boolean; - /** - * 是否静音播放 - * - * 默认为 false - */ - muted: boolean; - /** - * 指定视频初始播放位置 - * - * 单位为 s - */ - initialTime: number; - /** - * 指定视频长度 - * - * 单位为 s - */ - duration: number; - /** - * 是否显示默认播放控件(播放/暂停按钮、播放进度、时间) - * - * 默认为 true - */ - controls: boolean; - /** 弹幕列表 */ - danmuList: _VideoDanmu[]; - /** - * 是否显示弹幕按钮,不支持动态修改 - * - * 默认为 false - */ - danmuBtn: boolean; - /** - * 是否展示弹幕,不支持动态修改 - * - * 默认为 false - */ - enableDanmu: boolean; - /** - * 在非全屏模式下,是否开启亮度与音量调节手势 - * - * 默认为 false - */ - pageGesture: boolean; - /** - * 设置全屏时视频的方向,不指定则根据宽高比自动判断 - * - * 0 正常竖向 - * - * 90 屏幕逆时针 90 度 - * - * -90 屏幕顺时针 90 度 - * - * 默认根据宽高比自动判断 - */ - direction: _VideoDirection; - /** - * 若不设置,宽度大于 240 时才会显示 - * - * 默认为 true - */ - showProgress: boolean; - /** - * 是否显示全屏按钮 - * - * 默认为 true - */ - showFullscreenBtn: boolean; - /** - * 是否显示视频底部控制栏的播放按钮 - * - * 默认为 true - */ - showPlayBtn: boolean; - /** - * 是否显示视频中间的播放按钮 - * - * 默认为 true - */ - showCenterPlayBtn: boolean; - /** - * 是否显示 loading 控件 - * - * 默认为 true - */ - showLoading: boolean; - /** - * 是否开启控制进度的手势 - * - * 默认为 true - */ - enableProgressGesture: boolean; - /** - * 当视频大小与 video 容器大小不一致时,视频的表现形式 - * - * Contain 包含 - * - * Fill 填充 - * - * Cover 覆盖 - * - * 默认为 contain - */ - objectFit: _VideoObjectFit; - /** - * 视频封面的图片网络资源地址 - * - * 如果 controls 值为 false 则无效 - */ - poster: string; - /** - * 是否显示静音按钮 - * - * @decs 默认为 false - */ - showMuteBtn: boolean; - /** 视频的标题,全屏时在顶部展示 */ - title: string; - /** - * 播放按钮的位置 - * - * Bottom 控制栏上 - * - * Center 视频中间 - * - * 默认为 bottom - */ - playBtnPosition: _VideoPlayBtnPosition; - /** - * 移动网络提醒样式 - * - * 0 不提醒 - * - * 1 提醒 - * - * 默认为 1 - */ - mobilenetHintType: _VideoMobilenetHintType; - /** - * 是否开启播放手势,即双击切换播放、暂停 - * - * 默认为 false - */ - enablePlayGesture: boolean; - /** - * 当跳转到其它小程序页面时,是否自动暂停本页面的视频 - * - * 默认为 true - */ - autoPauseIfNavigate: boolean; - /** - * 当跳转到其它微信原生页面时,是否自动暂停本页面的视频 - * - * 默认为 true - */ - autoPauseIfOpenNative: boolean; - /** - * 在非全屏模式下,是否开启亮度与音量调节手势(同 page-gesture) - * - * 默认为 false - */ - vslideGesture: boolean; - /** - * 在全屏模式下,是否开启亮度与音量调节手势 - * - * 默认为 true - */ - vslideGestureInFullscreen: boolean; - /** 视频前贴广告单元ID */ - adUnitId: string; - /** - * 用于给搜索等场景作为视频封面展示 - * - * 建议使用无播放 icon 的视频封面图 - * - * 只支持网络地址 - */ - posterForCrawler: string; - /** - * 解码器选择 - * - * Hardware 硬件解码 - * - * Software 软件解码 - * - * 默认为 hardware - */ - codec: _VideoCodec; - /** - * 是否对 http、https 视频源开启本地缓存 - * - * 默认为 true - */ - httpCache: boolean; - /** - * 播放策略 - * - * 0 普通模式,适合绝大部分视频播放场景 - * - * 1 平滑播放模式(降级),增加缓冲区大小,采用 open sl - * 解码音频,避免音视频脱轨的问题,可能会降低首屏展现速度、视频帧率,出现开屏音频延迟等,适用于高码率视频的极端场景 - * - * 2 M3U8 优化模式,增加缓冲区大小,提升视频加载速度和流畅度,可能会降低首屏展现速度,适用于 M3U8 在线播放的场景 - * - * 默认为 0 - */ - playStrategy: _VideoPlayStrategy; - /** HTTP 请求 Header */ - header: Record; - /** 开始/继续播放时触发 */ - onPlay: _VideoOnPlay; - /** 暂停播放时触发 */ - onPause: _VideoOnPause; - /** 播放到末尾时触发 */ - onEnded: _VideoOnEnded; - /** - * 播放进度变化时触发 - * - * 250ms 一次 - */ - onTimeupdate: _VideoOnTimeupdate; - /** 视频进入和退出全屏时触发 */ - onFullscreenchange: _VideoOnFullscreenchange; - /** 视频缓冲时触发 */ - onWaiting: _VideoOnWaiting; - /** 视频播放出错时触发 */ - onError: _VideoOnError; - /** 加载进度变化时触发 */ - onProgress: _VideoOnProgress; - /** 视频资源开始加载时触发 */ - onLoadeddata: _VideoOnLoadeddata; - /** 开始加载数据时触发 */ - onLoadstart: _VideoOnLoadstart; - /** 拖动进度条结束时触发 */ - onSeeked: _VideoOnSeeked; - /** 拖动进度条时触发 */ - onSeeking: _VideoOnSeeking; - /** 视频元数据加载完成时触发 */ - onLoadedmetadata: _VideoOnLoadedmetadata; - /** 视频播放全屏播放点击时触发 */ - onFullscreenclick: _VideoOnFullscreenclick; - /** 切换 controls 显示隐藏时触发 */ - onControlstoggle: _VideoOnControlstoggle; -}>; +type _VideoProps = CommonProps & + Partial<{ + /** 要播放视频的资源地址 */ + src: string; + /** + * 是否自动播放 + * + * 默认为 false + */ + autoplay: boolean; + /** + * 是否循环播放 + * + * 默认为 false + */ + loop: boolean; + /** + * 是否静音播放 + * + * 默认为 false + */ + muted: boolean; + /** + * 指定视频初始播放位置 + * + * 单位为 s + */ + initialTime: number; + /** + * 指定视频长度 + * + * 单位为 s + */ + duration: number; + /** + * 是否显示默认播放控件(播放/暂停按钮、播放进度、时间) + * + * 默认为 true + */ + controls: boolean; + /** 弹幕列表 */ + danmuList: _VideoDanmu[]; + /** + * 是否显示弹幕按钮,不支持动态修改 + * + * 默认为 false + */ + danmuBtn: boolean; + /** + * 是否展示弹幕,不支持动态修改 + * + * 默认为 false + */ + enableDanmu: boolean; + /** + * 在非全屏模式下,是否开启亮度与音量调节手势 + * + * 默认为 false + */ + pageGesture: boolean; + /** + * 设置全屏时视频的方向,不指定则根据宽高比自动判断 + * + * 0 正常竖向 + * + * 90 屏幕逆时针 90 度 + * + * -90 屏幕顺时针 90 度 + * + * 默认根据宽高比自动判断 + */ + direction: _VideoDirection; + /** + * 若不设置,宽度大于 240 时才会显示 + * + * 默认为 true + */ + showProgress: boolean; + /** + * 是否显示全屏按钮 + * + * 默认为 true + */ + showFullscreenBtn: boolean; + /** + * 是否显示视频底部控制栏的播放按钮 + * + * 默认为 true + */ + showPlayBtn: boolean; + /** + * 是否显示视频中间的播放按钮 + * + * 默认为 true + */ + showCenterPlayBtn: boolean; + /** + * 是否显示 loading 控件 + * + * 默认为 true + */ + showLoading: boolean; + /** + * 是否开启控制进度的手势 + * + * 默认为 true + */ + enableProgressGesture: boolean; + /** + * 当视频大小与 video 容器大小不一致时,视频的表现形式 + * + * Contain 包含 + * + * Fill 填充 + * + * Cover 覆盖 + * + * 默认为 contain + */ + objectFit: _VideoObjectFit; + /** + * 视频封面的图片网络资源地址 + * + * 如果 controls 值为 false 则无效 + */ + poster: string; + /** + * 是否显示静音按钮 + * + * @decs 默认为 false + */ + showMuteBtn: boolean; + /** 视频的标题,全屏时在顶部展示 */ + title: string; + /** + * 播放按钮的位置 + * + * Bottom 控制栏上 + * + * Center 视频中间 + * + * 默认为 bottom + */ + playBtnPosition: _VideoPlayBtnPosition; + /** + * 移动网络提醒样式 + * + * 0 不提醒 + * + * 1 提醒 + * + * 默认为 1 + */ + mobilenetHintType: _VideoMobilenetHintType; + /** + * 是否开启播放手势,即双击切换播放、暂停 + * + * 默认为 false + */ + enablePlayGesture: boolean; + /** + * 当跳转到其它小程序页面时,是否自动暂停本页面的视频 + * + * 默认为 true + */ + autoPauseIfNavigate: boolean; + /** + * 当跳转到其它微信原生页面时,是否自动暂停本页面的视频 + * + * 默认为 true + */ + autoPauseIfOpenNative: boolean; + /** + * 在非全屏模式下,是否开启亮度与音量调节手势(同 page-gesture) + * + * 默认为 false + */ + vslideGesture: boolean; + /** + * 在全屏模式下,是否开启亮度与音量调节手势 + * + * 默认为 true + */ + vslideGestureInFullscreen: boolean; + /** 视频前贴广告单元ID */ + adUnitId: string; + /** + * 用于给搜索等场景作为视频封面展示 + * + * 建议使用无播放 icon 的视频封面图 + * + * 只支持网络地址 + */ + posterForCrawler: string; + /** + * 解码器选择 + * + * Hardware 硬件解码 + * + * Software 软件解码 + * + * 默认为 hardware + */ + codec: _VideoCodec; + /** + * 是否对 http、https 视频源开启本地缓存 + * + * 默认为 true + */ + httpCache: boolean; + /** + * 播放策略 + * + * 0 普通模式,适合绝大部分视频播放场景 + * + * 1 平滑播放模式(降级),增加缓冲区大小,采用 open sl + * 解码音频,避免音视频脱轨的问题,可能会降低首屏展现速度、视频帧率,出现开屏音频延迟等,适用于高码率视频的极端场景 + * + * 2 M3U8 优化模式,增加缓冲区大小,提升视频加载速度和流畅度,可能会降低首屏展现速度,适用于 M3U8 在线播放的场景 + * + * 默认为 0 + */ + playStrategy: _VideoPlayStrategy; + /** HTTP 请求 Header */ + header: Record; + /** 开始/继续播放时触发 */ + onPlay: _VideoOnPlay; + /** 暂停播放时触发 */ + onPause: _VideoOnPause; + /** 播放到末尾时触发 */ + onEnded: _VideoOnEnded; + /** + * 播放进度变化时触发 + * + * 250ms 一次 + */ + onTimeupdate: _VideoOnTimeupdate; + /** 视频进入和退出全屏时触发 */ + onFullscreenchange: _VideoOnFullscreenchange; + /** 视频缓冲时触发 */ + onWaiting: _VideoOnWaiting; + /** 视频播放出错时触发 */ + onError: _VideoOnError; + /** 加载进度变化时触发 */ + onProgress: _VideoOnProgress; + /** 视频资源开始加载时触发 */ + onLoadeddata: _VideoOnLoadeddata; + /** 开始加载数据时触发 */ + onLoadstart: _VideoOnLoadstart; + /** 拖动进度条结束时触发 */ + onSeeked: _VideoOnSeeked; + /** 拖动进度条时触发 */ + onSeeking: _VideoOnSeeking; + /** 视频元数据加载完成时触发 */ + onLoadedmetadata: _VideoOnLoadedmetadata; + /** 视频播放全屏播放点击时触发 */ + onFullscreenclick: _VideoOnFullscreenclick; + /** 切换 controls 显示隐藏时触发 */ + onControlstoggle: _VideoOnControlstoggle; + }>; /** * 视频播放组件 diff --git a/packages/uni-app-types/src/navigation/navigator.ts b/packages/uni-app-types/src/navigation/navigator.ts index 332a733..f5e1ead 100644 --- a/packages/uni-app-types/src/navigation/navigator.ts +++ b/packages/uni-app-types/src/navigation/navigator.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** * 跳转方式 @@ -76,138 +77,139 @@ type _NavigatorTarget = "self" | "miniProgram"; type _NavigatorVersion = "develop" | "trial" | "release"; /** 页面跳转属性 */ -type _NavigatorProps = Partial<{ - /** - * 应用内的跳转链接 - * - * 值为相对路径或绝对路径 - * - * 例子:../first/first、/pages/first/first - */ - url: string; - /** - * 跳转方式 - * - * Navigate 对应 navigateTo - * - * Redirect 对应 redirectTo - * - * SwitchTab 对应 switchTab - * - * ReLaunch 对应 reLaunch - * - * NavigateBack 对应 navigateBack - * - * Exit 退出小程序,target="miniProgram"时生效 - * - * 默认为 navigate - */ - openType: _NavigatorOpenType; - /** - * 回退的层数 - * - * Open-type="navigateBack" 时有效 - * - * 默认为 1 - */ - delta: number; - /** - * 窗口的显示/关闭的动画类型 - * - * Open-type="navigateTo" 或 open-type="navigateBack" 时有效 - * - * 默认为 pop-in 显示、pop-out 关闭 - */ - animationType: _NavigatorAnimationType; - /** - * 窗口的显示/关闭动画的持续时间 - * - * Open-type="navigateTo" 或 open-type="navigateBack" 时有效 - * - * 默认为 300 - */ - animationDuration: number; - /** - * 指定点击时的样式类 - * - * Hover-class="none" 时,没有点击态效果 - * - * 默认为 navigator-hover - */ - hoverClass: string; - /** - * 指定是否阻止本节点的祖先节点出现点击态 - * - * 默认为 false - */ - hoverStopPropagation: boolean; - /** - * 按住后多久出现点击态 - * - * 单位为 ms - * - * 默认为 50 - */ - hoverStartTime: number; - /** - * 手指松开后点击态保留时间 - * - * 单位为 ms - * - * 默认为 600 - */ - hoverStayTime: number; - /** - * 在哪个目标上发生跳转 - * - * Self 当前小程序 - * - * MiniProgram 其它小程序 - * - * 默认为 self - */ - target: _NavigatorTarget; - /** - * 要打开的小程序 appId - * - * Target="miniProgram" 时有效 - */ - appId: string; - /** - * 打开的页面路径,如果为空则打开首页 - * - * Target="miniProgram" 时有效 - */ - path: string; - /** - * 需要传递给目标应用的数据 - * - * Target="miniProgram" 时有效 - */ - extraData: Record; - /** - * 要打开的小程序版本 - * - * 如果当前小程序是正式版,则打开的小程序必定是正式版 - * - * Develop 开发版 - * - * Trial 体验版 - * - * Release 正式版 - * - * Target="miniProgram" 时有效 - * - * 默认为 release - */ - version: _NavigatorVersion; - /** - * 当传递该参数后,可以不传 app-id 和 path - * - * Target="miniProgram" 时有效 - */ - shortLink: string; -}>; +type _NavigatorProps = CommonProps & + Partial<{ + /** + * 应用内的跳转链接 + * + * 值为相对路径或绝对路径 + * + * 例子:../first/first、/pages/first/first + */ + url: string; + /** + * 跳转方式 + * + * Navigate 对应 navigateTo + * + * Redirect 对应 redirectTo + * + * SwitchTab 对应 switchTab + * + * ReLaunch 对应 reLaunch + * + * NavigateBack 对应 navigateBack + * + * Exit 退出小程序,target="miniProgram"时生效 + * + * 默认为 navigate + */ + openType: _NavigatorOpenType; + /** + * 回退的层数 + * + * Open-type="navigateBack" 时有效 + * + * 默认为 1 + */ + delta: number; + /** + * 窗口的显示/关闭的动画类型 + * + * Open-type="navigateTo" 或 open-type="navigateBack" 时有效 + * + * 默认为 pop-in 显示、pop-out 关闭 + */ + animationType: _NavigatorAnimationType; + /** + * 窗口的显示/关闭动画的持续时间 + * + * Open-type="navigateTo" 或 open-type="navigateBack" 时有效 + * + * 默认为 300 + */ + animationDuration: number; + /** + * 指定点击时的样式类 + * + * Hover-class="none" 时,没有点击态效果 + * + * 默认为 navigator-hover + */ + hoverClass: string; + /** + * 指定是否阻止本节点的祖先节点出现点击态 + * + * 默认为 false + */ + hoverStopPropagation: boolean; + /** + * 按住后多久出现点击态 + * + * 单位为 ms + * + * 默认为 50 + */ + hoverStartTime: number; + /** + * 手指松开后点击态保留时间 + * + * 单位为 ms + * + * 默认为 600 + */ + hoverStayTime: number; + /** + * 在哪个目标上发生跳转 + * + * Self 当前小程序 + * + * MiniProgram 其它小程序 + * + * 默认为 self + */ + target: _NavigatorTarget; + /** + * 要打开的小程序 appId + * + * Target="miniProgram" 时有效 + */ + appId: string; + /** + * 打开的页面路径,如果为空则打开首页 + * + * Target="miniProgram" 时有效 + */ + path: string; + /** + * 需要传递给目标应用的数据 + * + * Target="miniProgram" 时有效 + */ + extraData: Record; + /** + * 要打开的小程序版本 + * + * 如果当前小程序是正式版,则打开的小程序必定是正式版 + * + * Develop 开发版 + * + * Trial 体验版 + * + * Release 正式版 + * + * Target="miniProgram" 时有效 + * + * 默认为 release + */ + version: _NavigatorVersion; + /** + * 当传递该参数后,可以不传 app-id 和 path + * + * Target="miniProgram" 时有效 + */ + shortLink: string; + }>; /** * 页面跳转组件 diff --git a/packages/uni-app-types/src/page-property-configuration-node/custom-tab-bar.ts b/packages/uni-app-types/src/page-property-configuration-node/custom-tab-bar.ts index 3e488f4..d3d277c 100644 --- a/packages/uni-app-types/src/page-property-configuration-node/custom-tab-bar.ts +++ b/packages/uni-app-types/src/page-property-configuration-node/custom-tab-bar.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** * 选项的排列方向 @@ -24,32 +25,33 @@ type _CustomTabBarOnOnTabItemTap = ( ) => void; /** 自定义 tabBar 组件属性 */ -type _CustomTabBarProps = Partial<{ - /** - * 选项的排列方向 - * - * Vertical 纵向 - * - * Horizontal 横向 - * - * 默认为 horizontal - */ - direction: _CustomTabBarDirection; - /** - * 是否显示 icon - * - * 默认为 false - */ - showIcon: boolean; - /** - * 选中的 tabBar 选项索引值 - * - * 默认为 0 - */ - selected: number; - /** 点击事件 */ - onOnTabItemTap: _CustomTabBarOnOnTabItemTap; -}>; +type _CustomTabBarProps = CommonProps & + Partial<{ + /** + * 选项的排列方向 + * + * Vertical 纵向 + * + * Horizontal 横向 + * + * 默认为 horizontal + */ + direction: _CustomTabBarDirection; + /** + * 是否显示 icon + * + * 默认为 false + */ + showIcon: boolean; + /** + * 选中的 tabBar 选项索引值 + * + * 默认为 0 + */ + selected: number; + /** 点击事件 */ + onOnTabItemTap: _CustomTabBarOnOnTabItemTap; + }>; /** 自定义 tabBar 组件 */ type _CustomTabBar = DefineComponent<_CustomTabBarProps>; diff --git a/packages/uni-app-types/src/page-property-configuration-node/navigation-bar.ts b/packages/uni-app-types/src/page-property-configuration-node/navigation-bar.ts index 43c31f5..6024fd6 100644 --- a/packages/uni-app-types/src/page-property-configuration-node/navigation-bar.ts +++ b/packages/uni-app-types/src/page-property-configuration-node/navigation-bar.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** * 副标题文字超出显示区域时处理方式 @@ -63,124 +64,125 @@ type _NavigationBarColorAnimationTimingFunc = | "easeInOut"; /** 页面导航条配置节点属性 */ -type _NavigationBarProps = Partial<{ - /** 导航条标题 */ - title: string; - /** - * 标题图标 - * - * 仅支持本地文件路径、相对路径 - * - * 固定宽高 34px - * - * 设置后标题将居左显示 - */ - titleIcon: string; - /** - * 标题图标圆角 - * - * 单位为 px - */ - titleIconRadius: string; - /** - * 副标题文字内容 - * - * 设置副标题后将显示两行标题,副标题在主标题下方 - * - * 设置副标题后将居左显示 - */ - subtitleText: string; - /** - * 副标题文字字体大小 - * - * 单位为 px - * - * 默认为 12px - */ - subtitleSize: string; - /** - * 副标题文字颜色 - * - * 默认为主标题文字颜色 - */ - subtitleColor: string; - /** - * 副标题文字超出显示区域时处理方式 - * - * Clip 超出显示区域时内容裁剪 - * - * Ellipsis 超出显示区域时尾部显示省略标记 - * - * 默认为 ellipsis - */ - subtitleOverflow: _NavigationBarSubtitleOverflow; - /** - * 标题对齐方式 - * - * Center 居中对齐 - * - * Left 左对齐 - * - * Auto 自动 - * - * 默认 Android left,iOS center - */ - titleAlign: _NavigationBarTitleAlign; - /** - * 背景图片 - * - * 支持本地文件路径、相对路径、渐变色 - */ - backgroundImage: string; - /** - * 背景图片重复方式 - * - * BackgroundImage 设置为图片路径时有效 - * - * Repeat 背景图片在垂直方向和水平方向平铺 - * - * Repeat-x 背景图片在水平方向平铺,垂直方向拉伸 - * - * Repeat-y 背景图片在垂直方向平铺,水平方向拉伸 - * - * No-repeat 背景图片在垂直方向和水平方向都拉伸 - * - * 默认为 no-repeat - */ - backgroundRepeat: _NavigationBarBackgroundRepeat; - /** - * 高斯模糊标题栏的风格 - * - * Dark 暗风格模糊,对应 iOS 原生 UIBlurEffectStyleDark 效果 - * - * Extralight 高亮风格模糊,对应 iOS 原生 UIBlurEffectStyleExtraLight 效果 - * - * Light 亮风格模糊,对应 iOS 原生 UIBlurEffectStyleLight 效果 - * - * None 无模糊效果 - * - * 默认为 none - */ - blurEffect: _NavigationBarBlurEffect; - /** - * 是否在导航条显示 loading 加载提示 - * - * 默认为 false - */ - loading: boolean; - /** 导航条前景颜色值,包括按钮、标题、状态栏的颜色 */ - frontColor: _NavigationFrontColor; - /** 导航条背景颜色值 */ - backgroundColor: string; - /** - * 改变导航栏颜色时的动画时长 - * - * 默认为 0 - */ - colorAnimationDuration: number; - /** 改变导航栏颜色时的动画方式 */ - colorAnimationTimingFunc: _NavigationBarColorAnimationTimingFunc; -}>; +type _NavigationBarProps = CommonProps & + Partial<{ + /** 导航条标题 */ + title: string; + /** + * 标题图标 + * + * 仅支持本地文件路径、相对路径 + * + * 固定宽高 34px + * + * 设置后标题将居左显示 + */ + titleIcon: string; + /** + * 标题图标圆角 + * + * 单位为 px + */ + titleIconRadius: string; + /** + * 副标题文字内容 + * + * 设置副标题后将显示两行标题,副标题在主标题下方 + * + * 设置副标题后将居左显示 + */ + subtitleText: string; + /** + * 副标题文字字体大小 + * + * 单位为 px + * + * 默认为 12px + */ + subtitleSize: string; + /** + * 副标题文字颜色 + * + * 默认为主标题文字颜色 + */ + subtitleColor: string; + /** + * 副标题文字超出显示区域时处理方式 + * + * Clip 超出显示区域时内容裁剪 + * + * Ellipsis 超出显示区域时尾部显示省略标记 + * + * 默认为 ellipsis + */ + subtitleOverflow: _NavigationBarSubtitleOverflow; + /** + * 标题对齐方式 + * + * Center 居中对齐 + * + * Left 左对齐 + * + * Auto 自动 + * + * 默认 Android left,iOS center + */ + titleAlign: _NavigationBarTitleAlign; + /** + * 背景图片 + * + * 支持本地文件路径、相对路径、渐变色 + */ + backgroundImage: string; + /** + * 背景图片重复方式 + * + * BackgroundImage 设置为图片路径时有效 + * + * Repeat 背景图片在垂直方向和水平方向平铺 + * + * Repeat-x 背景图片在水平方向平铺,垂直方向拉伸 + * + * Repeat-y 背景图片在垂直方向平铺,水平方向拉伸 + * + * No-repeat 背景图片在垂直方向和水平方向都拉伸 + * + * 默认为 no-repeat + */ + backgroundRepeat: _NavigationBarBackgroundRepeat; + /** + * 高斯模糊标题栏的风格 + * + * Dark 暗风格模糊,对应 iOS 原生 UIBlurEffectStyleDark 效果 + * + * Extralight 高亮风格模糊,对应 iOS 原生 UIBlurEffectStyleExtraLight 效果 + * + * Light 亮风格模糊,对应 iOS 原生 UIBlurEffectStyleLight 效果 + * + * None 无模糊效果 + * + * 默认为 none + */ + blurEffect: _NavigationBarBlurEffect; + /** + * 是否在导航条显示 loading 加载提示 + * + * 默认为 false + */ + loading: boolean; + /** 导航条前景颜色值,包括按钮、标题、状态栏的颜色 */ + frontColor: _NavigationFrontColor; + /** 导航条背景颜色值 */ + backgroundColor: string; + /** + * 改变导航栏颜色时的动画时长 + * + * 默认为 0 + */ + colorAnimationDuration: number; + /** 改变导航栏颜色时的动画方式 */ + colorAnimationTimingFunc: _NavigationBarColorAnimationTimingFunc; + }>; /** * 页面导航条配置节点,用于指定导航栏的一些属性 diff --git a/packages/uni-app-types/src/page-property-configuration-node/page-meta.ts b/packages/uni-app-types/src/page-property-configuration-node/page-meta.ts index 0cbb295..2871719 100644 --- a/packages/uni-app-types/src/page-property-configuration-node/page-meta.ts +++ b/packages/uni-app-types/src/page-property-configuration-node/page-meta.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** @@ -35,54 +36,55 @@ type _PageMetaOnScrolldoneEvent = BaseEvent; type _PageMetaOnScrolldone = (event: _PageMetaOnScrolldoneEvent) => void; /** 页面属性配置节点属性 */ -type _PageMetaProps = Partial<{ - /** - * 下拉背景字体、loading 图的样式 - * - * Dark 暗色 - * - * Light 亮色 - */ - backgroundTextStyle: _PageMetaBackgroundTextStyle; - /** 窗口的背景色 */ - backgroundColor: string; - /** 顶部窗口的十六进制背景色,仅 iOS 支持 */ - backgroundColorTop: string; - /** 底部窗口的十六进制背景色,仅 iOS 支持 */ - backgroundColorBottom: string; - /** - * 滚动位置,在被设置时页面会滚动到对应位置 - * - * 单位为 px / rpx - */ - scrollTop: string; - /** - * 滚动动画时长 - * - * 默认为 300 - */ - scrollDuration: number; - /** - * 页面根节点样式 - * - * 页面根节点是所有页面节点的祖先节点,相当于 HTML 中的 body 节点 - */ - pageStyle: string; - /** 页面的根字体大小 */ - rootFontSize: string; - /** - * 是否开启自动下拉刷新 - * - * 默认为 false - */ - enablePullDownRefresh: boolean; - /** 页面尺寸变化时触发 */ - onResize: _PageMetaOnResize; - /** 页面滚动时触发 */ - onScroll: _PageMetaOnScroll; - /** 通过改变 scroll-top 属性来使页面滚动,页面滚动结束后触发 */ - onScrolldone: _PageMetaOnScrolldone; -}>; +type _PageMetaProps = CommonProps & + Partial<{ + /** + * 下拉背景字体、loading 图的样式 + * + * Dark 暗色 + * + * Light 亮色 + */ + backgroundTextStyle: _PageMetaBackgroundTextStyle; + /** 窗口的背景色 */ + backgroundColor: string; + /** 顶部窗口的十六进制背景色,仅 iOS 支持 */ + backgroundColorTop: string; + /** 底部窗口的十六进制背景色,仅 iOS 支持 */ + backgroundColorBottom: string; + /** + * 滚动位置,在被设置时页面会滚动到对应位置 + * + * 单位为 px / rpx + */ + scrollTop: string; + /** + * 滚动动画时长 + * + * 默认为 300 + */ + scrollDuration: number; + /** + * 页面根节点样式 + * + * 页面根节点是所有页面节点的祖先节点,相当于 HTML 中的 body 节点 + */ + pageStyle: string; + /** 页面的根字体大小 */ + rootFontSize: string; + /** + * 是否开启自动下拉刷新 + * + * 默认为 false + */ + enablePullDownRefresh: boolean; + /** 页面尺寸变化时触发 */ + onResize: _PageMetaOnResize; + /** 页面滚动时触发 */ + onScroll: _PageMetaOnScroll; + /** 通过改变 scroll-top 属性来使页面滚动,页面滚动结束后触发 */ + onScrolldone: _PageMetaOnScrolldone; + }>; /** * 页面属性配置节点,用于指定页面的一些属性、监听页面事件 diff --git a/packages/uni-app-types/src/view-containers/cover-image.ts b/packages/uni-app-types/src/view-containers/cover-image.ts index 172518b..83da42b 100644 --- a/packages/uni-app-types/src/view-containers/cover-image.ts +++ b/packages/uni-app-types/src/view-containers/cover-image.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent } from "../events"; type _CoverImageOnLoadEvent = BaseEvent; @@ -12,20 +13,21 @@ type _CoverImageOnErrorEvent = BaseEvent; type _CoverImageOnError = (event: _CoverImageOnErrorEvent) => void; /** 覆盖在原生组件之上的图片视图属性 */ -type _CoverImageProps = Partial<{ - /** - * 图片路径 - * - * 支持本地路径、网络路径 - * - * 不支持 base64 格式 - */ - src: string; - /** 图片加载成功时触发 */ - onLoad: _CoverImageOnLoad; - /** 图片加载失败时触发 */ - onError: _CoverImageOnError; -}>; +type _CoverImageProps = CommonProps & + Partial<{ + /** + * 图片路径 + * + * 支持本地路径、网络路径 + * + * 不支持 base64 格式 + */ + src: string; + /** 图片加载成功时触发 */ + onLoad: _CoverImageOnLoad; + /** 图片加载失败时触发 */ + onError: _CoverImageOnError; + }>; /** * 覆盖在原生组件之上的图片视图 diff --git a/packages/uni-app-types/src/view-containers/cover-view.ts b/packages/uni-app-types/src/view-containers/cover-view.ts index 66dea37..c90514b 100644 --- a/packages/uni-app-types/src/view-containers/cover-view.ts +++ b/packages/uni-app-types/src/view-containers/cover-view.ts @@ -1,14 +1,16 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** 覆盖在原生组件之上的视图属性 */ -type _CoverViewProps = Partial<{ - /** - * 设置顶部滚动偏移量 - * - * 仅在设置了 overflow-y: scroll 成为滚动元素后生效 - */ - scrollTop: number | string; -}>; +type _CoverViewProps = CommonProps & + Partial<{ + /** + * 设置顶部滚动偏移量 + * + * 仅在设置了 overflow-y: scroll 成为滚动元素后生效 + */ + scrollTop: number | string; + }>; /** * 覆盖在原生组件之上的视图 diff --git a/packages/uni-app-types/src/view-containers/match-media.ts b/packages/uni-app-types/src/view-containers/match-media.ts index 1be1894..344eb4d 100644 --- a/packages/uni-app-types/src/view-containers/match-media.ts +++ b/packages/uni-app-types/src/view-containers/match-media.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** * 屏幕方向 @@ -10,52 +11,53 @@ import type { DefineComponent } from "vue"; type _MatchMediaOrientation = "landscape" | "portrait"; /** Media query 匹配检测节点属性 */ -type _MatchMediaProps = Partial<{ - /** - * 页面最小宽度 - * - * 单位为 px - */ - minWidth: number; - /** - * 页面最大宽度 - * - * 单位为 px - */ - maxWidth: number; - /** - * 页面宽度 - * - * 单位为 px - */ - width: number; - /** - * 页面最小高度 - * - * 单位为 px - */ - minHeight: number; - /** - * 页面最大高度 - * - * 单位为 px - */ - maxHeight: number; - /** - * 页面高度 - * - * 单位为 px - */ - height: number; - /** - * 屏幕方向 - * - * Landscape 横向 - * - * Portrait 纵向 - */ - orientation: _MatchMediaOrientation; -}>; +type _MatchMediaProps = CommonProps & + Partial<{ + /** + * 页面最小宽度 + * + * 单位为 px + */ + minWidth: number; + /** + * 页面最大宽度 + * + * 单位为 px + */ + maxWidth: number; + /** + * 页面宽度 + * + * 单位为 px + */ + width: number; + /** + * 页面最小高度 + * + * 单位为 px + */ + minHeight: number; + /** + * 页面最大高度 + * + * 单位为 px + */ + maxHeight: number; + /** + * 页面高度 + * + * 单位为 px + */ + height: number; + /** + * 屏幕方向 + * + * Landscape 横向 + * + * Portrait 纵向 + */ + orientation: _MatchMediaOrientation; + }>; /** * Media query 匹配检测节点 diff --git a/packages/uni-app-types/src/view-containers/movable-area.ts b/packages/uni-app-types/src/view-containers/movable-area.ts index e425a9f..758aa73 100644 --- a/packages/uni-app-types/src/view-containers/movable-area.ts +++ b/packages/uni-app-types/src/view-containers/movable-area.ts @@ -1,14 +1,16 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** 可拖动区域属性 */ -type _MovableAreaProps = Partial<{ - /** - * 当里面的 movable-view 设置为支持双指缩放时,设置此值可将缩放手势生效区域修改为整个 movable-area - * - * 默认为 false - */ - scaleArea: boolean; -}>; +type _MovableAreaProps = CommonProps & + Partial<{ + /** + * 当里面的 movable-view 设置为支持双指缩放时,设置此值可将缩放手势生效区域修改为整个 movable-area + * + * 默认为 false + */ + scaleArea: boolean; + }>; /** * 可拖动区域 diff --git a/packages/uni-app-types/src/view-containers/movable-view.ts b/packages/uni-app-types/src/view-containers/movable-view.ts index d132b7b..f593b3e 100644 --- a/packages/uni-app-types/src/view-containers/movable-view.ts +++ b/packages/uni-app-types/src/view-containers/movable-view.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { CustomEvent } from "../events"; /** Movable-view 的移动方向 */ @@ -65,104 +66,105 @@ type _MovableViewOnScaleEvent = CustomEvent<_MovableViewOnScaleDetail>; type _MovableViewOnScale = (event: _MovableViewOnScaleEvent) => void; /** 可移动的视图容器属性 */ -type _MovableViewProps = Partial<{ - /** - * Movable-view 的移动方向 - * - * 默认为 none - */ - direction: _MovableViewDirection; - /** - * 是否带有惯性 - * - * 默认为 false - */ - inertia: boolean; - /** - * 超过可移动区域后,是否还可以移动 - * - * 默认为 false - */ - outOfBounds: boolean; - /** - * 定义 x 轴方向的偏移 - * - * 如果 x 的值不在可移动范围内,会自动移动到可移动范围 - * - * 改变 x 的值会触发动画 - */ - x: string | number; - /** - * 定义 y 轴方向的偏移 - * - * 如果 y 的值不在可移动范围内,会自动移动到可移动范围 - * - * 改变 y 的值会触发动画 - */ - y: string | number; - /** - * 阻尼系数,用于控制 x 或 y 改变时的动画和过界回弹的动画 - * - * 值越大移动越快 - * - * 默认为 20 - */ - damping: number; - /** - * 摩擦系数,用于控制惯性滑动的动画 - * - * 值越大摩擦力越大,滑动越快停止 - * - * 必须大于 0,否则会被设置成默认值 - * - * 默认为 2 - */ - friction: number; - /** - * 是否禁用 - * - * 默认为 false - */ - disabled: boolean; - /** - * 是否支持双指缩放 - * - * 默认缩放手势生效区域是在 movable-view 内 - * - * 默认为 false - */ - scale: boolean; - /** - * 定义缩放倍数最小值 - * - * 默认为 0.5 - */ - scaleMin: number; - /** - * 定义缩放倍数最大值 - * - * 默认为 10 - */ - scaleMax: number; - /** - * 定义缩放倍数 - * - * 取值范围为 0.5 - 10 - * - * 默认为 1 - */ - scaleValue: number; - /** - * 是否使用动画 - * - * 默认为 true - */ - animation: boolean; - /** 拖动过程中触发 */ - onChange: _MovableViewOnChange; - /** 缩放过程中触发 */ - onScale: _MovableViewOnScale; -}>; +type _MovableViewProps = CommonProps & + Partial<{ + /** + * Movable-view 的移动方向 + * + * 默认为 none + */ + direction: _MovableViewDirection; + /** + * 是否带有惯性 + * + * 默认为 false + */ + inertia: boolean; + /** + * 超过可移动区域后,是否还可以移动 + * + * 默认为 false + */ + outOfBounds: boolean; + /** + * 定义 x 轴方向的偏移 + * + * 如果 x 的值不在可移动范围内,会自动移动到可移动范围 + * + * 改变 x 的值会触发动画 + */ + x: string | number; + /** + * 定义 y 轴方向的偏移 + * + * 如果 y 的值不在可移动范围内,会自动移动到可移动范围 + * + * 改变 y 的值会触发动画 + */ + y: string | number; + /** + * 阻尼系数,用于控制 x 或 y 改变时的动画和过界回弹的动画 + * + * 值越大移动越快 + * + * 默认为 20 + */ + damping: number; + /** + * 摩擦系数,用于控制惯性滑动的动画 + * + * 值越大摩擦力越大,滑动越快停止 + * + * 必须大于 0,否则会被设置成默认值 + * + * 默认为 2 + */ + friction: number; + /** + * 是否禁用 + * + * 默认为 false + */ + disabled: boolean; + /** + * 是否支持双指缩放 + * + * 默认缩放手势生效区域是在 movable-view 内 + * + * 默认为 false + */ + scale: boolean; + /** + * 定义缩放倍数最小值 + * + * 默认为 0.5 + */ + scaleMin: number; + /** + * 定义缩放倍数最大值 + * + * 默认为 10 + */ + scaleMax: number; + /** + * 定义缩放倍数 + * + * 取值范围为 0.5 - 10 + * + * 默认为 1 + */ + scaleValue: number; + /** + * 是否使用动画 + * + * 默认为 true + */ + animation: boolean; + /** 拖动过程中触发 */ + onChange: _MovableViewOnChange; + /** 缩放过程中触发 */ + onScale: _MovableViewOnScale; + }>; /** * 可移动的视图容器,在页面中可以拖拽滑动或双指缩放 diff --git a/packages/uni-app-types/src/view-containers/scroll-view.ts b/packages/uni-app-types/src/view-containers/scroll-view.ts index 1f51a7a..1519f2c 100644 --- a/packages/uni-app-types/src/view-containers/scroll-view.ts +++ b/packages/uni-app-types/src/view-containers/scroll-view.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** @@ -65,142 +66,143 @@ type _ScrollViewOnRefresherabort = ( ) => void; /** 可滚动视图区域属性 */ -type _ScrollViewProps = Partial<{ - /** - * 是否允许横向滚动 - * - * 默认为 false - */ - scrollX: boolean; - /** - * 是否允许纵向滚动 - * - * 默认为 false - */ - scrollY: boolean; - /** - * 距顶部/左边多远时触发 scrolltoupper 事件 - * - * 单位为 px - * - * 默认为 50 - */ - upperThreshold: number | string; - /** - * 距底部/右边多远时触发 scrolltolower 事件 - * - * 单位为 px - * - * 默认为 50 - */ - lowerThreshold: number | string; - /** - * 设置纵向滚动条位置 - * - * 优先级低于 scroll-into-view - */ - scrollTop: number | string; - /** - * 优先级低于 scroll-into-view - * - * @decs 设置横向滚动条位置 - */ - scrollLeft: number | string; - /** - * 值应为某子元素 id,id 不能以数字开头 - * - * 设置哪个方向可滚动,则在哪个方向滚动到该元素 - * - * 优先级高于 scroll-top / scroll-left - */ - scrollIntoView: string; - /** - * 在设置滚动条位置时是否使用动画过渡 - * - * 默认为 false - */ - scrollWithAnimation: boolean; - /** - * 是否允许 iOS 点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部 - * - * 只支持纵向 - * - * 默认为 false - */ - enableBackToTop: boolean; - /** - * 控制是否出现滚动条 - * - * 默认为 false - */ - showScrollbar: boolean; - /** - * 是否开启自定义下拉刷新 - * - * 默认为 false - */ - refresherEnabled: boolean; - /** - * 设置自定义下拉刷新阈值 - * - * 默认为 45 - */ - refresherThreshold: number; - /** - * 设置自定义下拉刷新默认样式 - * - * None 不使用默认样式 - * - * 默认为 black - */ - refresherDefaultStyle: _ScrollViewRefresherDefaultStyle; - /** - * 自定义下拉刷新区域背景颜色 - * - * 默认为 #FFF - */ - refresherBackground: string; - /** - * 设置当前下拉刷新状态 - * - * True 下拉刷新已经被触发 - * - * False 下拉刷新未被触发 - * - * 默认为 false - */ - refresherTriggered: boolean; - /** - * 是否启用 flexbox 布局 - * - * 开启后,当前节点声明了 display: flex 就会成为 flex container,并作用于其子节点 - * - * 默认为 false - */ - enableFlex: boolean; - /** - * 是否开启 scroll anchoring 特性,即控制滚动位置不随内容变化而抖动,仅在 iOS 下生效 - * - * 安卓下可参考 CSS overflow-anchor 属性 - * - * 默认为 false - */ - scrollAnchoring: boolean; - /** 滚动到顶部/左边时触发 */ - onScrolltoupper: _ScrollViewOnScrolltoupper; - /** 滚动到底部/右边时触发 */ - onScrolltolower: _ScrollViewOnScrolltolower; - /** 滚动时触发 */ - onScroll: _ScrollViewOnScroll; - /** 自定义下拉刷新控件被下拉时触发 */ - onRefresherpulling: _ScrollViewOnRefresherpulling; - /** 自定义下拉刷新被触发时触发 */ - onRefresherrefresh: _ScrollViewOnRefresherrefresh; - /** 自定义下拉刷新被复位时触发 */ - onRefresherrestore: _ScrollViewOnRefresherrestore; - /** 自定义下拉刷新被中止时触发 */ - onRefresherabort: _ScrollViewOnRefresherabort; -}>; +type _ScrollViewProps = CommonProps & + Partial<{ + /** + * 是否允许横向滚动 + * + * 默认为 false + */ + scrollX: boolean; + /** + * 是否允许纵向滚动 + * + * 默认为 false + */ + scrollY: boolean; + /** + * 距顶部/左边多远时触发 scrolltoupper 事件 + * + * 单位为 px + * + * 默认为 50 + */ + upperThreshold: number | string; + /** + * 距底部/右边多远时触发 scrolltolower 事件 + * + * 单位为 px + * + * 默认为 50 + */ + lowerThreshold: number | string; + /** + * 设置纵向滚动条位置 + * + * 优先级低于 scroll-into-view + */ + scrollTop: number | string; + /** + * 优先级低于 scroll-into-view + * + * @decs 设置横向滚动条位置 + */ + scrollLeft: number | string; + /** + * 值应为某子元素 id,id 不能以数字开头 + * + * 设置哪个方向可滚动,则在哪个方向滚动到该元素 + * + * 优先级高于 scroll-top / scroll-left + */ + scrollIntoView: string; + /** + * 在设置滚动条位置时是否使用动画过渡 + * + * 默认为 false + */ + scrollWithAnimation: boolean; + /** + * 是否允许 iOS 点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部 + * + * 只支持纵向 + * + * 默认为 false + */ + enableBackToTop: boolean; + /** + * 控制是否出现滚动条 + * + * 默认为 false + */ + showScrollbar: boolean; + /** + * 是否开启自定义下拉刷新 + * + * 默认为 false + */ + refresherEnabled: boolean; + /** + * 设置自定义下拉刷新阈值 + * + * 默认为 45 + */ + refresherThreshold: number; + /** + * 设置自定义下拉刷新默认样式 + * + * None 不使用默认样式 + * + * 默认为 black + */ + refresherDefaultStyle: _ScrollViewRefresherDefaultStyle; + /** + * 自定义下拉刷新区域背景颜色 + * + * 默认为 #FFF + */ + refresherBackground: string; + /** + * 设置当前下拉刷新状态 + * + * True 下拉刷新已经被触发 + * + * False 下拉刷新未被触发 + * + * 默认为 false + */ + refresherTriggered: boolean; + /** + * 是否启用 flexbox 布局 + * + * 开启后,当前节点声明了 display: flex 就会成为 flex container,并作用于其子节点 + * + * 默认为 false + */ + enableFlex: boolean; + /** + * 是否开启 scroll anchoring 特性,即控制滚动位置不随内容变化而抖动,仅在 iOS 下生效 + * + * 安卓下可参考 CSS overflow-anchor 属性 + * + * 默认为 false + */ + scrollAnchoring: boolean; + /** 滚动到顶部/左边时触发 */ + onScrolltoupper: _ScrollViewOnScrolltoupper; + /** 滚动到底部/右边时触发 */ + onScrolltolower: _ScrollViewOnScrolltolower; + /** 滚动时触发 */ + onScroll: _ScrollViewOnScroll; + /** 自定义下拉刷新控件被下拉时触发 */ + onRefresherpulling: _ScrollViewOnRefresherpulling; + /** 自定义下拉刷新被触发时触发 */ + onRefresherrefresh: _ScrollViewOnRefresherrefresh; + /** 自定义下拉刷新被复位时触发 */ + onRefresherrestore: _ScrollViewOnRefresherrestore; + /** 自定义下拉刷新被中止时触发 */ + onRefresherabort: _ScrollViewOnRefresherabort; + }>; /** * 可滚动视图区域,用于区域滚动 diff --git a/packages/uni-app-types/src/view-containers/swiper-item.ts b/packages/uni-app-types/src/view-containers/swiper-item.ts index d283fb9..d3a96a1 100644 --- a/packages/uni-app-types/src/view-containers/swiper-item.ts +++ b/packages/uni-app-types/src/view-containers/swiper-item.ts @@ -1,10 +1,12 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** Swiper 直接子组件属性 */ -type _SwiperItemProps = Partial<{ - /** 标识符 */ - itemId: string; -}>; +type _SwiperItemProps = CommonProps & + Partial<{ + /** 标识符 */ + itemId: string; + }>; /** * Swiper 直接子组件,宽高自动设置为父组件的 100% diff --git a/packages/uni-app-types/src/view-containers/swiper.ts b/packages/uni-app-types/src/view-containers/swiper.ts index 222b442..f9431eb 100644 --- a/packages/uni-app-types/src/view-containers/swiper.ts +++ b/packages/uni-app-types/src/view-containers/swiper.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { CustomEvent } from "../events"; /** @@ -72,136 +73,137 @@ type _SwiperOnAnimationfinishEvent = type _SwiperOnAnimationfinish = (event: _SwiperOnAnimationfinishEvent) => void; /** 滑块视图容器属性 */ -type _SwiperProps = Partial<{ - /** - * 是否显示面板指示点 - * - * 默认为 false - */ - indicatorDots: boolean; - /** - * 指示点颜色 - * - * 默认为 rgba(0, 0, 0, 0.3) - */ - indicatorColor: string; - /** - * 当前选中的指示点颜色 - * - * 默认为 #000000 - */ - indicatorActiveColor: string; - /** Swiper-item 可见时的 class */ - activeClass: string; - /** Acceleration 设置为 true 时且处于滑动过程中,中间若干屏处于可见时的 class */ - changingClass: boolean; - /** - * 是否自动切换 - * - * 默认为 false - */ - autoplay: boolean; - /** - * 当前所在滑块的下标 - * - * 默认为 0 - */ - current: number; - /** 当前所在滑块的 item-id ,不能与 current 被同时指定 */ - currentItemId: string; - /** - * 自动切换时间间隔 - * - * 默认为 5000 - */ - interval: number; - /** - * 滑动动画时长 - * - * 默认为 500 - */ - duration: number; - /** - * 是否采用衔接滑动,即播放到末尾后重新回到开头 - * - * 默认为 false - */ - circular: boolean; - /** - * 滑动方向是否为纵向 - * - * 默认为 false - */ - vertical: boolean; - /** - * 前边距,可用于露出前一项的一小部分 - * - * 接受 px 和 rpx 值 - * - * 默认为 0px - */ - previousMargin: string; - /** - * 后边距,可用于露出后一项的一小部分 - * - * 接受 px 和 rpx 值 - * - * 默认为 0px - */ - nextMargin: string; - /** - * 当开启时,会根据滑动速度,连续滑动多屏 - * - * 默认 false - */ - acceleration: boolean; - /** - * 是否禁用代码变动触发 swiper 切换时使用动画 - * - * 默认为 false - */ - disableProgrammaticAnimation: boolean; - /** - * 同时显示的滑块数量 - * - * 默认为 1 - */ - displayMultipleItems: number; - /** - * 是否跳过未显示的滑块布局 - * - * 设为 true 可优化复杂情况下的滑动性能,但会丢失隐藏状态滑块的布局信息 - * - * 默认为 false - */ - skipHiddenItemLayout: boolean; - /** - * 是否禁止用户 touch 操作 - * - * 默认为 false - */ - disableTouch: boolean; - /** - * 是否监听用户的触摸事件 - * - * 只在初始化时有效,不支持动态修改 - * - * 默认为 true - */ - touchable: boolean; - /** - * 指定 swiper 切换缓动动画类型 - * - * 默认为 default - */ - easingFunction: _SwiperEasingFunction; - /** Current 改变时触发 */ - onChange: _SwiperOnChange; - /** Swiper-item 位置改变时触发 */ - onTransition: _SwiperOnTransition; - /** 动画结束时触发 */ - onAnimationfinish: _SwiperOnAnimationfinish; -}>; +type _SwiperProps = CommonProps & + Partial<{ + /** + * 是否显示面板指示点 + * + * 默认为 false + */ + indicatorDots: boolean; + /** + * 指示点颜色 + * + * 默认为 rgba(0, 0, 0, 0.3) + */ + indicatorColor: string; + /** + * 当前选中的指示点颜色 + * + * 默认为 #000000 + */ + indicatorActiveColor: string; + /** Swiper-item 可见时的 class */ + activeClass: string; + /** Acceleration 设置为 true 时且处于滑动过程中,中间若干屏处于可见时的 class */ + changingClass: boolean; + /** + * 是否自动切换 + * + * 默认为 false + */ + autoplay: boolean; + /** + * 当前所在滑块的下标 + * + * 默认为 0 + */ + current: number; + /** 当前所在滑块的 item-id ,不能与 current 被同时指定 */ + currentItemId: string; + /** + * 自动切换时间间隔 + * + * 默认为 5000 + */ + interval: number; + /** + * 滑动动画时长 + * + * 默认为 500 + */ + duration: number; + /** + * 是否采用衔接滑动,即播放到末尾后重新回到开头 + * + * 默认为 false + */ + circular: boolean; + /** + * 滑动方向是否为纵向 + * + * 默认为 false + */ + vertical: boolean; + /** + * 前边距,可用于露出前一项的一小部分 + * + * 接受 px 和 rpx 值 + * + * 默认为 0px + */ + previousMargin: string; + /** + * 后边距,可用于露出后一项的一小部分 + * + * 接受 px 和 rpx 值 + * + * 默认为 0px + */ + nextMargin: string; + /** + * 当开启时,会根据滑动速度,连续滑动多屏 + * + * 默认 false + */ + acceleration: boolean; + /** + * 是否禁用代码变动触发 swiper 切换时使用动画 + * + * 默认为 false + */ + disableProgrammaticAnimation: boolean; + /** + * 同时显示的滑块数量 + * + * 默认为 1 + */ + displayMultipleItems: number; + /** + * 是否跳过未显示的滑块布局 + * + * 设为 true 可优化复杂情况下的滑动性能,但会丢失隐藏状态滑块的布局信息 + * + * 默认为 false + */ + skipHiddenItemLayout: boolean; + /** + * 是否禁止用户 touch 操作 + * + * 默认为 false + */ + disableTouch: boolean; + /** + * 是否监听用户的触摸事件 + * + * 只在初始化时有效,不支持动态修改 + * + * 默认为 true + */ + touchable: boolean; + /** + * 指定 swiper 切换缓动动画类型 + * + * 默认为 default + */ + easingFunction: _SwiperEasingFunction; + /** Current 改变时触发 */ + onChange: _SwiperOnChange; + /** Swiper-item 位置改变时触发 */ + onTransition: _SwiperOnTransition; + /** 动画结束时触发 */ + onAnimationfinish: _SwiperOnAnimationfinish; + }>; /** * 滑块视图容器,一般用于左右滑动或上下滑动,比如 banner 轮播图 diff --git a/packages/uni-app-types/src/view-containers/view.ts b/packages/uni-app-types/src/view-containers/view.ts index c580bd7..65980c3 100644 --- a/packages/uni-app-types/src/view-containers/view.ts +++ b/packages/uni-app-types/src/view-containers/view.ts @@ -1,38 +1,40 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; /** 视图容器属性 */ -type _ViewProps = Partial<{ - /** - * 指定按下去的样式类 - * - * 当 hover-class="none" 时,没有点击态效果 - * - * 默认为 none - */ - hoverClass: string; - /** - * 指定是否阻止本节点的祖先节点出现点击态 - * - * 默认为 false - */ - hoverStopPropagation: boolean; - /** - * 按住后多久出现点击态 - * - * 单位为毫秒 - * - * 默认为 50 - */ - hoverStartTime: number; - /** - * 手指松开后点击态保留时间 - * - * 单位为毫秒 - * - * 默认为 400 - */ - hoverStayTime: number; -}>; +type _ViewProps = CommonProps & + Partial<{ + /** + * 指定按下去的样式类 + * + * 当 hover-class="none" 时,没有点击态效果 + * + * 默认为 none + */ + hoverClass: string; + /** + * 指定是否阻止本节点的祖先节点出现点击态 + * + * 默认为 false + */ + hoverStopPropagation: boolean; + /** + * 按住后多久出现点击态 + * + * 单位为毫秒 + * + * 默认为 50 + */ + hoverStartTime: number; + /** + * 手指松开后点击态保留时间 + * + * 单位为毫秒 + * + * 默认为 400 + */ + hoverStayTime: number; + }>; /** * 视图容器,和 div 类似,用于包裹各种元素内容 diff --git a/packages/uni-app-types/src/web-view/index.ts b/packages/uni-app-types/src/web-view/index.ts index b478173..ad9bd66 100644 --- a/packages/uni-app-types/src/web-view/index.ts +++ b/packages/uni-app-types/src/web-view/index.ts @@ -1,4 +1,5 @@ import type { DefineComponent } from "vue"; +import type { CommonProps } from "../common"; import type { BaseEvent, CustomEvent } from "../events"; /** 样式 */ @@ -34,22 +35,23 @@ type _WebViewOnOnPostMessageEvent = BaseEvent; type _WebViewOnOnPostMessage = (event: _WebViewOnOnPostMessageEvent) => void; /** Web 浏览器组件属性 */ -type _WebViewProps = Partial<{ - /** 指向网页的链接 */ - src: string; - /** 用于为 iframe 指定其特征策略 */ - allow: string; - /** 该属性对呈现在 iframe 框架中的内容启用一些额外的限制条件 */ - sandbox: string; - /** 样式 */ - webviewStyles: _WebViewStyles; - /** 是否自动更新当前页面标题 */ - updateTitle: boolean; - /** 网页向应用 postMessage 时,会在特定时机(后退、组件销毁、分享)触发并收到消息 */ - onMessage: _WebViewOnMessage; - /** 网页向应用实时 postMessage */ - onOnPostMessage: _WebViewOnOnPostMessage; -}>; +type _WebViewProps = CommonProps & + Partial<{ + /** 指向网页的链接 */ + src: string; + /** 用于为 iframe 指定其特征策略 */ + allow: string; + /** 该属性对呈现在 iframe 框架中的内容启用一些额外的限制条件 */ + sandbox: string; + /** 样式 */ + webviewStyles: _WebViewStyles; + /** 是否自动更新当前页面标题 */ + updateTitle: boolean; + /** 网页向应用 postMessage 时,会在特定时机(后退、组件销毁、分享)触发并收到消息 */ + onMessage: _WebViewOnMessage; + /** 网页向应用实时 postMessage */ + onOnPostMessage: _WebViewOnOnPostMessage; + }>; /** Web 浏览器组件,可承载网页 */ type _WebView = DefineComponent<_WebViewProps>;