// pages/placingOrder/placingOrder.js const app = getApp() Component({ /** * 组件的属性列表 */ properties: { }, /** * 组件的初始数据 */ data: { imgUrl: app.globalData.urlStatic,//图片路径 agreement:false, isAgreement: true,//是否同意协议 siteSelect: false,//是否显示位置选择框 phoneInputShow: false,//是否显示电话输入框 provinceDataAll:null,//地区所有数据 provinceDataArr:[[""],[""]],//省市数据 provinceDataValue:[0,0],//选中的省市下标 nowProvince:"",//选中的省市文字 storeArr:[],//专营店数据 storeValue:0,//选中的专营店下标 verificationCode: '获取验证码',//验证码文案 sendCode: true, appointment: true, subscribeData: { realname: "",//姓名 mobile: "",//手机号 mobile2:"", captcha: "",//验证码 province: "",//省份 city:"",//市区 agent_code: "",//经销商编码 agentDetail: "",//经销商详细信息 parentOpenid: app.globalData.parentOpenid,//好友openid }, getBuyState: false, mobileType: 2 }, attached: function () { if (app.globalData.openid) { this.loadFun(); } else { app.globalData.openidSuccessFuc = this.loadFun; } }, /** * 组件的方法列表 */ methods: { closeXieyi: function () { this.triggerEvent('placing') }, getUserPhone: function (e) {//获取用户手机号 if (e.detail.errMsg == 'getPhoneNumber:ok') { app.getMobile(e.detail.encryptedData, e.detail.iv, res => { if (res.code == 200) { this.setData({ phoneInputShow: true }) this.cutType(); if (res.data && res.data.decodeData) { this.data.subscribeData.mobile = res.data.decodeData.phoneNumber; this.setData({ subscribeData: this.data.subscribeData }) } } else { wx.showToast({ title: res.msg, icon: "none" }) } }, this); } }, loadFun: function () { this.getUserLocation();//获取用户当前位置 if (app.globalData.userMobile) { this.data.subscribeData.mobile = app.globalData.userMobile; this.setData({ phoneInputShow: true, subscribeData: this.data.subscribeData }) } }, getRealname: function (e) {//获取用户输入的姓名 this.data.subscribeData.realname = e.detail.value; }, getMobile: function (e) {//获取用户输入的电话 this.data.subscribeData.mobile = e.detail.value; }, getMobile2: function (e) {//获取用户输入的电话---无验证码 this.data.subscribeData.mobile2 = e.detail.value; }, getCaptcha: function (e) {//获取用户输入的验证码 this.data.subscribeData.captcha = e.detail.value; }, getDistributorList: function (longitude, latitude) {//获取经销商列表 app.wxRequest(app.globalData.urlRoot + "agent/getAgentList", { longitude: longitude, latitude: latitude }, res => { if (res.code == 200) { //整理数据 var datas = res.data; var province = []; var city = []; for(let i=0;i { if (res.code == 200) { this.countDown(); wx.showToast({ title: '验证码获取成功', icon: "none" }) this.setData({ verificationCode: 60 }) } else { this.data.sendCode = true; wx.showToast({ title: res.msg, icon: "none" }) } }, this) }, countDown: function () {//倒计时 setTimeout(() => { this.setData({ verificationCode: this.data.verificationCode - 1 }) if (this.data.verificationCode > 0) { this.countDown(); } else { this.setData({ verificationCode: "获取验证码" }) this.data.sendCode = true; } }, 1000); }, getUserLocation: function (e) { wx.getLocation({ type: 'gcj02', //wgs84 success: (res) => { this.getDistributorList(res.longitude, res.latitude); }, fail: (res) => { this.getDistributorList("", ""); }, complete: (res) => { this.setData({ siteSelect: true, }) } }) }, showSite: function () {//显示地址选择框 if (!this.data.siteSelect) { } }, agreementState: function () {//协议 this.setData({ isAgreement: !this.data.isAgreement }) }, agreementControl: function () { this.setData({ agreement: !this.data.agreement }) }, preBuy: function () {//下订支付 if (!this.data.subscribeData.realname) { wx.showToast({ title: '请输入姓名', icon: "none" }) return; } if (!this.data.subscribeData.mobile2 && this.data.mobileType==2) { wx.showToast({ title: '请输入电话', icon: "none" }) return; } if (this.data.mobileType == 2) { if (!this.data.subscribeData.captcha) { wx.showToast({ title: '请输入验证码', icon: "none" }) return; } } if (!this.data.isAgreement) { wx.showToast({ title: '请同意协议', icon: 'none' }) return; } if (!this.data.appointment) { return; } this.data.appointment = false; this.data.subscribeData.province = this.data.provinceDataArr[0][this.data.provinceDataValue[0]]; this.data.subscribeData.city = this.data.provinceDataArr[1][this.data.provinceDataValue[1]]; this.data.subscribeData.agent_code = this.data.storeArr[this.data.storeValue].agent_code; this.data.subscribeData.agentDetail = this.data.storeArr[this.data.storeValue].agent_detail; var sourceMobile = this.data.subscribeData.mobile; if (this.data.mobileType == 2) { this.data.subscribeData.mobile = this.data.subscribeData.mobile2; } app.wxRequest(app.globalData.urlRoot + "wxPay/preBuy", this.data.subscribeData, res => { this.data.subscribeData.mobile = sourceMobile; if (res.code == 200) { wx.requestPayment({ timeStamp: res.data.jsSubmit.timeStamp, nonceStr: res.data.jsSubmit.nonceStr, signType: res.data.jsSubmit.signType, package: res.data.jsSubmit.package, paySign: res.data.jsSubmit.paySign, success:(option)=>{ this.paySuccess(res.data.trade_id); }, fail: (option) => { this.data.appointment = true; wx.showToast({ title: '支付失败', icon:"none" }) } }) } else { this.data.appointment = true; wx.showToast({ title: res.msg, icon: "none" }) } }, this, "POST") }, paySuccess: function (e) {//支付成功 app.wxRequest(app.globalData.urlRoot + "wxPay/paySuccess", { trade_id:e},res=>{ if(res.code==200){ // wx.showToast({ // title: '下订成功', // mask:true // }) this.setData({ getBuyState:true }) app.globalData.getBuyState = {}; app.globalData.getBuyState.success = true; app.globalData.getBuyState.cdate = res.data.cdate; // setTimeout(()=>{ // this.closeXieyi(); // },1500) } else { this.data.appointment = true; wx.showToast({ title: res.msg, icon:'none' }) } },this,"POST"); }, closePage:function(){ // this.closeXieyi(); wx.reLaunch({ url: '/pages/index/index', }) }, provinceDataChange:function(e){ if (e.detail.column==0) { var city = []; for (let i = 0; i < this.data.provinceDataAll[e.detail.value].children.length;i++){ city.push(this.data.provinceDataAll[e.detail.value].children[i].city); } this.data.provinceDataArr[1] = city; this.setData({ provinceDataArr: this.data.provinceDataArr }) } }, provinceDataChane:function(e){ this.setData({ provinceDataValue: e.detail.value, nowProvince: this.data.provinceDataArr[0][e.detail.value[0]] + " " + this.data.provinceDataArr[1][e.detail.value[1]], storeArr: this.data.provinceDataAll[e.detail.value[0]].children[e.detail.value[1]].children, storeValue:0 }) }, storeChane:function(e){ this.setData({ storeValue:e.detail.value }) }, enterMycenter:function(){ wx.reLaunch({ url: '/pages/myCenter/myCenter', }) }, cutType: function () { this.setData({ mobileType: this.data.mobileType == 1 ? 2 : 1 }) } } })