276 lines
5.9 KiB
JavaScript
276 lines
5.9 KiB
JavaScript
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() {
|
|
|
|
}
|
|
}) |