123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- // import { directive, Swiper, SwiperSlide } from 'vue-awesome-swiper'
- // import 'swiper/css/swiper.css'
- import {funMixin} from '../../config/mixin'
- import api from '../../config/api'
- export const commonMixin = {
- name: 'productList',
- mixins: [funMixin],
- props: {
- terminal: {
- type: Number,
- default: 4
- },
- typeId: {
- type: Number,
- default: 1
- },
- shopId: {
- type: Number,
- default: 0
- },
- componentContent: {
- type: Object
- }
- },
- // components: {
- // Swiper,
- // SwiperSlide
- // },
- // directives: {
- // swiper: directive
- // },
- data () {
- return {
- productData: [1,2,3,4],
- pageTotal:0,
- pageSize:8,
- currentPage:1,
- loading:true,
- isFirst:true
- }
- },
- watch: {
- 'componentContent': {
- handler(newVal, oldVal) {
- //this.getData()
- },
- deep: true
- }
- },
- created() {
- this.getData(true)
- },
- computed: {
- swiper() {
- if(this.$refs.mySwiper){
- return this.$refs.mySwiper.$swiper
- }
- }
- },
- methods: {
- getData() {
- const _ = this
- // 纵向
- _.loading=true
- if (_.componentContent.productData.sourceType === '1') {
- if(_.componentContent.productData.productIdList && _.componentContent.productData.productIdList.length>0){
- _.sendReq({
- url: `${api.getProductsV2}?page=${_.currentPage}&pageSize=${_.pageSize}&ids=${_.componentContent.productData.productIdList}`,
- method: 'GET'
- }, (proRes) => {
- _.productData = [..._.productData,...proRes.data.list].filter(item=>!!item.productId)
- _.pageTotal = proRes.data.total
- if(_.isFirst){
- _.componentContent.productData.imgTextData = _.productData
- }
- _.isFirst = false
- _.loading = false
- })
- } else {
- _.productData = []
- _.isFirst = false
- _.loading = false
- }
- } else if(_.componentContent.productData.sourceType === '2'){
- if(_.componentContent.productData.categoryId) {
- _.sendReq({
- url: `${api.getProductsV2}?page=1&pageSize=99&classifyId=${_.componentContent.productData.categoryId}`,
- method: 'GET'
- }, (proRes) => {
- _.productData = proRes.data.list
- _.productData = _.productData.filter(item=>JSON.stringify(item) !== '{}')
- if(_.isFirst){
- _.componentContent.productData.imgTextData = _.productData
- }
- // _.swiper.update()
- _.isFirst = false
- _.loading = false
- })
- } else {
- _.productData = {
- products:[]
- }
- _.isFirst = false
- _.loading = false
- }
- }
- },
- loadNext(){
- if(this.loading)return;
- if(this.productData.length>=this.pageTotal && this.pageTotal!==0)return
- this.currentPage ++;
- this.getData()
- }
- }
- }
|