const navigationBarHeight = (getApp().statusBarHeight + 50) + 'px' const extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {} let app = getApp(); const format = require("../utils/util.js"); let config = require("../config/config.js"); let Http = require("../utils/HttpBasics"); let Util = require("../utils/util"); const imgurl = require("../utils/imgurl"); Page({ data: { navigationBarHeight, jianUrl: imgurl.jian.url, jiaofeiwm: imgurl.jiaofeiwm.url, parkUrl: imgurl.park.url, guanliHr: imgurl.guanliHr.url, qidaiUrl: imgurl.qidai.url, addUrl: imgurl.add.url, tingcheHr: imgurl.tingcheHr.url, cheUrl: imgurl.che.url, jiaofei: imgurl.jiaofei.url, wentiHr: imgurl.wentiHr.url, park: null, carList: [], payList: [], addCar: null, tcq: 2, flag: "", extraData: {}, desc: '', title: '', indicatorDots: true, autoplay: false, interval: 5000, duration: 1000, current: 0, stopFees: {}, scroll: true, ifHaveCarModular: "", canIUse: wx.canIUse("navigator"), showTicketModal: false, ticketList: [], noCoupon:imgurl.noCoupon.url, loadingUrl: imgurl.loading.url, allow_load: true, curPageNum: 1, curPageSize: 15, curTotalpageNum: 0, quantitle: '', quanid: '', gouHr: imgurl.gouHr.url, totalTicketNum: 0, }, getMoreList(e) { let totalNum = this.data.ticketList.length; if (this.data.curPageNum < this.data.curTotalpageNum) { this.setData({ curPageNum: this.data.curPageNum+1 }) this.getTicketList(0 ,this.data.curPageNum); } }, /** * 选择使用的优惠券 */ choicecoupon: function(e) { /* wx.navigateBack(); var pages = getCurrentPages(); var prevPage = pages[pages.length - 2] //上一个页面 */ var that = this; var quantitle = e.currentTarget.dataset.title; var quanid = e.currentTarget.dataset.id; this.setData({ quantitle: quantitle, quanid: quanid, showTicketModal: false, }); that.bindCoupon(that.data.quanid); /* wx.setStorage({ key: 'chosed', data: 'chosed', }) */ }, /* */ getTicketList(key, pageNum) { var that = this; if (that.data.allow_load) { wx.showLoading({ title: "加载中" }); Http.get({ url: config.api.couponOrderCarList, data: { pageNum: pageNum, pageSize: 15, couponOrderStatus: key } }).then(res => { that.setData({ curTotalpageNum: res.data.pages, curPageNum: res.data.pageNum, totalTicketNum: res.data.total }) res.data.list.map(file => { file.expiredTime = format.formatTime( file.expiredTime, "yyyy-MM-dd hh:mm:ss" ); }); setTimeout(function () { wx.hideLoading(); }, 1200); if (pageNum >= res.data.pages) { that.setData({ allow_load: false }); } /** * 先赋值后渲染页面 * concat 不会改变原数组值 * push 会改变原数组值,但不会一条一条插入,而是整个数组插入 */ if (pageNum == 1) { that.setData({ ticketList: res.data.list, curPageNum: pageNum }); } else { that.setData({ ticketList: that.data.ticketList.concat(res.data.list) }); } // that.data.ticketList = that.data.ticketList.concat(res.data.list); this.hideLoading(); }) .catch(err => { setTimeout(function () { wx.hideLoading(); }, 1200); wx.showToast({ title: err.errMsg, icon: 'none', duration: 2000, mask: false }); }) } else { } }, //点击跳转到券详情页面 gotouse: function (e) { wx.navigateTo({ url: `/pages/passCar/couponDetail/couponDetail?quancode=${ e.currentTarget.dataset.quancode }`, success: function (res) { // success }, fail: function () { // fail }, complete: function () { // complete } }); }, /** * 车牌轮播滑动 */ onSlideChangeEnd: function (e) { var that = this; /** * 获得当前的车牌号码 */ var listCardNum = (that.data.carList)[e.detail.current].carNumber; that.setData({ listCardNum: listCardNum }); /** * 获得停车费用 */ if (that.data.scroll) { that.getStopFee(listCardNum); } }, //停车费用为0 paySuccess: function () { wx.showModal({ title: '支付成功', content: '请尽快离场', showCancel: false }) }, gotomange: function () { wx.navigateTo({ url: '/pages/managelicenseplate/managelicenseplate', }) }, bindfail: function (res) { console.log(res) }, gotoetcp: function () { wx.navigateToMiniProgram({ appId: that.data.etcpAppId, extraData: this.data.extraData, envVersion: 'release', path: "pages/pay/order-pay-open/main", }) }, showquan: function () { wx.navigateTo({ url: '/pages/passCar/couponList/couponList', }) }, gotodetail: function (e) { wx.showModal({ title: '缴费规则', content: e.target.dataset.rule, showCancel: false, }) }, onShow: function (options) { if (typeof this.getTabBar === 'function' && this.getTabBar()) { this.getTabBar().setData({ selected: 2 }) } var that = this; that.setData({ etcpAppId: extConfig.attr.etcpAppId, etcpVersion: extConfig.attr.etcpVersion, etcpCallbackUrl: extConfig.attr.etcpCallbackUrl, ifHaveCarModular: extConfig.attr.ifHaveCarModular }) if (app.globalData.token) { that.getList(); that.init(); } else { that.init(); } /** * 只有用户选择了优惠券 * 才会进行券和车牌的绑定 */ /* if (wx.getStorageSync("chosed") && that.data.quanid) { that.getStopFee(that.data.listCardNum); that.bindCoupon(that.data.quanid); wx.setStorage({ key: 'chosed', data: '', }) }; */ if (app.globalData.token) { // that.initUsrCarList(); that.initUsrCarList("flags"); that.setData({ current: 0 }) } if (that.data.addCar) { // 绑车牌 if (app.globalData.carLogin) { that.bindCar(that.data.addCar); } else { that.bindCar(that.data.addCar); } that.setData({ addCar: null }); } this.getTicketList(0, 1); }, cancelMove: function() { console.log(111) return false; }, onHide: function () { this.setData({ allow_load: true, showTicketModal: false, curPageNum: 1, ticketList: [] }) }, onLoad: function (options) { var that = this; /** * 获得分享小程序的 * title * desc */ Http.get({ url: config.api.getWeapNote, data: { appId: config.weapp.AppId, } }) .then(res => { let weapNote = JSON.parse(res.data.weapNote); that.setData({ desc: weapNote.carpage.desc, title: weapNote.carpage.title }) }) .catch(err => { console.log(err); }) // 登录 var scene = decodeURIComponent(options.scene); that.setData({ scene: scene }); if (app.globalData.token) { } else { // app.getLocation(); that.userLogin() } }, /** * 用户登录 */ userLogin: function () { var that = this; // 登录 wx.login({ success: ({ code }) => { wx.getSystemInfo({ success: function (res) { that.setData({ systemInfo: JSON.stringify(res) }) } }) var usrdata = { appId: config.weapp.AppId, code: code, sceneAddress: app.globalData.sceneAddress, scene: that.data.scene, systemInfo: that.data.systemInfo }; if (app.globalData.locationInfo) { usrdata = { appId: config.weapp.AppId, code: code, sceneAddress: app.globalData.sceneAddress, latitude: "" + app.globalData.locationInfo.latitude, longitude: "" + app.globalData.locationInfo.longitude, scene: that.data.scene, systemInfo: that.data.systemInfo }; } Http.post({ url: config.api.login, data: usrdata }) .then(res => { app.globalData.token = res.data.token; Http.setToken(res.data.token); that.checkUserCarStatus(); that.getList(); that.init(); that.initUsrCarList(); return Http.get({ url: config.api.checkUserStatus, data: {} }); }) .then(res => { }) .catch(err => { if (err.code == 11004) { // 用户昵称未授权 wx.redirectTo({ url: "/pages/getuserinfo/index" }); } else { wx.showModal({ title: '提示', content: err.errMsg, showCancel: false }) } }); } }); }, /** * 检查用户是否有车 */ checkUserCarStatus: function () { var that = this; Http.get({ url: config.api.userCarCount, data: {} }).then(res => { if (res.data > 0) { // 用户名下有车 app.globalData.phone = res.data.phone; app.globalData.supportCar = true; // 共同登录 that.userCarLogin(); } }) .catch(err => { }) }, jumpToAdd: function () { wx.navigateTo({ url: `/pages/addPark/addPark?flags=managepalte` }); }, passc: function () { wx.navigateTo({ url: '/pages/ques/ques', }) }, /** * 券绑定车牌 */ bindCoupon: function (quanid) { var that = this; /** * etcp */ var etcpData = { etcpToken: app.globalData.etcpToken, carNumber: that.data.listCardNum, couponOrderId: quanid }; /** * 停简单 */ var tjdData = { carNumber: that.data.listCardNum }; var postCouponData = app.globalData.parkVendor == 1 ? etcpData : tjdData; if (app.globalData.parkVendor == 4){ postCouponData = { carNumber: that.data.listCardNum, couponOrderId: quanid } } Http.post({ url: config.api.getCarCoupon, data: postCouponData }) .then(res => { that.getStopFee(that.data.listCardNum); that.initUsrCarList(); }) .catch(err => { if (err.message!=undefined) { wx.showToast({ title: err.message, icon: 'none', duration: 2000, mask: false }); } }) }, /** * 选择优惠券 */ // gotoquan: function () { // let that = this; // if (that.data.quanid) { // wx.navigateTo({ // url: `/pages/passCar/choicecoupon/choicecoupon?quanid=${that.data.quanid}`, // }) // } else { // wx.navigateTo({ // url: '/pages/passCar/choicecoupon/choicecoupon', // }) // } // }, closeTicketModal: function () { this.setData({ showTicketModal: false }) }, /** * 停车券 弹框 */ openTicketModal: function () { this.setData({ showTicketModal: true, allow_load: true, ticketList: [], curPageNum: 1, }) this.getTicketList(0, 1); /* if (!this.data.ticketList.length){ this.getTicketList(0, 1); } */ }, //获取名下停车券列表 getList() { var that = this; Http.get({ url: config.api.couponOrderCarList + "?type=5&couponOrderStatus=0", data: { pageNum: 1, pageSize: 15, couponOrderStatus: 0 } }).then(res => { that.setData({ couponList: res.data.list }); }) .catch(err => { console.log(err) }) }, /** * 共同登录 */ init: function (carNumber) { var that = this; app.parkInitCallback = token => { that.initPark(); that.getParkStatus(); if (!app.globalData.carLogin) { /** * 判断是否授权手机号 */ Http.get({ url: config.api.checkPhoneStatus, data: {} }) .then(res => { Http.post({ url: config.api.carInit, data: { phone: app.globalData.phone } }).then(res => { app.globalData.carLogin = true; app.globalData.parkVendor = res.data.vendor; if (res.data.token) { app.globalData.etcpToken = res.data.token; } /** * 获得停车费用 */ that.initUsrCarList("flags"); }); }) .catch(err => { if (err.code == 11005) { // 用户手机未授权 /** * 将值传到用户手机号授权的页面 * */ wx.redirectTo({ url: "/pages/getphoneInfo/index" }); } else if (err.code == 11006) { // 用户手机已加密 wx.redirectTo({ url: "/pages/phoneinput/phoneinput" }); } else { wx.showToast({ title: err.errMsg, icon: 'none', duration: 2000, mask: false }); } }) } }; if (app.globalData.token && app.globalData.token != null) { app.parkInitCallback(app.globalData.token); } }, bindCar: function (carNum) { var that = this; // ETCP var etcpData = { etcpToken: app.globalData.etcpToken, carNumber: carNum }; var tjdData = { carNumber: carNum }; var postData = app.globalData.parkVendor == 1 ? etcpData : tjdData; Http.post({ url: config.api.bindCar, data: postData }) .then(res => { that.setData({ addCar: null }); that.initUsrCarList(); wx.showModal({ title: "提示", showCancel: false, content: "绑车牌成功!", success: function () { } }); }) .catch(error => { wx.showModal({ title: "提示", showCancel: false, content: error.data.message, success: function () { } }); }); }, /** * 车场信息获取 */ initPark: function () { var that = this; Http.get({ url: config.api.getParkInfo, data: {} }) .then(res => { that.setData({ park: res.data }) if (res.data){ app.globalData.parkVendor = res.data.vendorType; } }) .catch(err => { console.log(err); // wx.showToast({ // title: err.message, // icon: 'none', // duration: 2000, // mask: false // }); }) }, /** * 车场状态获取 */ getParkStatus: function () { var that = this; Http.get({ url: config.api.getParkStatus, }) .then(res => { console.log(res) }) .catch(err => { console.log(err) // wx.showToast({ // title: err.message, // icon:"none" // }) }) }, /** * 绑定车获取 */ initUsrCarList: function (flag) { var that = this; Http.get({ url: config.api.getUserCarList, data: {} }).then(res => { that.setData({ carList: res.data }); /** * flag ==flags * 表示从首页onShow进来的 */ if (flag == "flags" && res.data.length > 0) { var listCardNum = res.data[0].carNumber; that.setData({ listCardNum: listCardNum }) /** * 获得停车费用 */ that.getStopFee(listCardNum); } }) .catch(err => { wx.showToast({ title: err.message, icon: 'none', duration: 2000, mask: false }); }) }, /** * 获得停车费用修改 */ getStopFee: function (carNumber) { let that = this; let postData = app.globalData.parkVendor == 1 ? { etcpToken: app.globalData.etcpToken, carNumber: carNumber } : { carNumber: carNumber }; Http.post({ url: config.api.getCarStopFee, data: postData }) .then(res => { console.log(res) var extraDataStr = { params: { token: app.globalData.etcpToken, syncId: res.data.orderId, payType: 6, // 小程序支付 CarNumber: carNumber, returnUrl: that.data.etcpCallbackUrl, source: "FUMAO-001", actionId: "1" //操作ID,1:小程序支付 } }; that.setData({ extraData: extraDataStr, stopFees: res.data, timecha: Util.timecha(res.data.exitTime, res.data.entranceTime) }); that.setData({ scroll: true }) }) .catch(error => { that.setData({ stopFees: {}, scroll: true }) }); }, /** * 下拉刷新 */ onPullDownRefresh: function (e) { let that = this; that.initUsrCarList("flags"); that.setData({ current:0 }) wx.stopPullDownRefresh(); } });