Authored by 张丽霞

秒杀时间倒计到达时切换,倒计时计算,review by redding

... ... @@ -50,8 +50,6 @@ export default class Seckill extends Component {
}
componentWillReceiveProps(nextProps) {
console.log('componentWillReceiveProps');
console.log(nextProps);
if (nextProps.tipMessage && nextProps.tipMessage !== '') {
this._showToast && this._showToast(nextProps.tipMessage);
}
... ... @@ -129,22 +127,15 @@ export default class Seckill extends Component {
queryProductList,
tipMessage,
ptr,
localServerTimeDiff,
} = this.props;
this.isFetching = isFetching;
this.queryActivityInfo = queryActivityInfo;
diff = Math.round((queryActivityInfo.currentTime - Date.now()) / 1000);
diff = localServerTimeDiff;
let dataSource = {
ActivityProductList: [queryProductList ? queryProductList : []],
};
let isPullToRefresh = ptr && isFetching;
console.log('isPullToRefresh')
console.log(isPullToRefresh)
console.log('isFetching');
console.log(isFetching);
console.log('ptr');
console.log(ptr);
return (
<View style={styles.container}>
{
... ...
... ... @@ -65,6 +65,7 @@ export default class SeckillTimeListView extends Component {
tickSecond: '',
tickTimeOut: true,
});
this.props.onRefresh && this.props.onRefresh();
}
} else {
let nextActivity = this.secKillProductVoList[this.curFocusIndex + 1];
... ... @@ -75,7 +76,7 @@ export default class SeckillTimeListView extends Component {
let minute = parseInt(offsetTime % (60 * 60) / 60, 10);
let second = offsetTime % 60;
if (offsetTime <= 0) {
if (offsetTime < 0) {
if (!this.state.tickTimeOut) {
this.setState({
tickHour: '',
... ... @@ -83,6 +84,16 @@ export default class SeckillTimeListView extends Component {
tickSecond: '',
tickTimeOut: true,
});
if (this.curFocusActivity.has('now')) {
nextActivity = nextActivity.toJS();
nextActivity.focus = true;
this.curFocusActivity= Immutable.fromJS(nextActivity);
this._scrollToFocusActivity();
this.props.onFocusToCurStartedActivity && this.props.onFocusToCurStartedActivity(nextActivity);
} else {
this.props.onFocusToCurStartedActivity && this.props.onFocusToCurStartedActivity(this.curFocusActivity.toJS());
}
}
} else {
this.setState({
... ... @@ -116,7 +127,6 @@ export default class SeckillTimeListView extends Component {
this.curFocusActivity= activityItem;
this.curFocusIndex = i;
this._scrollToFocusActivity();
this.props.onFocusToCurStartedActivity && this.props.onFocusToCurStartedActivity(activityItem.toJS());
}
});
};
... ... @@ -125,7 +135,6 @@ export default class SeckillTimeListView extends Component {
if (!this.curFocusActivity && this.curFocusActivity.size > 0 && !this.curFocusActivity.has('over')) {
return;
}
jumpToTimeoutActivity();
this._caculateTimerState();
}.bind(this), 1000);
... ... @@ -275,6 +284,7 @@ let styles = StyleSheet.create({
},
contentContainer: {
flexDirection: 'row',
backgroundColor:'white',
},
rowContainer: {
flexDirection: 'column',
... ...
... ... @@ -63,8 +63,8 @@ class SeckillContainer extends Component {
this.props.actions.clickRemindBtn(product);
}
_onRefresh() {
this.props.actions.refreshList();
_onRefresh(activityId) {
this.props.actions.refreshList(activityId);
}
_onClearTipMessage() {
... ... @@ -87,6 +87,7 @@ class SeckillContainer extends Component {
tipMessage,
ptr,
curActivityId,
localServerTimeDiff,
} = this.props.seckill;
if (queryProductList) {
queryProductList = queryProductList.toJS();
... ... @@ -102,6 +103,7 @@ class SeckillContainer extends Component {
queryProductList = {productList}
queryRemindList = {queryRemindList}
tipMessage = {tipMessage}
localServerTimeDiff = {localServerTimeDiff}
onPressTimeItem={this._onPressTimeItem}
onPressProductItem={this._onPressProductItem}
onPressRemindBtn={this._onPressRemindBtn}
... ...
... ... @@ -133,10 +133,7 @@ export function updateSecKillProductList(json) {
}
export function setStartTime(startTime) {
console.log('---startTime----');
console.log(startTime);
startTime = moment(startTime, 'YYYYMMDDHHmmss').unix();
console.log(startTime);
return {
type: SET_START_TIME,
payload: startTime,
... ... @@ -146,15 +143,12 @@ export function setStartTime(startTime) {
* 秒杀时间栏
*/
export function getSeckillQueryActivity(inStartTime = 0) {
console.log('00000000');
return (dispatch, getState) => {
let {app, seckill} = getState();
let {startTime} = seckill;
console.log('aaaaa----aaaaa');
if (seckill.isFetching || seckill.tipMessage) {
return;
}
console.log('kkk---kkkk');
if (inStartTime) {
startTime = inStartTime;
}
... ... @@ -175,7 +169,6 @@ console.log('kkk---kkkk');
}
})
.catch(error => {
console.log('queryActivityFailure');
dispatch(queryActivityFailure(error));
dispatch(showTipMessage(error.message));
});
... ... @@ -203,11 +196,7 @@ export function getSeckillProductList(activityId = 0) {
productList = productAddFlag(json);
}
queryProductList = queryProductList.toJS();
console.log(queryProductList);
queryProductList[activityId] = productList;
console.log('-----------');
console.log(productList);
console.log(queryProductList);
dispatch(queryProductListSuccess(queryProductList));
})
.catch(error => {
... ... @@ -232,15 +221,8 @@ export function getSeckillProductRemindList(activityId = 0) {
let productList = result[0];
let remindList = result[1];
productList = productAddFlag(productList, remindList);
console.log('1111111111111');
console.log(queryProductList);
console.log(activityId);
console.log(productList);
queryProductList = queryProductList.toJS();
queryProductList[activityId] = productList;
console.log('7777777777');
console.log(queryProductList);
dispatch(queryProductAndRemindListSuccess({queryProductList,remindList}));
})
... ... @@ -291,8 +273,6 @@ export function addCancelUserReminder(method='app.seckill.addUserReminder', acti
export function clickActivityTimeItem(activity) {
console.log('----5');
console.log(activity);
let curActivityId = activity.activityId;
return (dispatch, getState) => {
let {app, seckill} = getState();
... ... @@ -403,9 +383,6 @@ export function refreshList() {
return (dispatch, getState) => {
let {app, seckill} = getState();
let {queryActivityInfo,queryProductList,curActivityId} = seckill;
console.log('------refreshList');
console.log('------55');
console.log(curActivityId);
if (curActivityId !== 0 && queryActivityInfo.secKillProductVoList) {
queryActivityInfo.secKillProductVoList.forEach((activityInfo, i) => {
if (activityInfo.get('activityId') === curActivityId) {
... ...
... ... @@ -9,6 +9,7 @@ let InitialState = Record({
isFetching: false,
error: null,
startTime: 0,
localServerTimeDiff: 0,
queryActivityInfo: new (Record({
currentTime: 0,
secKillProductVoList: List(),
... ...
... ... @@ -42,12 +42,14 @@ export default function seckillReducer(state=initialState, action) {
}
case QUERY_ACTIVITY_SUCCESS: {
let timeListInfo = action.payload;
let diff = Math.round((timeListInfo.currentTime - Date.now()) / 1000)
let newQueryActivity = state.queryActivityInfo.set('currentTime', timeListInfo.currentTime)
.set('secKillProductVoList', Immutable.fromJS(timeListInfo.secKillProductVoList));
return state.set('isFetching', false)
.set('queryActivityInfo', newQueryActivity)
.set('ptr', false)
.set('localServerTimeDiff', diff)
.set('error', null);
}
case QUERY_ACTIVITY_FAILURE: {
... ...