actions.js 2.29 KB
import * as Types from './types';

function getUploadImgAbsoluteUrl(url, bucket = 'goodsimg') {
  if (!url) {
    return null;
  }

  let urlArr = url.split('/'),
    stag = urlArr[urlArr.length - 1].substr(0, 2),
    domain = `static.yhbimg.com/${bucket}`;

  url = domain + url;
  if (stag === '01') {
    return `//img11.${url}`;
  } else if (stag === '03') {
    return `//flv01.${url}`;
  } else {
    return `//img12.${url}`;
  }
}

function _url({ name }) {
  return getUploadImgAbsoluteUrl(name);
}

function _handleData(data) {
  const result = {
    business_type: data.businessType,
    business_name: data.businessName,
    social_credit_code: data.socialCreditCode,
    cert_name: data.certName,
    cert_no: data.certNo,
    start_time: data.time.start_time,
    expire_time: data.time.noLimit ? '0' : data.time.expire_time,
    license_original_image: data.licenseOriginalImage.map(_url).join(''),
    license_copy_image: data.licenseCopyImage.map(_url).join(''),
    cert_face_image: data.certFaceImage.map(_url).join(''),
    cert_reverse_image: data.certReverseImage.map(_url).join('')
  };

  return result;
}

export default {
  async fetchToken({ commit }) {
    const result = await this.$api.get('/getToken');

    commit(Types.FETCH_UFO_UPLOAD_TOKEN_SUCCESS, { token: result.uptoken });
  },

  async saveLicense({ commit }, data) {
    const result = await this.$api.post(
      '/api/ufo/license/save',
      _handleData(data)
    );

    return result;
  },

  async licenseStatus({ commit }) {
    let result = await this.$api.get('/api/ufo/license/status');

    if (result.code === 200) {
      commit(Types.FETCH_UFO_STATUS_SUCCESS, {
        status: result.data,
        message: result.message
      });
    } else {
      commit(Types.FETCH_UFO_STATUS_SUCCESS, { status: -1 });
    }
  },

  async getStoreStatus({ commit }) {
    let result = {};

    try {
      result = await this.$api.get('/api/ufo/store/status');
    } catch (e) {
      return result;
    }

    return result;
  },

  async createUfoProduct(params, data) {
    return this.$api.post('/api/ufo/seller/create', {
      brand: data.brand,
      product_name: data.product_name,
      price: data.price,
      sale_time: data.sale_time,
      product_code: data.product_code,
      imageList: data.imageList.map(_url).join(',')
    });
  }
};