export default { data() { return { MIXIN_NowIndex: 0, MIXIN_ActiveIndex: 0, MIXIN_MoveBarLeft: 0, MIXIN_FinishedIndex: 0, MIXIN_ScrollViewHeight: 0, // scroll view 高 MIXIN_ScreenWidth: this.$store.state.device.screenWidth // 屏幕宽 } }, mounted() { this.$offset('.swiper').then(res => { this.MIXIN_ScrollViewHeight = res.height }) // 设置scrollview 高 }, methods: { MIXIN_transition({ detail: { dx } }) { // swiper 切换时 ///////////////////////////////////////////////////////////////////<固定写法> // this.MIXIN_MoveBarLeft = this.MIXIN_FinishedIndex * (this.MIXIN_ScreenWidth / this.typeList.length) + dx / this.typeList.length }, MIXIN_change({ detail: { current } }) { this.MIXIN_ActiveIndex = current this.MIXIN_MoveBarLeft = this.MIXIN_ActiveIndex * (this.MIXIN_ScreenWidth / this.typeList.length) }, MIXIN_animationfinish({ detail: { current } }) { // swiper 停止切换 this.MIXIN_FinishedIndex = this.MIXIN_NowIndex = current if (!this.lists[this.MIXIN_NowIndex].length && this.page[this.MIXIN_NowIndex] !== 0) { // 当当前类型数量为 0 且有不是 没有更多时请求列表 this.MIXIN_request() } }, switchSwiper(index) { // 点击导航栏切换 this.MIXIN_NowIndex = this.MIXIN_ActiveIndex = index this.MIXIN_MoveBarLeft = (this.MIXIN_NowIndex + 1) * (this.MIXIN_ScreenWidth / this.typeList.length) }, /////////////////////////////////////////////////////////////////////////////////////////////////////////////////<固定写法> MIXIN_pulldownrefresh() { // 下拉刷新 this.page[this.MIXIN_NowIndex] = 1 this.MIXIN_request().then(() => { this.$refs.pulldownRefresher.pullup() }) }, MIXIN_scrolltolower() { // 上拉加载 this._requesting ? '': this.MIXIN_request('loadmore') }, MIXIN_request(action) { // 请求数据 return new Promise(resolve => { // 只有在 首次加载列表或者下拉刷新时才显示 liaoding if (this.page[this.MIXIN_NowIndex]) { // 当上一批数量不小于 size 时执行 !action && uni.showLoading({ mask: true }) // 开始 loading, 只有在 首次加载列表或者下拉刷新时才显示 liaoding this._requesting = true // 请求加锁防抖 this.apis[this.MIXIN_NowIndex]({ page: this.page[this.MIXIN_NowIndex] }).then(res => { this.MIXIN_requestHandle ? this.MIXIN_requestHandle(res) : '' // 执行请求结束处理函数 !action ? this.lists[this.MIXIN_NowIndex] = [] : '' ,// 如果是下拉刷新,清空列表 this.lists[this.MIXIN_NowIndex] = [...this.lists[this.MIXIN_NowIndex], ...res.data.list] res.data.list.length < +res.data.size ? this.page[this.MIXIN_NowIndex] = 0 : this.page[this.MIXIN_NowIndex] += 1 // 如果返回列表数量小于 10 表示没有更多了 }).catch(() => { // 网络请求失败 进入失败状态 this.page[this.MIXIN_NowIndex] = -1 this.lists[this.MIXIN_NowIndex] = [] }).finally(() => { // promise 结束 this._requesting = false // 取消请求加锁防抖 resolve() // 通知下拉刷新收起并把数据传出去 }) } }) } ///////////////////////////////////////////////////////////////////////////////////////<固定写法> } }