123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import { rpxToPx } from '../../utils/util'
- // components/swipescreen/swipescreen.ts
- Component({
- /**
- * 组件的属性列表
- */
- properties: {
- height: {
- type: String,
- optionalTypes: [Number],
- value: '1466rpx',
- observer(val) {
- if (typeof val == 'string') {
- this.setData({
- displayHeight: val,
- })
- } else {
- this.setData({
- displayHeight: val + 'px',
- })
- }
- },
- },
- width: {
- type: Number,
- optionalTypes: [String],
- value: 0,
- observer(val) {
- if (val.toString().indexOf('rpx') > 0) {
- this.setData({
- displayWidth: rpxToPx(String(val)),
- })
- } else {
- this.setData({
- displayWidth: Number(val),
- })
- }
- },
- },
- dots: {
- type: Boolean,
- value: false,
- observer(val) {
- this.setData({
- displayDots: val,
- })
- },
- },
- },
- options: {
- multipleSlots: true,
- },
- relations: {
- './swipescreen-item': {
- type: 'child',
- },
- },
- /**
- * 组件的初始数据
- */
- data: {
- current: 0,
- displayHeight: '1466rpx',
- displayWidth: 0,
- displayDots: false,
- lens: [] as number[],
- },
- lifetimes: {
- ready() {
- this.updateChildren()
- },
- },
- /**
- * 组件的方法列表
- */
- methods: {
- updateChildren() {
- const items = this.getRelationNodes('./swipescreen-item')
- const lens = []
- let i = 0
- while (i < items.length) {
- lens.push(i)
- i++
- }
- this.setData({
- lens,
- })
- },
- changedIndex(e: { idx: number }) {
- if (this.data.current !== e.idx) {
- this.setData({
- current: e.idx,
- })
- }
- },
- },
- })
|