|
|
'use strict';
|
|
|
|
|
|
import React, {Component} from 'react';
|
|
|
import ReactNative, {Platform, StyleSheet, View,Dimensions,} from 'react-native'
|
|
|
import ReactNative, {Platform, StyleSheet, View, Dimensions, NativeAppEventEmitter} from 'react-native'
|
|
|
|
|
|
import {bindActionCreators} from 'redux';
|
|
|
import {connect} from 'react-redux';
|
...
|
...
|
@@ -9,7 +9,7 @@ import {Map} from 'immutable'; |
|
|
import { setUnionType } from '../reducers/app/appActions';
|
|
|
import * as groupPurchaseDetailActions from '../reducers/groupPurchaseDetail/groupPurchaseDetailActions';
|
|
|
import GroupPurchaseDetail from '../components/GroupPurchaseDetail'
|
|
|
import ShareViewModal from '../components/ShareViewModal'
|
|
|
import DetailShareViewModal from '../components/DetailShareViewModal'
|
|
|
import SnapshootShare from '../components/SnapshootShare'
|
|
|
import {getSlicedUrl} from '../../classify/utils/Utils';
|
|
|
|
...
|
...
|
@@ -42,24 +42,33 @@ class GroupPurchaseDetailContainer extends Component { |
|
|
constructor(props) {
|
|
|
super(props);
|
|
|
this._onEndReached = this._onEndReached.bind(this);
|
|
|
this._didTouchBanner = this._didTouchBanner.bind(this);
|
|
|
this.updateTime = this.updateTime.bind(this);
|
|
|
this.didTouchProduct = this.didTouchProduct.bind(this);
|
|
|
this.goComment = this.goComment.bind(this);
|
|
|
this.didTouchButton = this.didTouchButton.bind(this);
|
|
|
this.showShareView = this.showShareView.bind(this);
|
|
|
this.shareMiniApp = this.shareMiniApp.bind(this);
|
|
|
this.shareWXTimeLine = this.shareWXTimeLine.bind(this);
|
|
|
this.showSnapshootShare = this.showSnapshootShare.bind(this);
|
|
|
this.shareSnapshootAction = this.shareSnapshootAction.bind(this);
|
|
|
|
|
|
this.subscription = NativeAppEventEmitter.addListener(
|
|
|
'ShareCollageDetailEvent',
|
|
|
() => {
|
|
|
this.props.actions.showShareView(true);
|
|
|
}
|
|
|
);
|
|
|
}
|
|
|
|
|
|
async componentDidMount() {
|
|
|
this.props.actions.getProductList();
|
|
|
this.props.actions.fetchActivityGroupDetail();
|
|
|
this.props.actions.fetchResourceInfo();
|
|
|
}
|
|
|
|
|
|
componentWillUnmount() {
|
|
|
|
|
|
this.subscription && this.subscription.remove();
|
|
|
}
|
|
|
|
|
|
updateTime(leftTime) {
|
...
|
...
|
@@ -74,7 +83,7 @@ class GroupPurchaseDetailContainer extends Component { |
|
|
let { activityId, groupNo, groupDetail } = this.props.groupPurchaseDetail;
|
|
|
if(pageGo == 1) {
|
|
|
this.props.actions.showShareView(true);
|
|
|
}else if (pageGo == 2) {
|
|
|
}else if (pageGo == 2 || pageGo == 5) {
|
|
|
let membershipItems = groupDetail.get('membershipItems');
|
|
|
let productDetail = membershipItems.size > 0 ? membershipItems.get(0) : new Map();
|
|
|
let productSkn = productDetail.get('productSkn');
|
...
|
...
|
@@ -91,7 +100,7 @@ class GroupPurchaseDetailContainer extends Component { |
|
|
ReactNative.NativeModules.YH_CommonHelper.showBuyPicker(params);
|
|
|
}else if (pageGo == 3) {
|
|
|
this.props.actions.showShareView(true);
|
|
|
}else if (pageGo == 4 || pageGo == 5 || pageGo == 7 || pageGo == 6) {
|
|
|
}else if (pageGo == 4 || pageGo == 7 || pageGo == 6) {
|
|
|
let url = `http://m.yohobuy.com?openby:yohobuy={"action":"go.activitytemplate","params":{"type":"2", "activityId":"${activityId}"}}`;
|
|
|
ReactNative.NativeModules.YH_CommonHelper.jumpWithUrl(url);
|
|
|
}
|
...
|
...
|
@@ -109,6 +118,10 @@ class GroupPurchaseDetailContainer extends Component { |
|
|
this.props.actions.showSnapshootShare(false);
|
|
|
}
|
|
|
|
|
|
showShareView(show){
|
|
|
this.props.actions.showShareView(show);
|
|
|
}
|
|
|
|
|
|
didTouchProduct(productSkn,activityId,newSrc) {
|
|
|
if(newSrc){
|
|
|
let arr=newSrc.split("?");
|
...
|
...
|
@@ -123,8 +136,15 @@ class GroupPurchaseDetailContainer extends Component { |
|
|
ReactNative.NativeModules.YH_CommonHelper.goLinkUrl(url);
|
|
|
}
|
|
|
|
|
|
showShareView(show){
|
|
|
this.props.actions.showShareView(show);
|
|
|
_didTouchBanner(url) {
|
|
|
if (!url) {
|
|
|
return;
|
|
|
}
|
|
|
let params = {
|
|
|
URL: url,
|
|
|
};
|
|
|
ReactNative.NativeModules.YH_CommonHelper.logEvent('YB_GROUP_DEATIL_BANNER_C', params);
|
|
|
ReactNative.NativeModules.YH_CommonHelper.jumpWithUrl(url);
|
|
|
}
|
|
|
|
|
|
async shareMiniApp(){
|
...
|
...
|
@@ -165,6 +185,44 @@ class GroupPurchaseDetailContainer extends Component { |
|
|
ReactNative.NativeModules.YH_CommonHelper.shareWXMiniProgram(param);
|
|
|
}
|
|
|
|
|
|
async shareWXTimeLine(){
|
|
|
let {
|
|
|
activityId,
|
|
|
groupNo,
|
|
|
groupDetail,
|
|
|
} = this.props.groupPurchaseDetail;
|
|
|
let { unionType } = this.props.app;
|
|
|
let productDetail = groupDetail ? groupDetail.toJS():null;
|
|
|
if(!productDetail){
|
|
|
return;
|
|
|
}
|
|
|
let membershipItems = productDetail.membershipItems;
|
|
|
let resource = membershipItems ? membershipItems[0]: null;
|
|
|
let lackNum = productDetail ? productDetail.lackNum : 0;
|
|
|
if (!resource) {
|
|
|
return;
|
|
|
}
|
|
|
let productIcon = resource.productIcon ? getSlicedUrl(resource.productIcon,150*DEVICE_WIDTH_RATIO, 120*DEVICE_WIDTH_RATIO, 2) : '';
|
|
|
let miniProgramPath = '/pages/groupPurchase/groupPurchaseResult?activity_id=' + activityId + '&group_no=' + groupNo;
|
|
|
unionType && (miniProgramPath += '&unionType=' + unionType);
|
|
|
let productGroupPrice = resource.productGroupPrice;
|
|
|
let productName = resource.productName;
|
|
|
let title = '【还差' + lackNum + '人】' + productGroupPrice + '拼' + productName;
|
|
|
let fromPage = 'GroupPurchaseDetail';
|
|
|
|
|
|
this.props.actions.showShareView(false);
|
|
|
let businessId = 'collage';
|
|
|
let param = {
|
|
|
title: title,
|
|
|
image: productIcon,
|
|
|
shareUrl: '', //缺少分享到H5的url
|
|
|
miniProgramPath,
|
|
|
fromPage,
|
|
|
businessId
|
|
|
}
|
|
|
ReactNative.NativeModules.YH_CommonHelper.shareWXTimeLine(param);
|
|
|
}
|
|
|
|
|
|
showSnapshootShare(show){
|
|
|
this.props.actions.showShareView(false);
|
|
|
this.props.actions.showSnapshootShare(show);
|
...
|
...
|
@@ -182,6 +240,7 @@ class GroupPurchaseDetailContainer extends Component { |
|
|
showSnapshootShare,
|
|
|
groupDetail,
|
|
|
productList,
|
|
|
resourceInfo
|
|
|
} = this.props.groupPurchaseDetail;
|
|
|
|
|
|
let {
|
...
|
...
|
@@ -198,7 +257,7 @@ class GroupPurchaseDetailContainer extends Component { |
|
|
|
|
|
return (
|
|
|
<View style={styles.container}>
|
|
|
<ShareViewModal show={showShareView} unionType={unionType} showShareView={this.showShareView} shareMiniApp={this.shareMiniApp} showSnapshootShare={this.showSnapshootShare}/>
|
|
|
<DetailShareViewModal show={showShareView} unionType={unionType} showShareView={this.showShareView} shareMiniApp={this.shareMiniApp} shareWXTimeLine={this.shareWXTimeLine}/>
|
|
|
<SnapshootShare
|
|
|
show={showSnapshootShare}
|
|
|
unionType={unionType}
|
...
|
...
|
@@ -211,11 +270,13 @@ class GroupPurchaseDetailContainer extends Component { |
|
|
activityId={activityId}
|
|
|
productList={productList}
|
|
|
groupDetail={groupDetail}
|
|
|
resource={resourceInfo}
|
|
|
onEndReached={this._onEndReached}
|
|
|
updateTime={this.updateTime}
|
|
|
didTouchButton={this.didTouchButton}
|
|
|
didTouchProduct={this.didTouchProduct}
|
|
|
goComment={this.goComment}
|
|
|
didTouchBanner={this._didTouchBanner}
|
|
|
/>
|
|
|
</View>
|
|
|
);
|
...
|
...
|
|