Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | import { defineComponentHOC, Doraemon, Component, Watch, Emit } from '@doraemon-ui/miniprogram.core-js' const { classNames } = Doraemon.util @Component({ props: { prefixCls: { type: String, default: 'dora-pagination', }, mode: { type: String, default: 'button', }, defaultCurrent: { type: Number, default: 1, }, current: { type: Number, default: 1, }, controlled: { type: Boolean, default: false, }, total: { type: Number, default: 0, }, simple: { type: Boolean, default: false, }, }, }) class Pagination extends Doraemon { get classes () { const { prefixCls } = this as any const wrap = classNames(prefixCls) const prev = `${prefixCls}__prev` const button = `${prefixCls}__button` const number = `${prefixCls}__number` const active = `${prefixCls}__active` const pointer = `${prefixCls}__pointer` const dot = `${prefixCls}__dot` const next = `${prefixCls}__next` return { wrap, prev, button, number, active, pointer, dot, next, } } activeIndex: number = 1 @Watch('current') watchCurrent (newVal: number) { if ((this as any).controlled) { this.updated(newVal) } } updated(activeIndex: number) { if (this.activeIndex !== activeIndex) { this.activeIndex = activeIndex } } @Emit('change') onChange(current: number, type: 'prev' | 'next') { if (!(this as any).controlled) { this.updated(current) } return { current, type, } } @Emit('prev') onPrev() { const current = this.activeIndex - 1 this.onChange(current, 'prev') return { current, } } @Emit('next') onNext() { const current = this.activeIndex + 1 this.onChange(current, 'next') return { current, } } } export default defineComponentHOC()(Pagination) |