1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /**
- * mescroll-more-item的mixins, 仅在多个 mescroll-body 写在子组件时使用 (参考 mescroll-more 案例)
- */
- const MescrollMoreItemMixin = {
- // 支付宝小程序不支持props的mixin,需写在具体的页面中
- // #ifndef MP-ALIPAY || MP-DINGTALK
- props:{
- i: Number, // 每个tab页的专属下标
- index: { // 当前tab的下标
- type: Number,
- default(){
- return 0
- }
- }
- },
- // #endif
- data() {
- return {
- downOption:{
- auto:false // 不自动加载
- },
- upOption:{
- auto:false // 不自动加载
- },
- isInit: false // 当前tab是否已初始化
- }
- },
- watch:{
- // 监听下标的变化
- index(val){
- if (this.i === val && !this.isInit) {
- this.isInit = true; // 标记为true
- this.mescroll && this.mescroll.triggerDownScroll();
- }
- }
- },
- methods: {
- // 以ref的方式初始化mescroll对象 (兼容字节跳动小程序)
- mescrollInitByRef() {
- if(!this.mescroll || !this.mescroll.resetUpScroll){
- // 字节跳动小程序编辑器不支持一个页面存在相同的ref, 多mescroll的ref需动态生成, 格式为'mescrollRef下标'
- let mescrollRef = this.$refs.mescrollRef || this.$refs['mescrollRef'+this.i];
- if(mescrollRef) this.mescroll = mescrollRef.mescroll
- }
- },
- // mescroll组件初始化的回调,可获取到mescroll对象 (覆盖mescroll-mixins.js的mescrollInit, 为了标记isInit)
- mescrollInit(mescroll) {
- this.mescroll = mescroll;
- this.mescrollInitByRef && this.mescrollInitByRef(); // 兼容字节跳动小程序
- // 自动加载当前tab的数据
- if(this.i === this.index){
- this.isInit = true; // 标记为true
- this.mescroll.triggerDownScroll();
- }
- },
- }
- }
- export default MescrollMoreItemMixin;
|