var util = require('../../../utils/util.js'); var api = require('../../../config/api.js'); var app = getApp(); var dateArray = []; Page({ data: { checkedGoodsList: [], addressVo: {}, checkedCoupon: [], couponList: [], goodsBizTypeList: ['00','02','10','11'], goodsTotalPrice: 0.00, //商品总价 freightPrice00: 0.00, //备货业务快递费 freightPrice02: 0.00, //补货业务快递费 freightPrice10: 0.00, //现场发包快递费 freightPrice11: 0.00, //普通商品快递费 couponPrice: 0.00, //优惠券的价格 orderTotalPrice: 0.00, //订单总价 actualPrice: 0.00, //实际需要支付的总价 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(), idNo: '', userName: '', idNoM: '', idNoDisabled: false }, bindMultiPickerColumnChange: function (e) { let that = this; console.log('修改的列为', e.detail.column, ',值为', e.detail.value); var data = { multiArray: this.data.multiArray, multiIndex: this.data.multiIndex }; data.multiIndex[e.detail.column] = e.detail.value if (e.detail.column == 0){ data.multiIndex[1] = 0 } let timeArray = that.data.timeArray; if (data.multiIndex[0] == 1){ timeArray = util.timeArray.slice(0); }else{ timeArray = util.getNowTimeArray(); } data.timeArray = timeArray; data.multiArray[1] = timeArray; this.setData(data) }, bindMultiPickerChange: function (e) { let that = this; console.log('picker发送选择改变,携带值为', e.detail.value) this.setData({ multiIndex: e.detail.value, delivery_date: dateArray[e.detail.value[0]], delivery_remark: e.detail.value[0] == 0 ? that.data.timeArray[e.detail.value[1]] : that.data.timeArray[e.detail.value[1]] }) console.log('delivery_date', this.data.delivery_date, ',delivery_remark', this.data.delivery_remark) }, initPicker(){ let that = this; let date = new Date(); let hours = date.getHours(); let minutes = date.getMinutes(); let index = 0; var today = util.getNowTime(); var tomorrow = util.getDateStr(new Date(),1); dateArray = [today, tomorrow]; this.setData({ '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; util.request(api.CartCheckout, { userCouponId: that.data.userCouponId }).then(function (res) { if (res.errno === 0) { console.log(res.data); that.setData({ checkedGoodsList: res.data.checkedGoodsList, actualPrice: res.data.actualPrice, // addressVo: res.data.addressVo, checkedCoupon: res.data.checkedCoupon, couponList: res.data.couponList, fullCutCouponId: res.data.fullCutCouponId, couponPrice: res.data.couponPrice, freightPrice00: res.data.freightPrice00, freightPrice02: res.data.freightPrice02, freightPrice10: res.data.freightPrice10, freightPrice11: res.data.freightPrice11, goodsTotalPrice: res.data.goodsTotalPrice, orderTotalPrice: res.data.orderTotalPrice, fullCutCouponDec: res.data.fullCutCouponDec, userName: res.data.userName, idNo: res.data.idNo }); if (res.data.addressVo){ that.setData({ addressVo: res.data.addressVo }); } if (that.data.idNo) { 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 + that.data.freightPrice00, goodsTotalPrice02: goodsTotalPrice02 + that.data.freightPrice02, goodsTotalPrice10: goodsTotalPrice10 + that.data.freightPrice10, goodsTotalPrice11: goodsTotalPrice11 + that.data.freightPrice11 }); // 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) { for (var i = 0; i < that.data.couponList.length; i++) { if (that.data.userCouponId == that.data.couponList[i].id) { that.setData({ checkedCoupon: that.data.couponList[i], couponPrice: that.data.couponList[i].type_money }); break; } } } } wx.hideLoading(); that.checkStore(); }); }, selectAddress() { this.setData({ checkStore: false }); wx.navigateTo({ url: '/pages/shopping/address/address', }) }, addAddress() { wx.navigateTo({ url: '/pages/shopping/addressAdd/addressAdd', }) }, selectCoupon() { let that = this; wx.navigateTo({ url: '/pages/shopping/coupon/coupon', }) }, bindPostscriptBlur(e) { 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); 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, 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, idNo: that.data.idNo, userName: that.data.userName }, 'POST').then(function (res) { if (res.errno === 0) { let actualPrice = that.data.actualPrice; let orderIds = []; for (let i = 0; i < res.data.orderInfo.length; i++){ orderIds[i] = res.data.orderInfo[i].id; } wx.redirectTo({ url: '/pages/pay/pay?orderIds=' + orderIds + '&actualPrice=' + actualPrice + '&isMergePay=1'//此处提交支付属于合并支付 }) } else { wx.showModal({ title: '提示信息', content: res.errmsg, showCancel: false }); } }); }, // 校验门店 checkStore: function () { let that = this; util.request(api.CheckStore, { checkedAddress: that.data.addressVo, storeId: wx.getStorageSync('storeId') }, 'POST').then(function (res) { 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) { // 页面初始化 options为页面跳转所带来的参数 }, onReady: function () { // 页面渲染完成 }, onShow: function () { // 页面显示 wx.showLoading({ title: '加载中...', }) this.getCheckoutInfo(); this.initPicker() }, onHide: function () { // 页面隐藏 }, 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; } })