Files
2026-01-05 12:47:14 +08:00

111 lines
2.7 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { ExtractPropTypes } from 'vue'
import { commonProps, isBoolean, makeNumberProp, makeStringProp, truthProp } from '../_utils'
export const countupProps = {
...commonProps,
/**
* @description 初始数字
*/
initNum: makeNumberProp(0),
/**
* @description 结束数字
*/
endNum: makeNumberProp(0),
/**
* @description 间隔数字,目前仅支持基础用法
*/
speed: makeNumberProp(1),
/**
* @description 保留小数点后几位
*/
toFixed: makeNumberProp(0),
/**
* @description 触发数字滚动的标识
*/
startFlag: truthProp,
/**
* @description 滚动一次运行时间
*/
during: makeNumberProp(1000),
/**
* @description 数字宽度,常用于自定义无缝滚动
*/
numWidth: makeNumberProp(20),
/**
* @description 数字高度,常用于自定义无缝滚动(抽奖功能必传)
*/
numHeight: makeNumberProp(20),
scrolling: Boolean,
/**
* @description 要变化的数字(用于自定义图片,`initNum`、`endNum` 在此无效)
*/
customChangeNum: makeNumberProp(1),
/**
* @description 自定义图片(建议使用雪碧图实现,使用抽奖功能必须使用雪碧图)
*/
customBgImg: makeStringProp(''),
/**
* @description 图片中数字之间可能会存在间距
*/
customSpacNum: makeNumberProp(0),
/**
* @description 抽奖功能传 machine可选值为 `machine` `' '`
*/
type: makeStringProp(''),
/**
* @description 奖品个数,一共多少个奖品,必传
*/
machinePrizeNum: makeNumberProp(0),
/**
* @description 抽奖位,即滚动几个,必传
*/
machineNum: makeNumberProp(3),
/**
* @description 中奖图标,图标在雪碧图中的位置
*/
machinePrizeLevel: makeNumberProp(0),
/**
* @description 滚动圈数
*/
machineTurnMore: makeNumberProp(0),
}
export type CountUpProps = ExtractPropTypes<typeof countupProps>
export const countupEmits = {
scrollEnd: (val?: boolean) => isBoolean(val) || val === undefined,
}
export type CountUpEmits = typeof countupEmits
export interface IData {
valFlag: boolean
current: number
sortFlag: string
initDigit1: number
initDigit2: number
to0_10: number[]
to10_0: Array<number>
timer: null | any
totalCount: number // 正整数
pointNum: number // 小数位
numberVal: number // 数字
num_total_len: number // 数字长度
relNum: number // 去除小数点
customNumber: number
prizeLevelTrun: number
prizeY: Array<any>
prizeYPrev: Array<any>
// machineTransition: 'none',
finshMachine: number
notPrize: Array<any>
typeMachine: string
}
export interface CountUpInst {
/**
* @description 抽奖
*/
machineLuck: () => void
}