import { getMeterDetail, getTenementMeterList } from "../../service/meter"; import request from '../../utils/request'; import { getUserInfo } from "../../service/user" import { alertInfo, alertSuccess, loadingFunc } from "../../utils/index"; import { requestRecharge } from "../../service/recharge"; const { OK } = request; // pages/recharge/index.js Page({ /** * 页面的初始数据 */ data: { meterList: [], meter: {}, actions: [ { name: '微信支付', }, { name: '对公支付', disabled: true }, ], user: {}, }, /** * 生命周期函数--监听页面加载 */ onLoad() { const tenement = wx.getStorageSync('tenement') const park = wx.getStorageSync('park') this.setData({ tenement, park }) this.init(park, tenement) }, async changeMeter() { const { meterList = [] } = this.data; const newColumns = meterList.map(item => { item.id = item.code; item.name = `${item.code} - ${item.address}`; return item; }) this.setData({ columns: newColumns, show: true, pickerType: "meter" }) }, onOk(e) { const { type } = e.detail; switch(type) { case "meter": const { id } = e.detail.value; this.handleGetMeterDetail(id) break; } }, async init(park, tenement) { this.getMeters({ id: tenement?.id }) }, async refreshMeter() { const { meter } = this.data; this.handleGetMeterDetail(meter.id); }, async handleGetMeterDetail(meterId) { const { tenement } = this.data; const { code, message, data } = await getMeterDetail({ tenement: tenement?.id, id: meterId }); if (code !== OK) { alertInfo(message); return; } this.setData({ meter: data, show: false, }) }, onCancel() { this.setData({ show: false, }) }, async setUser() { const result = await getUserInfo(); if (result.code !== OK) { const user = wx.getStorageSync('user') this.setData({ user: user }) return; } this.setData({ user: result.data }) wx.setStorageSync('user', result.data) }, async recharge() { const { user, money, meter, tenement, park } = this.data; if (!user || !user.id) { alertInfo("请先登录") return } if (!money) { alertInfo("请先输入金额") return; } if (!meter?.code) { alertInfo("没有选择表计") return; } if (money < 0.01) { alertInfo("最少为1分") return } // wx.navigateTo({ // url: `/pages/rechargeWay/index?money=${money}&address=${meter.address}&id=${meter?.id}&tenement=${tenement?.id}&park=${park.id}`, // }) this.setData({ rechargeVisible: true }) }, async getMeters({ id }) { const { code, message, data } = await getTenementMeterList(id); if (code !== OK) { alertInfo(message) this.setData({ meterList: [], meter: {} }) wx.setStorageSync('meter', {}) return; } this.setData({ meterList: data || [], meter: (data?.[0] || {}) }) // if (!storageMeter) { wx.setStorageSync('meter', data?.[0] || {} ) // } }, changeMoney(e) { const { money } = e.currentTarget.dataset; this.setData({ money: money }) }, onChangeMoney(e) { this.setData({ money: e.detail }) }, onCloseRechargeWay() { this.setData({ rechargeVisible: false }) }, onSelectRechargeWay(e) { const that = this; switch(e.detail.name) { case "对公支付": alertInfo("开发中") break; default: loadingFunc(async () => { await that.wxRecharge(); }) break; } }, jumpToRecord() { wx.navigateTo({ url: '/pages/rechargeRecord/index', }) }, jumpToOrder() { // alertInfo("尚未完成") wx.navigateTo({ url: '/pages/billList/index', }) }, jumpToElectric() { wx.navigateTo({ url: '/pages/electricQuery/index', }) }, jumpToInvoice() { wx.navigateTo({ url: '/pages/invoiceList/index', }) }, async wxRecharge() { const { money, meter, tenement, park } = this.data; const that = this; const { code, message, data } = await requestRecharge({ money: Number(money), id: meter?.id, tenement: tenement?.id, park: park?.id }) if (code !== OK) { alertInfo(message) return; } wx.requestPayment({ timeStamp: data?.time, nonceStr: data?.nonceStr, package: "prepay_id=" + data?.prepay_id, paySign: data?.paySign, signType: 'RSA', success: (res) => { alertSuccess("充值成功") that.setData({ money: null }) }, fail: (res) => { console.log('fail', res) alertInfo("请稍后重试") }, complete: (res) => { console.log('complete') that.handleGetMeterDetail(meter.id) } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { this.setUser(); }, chooseMoney(e) { const { money, index } = e.currentTarget.dataset; this.setData({ money, moneyIndex: Number(index), customFlag: false, }); }, onChangeCode(e) { const { codes } = this.data; const index = Number(e.detail.value); this.setData({ code: codes[index] }) }, custom() { this.setData({ moneyIndex: -1, customFlag: true, }) }, onChangeCustomMoney(e) { const money = e.detail.value; this.setData({ money: money, }) }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })