import { getMeterDetail, getMeterList, getTenementMeterList } from "../../service/meter"; import { getOwnTenementList } from "../../service/tenement"; import { getUserInfo } from "../../service/user"; import { alertError, alertInfo } from "../../utils/index"; import request from '../../utils/request'; import { getDot } from "../../utils/system"; const { OK } = request; // pages/home/index.js Page({ /** * 页面的初始数据 */ data: { user: {}, all: [], park: {}, tenement: {}, show: false, columns: [], pickerType: "", meterList: [], meterIndex: 0, }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { }, choosePark() { this.setData({ columns: this.data.all, show: true, pickerType: "park" }) }, chooseTenement() { const { park = {}} = this.data; const { tenements } = park; this.setData({ columns: tenements, show: true, pickerType: "tenement" }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, async changeMeter() { const { meterList = [], meterIndex, tenement = {} } = this.data; this.setData({ columns: meterList.map(item => { item.id = item.code; item.name = `${item.code} - ${item.address}`; return item; }), show: true, pickerType: "meter" }) }, async refreshMeter() { const { meter } = this.data; this.handleGetMeterDetail(meter.code); }, onOk(e) { const { type, index, value } = e.detail; const currentPark = this.data.park; if (type === "park") { if (value.id === currentPark?.id) { this.setData({ show: false }) return } this.setData({ show: false, park: value, tenement: value.tenements?.[0] }) } if (type === "tenement") { const currentTenement = this.data.tenement; if (value.id === currentTenement?.id) { this.setData({ show: false }) return } this.setData({ show: false, tenement: value }) } if (type === "meter") { const { code, id } = e.detail.value; this.handleGetMeterDetail(code) } }, async handleGetMeterDetail(meterCode) { const { tenement } = this.data; const { code, message, data } = await getMeterDetail({ tenement, code: meterCode }); this.setData({ tenement: data, show: false, }) }, onCancel() { this.setData({ show: false, }) }, changeMoney(e) { const { money } = e.currentTarget.dataset; this.setData({ money }) }, onChangeMoney(e) { this.setData({ money: e.detail ? Number(e.detail) : e.detail }) }, recharge() { const { user, money } = this.data; if (!user || !user.id) { alertInfo("请先登录") return } }, jumpToLogin() { wx.navigateTo({ url: '/pages/login/index', }) }, /** * 生命周期函数--监听页面显示 */ onShow() { this.setUser(); this.getAllList(); this.watchTenement(); getDot(); }, watchTenement() { const that = this; let value = this.data.tenement; // 获取被监听属性的当前值 // 使用 Object.defineProperty 方法在数据对象上定义属性的 getter 和 setter Object.defineProperty(this.data, 'tenement', { configurable: true, // 可配置 enumerable: true, // 可枚举 get: function () { return value; // 返回属性的当前值 }, set: function (newVal) { const oldValue = value; value = newVal; that.getMeters(newVal); } }); }, async getMeters({ id }) { const { code, message, data } = await getTenementMeterList(id); // if (code !== OK) { // alertError(message) // return; // } this.setData({ meterList: data || [], meter: data?.[0] || {} }) }, async setUser() { // const result = await getUserInfo(); // if (result.code !== OK) { // alertInfo(result.message) // return; // } // this.setData({ user: result.data }) // wx.setStorageSync('user', result.data) const user = wx.getStorageSync('user') this.setData({ user: user }) }, async getAllList() { const { code, message, data } = await getOwnTenementList() // if (code !== OK) { // alertInfo(message) // return // } const [firstPark = {}] = data; const { park, tenement } = this.data; const updateDatas = {} if (!park || !park.id) { updateDatas.park = firstPark } if (!tenement || !tenement.id) { if (!park || !park.id) { updateDatas.tenement = firstPark.tenements?.[0] } else { updateDatas.tenement = park.tenements?.[0]; } } updateDatas.all = data; this.setData({ ...updateDatas }) }, jumpToRecord() { wx.navigateTo({ url: '/pages/rechargeRecord/index', }) }, jumpToOrder() { alertInfo("尚未完成") }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })