qlg.tsgz.moe/static/app/js/confirmOrder.js
2019-09-06 23:53:10 +08:00

668 lines
26 KiB
JavaScript
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var wxChannel = null; // 微信支付
var aliChannel = null; // 支付宝支付
var channel = null; //支付通道
mui.init();
mui.plusReady(function() {
window.addEventListener('setAddress', function(e) {
var addressId = localStorage.getItem('addressId') ? localStorage.getItem('addressId') : 0;
if(addressId == 0) {
return;
}
mui.ajax(hyhUrl('app/useraddress/getById'), { 
data: {
addressId: addressId
},
dataType: 'json', //服务器返回json格式数据  
type: 'post', //HTTP请求类型  
timeout: 10000, //超时时间设置为10秒  
success: function(data) {           //服务器返回响应,根据响应结果,分析是否登录成功;  
data = toJson(data);
if(data.status == 1) {
data = data.data;
// for(i in data.data){
// console.log(i)
// console.log(data.data[i])
// }
var html = '<div class="add_l"><img src="../img/dingwei1.png" /></div><div class="add_r"><div class="add_r_t clearfix"><div class="add_r_t_l">收货人:' + data.userName + '</div><div class="add_r_t_r">' + data.userPhone + '</div></div><div class="add_r_b">收货地址:' + data.areaName + ' ' + data.userAddress + '</div></div>';
$('.address').html(html);
$('.address').attr('data-addressId', data.addressId);
$('.address').attr('data-areaId', data.areaId2);
} else {
alert(data.msg);
// location.reload();
}
},
error: function(xhr, type, errorThrown) {           //异常处理;  
// alert(type);      
}  
}); 
});
$('.con').on('tap', '.address', function() {
var addressId = $(this).attr('data-addressId');
localStorage.setItem('addressId', addressId);
var isOrder = true;
mui.openWindow({
url: 'setting_address.html',
id: 'setting_address.html',
styles: {
top: '0px', //新页面顶部位置
bottom: '0px', //新页面底部位置
width: '100%', //新页面宽度默认为100%
height: '100%' //新页面高度默认为100%
},
extras: {
data_addressId: addressId,
data_isOrder: isOrder
// data_href: data_href
// ..... //自定义扩展参数,可以用来处理页面间传值
},
createNew: false, //是否重复创建同样id的webview默认为false:不重复创建,直接显示
show: {
// autoShow: true, //页面loaded事件发生后自动显示默认为true
// aniShow: animationType, //页面显示动画默认为”slide-in-right“
// duration: animationTime, //页面动画持续时间Android平台默认100毫秒iOS平台默认200毫秒
// event: 'titleUpdate', //页面显示时机默认为titleUpdate事件时显示
// extras: {} //窗口动画是否使用图片加速
},
waiting: {
autoShow: true, //自动显示等待框默认为true
title: '正在加载...', //等待对话框上显示的提示内容
options: {
// width: waiting - dialog - widht, //等待框背景区域宽度,默认根据内容自动计算合适宽度
// height: waiting - dialog - height, //等待框背景区域高度,默认根据内容自动计算合适高度
// ......
}
}
})
})
//支付插件
plus.payment.getChannels(function(channels) {
for(var i in channels) {
if(channels[i].id == "wxpay") {
wxChannel = channels[i];
} else {
aliChannel = channels[i];
}
}
}, function(e) {
alert("获取支付通道失败:" + e.message);
});
// var ALIPAYSERVER = 'http://demo.dcloud.net.cn/helloh5/payment/alipay.php?total=';
var ALIPAYSERVER = hyhUrl('app/Alipays/toAlipay?isBatch=1&orderNo=');
// 2. 发起支付请求
function pay(id, orderNo) {
// 从服务器请求支付订单
var PAYSERVER = '';
if(id == 'alipay') {
PAYSERVER = ALIPAYSERVER;
channel = aliChannel;
} else if(id == 'wxpay') {
PAYSERVER = WXPAYSERVER;
channel = wxChannel;
} else {
plus.nativeUI.alert("不支持此支付通道!", null, "捐赠");
return;
}
var xhr = new XMLHttpRequest();
// var amount = 1;
xhr.onreadystatechange = function() {
switch(xhr.readyState) {
case 4:
if(xhr.status == 200) {
plus.payment.request(channel, xhr.responseText, function(result) {
plus.nativeUI.alert("支付成功!", function() {
// back();
});
}, function(error) {
// plus.nativeUI.alert("支付失败:" + error.code);
plus.webview.getWebviewById('confirmOrder.html').close();
});
} else {
alert("获取订单信息失败!");
console.log(xhr.status)
}
break;
default:
break;
}
}
xhr.open('GET', PAYSERVER + orderNo);
xhr.send();
}
var self = plus.webview.currentWebview();
var type = self.type;
var data_1 = {};
var isUseScore = 0;
var orderNo;
var priceT = 0;
var payCode = '';
// console.log(type)
mui.ajax(hyhUrl('app/carts/settlement'), { 
data: {
type: type
},
dataType: 'json', //服务器返回json格式数据  
type: 'post', //HTTP请求类型  
timeout: 10000, //超时时间设置为10秒  
success: function(data) {           //服务器返回响应,根据响应结果,分析是否登录成功;  
// console.log(data)
var data = toJson(data);
if(data.status == 1) {
var allallnum = 0;
data = data.data;
data_1 = data;
if(data.userAddress.addressId) {
var html = '<div class="address clearfix" data-addressId="' + data.userAddress.addressId + '" data-areaId2="' + data.userAddress.areaId2 + '"><div class="add_l"><img src="../img/dingwei1.png" /></div><div class="add_r"><div class="add_r_t clearfix"><div class="add_r_t_l">收货人:' + data.userAddress.userName + '</div><div class="add_r_t_r">' + data.userAddress.userPhone + '</div></div><div class="add_r_b">收货地址:' + data.userAddress.areaName + ' ' + data.userAddress.userAddress + '</div></div></div>';
} else {
var html = '<div class="address clearfix" ><div class="add_l"><img src="../img/dingwei1.png" /></div><div class="add_r"><div class="add_r_t clearfix"><div class="add_r_t_l" style="height:60px;line-height:60px;font-size:14.4px;color:black">请选择收货地址</div></div></div></div>';
}
$.each(data.carts, function() {
var allNum = 0;
html += '<div class="shop_info"><div class="row_title"><div class="store_name">' + this.shopName + '</div></div><div class="row_con clearfix">';
$.each(this.list, function() {
allNum += this.cartNum;
var price = '';
if(this.isWhsle == 1) {
price = this.whslePrice;
} else if(this.specPrice != 'null') {
price = this.shopPrice;
} else {
price = this.specPrice;
}
var specNames = '';
for(var i in this.specNames[0]) {
if(i == "catName") {
specNames = this.specNames[0][i] + ':';
} else if(i == "itemName") {
specNames += this.specNames[0][i]
}
}
html += '<div class="row_block clearfix" data-id="' + this.goodsId + '"><img src="' + hyhImgUrl(this.goodsImg) + '" /><div class="rcr clearfix"><div class="rcrc"><p>' + this.goodsName + ' </p><p class="leibie">';
$.each(this.specNames, function() {
html += this.catName + ':' + this.itemName + ';';
});
html += '</p></div><div class="rcrr"><p>¥' + price + '</p><del>¥' + this.marketPrice + '</del><span>x' + this.cartNum + '</span></div></div></div>'
});
allallnum += allNum;
html += '<div class="cost"><div class="c2 clearfix"><div class="c1_l">买家留言:</div><div class="c1_r"><input class="remark" data-shopId="' + this.shopId + '" type="text" name="" id="" value="" placeholder="选填:填写内容已和卖家协商确认" /></div></div></div>';
html += '<div class="cost"><div class="c2 clearfix"><div class="c1_l">选择优惠券:</div><div class="c1_r"><select name="" data-shopId="' + this.shopId + '" class="yhq"><option value="0">不使用优惠券</option>';
$.each(this.coupons, function() {
html += '<option value="' + this.couponId + '">满' + this.useMoney + '元减' + this.couponValue + '元</option>';
});
html += '</select></div></div></div><div class="cost"><div class="c2 clearfix"><div class="c1_r">共' + allNum + '件商品 小计:<o class="on">¥' + this.goodsMoney + '</o> + 运费:<o class="on">¥' + this.shippingMoney + '</o></div></div></div></div></div>';
});
if(data.ect_pay == 0) {
html += '<div class="isHb clearfix"><div class="h_left">惠宝抵用&nbsp;&nbsp;&nbsp;&nbsp;<o id="huibao">可抵用惠宝:' + data.useOrderScore + '</o></div><div class="he_right"><div class="checkout"><div class="check_btn"></div></div></div></div>'
}
html += '<div class="jf_info clearfix"><div class="jf_jf">积分</div><div class="jf_p">奖励积分为成交价格的20%</div></div>';
priceT = (Math.floor((+data.goodsTotalMoney - (+data.promotionMoney))*100))/100;
priceT = priceT >= 0 ? priceT : 0;
var html1 = '<span>共' + allallnum + '件商品 合计:<j>¥' + priceT + '</j></span>&nbsp;&nbsp;<div class="btn_tj">提交订单</div>';
if(data.ect_pay == 1) {
var htmlpay = '<div class="row clearfix select_payway" data-payCode="ect"><p class="row_left">ECT余额<o class="userECT">' + data.userECT + '</o></p></div>';
$('.pay_info .con_1').append(htmlpay);
// $('.pay_info .con_1 .row').eq(0).attr('style','display: none;');
$('.pay_info .con_1 .row').eq(1).remove();
};
$('.con').html(html);
$('.js_r').html(html1);
$('#loginName').html(data.loginName);
$('.userMoney').html(data.userMoney);
$('#goodsTotalMoney').html(priceT);
} else {
alert(data.msg);
// location.reload();
}
},
error: function(xhr, type, errorThrown) {           //异常处理;  
// alert(type);      
}  
}); 
$('.con').on('change', 'select', function() {
var couponIds = [];
$('select').each(function() {
couponIds.push($(this).attr('data-shopId') + ':' + $(this).val());
})
// var addressId = $('.address').attr('data-addressId')
var areaId2 = $('.address').attr('data-areaId2')
var couponIdsArr = couponIds.join(',');
mui.ajax(hyhUrl('app/carts/getMoney'), { 
data: {
type: type,
areaId2: addressId,
isUseScore: isUseScore,
useScore: data_1.useOrderScore,
couponIds: couponIdsArr
},
dataType: 'json', //服务器返回json格式数据  
type: 'post', //HTTP请求类型  
timeout: 10000, //超时时间设置为10秒  
success: function(data) {           //服务器返回响应,根据响应结果,分析是否登录成功;  
// console.log(data)
data = toJson(data);
// console.log(data.msg)
if(data.status == 1) {
$('.js_r span j').html('¥' + data.data.realTotalMoney)
$('#goodsTotalMoney').html(data.data.realTotalMoney);
} else {
alert('发生错误请刷新后重试!');
// location.reload();
}
},
error: function(xhr, type, errorThrown) {           //异常处理;  
// alert(errorThrown);      
}  
}); 
});
$('.con').on('tap', '.checkout', function() {
$(this).toggleClass('on');
if($(this).hasClass('on')) {
isUseScore = 1;
} else {
isUseScore = 0;
}
var couponIds = [];
$('select').each(function() {
couponIds.push($(this).attr('data-shopId') + ':' + $(this).val());
})
var couponIdsArr = couponIds.join(',');
var areaId2 = $('.address').attr('data-areaId2');
// console.log(areaId2)
// console.log(couponIdsArr)
// console.log(data_1.userAddress.areaId2)
// console.log(data_1.userAddress)
mui.ajax(hyhUrl('app/carts/getMoney'), { 
data: {
type: type,
areaId2: areaId2,
isUseScore: isUseScore,
useScore: data_1.useOrderScore,
couponIds: couponIdsArr
},
dataType: 'json', //服务器返回json格式数据  
type: 'post', //HTTP请求类型  
timeout: 10000, //超时时间设置为10秒  
success: function(data) {           //服务器返回响应,根据响应结果,分析是否登录成功;  
// console.log(data)
data = toJson(data);
// console.log(data.msg)
if(data.status == 1) {
// console.log(data)
// console.log(data.data.shopFreight)
// for(i in data.data){
// console.log(i)
// console.log(data.data[i])
// }
$('.js_r span j').html('¥' + data.data.realTotalMoney)
$('#goodsTotalMoney').html(data.data.realTotalMoney);
} else {
alert('发生错误请刷新后重试!');
// location.reload();
}
},
error: function(xhr, type, errorThrown) {           //异常处理;  
// alert(errorThrown);      
}  
}); 
})
$('.footer').on('tap', '.btn_tj', function() {
payCode = $('.select_payway').attr('data-payCode');
if(payCode == 'ect') {
mui.ajax(hyhUrl('app/ect/getToEctNum'), { 
data: {
total_money: priceT
},
dataType: 'json', //服务器返回json格式数据  
type: 'post', //HTTP请求类型  
timeout: 10000, //超时时间设置为10秒
success: function(data) {           //服务器返回响应,根据响应结果,分析是否登录成功; 
var data = toJson(data);
if(data.status == 1) {
var btnArray = ['是', '否'];
mui.confirm(data.msg, 'ECT确认支付', btnArray, function(e) {
if(e.index == 1) {
return;
} else {
var addressId = $('.address').attr('data-addressId');
if(addressId) {
$('.bg').css('display', 'block');
$(".pay").slideDown(300);
} else {
alert('未设置收货地址!')
}
}
})
} else {
alert(data.msg);
return;
}
}
})
} else {
var addressId = $('.address').attr('data-addressId');
if(addressId) {
$('.bg').css('display', 'block');
$(".pay").slideDown(300);
} else {
alert('未设置收货地址!')
}
}
})
$('.bg').on('tap', '.mui-icon-left-nav', function() {
$('.pay').css('display', 'block');
$('.pay_way').css('display', 'none');
})
$('.bg').on('tap', '.mui-icon-closeempty', function() {
$('.bg').css('display', 'none');
$(".pay").slideUp(300, function() {
});
})
$('#pay_way').on('tap', '.row', function() {
$('#pay_way .row .mui-icon').removeClass('mui-icon-checkmarkempty');
$(this).children('.mui-icon').addClass('mui-icon-checkmarkempty');
$('.select_payway .row_right o').html($(this).children('.row_left').html());
$('.select_payway').attr('data-payCode', $(this).attr('data-payCode'))
$('.pay').css('display', 'block');
$('#pay_way').css('display', 'none');
})
$('.pay').on('tap', '.select_payway', function() {
if($(this).attr('data-payCode') == 'ect') {} else {
$('.pay').css('display', 'none');
$('#pay_way').css('display', 'block');
}
})
$('.pay_btn').on('tap', function() {
var addressId = $('.address').attr('data-addressId');
var areaId = $('.address').attr('data-areaId');
var that = $(this);
payCode = $('.select_payway').attr('data-payCode');
var data_send = {
type: type,
s_addressId: addressId,
s_areaId: areaId,
payCode: payCode,
payType: 1,
isUseScore: isUseScore,
useScore: data_1.useOrderScore,
deliverType: 0,
isInvoice: 0,
invoiceId: 0,
invoiceClient: ''
}
$('.remark').each(function() {
data_send['remark_' + ($(this).attr('data-shopid'))] = $(this).val();
});
$('select').each(function() {
data_send['couponId_' + ($(this).attr('data-shopid'))] = $(this).val();
})
that.attr('disabled', 'disabled');
mui.ajax(hyhUrl('app/orders/submit'), { 
data: data_send,
dataType: 'json', //服务器返回json格式数据  
type: 'post', //HTTP请求类型  
timeout: 10000, //超时时间设置为10秒  
success: function(data) {           //服务器返回响应,根据响应结果,分析是否登录成功;  
// console.log(data.status)
data = toJson(data);
if(data.status == 1) {
orderNo = data.data;
if(payCode == 'wallets' || payCode == 'ect') {
//跳输入密码的页面
mui.ajax(hyhUrl('app/' + payCode + '/payment'), { 
data: {
orderNo: data.data,
isBatch: 1
},
dataType: 'json', //服务器返回json格式数据  
type: 'post', //HTTP请求类型  
timeout: 10000, //超时时间设置为10秒  
success: function(data) {           //服务器返回响应,根据响应结果,分析是否登录成功;  
var data = toJson(data);
if(data.status == 1) {
$('.pay').css('display', 'none');
$('#pay_pwd').css('display', 'block');
if(data.data.payPwd == '0') {
alert('还未设置支付密码请先设置支付密码!');
var url = 'setting_fogetPayPwd';
mui.openWindow({
url: url + '.html',
id: url + '.html',
styles: {
top: '0px', //新页面顶部位置
bottom: '0px', //新页面底部位置
width: '100%', //新页面宽度默认为100%
height: '100%' //新页面高度默认为100%
},
extras: {
// data_href: data_href
// ..... //自定义扩展参数,可以用来处理页面间传值
},
createNew: false, //是否重复创建同样id的webview默认为false:不重复创建,直接显示
show: {
// autoShow: true, //页面loaded事件发生后自动显示默认为true
// aniShow: animationType, //页面显示动画默认为”slide-in-right“
// duration: animationTime, //页面动画持续时间Android平台默认100毫秒iOS平台默认200毫秒
// event: 'titleUpdate', //页面显示时机默认为titleUpdate事件时显示
// extras: {} //窗口动画是否使用图片加速
},
waiting: {
autoShow: true, //自动显示等待框默认为true
title: '正在加载...', //等待对话框上显示的提示内容
options: {
// width: waiting - dialog - widht, //等待框背景区域宽度,默认根据内容自动计算合适宽度
// height: waiting - dialog - height, //等待框背景区域高度,默认根据内容自动计算合适高度
// ......
}
}
})
}
}
},
error: function(xhr, type, errorThrown) {           //异常处理;  
// alert(type);      
}
}); 
} else if(payCode == 'alipays') {
pay('alipay', data.data);
// plus.nativeUI.showWaiting();
// mui.post(hyhUrl('app/Alipays/payment'), {
// orderNo: data.data,
// isBatch: 1
// var ALIPAYSERVER = hyhUrl('app/Alipays/payment?orderNo=' + data.data + '&isBatch=1');
}
that.removeAttr('disabled');
} else {
alert('发生错误请刷新后重试!');
// location.reload();
}
},
error: function(xhr, type, errorThrown) {           //异常处理;  
// alert(errorThrown);      
}
})
})
$('#pay_pwd').on('tap', '.p9', function() {
var url = 'setting_fogetPayPwd';
mui.openWindow({
url: url + '.html',
id: url + '.html',
styles: {
top: '0px', //新页面顶部位置
bottom: '0px', //新页面底部位置
width: '100%', //新页面宽度默认为100%
height: '100%' //新页面高度默认为100%
},
extras: {
// data_href: data_href
// ..... //自定义扩展参数,可以用来处理页面间传值
},
createNew: false, //是否重复创建同样id的webview默认为false:不重复创建,直接显示
show: {
// autoShow: true, //页面loaded事件发生后自动显示默认为true
// aniShow: animationType, //页面显示动画默认为”slide-in-right“
// duration: animationTime, //页面动画持续时间Android平台默认100毫秒iOS平台默认200毫秒
// event: 'titleUpdate', //页面显示时机默认为titleUpdate事件时显示
// extras: {} //窗口动画是否使用图片加速
},
waiting: {
autoShow: true, //自动显示等待框默认为true
title: '正在加载...', //等待对话框上显示的提示内容
options: {
// width: waiting - dialog - widht, //等待框背景区域宽度,默认根据内容自动计算合适宽度
// height: waiting - dialog - height, //等待框背景区域高度,默认根据内容自动计算合适高度
// ......
}
}
})
})
$('#pay_pwd').on('tap', '.pay_btn_pwd', function() {
var payPwd = $('#payPwd').val();
if(payPwd == '') {
alert('支付密码不能为空!');
}
var that = $(this);
that.attr('disabled', 'disabled');
var srcc = ''
if(payCode == 'ect') {
srcc = 'payByEct';
} else {
srcc = 'payByWallet';
}
mui.ajax(hyhUrl('app/' + payCode + '/' + srcc), { 
data: {
orderNo: orderNo,
isBatch: 1,
payPwd: payPwd
},
dataType: 'json', //服务器返回json格式数据  
type: 'post', //HTTP请求类型  
timeout: 10000, //超时时间设置为10秒  
success: function(data) {           //服务器返回响应,根据响应结果,分析是否登录成功;  
// console.log(data.data.goodsFavoritesNum)
var data = toJson(data);
alert(data.msg);
if(data.status == 1) {
// mui.back();
mui.openWindow({
url: 'indent.html',
id: 'indent.html',
styles: {
top: '0px', //新页面顶部位置
bottom: '0px', //新页面底部位置
width: '100%', //新页面宽度默认为100%
height: '100%' //新页面高度默认为100%
},
extras: {
data_href: 'waitDeliver'
// ..... //自定义扩展参数,可以用来处理页面间传值
},
createNew: false, //是否重复创建同样id的webview默认为false:不重复创建,直接显示
show: {
// autoShow: true, //页面loaded事件发生后自动显示默认为true
// aniShow: animationType, //页面显示动画默认为”slide-in-right“
// duration: animationTime, //页面动画持续时间Android平台默认100毫秒iOS平台默认200毫秒
// event: 'titleUpdate', //页面显示时机默认为titleUpdate事件时显示
// extras: {} //窗口动画是否使用图片加速
},
waiting: {
autoShow: false, //自动显示等待框默认为true
title: '正在加载...', //等待对话框上显示的提示内容
options: {
// width: waiting - dialog - widht, //等待框背景区域宽度,默认根据内容自动计算合适宽度
// height: waiting - dialog - height, //等待框背景区域高度,默认根据内容自动计算合适高度
// ......
}
}
})
setTimeout(function() {
plus.webview.getWebviewById('confirmOrder.html').close();
}, 500)
} else {
mui.openWindow({
url: 'indent.html',
id: 'indent.html',
styles: {
top: '0px', //新页面顶部位置
bottom: '0px', //新页面底部位置
width: '100%', //新页面宽度默认为100%
height: '100%' //新页面高度默认为100%
},
extras: {
data_href: 'waitPay'
// ..... //自定义扩展参数,可以用来处理页面间传值
},
createNew: false, //是否重复创建同样id的webview默认为false:不重复创建,直接显示
show: {
// autoShow: true, //页面loaded事件发生后自动显示默认为true
// aniShow: animationType, //页面显示动画默认为”slide-in-right“
// duration: animationTime, //页面动画持续时间Android平台默认100毫秒iOS平台默认200毫秒
// event: 'titleUpdate', //页面显示时机默认为titleUpdate事件时显示
// extras: {} //窗口动画是否使用图片加速
},
waiting: {
autoShow: false, //自动显示等待框默认为true
title: '正在加载...', //等待对话框上显示的提示内容
options: {
// width: waiting - dialog - widht, //等待框背景区域宽度,默认根据内容自动计算合适宽度
// height: waiting - dialog - height, //等待框背景区域高度,默认根据内容自动计算合适高度
// ......
}
}
})
setTimeout(function() {
plus.webview.getWebviewById('confirmOrder.html').close();
}, 500)
}
that.removeAttr('disabled')
},
error: function(xhr, type, errorThrown) {           //异常处理;  
alert(errorThrown);      
}
}); 
})
})