indexService.js 5.27 KB
import api from '../../common/api.js';
import { getGoodDetailParam,getImageUrl } from '../../utils/util';

export function getHomeFloorlist(params) {
    return api.get({
        url: '/operations/api/v5/resource/home',
        data: {
          ...params,
          page: 1,
          limit: 10,
          fromPage: 'aFP_Home'
        },
    });
}

export function getProductlist(params) {
  return api.get({
      data: {
        ...params,
        method: 'app.search.newLast7day',
        page: 1,
        limit: 50,
      },
  });
}

export function parseHomeList(json, windowWidth, windowHeight, listImageWidth, listImageHeight){
  let newList=[];
  let index = 1;
  json && json.map((item,index)=>{
    if (item.template_name == 'focus' || item.template_name == 'newFocus'){
      //焦点图 -- 只需要对列表中的图片url进行格式化  默认宽高: 750 : 500
      for(var i =0;i<item.data.length;i++){
        let src = item.data[i].src;
        item.data[i].src = getImageUrl(item.data[i].src,750,500);
        let param = getGoodDetailParam(item.data[i].url);
        if(param){
          let json = JSON.parse(param);
          item.data[i].title = json.title;
          item.data[i]._src = json.cover_url
        }
      }
    } else if (item.template_name == 'newSingleImage'){
        //新一张图片 ratio 为  高/宽 抽取出 src title ratio
      item.ratio = item.data.imageWidth <= 0 || item.data.imageHeight<=0?0: item.data.imageHeight / item.data.imageWidth
      item.ratio = Math.ceil(750 * item.ratio);
      item.title = item.data.title;
      // if(item.title != '精彩活动' && item.title!='热门品类' && item.title !='潮流品牌'){
      //   item.title = '';
      // }
      if(item.data.list && item.data.list[0]){
        item.src = getImageUrl(item.data.list[0].src, item.data.imageWidth, item.data.imageHeight)
        item.url = item.data.list[0].url
      }
    } else if (item.template_name =='new_recommend_content_five'){
      //热门品类楼层
      item.title = item.data.title.title;
      item.moreUrl = item.data.more.url;
      item.list = item.data.list;
      for(var i=0;i<item.list.length;i++){
        item.list[i].src = getImageUrl(item.list[i].src, 188, 198);
      }
    } else if (item.template_name == '3:4ImageListFloor'){
      //潮流品牌图片列表
      item.title = item.data.title;
      item.list = item.data.list;
      for(var i=0;i<item.list.length;i++){
        item.list[i].src = getImageUrl(item.list[i].src,220,220); 
      }
      let more = item.data.more;
      if(more && more.url){
        item.moreUrl = more.url;
      }
    } else if (item.template_name == 'popularListFloor' || item.template_name == 'newProductListFloor'){
      //商品列表
      for(var i = 0;i<item.data.list.length;i++){
        try{
          item.data.list[i].default_images = item.data.list[i].default_images.replace(/{width}/g, listImageWidth).replace(/{height}/g, listImageHeight).replace('{mode}', 2);
        }catch(e){
          console.log('--ReplaceError--')
        }
       
        item.data.list[i].index = index;  
        item.data.list[i].display_type = item.data.display_type; //1显示价格2显示店铺
      }
    } else if (item.template_name == 'image_list') {
      //商品列表
      for (var i = 0; i < item.data.list.length; i++) {
        try{
          item.data.list[i].src = item.data.list[i].src.replace(/{width}/g, 150).replace(/{height}/g, 150).replace('{mode}', 2);
        }catch(e){
          console.log('--ReplaceError--')
        }
      }
    } else if (item.template_name == 'twoPicture'){
      let width = item.data.imageWidth > 0 ? item.data.imageWidth:345;
      let height = item.data.imageHeight > 0 ? item.data.imageHeight:200;
      item.ratio = height/width;
        item.data && item.data.list && item.data.list.map((item,index)=>{
          try{
            item.src = item.src.replace(/{width}/g, width).replace(/{height}/g, height).replace('{mode}', 2);
          }catch(e){
          }
          
        })
        item.title = item.data.title;
    }else if (item.template_name == 'sv_new_user_floor') {
      // 新人楼层
      if (item.data && item.data.banner_image && item.data.banner_image.length > 0) {
        for(var i = 0;i<item.data.banner_image.length;i++){
          if (item.data.banner_image[i].src) {
            try{
              item.data.banner_image[i].src = item.data.banner_image[i].src.replace(/{width}/g, 1500).replace(/{height}/g, 720).replace('{mode}', 2);
            }catch(e){
              console.log('--ReplaceError--')
            }
            
          }
        }
      }
    } else if (item.template_name == 'collageBuyPrdList'){
      if (item.data.layout_float == 'V' || item.data.layout_float == 'v'){
        item.layout_float='V';
        item.sknList = item.data.sknList;
      }else{
        item.prdList = []
        try {
          item.data.data.prdList.map((list_item, index) => {
            list_item.defaultImages = list_item.defaultImages.replace(/{width}/g, 188).replace(/{height}/g, 250).replace('{mode}', 2)
            item.prdList.push(list_item)
          })
        } catch (e) { }
      }
    } 
    else{
      item.template_name = "undefine";
    }
    index++;
    newList.push(item);
  })
  return newList;
}


export default {
  getHomeFloorlist,
  parseHomeList,
  getProductlist
};