detail.js 3.88 KB
import detailModel from '../../../models/product/detail';
import config from '../../../common/config';
import Yas from '../../../common/yas';
import {
  Actionsheet
} from '../../../vendors/zanui/index';

let app = getApp();
let router = global.router;

let {
  windowHeight
} = app.getSystemInfo();

let yas;

Page(Object.assign({
  data: {
    productSkn: 0,
    productName: '',
    limitProductCode: '',
    price: '',
    defaultImage: '',
    productDesc: [],
    snapData: {},

    actionSheet: {
      componentId: 'shareActionSheet',
      show: false,
      closeOnClickOverlay: true,
      cancelText: '取消',
      actions: [{
        name: '邀请好友助力',
        className: 'action-class',
        loading: false,
        openType: 'share'
      }, {
        name: '生成图片分享到朋友圈',
        className: 'action-class',
        loading: false,
      }]
    },
  },
  onLoad: function(options) {
    let limitProductCode = options.limitProductCode ? options.limitProductCode : '';

    this.setData({
      limitProductCode
    });
    this.productInfo();

    yas = new Yas(app);
    yas.pageOpenReport();
  },
  onShareAppMessage: function(res) {
    let params = {
      FROM: res.from,
      SHARE_RESUIL: 0,
      TITLE: this.data.productName,
      DESC: '我在有货限定频道发现一个不错的商品赶快来看看吧!',
      PATH: `/pages/product/detail/detail?limitProductCode=${this.data.limitProductCode}&originUid=${app.getUid()}`,
    };

    // 用户点击右上角分享
    return {
      title: params.TITLE, // 分享标题
      desc: params.DESC, // 分享描述
      path: params.PATH, // 分享路径
      success: function() {
        params.SHARE_RESUIL = 1;
        yas.report('YB_SHARE_RESULT_L', params);
      },
      fail: function() {
        params.SHARE_RESUIL = 2;
        yas.report('YB_SHARE_RESULT_L', params);
      }
    };
  },
  share: function() {
    this.setData({
      'actionSheet.show': true
    });
  },
  handleZanActionsheetCancel() {
    this.setData({
      'actionSheet.show': false
    });
  },

  // 当行动按钮中有一个被点击时触发
  // index 代表被点击按钮在传入参数 actions 中的位置
  handleZanActionsheetClick({
    index
  }) {
    this.setData({
      'actionSheet.show': false
    });

    if (index === 1) {
      //生成页面给
      router.go('snapShare', this.snapData);
    }
  },
  productInfo: function() {
    detailModel.productInfo(app.getUid(), this.data.limitProductCode)
      .then(res => {
        if (res.code === 200) {
          let defaultImage;

          if (res.data.defaultUrl) {
            defaultImage = res.data.defaultUrl;
          }

          let productDesc = [];

          if (res.data.attachment) {
            productDesc = res.data.attachment.map(a => {
              return {
                imageUrl: a.attachUrl,
                intro: a.intro
              };
            });
          }

          let default_image = defaultImage;
          let product_qrCode = config.domains.api + `/wechat/miniapp/img-check.jpg?param=${res.data.product_skn}&uid=${app.getUid()}&limitProductCode=${this.data.limitProductCode}`; // eslint-disable-line

          let snapData = {
            product_name: res.data.product_name,
            default_image,
            product_qrCode,
            product_skn: this.data.productSkn
          };

          this.setData({
            productSkn: res.data.productSkn,
            productName: res.data.productName,
            price: res.data.price,
            saleTime: res.data.saleTime,
            reminderNum: res.data.reminderNum,
            defaultImage,
            productDesc,
            snapData
          });
        }
      });
  },
  _dataReport: function() {
    yas.report('YB_GDS_DT_BILL', {
      PRD_SKN: this.data.productSkn,
      RPD_SKU: this.data.selectedSKU,
      PRD_ID: this.data.selectedProductId
    });
  }
}, Actionsheet));