UNPKG

uview-pro

Version:

uView Pro,是全面支持Vue3的uni-app生态框架,70+精选组件已使用TypeScript重构,已全面支持uni-app Vue3.0

48 lines (45 loc) 2.32 kB
import type { ExtractPropTypes, PropType } from 'vue'; import type { ImgMode, SwiperIndicatorPosition, SwiperMode } from '../../types/global'; /** * SwiperProps 轮播图 props 类型定义 * @description 轮播图,支持多种指示器、3D、自动播放等 */ export const SwiperProps = { /** 轮播数据列表,数组对象 */ list: { type: Array as PropType<Array<Record<string, any>>>, default: () => [] }, /** 是否显示标题 */ title: { type: Boolean, default: false }, /** 指示器配置对象 */ indicator: { type: Object as PropType<Record<string, any>>, default: () => ({}) }, /** 圆角,单位rpx */ borderRadius: { type: [Number, String] as PropType<number | string>, default: 8 }, /** 自动切换时间间隔,单位ms */ interval: { type: [String, Number] as PropType<number | string>, default: 3000 }, /** 指示器类型,round/dot/line等 */ mode: { type: String as PropType<SwiperMode>, default: 'round' }, /** 轮播高度,单位rpx */ height: { type: [Number, String] as PropType<number | string>, default: 250 }, /** 指示器位置 */ indicatorPos: { type: String as PropType<SwiperIndicatorPosition>, default: 'bottomCenter' }, /** 是否开启3D效果 */ effect3d: { type: Boolean, default: false }, /** 3D模式下前一项的边距,单位rpx */ effect3dPreviousMargin: { type: [Number, String] as PropType<number | string>, default: 50 }, /** 是否自动播放 */ autoplay: { type: Boolean, default: true }, /** 切换动画时长,单位ms */ duration: { type: [Number, String] as PropType<number | string>, default: 500 }, /** 是否循环播放 */ circular: { type: Boolean, default: true }, /** 图片裁剪模式 */ imgMode: { type: String as PropType<ImgMode>, default: 'aspectFill' }, /** 轮播项对象的图片字段名 */ name: { type: String, default: 'image' }, /** 轮播背景色 */ bgColor: { type: String, default: '#f3f4f6' }, /** 当前激活项索引 */ current: { type: [Number, String] as PropType<number | string>, default: 0 }, /** 标题样式对象 */ titleStyle: { type: Object as PropType<Record<string, any>>, default: () => ({}) } }; export type SwiperProps = ExtractPropTypes<typeof SwiperProps>;