Authored by 郝肖肖

设置默认 支付方式

... ... @@ -66,7 +66,6 @@ const getOnlinePayProvider = () => {
});
payPattern.push({
name: '使用银行卡',
selected: true,
children: nav
});
... ... @@ -80,14 +79,27 @@ const getOnlinePayProvider = () => {
* @param code
*/
const getOrderInfo = (uid, code) => {
return co(function *() {
let orderData = yield OrderData.orderDetail(uid, code);
return OrderData.orderDetail(uid, code).then(orderData => {
if (orderData && orderData.data) {
return camelCase(orderData.data);
} else {
return {};
}
});
};
/**
* 获取订单支付银行信息
* @param id
*/
const getBankByOrder = (id) => {
return co(function *() {
let data = yield api.getBankByOrder(id);
if (data && data.code === 200 && data.data) {
return camelCase(data.data);
}
return {};
})();
};
... ... @@ -97,14 +109,29 @@ const getOrderInfo = (uid, code) => {
* @param code
*/
const getPayInfo = (uid, code) => {
return co(function *() {
let payment = yield Promise.all([getOnlinePayProvider(), getOrderInfo(uid, code)]);
return Promise.all([getOnlinePayProvider(), getOrderInfo(uid, code), getBankByOrder(code)])
.then(payment => {
let paymentId = parseInt(payment[2].payment || 0, 10);
let findIndex;
// 渲染选择的默认支付方式
if (paymentId === 12 && payment[0][1] && payment[2]) { // 银行支付
findIndex = _.findIndex(payment[0][1].children, {value: '12_' + payment[2].bankCode});
findIndex = findIndex > 0 ? findIndex : 0;
payment[0][1].selected = true;
payment[0][1].children[findIndex].selected = true;
} else if (payment[0] && payment[0][0]) { // 支付宝等平台
findIndex = _.findIndex(payment[0][0].children, {'id': paymentId});
findIndex = findIndex > 0 ? findIndex : 0;
payment[0][0].selected = true;
payment[0][0].children[findIndex].selected = true;
}
return {
pay: payment[0],
order: payment[1]
};
})();
return {
pay: payment[0],
order: payment[1]
};
});
};
/**
... ... @@ -123,21 +150,6 @@ const getPaymentInfo = (id) => {
};
/**
* 获取订单支付银行信息
* @param id
*/
const getBankByOrder = (id) => {
return co(function *() {
let data = yield api.getBankByOrder(id);
if (data && data.code === 200 && data.data) {
return camelCase(data.data);
}
return {};
})();
};
/**
* 设置订单支付银行
* @param code
* @param payment
... ...
... ... @@ -53,20 +53,22 @@
{{/pay}}
</ul>
</div>
{{# pay}}
<div class="pay-icon {{#unless selected}} hide{{/unless}}">
{{# children}}
<div class="pay-type-icon online-pay{{#if selected}} active{{/if}}" data-name="{{name}}" data-id="{{id}}" data-value="{{value}}">
<img src="{{img}}">
<span class="choose-tag iconfont">&#xe63b;</span>
</div>
{{/children}}
</div>
{{/pay}}
<div class="pay-icon-content">
{{# pay}}
<div class="pay-icon {{#unless selected}} hide{{/unless}}">
{{# children}}
<div class="pay-type-icon online-pay{{#if selected}} active{{/if}}" data-name="{{name}}" data-id="{{id}}" data-value="{{value}}">
<img src="{{img}}">
<span class="choose-tag iconfont">&#xe63b;</span>
</div>
{{/children}}
</div>
{{/pay}}
</div>
</div>
{{/if}}
<div class="pay-ctrl">
<span id="go-pay-btn" class="btn btn-shape right" data-order="{{order.orderCode}}"><em id="pay-type-name">支付宝</em>支付</span>
<span id="go-pay-btn" class="btn btn-shape right" data-order="{{order.orderCode}}"><em id="pay-type-name">前往支付宝</em></span>
</div>
</div>
... ...
... ... @@ -10,7 +10,10 @@ var $orderDetail = $('.order-detail'),
var Dialog = require('../plugins/dialog');
var $payTypeIcon = $('.pay-type-icon'),
$payIcon = $('.pay-icon');
$payIconContent = $('.pay-icon-content'),
$goPayBtn = $('#go-pay-btn'),
$payTypeName = $goPayBtn.find('#pay-type-name'),
$payIcon = $payIconContent.find('.pay-icon');
var tpl = '<div class="pay-page-tips">' +
'<h3>请您在新打开的页面完成付款</h3>' +
... ... @@ -53,10 +56,12 @@ $payTypeIcon.click(function() {
// 切换选中状态
$payTypeIcon.removeClass('active');
$this.addClass('active');
$('#pay-type-name').text($this.data('name'));
$payTypeName.text('去' + $this.data('name').replace(/支付$/g, '') + '支付');
});
// 支付按钮 设置默认文字
$payTypeName.text('去' + $payIconContent.find('.pay-type-icon.active').data('name').replace(/支付$/g, '') + '支付');
// 切换支付方式tabs 委托事件
$('.pay-nav .tabs').click(function(event) {
var $li = $(event.target).closest('li');
... ... @@ -78,7 +83,7 @@ function showDialog() {
}
// 去支付
$('#go-pay-btn').click(function() {
$goPayBtn.click(function() {
var payType = $('.pay-type-icon.active').data('id');
var order = $(this).data('order');
... ...
... ... @@ -5,6 +5,8 @@ $liBorderColor: #e6e6e6;
$fontColor: #616161;
.pay-online-wrapper {
overflow: hidden;
.title {
margin-top: 35px;
margin-bottom: 20px;
... ... @@ -94,12 +96,19 @@ $fontColor: #616161;
}
}
.pay-icon-content {
width: 1200px;
.pay-icon {
min-height: 240px;
}
}
.pay-type-icon {
position: relative;
float: left;
width: 250px;
height: 80px;
margin-bottom: 30px;
height: 60px;
margin-right: 50px;
margin-top: 30px;
cursor: pointer;
... ... @@ -108,7 +117,7 @@ $fontColor: #616161;
img {
display: inline-block;
margin-top: 19px;
margin-top: 9px;
}
.choose-tag {
... ...