123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- // component.js
- import { ComponentWithComputed } from 'miniprogram-computed'
- ComponentWithComputed({
- options: {
- styleIsolation: 'apply-shared'
- },
- properties: {
- paging: Object,
- g_cdn: String
- },
- data: {
- },
- watch:{
- 'paging.current':function (val) {
- this.triggerEvent('changeCurrent', val)
- }
- },
- computed: {
- min() {
- return 1
- },
- max(data) {
- return Math.ceil(data.paging.total / data.paging.pageSize)
- },
- routineMin(data) {
- return data.paging.current - Math.ceil(data.paging.showSize / 2)
- },
- routineMax(data) {
- return data.paging.current + Math.floor(data.paging.showSize / 2)
- },
- currMin(data: any) {
- let c = data.max - data.routineMax
- if (data.routineMin <= data.min) {
- return data.min
- } else if (c >= 0) {
- return data.routineMin
- } else if (data.routineMin + c <= data.min) {
- return data.min
- } else {
- return data.routineMin + c
- }
- },
- currMax(data: any) {
- let c = data.min - data.routineMin
- if (data.routineMax >= data.max) {
- return data.max
- } else if (c <= 0) {
- return data.routineMax
- } else if (data.routineMax + c >= data.max) {
- return data.max
- } else {
- return data.routineMax + c
- }
- },
- numbers(data: any) {
- let total = data.currMax - data.currMin
- let numbers = []
- if (total <= 0) {
- numbers.push(1)
- } else {
- for (let i = 0; i <= total; i++) {
- numbers.push(data.currMin + i)
- }
- }
- return numbers
- }
- },
- methods: {
- onTap(e: any) {
- let { idx } = e.currentTarget.dataset;
- this.setData({
- 'paging.current': idx
- })
- },
- prev() {
- if (this.properties.paging.current - 1 < this.data.min) {
- return
- }
- this.setData({
- 'paging.current': this.properties.paging.current - 1
- })
- },
- next() {
- if (this.properties.paging.current + 1 > this.data.max) {
- return
- }
- this.setData({
- 'paging.current': this.properties.paging.current + 1
- })
- },
- }
- })
|