select-giftcard.js
2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import $ from 'yoho-jquery';
import Page from 'yoho-page';
class SelectGiftCard extends Page {
constructor(order) {
super();
this.order = order;
this.orderInfo = order.orderInfo;
this.selector = {
rule: $('#rule'),
page: $('.select-giftcard-page'),
giftcard: $('.giftcard'),
useGiftCardBtn: $('#useGiftCardBtn'),
noGiftCardBtn: $('#noGiftCardBtn')
};
this.init();
this.bindEvents();
}
init() {
this.selector.page.css('min-height', () => {
return $(window).height() - $('#yoho-header').height();
});
this.linkUrl = document.referrer;
}
bindEvents() {
this.selector.giftcard.on('click', '.checkbox', this.checkboxClickHandle.bind(this));
this.selector.useGiftCardBtn.on('click', this.useGiftCard.bind(this));
this.selector.noGiftCardBtn.on('click', this.noGiftCard.bind(this));
}
goToBack() {
if (this.linkUrl) {
window.location.href = this.linkUrl;
} else {
history.go(-1);
}
}
/**
* 使用礼品卡
*/
useGiftCard() {
let selectedGiftCards = [];
this.selector.giftcard.each((index, elem) => {
let theElem = $(elem);
if (theElem.hasClass('checked')) {
selectedGiftCards.push(theElem.data('code'));
}
});
this.orderInfo('gift_card_code', selectedGiftCards.join(','));
this.goToBack();
}
/**
* 不使用礼品卡
*/
noGiftCard() {
this.orderInfo('gift_card_code', null);
this.goToBack();
}
/**
* 改变 使用 按钮状态
*/
changeUseBtnStatus() {
if (this.selector.giftcard.hasClass('checked')) {
this.selector.useGiftCardBtn.addClass('active');
} else {
this.selector.useGiftCardBtn.removeClass('active');
}
}
/**
* 选择礼品卡
*/
checkboxClickHandle(event) {
let theGiftCard = $(event.delegateTarget);
if (theGiftCard.hasClass('checked')) {
theGiftCard.removeClass('checked');
} else {
theGiftCard.addClass('checked');
}
this.changeUseBtnStatus();
}
}
export default SelectGiftCard;