glhcp/uniapp/bundle/pages/bargain_code/bargain_code.vue

77 lines
2.5 KiB
Vue

<template>
<view class="bargain-code-container">
<tabs :active="active" @change="onChange" :isScroll="false">
<tab v-for="(item, index) in bargain" :key="item.type" :name="item.name" >
<bargain-list :ref="item.ref_name" :bargainType="item.type" v-if="item.isShow" />
</tab>
</tabs>
</view>
</template>
<script>
import {bargainType} from "@/utils/type"
export default {
data() {
return {
active: 0,
bargainCodeType: bargainType.ALL,
bargain: [{
name: '全部',
type: bargainType.ALL,
ref_name: 'all',
isShow: true
}, {
name: '砍价中',
type: bargainType.BARGINNING,
ref_name: 'barginning',
isShow: false
}, {
name: "砍价成功",
type: bargainType.SUCCESS,
ref_name: 'success',
isShow: false
}, {
name: '砍价失败',
type: bargainType.FAIL,
ref_name: 'fail',
isShow: false
}]
}
},
onLoad(options) {
},
onReachBottom: function () {
const {
active, bargain
} = this;
let type = bargain[active].ref_name;
let myComponent = this.$refs[type][0];
if (myComponent.$getBargainActivityList) {
myComponent.$getBargainActivityList();
}
},
methods: {
onChange(active) {
const {bargain} = this;
console.log(active)
let type = bargain[active].ref_name
let index = bargain.findIndex(item => {
return item.ref_name == type;
});
if (index != -1) {
this.bargain[index].isShow = true;
this.active = index;
}
this.$nextTick(() => {
console.log(this.$refs, "refs", type)
console.log('this.$refs[all]', this.$refs['all'])
if(this.$refs[type] && this.$refs[type][0].$getBargainActivityList) {
this.$refs[type][0].$getBargainActivityList();
}
})
}
}
}
</script>