|
@@ -10,6 +10,7 @@ Page({
|
|
|
addressVo: {},
|
|
|
checkedCoupon: [],
|
|
|
couponList: [],
|
|
|
+ goodsBizTypeList: ['00','02','10','11'],
|
|
|
goodsTotalPrice: 0.00, //商品总价
|
|
|
freightPrice: 0.00, //快递费
|
|
|
couponPrice: 0.00, //优惠券的价格
|
|
@@ -18,14 +19,26 @@ Page({
|
|
|
userCouponId: 0,
|
|
|
fullCutCouponId: 0,
|
|
|
fullCutCouponDec: 0, //满减优惠券
|
|
|
+ goodsTotalByType00: 0,
|
|
|
+ goodsTotalByType02: 0,
|
|
|
+ goodsTotalByType10: 0,
|
|
|
+ goodsTotalByType11: 0,
|
|
|
postscript: "",
|
|
|
+ postscript00: '',
|
|
|
+ postscript02: '',
|
|
|
+ postscript10: '',
|
|
|
+ postscript11: '',
|
|
|
checkStore: false,
|
|
|
storeVo: {},
|
|
|
delivery_date: '',
|
|
|
delivery_remark: '尽快送达',
|
|
|
multiArray: [],
|
|
|
multiIndex: [0, 0],
|
|
|
- timeArray:util.getNowTimeArray()
|
|
|
+ timeArray: util.getNowTimeArray(),
|
|
|
+ idNo: '',
|
|
|
+ userName: '',
|
|
|
+ idNoM: '',
|
|
|
+ idNoDisabled: false
|
|
|
},
|
|
|
bindMultiPickerColumnChange: function (e) {
|
|
|
let that = this;
|
|
@@ -71,6 +84,13 @@ Page({
|
|
|
'multiArray[0]': dateArray,
|
|
|
'multiArray[1]': that.data.timeArray,
|
|
|
})
|
|
|
+ },
|
|
|
+ formatidcard(idcard) {
|
|
|
+ if (idcard.length == 15) {
|
|
|
+ return idcard.replace(/(\d{6})\d{6}(\d{3})/, "$1******$2");
|
|
|
+ } else {
|
|
|
+ return idcard.replace(/(\d{5})\d{6}(\d{6})/, "$1******$2");
|
|
|
+ }
|
|
|
},
|
|
|
getCheckoutInfo: function () {
|
|
|
let that = this;
|
|
@@ -88,14 +108,69 @@ Page({
|
|
|
freightPrice: res.data.freightPrice,
|
|
|
goodsTotalPrice: res.data.goodsTotalPrice,
|
|
|
orderTotalPrice: res.data.orderTotalPrice,
|
|
|
- fullCutCouponDec: res.data.fullCutCouponDec
|
|
|
+ fullCutCouponDec: res.data.fullCutCouponDec,
|
|
|
+ userName: res.data.userName,
|
|
|
+ idNo: res.data.idNo
|
|
|
});
|
|
|
|
|
|
if (that.data.addressVo != null && null == that.data.addressVo.id){
|
|
|
that.setData({
|
|
|
addressVo: res.data.addressVo
|
|
|
});
|
|
|
+ }
|
|
|
+ that.setData({
|
|
|
+ idNoM: that.formatidcard(that.data.idNo)
|
|
|
+ });
|
|
|
+ if(that.data.idNo){
|
|
|
+ that.setData({
|
|
|
+ idNoDisabled: true
|
|
|
+ });
|
|
|
+ }
|
|
|
+ let num00 = 0;
|
|
|
+ let num02 = 0;
|
|
|
+ let num10 = 0;
|
|
|
+ let num11 = 0;
|
|
|
+
|
|
|
+ let goodsTotalPrice00 = 0;
|
|
|
+ let goodsTotalPrice02 = 0;
|
|
|
+ let goodsTotalPrice10 = 0;
|
|
|
+ let goodsTotalPrice11 = 0;
|
|
|
+ for (var i = 0; i < that.data.checkedGoodsList.length; i++) {
|
|
|
+ if ('00' == that.data.checkedGoodsList[i].goodsBizType) {
|
|
|
+ num00 = num00 + that.data.checkedGoodsList[i].number;
|
|
|
+ goodsTotalPrice00 = goodsTotalPrice00 +
|
|
|
+ (that.data.checkedGoodsList[i].retail_price * that.data.checkedGoodsList[i].number);
|
|
|
+ }
|
|
|
+ if ('02' == that.data.checkedGoodsList[i].goodsBizType) {
|
|
|
+ num02 = num02 + that.data.checkedGoodsList[i].number;
|
|
|
+ goodsTotalPrice02 = goodsTotalPrice02 +
|
|
|
+ (that.data.checkedGoodsList[i].retail_price * that.data.checkedGoodsList[i].number);
|
|
|
+ }
|
|
|
+ if ('10' == that.data.checkedGoodsList[i].goodsBizType) {
|
|
|
+ num10 = num10 + that.data.checkedGoodsList[i].number;
|
|
|
+ goodsTotalPrice10 = goodsTotalPrice10 +
|
|
|
+ (that.data.checkedGoodsList[i].retail_price * that.data.checkedGoodsList[i].number);
|
|
|
+ }
|
|
|
+ if ('11' == that.data.checkedGoodsList[i].goodsBizType) {
|
|
|
+ num11 = num11 + that.data.checkedGoodsList[i].number;
|
|
|
+ goodsTotalPrice11 = goodsTotalPrice11 +
|
|
|
+ (that.data.checkedGoodsList[i].retail_price * that.data.checkedGoodsList[i].number);
|
|
|
+ }
|
|
|
}
|
|
|
+ that.setData({
|
|
|
+ goodsTotalByType00: num00,
|
|
|
+ goodsTotalByType02: num02,
|
|
|
+ goodsTotalByType10: num10,
|
|
|
+ goodsTotalByType11: num11,
|
|
|
+ goodsTotalPrice00: goodsTotalPrice00,
|
|
|
+ goodsTotalPrice02: goodsTotalPrice02,
|
|
|
+ goodsTotalPrice10: goodsTotalPrice10,
|
|
|
+ goodsTotalPrice11: goodsTotalPrice11
|
|
|
+ });
|
|
|
+ // console.log(that.data.goodsTotalByType00);
|
|
|
+ // console.log(that.data.goodsTotalByType02);
|
|
|
+ // console.log(that.data.goodsTotalByType10);
|
|
|
+ // console.log(that.data.goodsTotalByType11);
|
|
|
|
|
|
// 选择优惠券
|
|
|
if (that.data.userCouponId && that.data.couponList.length > 0) {
|
|
@@ -135,32 +210,84 @@ Page({
|
|
|
})
|
|
|
},
|
|
|
bindPostscriptBlur(e) {
|
|
|
- let postscript = e.detail.value;
|
|
|
- this.setData({
|
|
|
- postscript: postscript
|
|
|
- });
|
|
|
+ let goodsType = e.target.dataset.goodsType;
|
|
|
+ if (goodsType == '00') {
|
|
|
+ this.setData({
|
|
|
+ postscript00: e.detail.value
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (goodsType == '02') {
|
|
|
+ this.setData({
|
|
|
+ postscript02: e.detail.value
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (goodsType == '10') {
|
|
|
+ this.setData({
|
|
|
+ postscript10: e.detail.value
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (goodsType == '11') {
|
|
|
+ this.setData({
|
|
|
+ postscript11: e.detail.value
|
|
|
+ });
|
|
|
+ }
|
|
|
},
|
|
|
submitOrder: function (e) {
|
|
|
- console.log(e.detail.formId);
|
|
|
+ // console.log(e.detail.formId);
|
|
|
|
|
|
if (!this.data.addressVo) {
|
|
|
util.showErrorToast('请选择收货地址');
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ if (!e.detail.value.idNo) {
|
|
|
+ util.showErrorToast('身份证号不能为空');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!e.detail.value.userName) {
|
|
|
+ util.showErrorToast('姓名不能为空');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (this.data.idNoM == '') {
|
|
|
+ this.setData({
|
|
|
+ idNo: e.detail.value.idNo,
|
|
|
+ userName: e.detail.value.userName
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (!this.checkIdcard(this.data.idNo)){
|
|
|
+ wx.showModal({
|
|
|
+ title: '提示信息',
|
|
|
+ content: '请输入正确的身份证号',
|
|
|
+ showCancel: false
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
// if (!this.data.checkStore || !this.data.checkStore) {
|
|
|
// util.showErrorToast('超过门店配送范围');
|
|
|
// return false;
|
|
|
// }
|
|
|
|
|
|
let that = this;
|
|
|
+ // console.log(that.data.postscript00);
|
|
|
+ // console.log(that.data.postscript02);
|
|
|
+ // console.log(that.data.postscript10);
|
|
|
+ // console.log(that.data.postscript11);
|
|
|
+
|
|
|
util.request(api.OrderSubmit, {
|
|
|
checkedAddress: that.data.addressVo,
|
|
|
userCouponId: that.data.userCouponId,
|
|
|
fullCutCouponId: that.data.fullCutCouponId,
|
|
|
- postscript: that.data.postscript,
|
|
|
+ postscript00: that.data.postscript00,
|
|
|
+ postscript02: that.data.postscript02,
|
|
|
+ postscript10: that.data.postscript10,
|
|
|
+ postscript11: that.data.postscript11,
|
|
|
delivery_date: that.data.delivery_date,
|
|
|
- delivery_remark: that.data.delivery_remark
|
|
|
+ delivery_remark: that.data.delivery_remark,
|
|
|
+ idNo: that.data.idNo,
|
|
|
+ userName: that.data.userName
|
|
|
+
|
|
|
}, 'POST').then(function (res) {
|
|
|
if (res.errno === 0) {
|
|
|
let actualPrice = that.data.actualPrice;
|
|
@@ -168,8 +295,6 @@ Page({
|
|
|
for (let i = 0; i < res.data.orderInfo.length; i++){
|
|
|
orderIds[i] = res.data.orderInfo[i].id;
|
|
|
}
|
|
|
- console.log(actualPrice);
|
|
|
- console.log(orderIds);
|
|
|
wx.redirectTo({
|
|
|
url: '/pages/pay/pay?orderIds=' + orderIds + '&actualPrice=' + actualPrice
|
|
|
})
|
|
@@ -180,7 +305,6 @@ Page({
|
|
|
content: res.errmsg,
|
|
|
showCancel: false
|
|
|
});
|
|
|
- // util.showErrorToast(res.errmsg);
|
|
|
}
|
|
|
});
|
|
|
},
|
|
@@ -191,22 +315,18 @@ Page({
|
|
|
checkedAddress: that.data.addressVo,
|
|
|
storeId: wx.getStorageSync('storeId')
|
|
|
}, 'POST').then(function (res) {
|
|
|
- // if (res.errno === 0) {
|
|
|
- // that.setData({
|
|
|
- // storeVo: res.data,
|
|
|
- // checkStore: true
|
|
|
- // });
|
|
|
- // } else if (res.errno === 1) {
|
|
|
- // console.log(res.errmsg);
|
|
|
- // util.showErrorToast(res.errmsg);
|
|
|
- // that.setData({
|
|
|
- // checkStore: false
|
|
|
- // });
|
|
|
- // }
|
|
|
- that.setData({
|
|
|
- storeVo: res.data,
|
|
|
- checkStore: true
|
|
|
- });
|
|
|
+ if (res.errno === 0) {
|
|
|
+ that.setData({
|
|
|
+ storeVo: res.data,
|
|
|
+ checkStore: true
|
|
|
+ });
|
|
|
+ } else{
|
|
|
+ console.log(res.errmsg);
|
|
|
+ // util.showErrorToast(res.errmsg);
|
|
|
+ that.setData({
|
|
|
+ checkStore: false
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
},
|
|
|
onLoad: function (options) {
|
|
@@ -231,5 +351,70 @@ Page({
|
|
|
onUnload: function () {
|
|
|
// 页面关闭
|
|
|
|
|
|
+ },
|
|
|
+ // 校验身份证号
|
|
|
+//校验码校验
|
|
|
+checkCode: function (val) {
|
|
|
+ var p = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
|
|
|
+ var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
|
|
|
+ var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
|
|
|
+ var code = val.substring(17);
|
|
|
+ if (p.test(val)) {
|
|
|
+ var sum = 0;
|
|
|
+ for (var i = 0; i < 17; i++) {
|
|
|
+ sum += val[i] * factor[i];
|
|
|
+ }
|
|
|
+ if (parity[sum % 11] == code.toUpperCase()) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ },
|
|
|
+ //省份校验
|
|
|
+ checkProv: function (val) {
|
|
|
+ var pattern = /^[1-9][0-9]/;
|
|
|
+ var provs = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江 ", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北 ", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏 ", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门" };
|
|
|
+ if (pattern.test(val)) {
|
|
|
+ if (provs[val]) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ },
|
|
|
+ //出生日期码校验
|
|
|
+ checkDate: function (val) {
|
|
|
+ var pattern = /^(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)$/;
|
|
|
+ if (pattern.test(val)) {
|
|
|
+ var year = val.substring(0, 4);
|
|
|
+ var month = val.substring(4, 6);
|
|
|
+ var date = val.substring(6, 8);
|
|
|
+ var date2 = new Date(year + "-" + month + "-" + date);
|
|
|
+ if (date2 && date2.getMonth() == (parseInt(month) - 1)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ },
|
|
|
+ checkIdcard: function (val) {
|
|
|
+ if (this.checkCode(val)) {
|
|
|
+ var date = val.substring(6, 14);
|
|
|
+ if (this.checkDate(date)) {
|
|
|
+ if (this.checkProv(val.substring(0, 2))) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // this.isError("请输入正确身份证号");
|
|
|
+ return false;
|
|
|
+ },
|
|
|
+// 通过身份证号获取出生日期和性别
|
|
|
+getBirthAndSex: function (idCard) {
|
|
|
+ var that = this;
|
|
|
+ var info = {};
|
|
|
+ var birth = (idCard.length === 18) ? idCard.slice(6, 14) : idCard.slice(6, 12);
|
|
|
+ var order = (idCard.length === 18) ? idCard.slice(-2, -1) : idCard.slice(-1);
|
|
|
+ info.birthDay = (idCard.length === 18) ? ([birth.slice(0, 4), birth.slice(4, 6), birth.slice(-2)]).join('-') : (['19' + birth.slice(0, 2), birth.slice(2, 4), birth.slice(-2)]).join('-');
|
|
|
+ info.sex = (order % 2 === 0 ? 2 : 0);
|
|
|
+ return info;
|
|
|
}
|
|
|
})
|