favorite.js 2.28 KB
import { get, set } from 'lodash';
import { getImgUrl } from '../../common/utils';
import Vue from 'vue';

export default function() {
  return {
    namespaced: true,
    state: {
      page: 1,
      pageTotal: 0,
      recId: '',
      favoriteProductList: {
        list:[]
      },
      isMore: false,
    },
    mutations: {
      addList(state, { data, isReset }) {
        // console.log(data)
        if(data && data.product_list){
          // data.product_list.
            let { page, product_list = [], page_total } = data;
            // let isShowEmpty = page === 1 && product_list === 0;
            // console.log("isShowEmpty:"+isShowEmpty)
            // state.isShowEmpty = isShowEmpty
            if(page_total > page){
              // console.log('======'+page_total+"///"+page)
              state.isMore = true;
              state.pageTotal = page_total;
              state.page = page + 1;
              // console.log(state)
            }else {
              state.isMore = false;
            }

            if(isReset) {
              state.favoriteProductList.list = product_list
            }else {
              let list = state.favoriteProductList.list.concat(product_list);
              Vue.set(state.favoriteProductList, "list", list);
            }


        }else {
          // state.isShowEmpty = true;
        }

      },
      errorData(state){
        // console.log("error==isShowEmpty:")
        state.isShowEmpty = true;
      }

    },
    actions: {
      async fetchFavoriteList({ commit, state }, {isReset}={} ) {
        // console.log('...params')
        // console.log(...params)
        // let { isReset } = params;
        // console.log('===:'+isReset)
        let page = 1
        if(isReset){
          page = 1
        }else {
          page = state.page;
        }
          // let page = state.page;
          let limit = 20;
          const result = await this.$api.get('/api/ufo/home/favoriteProduct', {page, limit});
          if (result.code === 200) {
              let data =result.data;
            commit('addList', { data, isReset });
          }else {
            // console.log("error=//=isShowEmpty:")
            commit('errorData');
          }
          return result.data || [];
        // }else {
        //   return [];
        // }
      },
    },
  };
}