291 lines
6.8 KiB
JavaScript
291 lines
6.8 KiB
JavaScript
import { getMeterDetail, getMeterList, getTenementMeterList } from "../../service/meter";
|
|
import { getOwnTenementList } from "../../service/tenement";
|
|
import { alertInfo, alertSuccess } from "../../utils/index";
|
|
import request from '../../utils/request';
|
|
import { getDot } from "../../utils/system";
|
|
import { getUserInfo } from "../../service/user"
|
|
const { OK } = request;
|
|
// pages/home/index.js
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
user: {},
|
|
all: [],
|
|
park: {},
|
|
tenement: {},
|
|
show: false,
|
|
columns: [],
|
|
pickerType: "",
|
|
meterList: [],
|
|
meterIndex: 0,
|
|
rechargeVisible: false,
|
|
background: ['demo-text-1', 'demo-text-2', 'demo-text-3'],
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
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() {
|
|
|
|
},
|
|
jumpToRecharge() {
|
|
const { user } = this.data;
|
|
if (!user || !user?.id) {
|
|
alertInfo("请先登录")
|
|
return;
|
|
}
|
|
wx.navigateTo({
|
|
url: '/pages/recharge/index',
|
|
})
|
|
},
|
|
|
|
async setUser() {
|
|
const result = await getUserInfo();
|
|
if (result.code !== OK) {
|
|
// alertInfo(result.message)
|
|
const user = wx.getStorageSync('user')
|
|
this.setData({ user: user })
|
|
return;
|
|
}
|
|
this.setData({ user: result.data })
|
|
wx.setStorageSync('user', result.data)
|
|
// const user = wx.getStorageSync('user')
|
|
// this.setData({ user: user })
|
|
},
|
|
onOk(e) {
|
|
const { type, index, value } = e.detail;
|
|
const currentPark = this.data.park;
|
|
switch(type) {
|
|
case "park":
|
|
// if (value.id === currentPark?.id) {
|
|
// this.setData({ show: false })
|
|
// return
|
|
// }
|
|
this.setData({
|
|
show: false,
|
|
park: value,
|
|
tenement: value.tenements?.[0]
|
|
})
|
|
wx.setStorageSync('park', value)
|
|
wx.setStorageSync('tenement', value.tenements?.[0])
|
|
break;
|
|
case "tenement":
|
|
// const currentTenement = this.data.tenement;
|
|
// if (value.id === currentTenement?.id) {
|
|
// this.setData({ show: false })
|
|
// return
|
|
// }
|
|
wx.setStorageSync('tenement', value)
|
|
// wx.setStorageSync('meter', null)
|
|
this.setData({
|
|
show: false,
|
|
tenement: value
|
|
})
|
|
|
|
break;
|
|
}
|
|
},
|
|
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,
|
|
})
|
|
},
|
|
|
|
|
|
|
|
jumpToLogin() {
|
|
wx.navigateTo({
|
|
url: '/pages/login/index',
|
|
})
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow() {
|
|
this.getAllList();
|
|
this.watchTenement();
|
|
this.watchPark();
|
|
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;
|
|
wx.setStorageSync('tenement', newVal)
|
|
that.setUser();
|
|
// that.getMeters(newVal);
|
|
value = newVal;
|
|
}
|
|
});
|
|
},
|
|
watchPark() {
|
|
const that = this;
|
|
let value = this.data.park; // 获取被监听属性的当前值
|
|
|
|
// 使用 Object.defineProperty 方法在数据对象上定义属性的 getter 和 setter
|
|
Object.defineProperty(this.data, 'park', {
|
|
configurable: true, // 可配置
|
|
enumerable: true, // 可枚举
|
|
get: function () {
|
|
return value; // 返回属性的当前值
|
|
},
|
|
set: function (newVal) {
|
|
// const oldValue = value;
|
|
value = newVal;
|
|
wx.setStorageSync('park', newVal)
|
|
}
|
|
});
|
|
},
|
|
watchMeter() {
|
|
const that = this;
|
|
let value = this.data.meter; // 获取被监听属性的当前值
|
|
|
|
// 使用 Object.defineProperty 方法在数据对象上定义属性的 getter 和 setter
|
|
Object.defineProperty(this.data, 'meter', {
|
|
configurable: true, // 可配置
|
|
enumerable: true, // 可枚举
|
|
get: function () {
|
|
return value; // 返回属性的当前值
|
|
},
|
|
set: function (newVal) {
|
|
// const oldValue = value;
|
|
value = newVal;
|
|
wx.setStorageSync('meter', newVal)
|
|
}
|
|
});
|
|
},
|
|
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] || {} )
|
|
// }
|
|
},
|
|
|
|
async getAllList() {
|
|
const { code, message, data } = await getOwnTenementList()
|
|
if (code !== OK) {
|
|
alertInfo(message)
|
|
return
|
|
}
|
|
if (!data?.length) {
|
|
alertInfo("尚无信息")
|
|
wx.redirectTo({
|
|
url: '/pages/handleLogin/index?back=false',
|
|
})
|
|
return;
|
|
}
|
|
const [firstPark = {}] = data;
|
|
const { park, tenement } = this.data;
|
|
const updateDatas = {}
|
|
if (!park || !park.id) {
|
|
const storagePark = wx.getStorageSync('park')
|
|
updateDatas.park = storagePark || firstPark
|
|
}
|
|
if (!tenement || !tenement.id) {
|
|
const storageTenement = wx.getStorageSync('tenement')
|
|
if (!park || !park.id) {
|
|
updateDatas.tenement = storageTenement || firstPark.tenements?.[0]
|
|
} else {
|
|
updateDatas.tenement = storageTenement || park.tenements?.[0];
|
|
}
|
|
}
|
|
updateDatas.all = data;
|
|
this.setData({
|
|
...updateDatas
|
|
})
|
|
},
|
|
|
|
jumpToShop() {
|
|
alertInfo("开发中");
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage() {
|
|
|
|
}
|
|
}) |