actions.js 1.03 KB
import * as Types from './types';
import {first, get, flatten} from 'lodash';

export default {
  async fetchProduct({commit}, {productId, page = 1, refresh = false}) {
    commit(Types.FETCH_ORDER_PRODUCT_REQUEST);

    let result;

    if (refresh) {
      const results = await Promise.all(Array.from(new Array(page)).map((v, i) => {
        return this.$api.get('/api/ufo/seller/entryGoodsSizeList', {
          productId,
          page: i + 1
        });
      }));

      result = {
        code: 200,
        data: {
          productInfo: get(first(results), 'data.productInfo'),
          data: flatten(results.map(r => get(r, 'data.data', [])))
        }
      };
    } else {
      result = await this.$api.get('/api/ufo/seller/entryGoodsSizeList', {
        productId,
        page
      });
    }

    console.log(result);

    if (result && result.code === 200) {
      commit(Types.FETCH_ORDER_PRODUCT_SUCCESS, {
        order: result.data,
        refresh
      });
    } else {
      commit(Types.FETCH_ORDER_PRODUCT_FAILED);
    }
  }
};