electricity_bill_calc_wx/pages/rechargeRecord/index.js

132 lines
2.8 KiB
JavaScript

// pages/rechargeRecord/index.js
import { getRechargeList } from "../../service/recharge";
import { getTenementMeterList } from "../../service/meter";
import { getYears, alertInfo, loadingFunc } from "../../utils/index";
import request from "../../utils/request";
const { OK } = request;
Page({
/**
* 页面的初始数据
*/
data: {
year: new Date().getFullYear(),
month: new Date().getMonth() + 1,
years: getYears(),
list: [
],
show: false,
columns: [],
type: "",
title: "",
amount: 0,
codeId: "",
meterCode: ""
},
clickYear() {
this.setData({
type: "year",
columns: this.data.years,
show: true,
title: "年份"
})
},
clickMeter() {
this.setData({
type: "meter",
columns: [{id: "", name: "全部", address: "", code: ""}, ...this.data.meterList.map(item => ({ id: item.id, name: `${item.code}-${item.address}`, code: item.code }))],
show: true,
title: "表计"
})
},
onOk(e) {
const { type, value = {} } = e.detail;
if (type === "year") {
this.onChangeYear(value.id)
return;
}
if (type === "meter") {
this.onChangeMeter(value)
return;
}
},
onChangeYear(e) {
const { codeId } = this.data;
const currentYear = e
this.setData({
year: currentYear,
type: "",
show: false,
title: ""
})
this.init(currentYear, codeId)
},
onChangeMeter(e) {
const { id, code } = e;
const { year } = this.data;
this.setData({
codeId: id,
meterCode: code,
type: "",
show: false,
title: ""
})
this.init(year, id)
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
const { year } = this.data;
const tenement = wx.getStorageSync('tenement')
loadingFunc(async () => {
await this.init(year, '');
await this.getMeters(tenement?.id);
});
},
refreshEmpty() {
const { year } = this.data;
const tenement = wx.getStorageSync('tenement')
this.init(year, '');
this.init(year, tenement);
},
async getMeters(id) {
const { code, message, data } = await getTenementMeterList(id);
if (code !== OK) {
alertInfo(message)
return;
}
this.setData({
meterList: data || [],
})
},
async init(year, codeId) {
const { code, message, data = [], amount = 0 } = await getRechargeList(year, codeId);
if (code !== OK) {
alertInfo(message)
return;
}
this.setData({
list: data,
amount
})
},
onCancel() {
this.setData({
show: false,
title: "",
type: "",
})
},
jumpToDetail(e) {
const { id } = e.currentTarget.dataset;
wx.navigateTo({
url: '/pages/rechargeDetail/index?id=' + id,
})
},
back() {
wx.navigateBack({delta: 1 })
},
})