// pages/home/home.js const storage = require('../../utils/storage.js'); const { get, post } = require('../../api/request.js'); Page({ /** * 页面的初始数据 */ data: { sessionId: "", showConfirm: false, myItem:{}, waterIntakeName: "", image: "/images/ic_head_bg.jpg", userPhone: "158****0723", userName: "张三", scrollViewHeight: 0, listData: [], isRefreshing: false, isWXRefreshing: false }, openValve: function (e) { wx.navigateTo({ url: '/pages/waterIntake/waterIntake', }) }, calculateScrollViewHeight: function () { wx.createSelectorQuery().selectAll('.list-item').boundingClientRect((rects) => { let totalHeight = rects.reduce((sum, rect) => sum + rect.height, 0); this.setData({ scrollViewHeight: totalHeight, }); }).exec(); }, startPullDownRefresh() { if (!this.data.isWXRefreshing) { var self = this; console.log(this.data.isRefreshing); this.setData({ isRefreshing: true }); this.getOpenList(); } }, //获取用户数据 getUserData() { get('/items') .then((data) => { this.setData({ items: data }); }) .catch((error) => { console.error('Failed to fetch data:', error); }); }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { // 使用 wx.nextTick 等待页面渲染完成 wx.nextTick(() => { this.calculateScrollViewHeight(); }); //当开阀成功后调用刷新 console.log("onLoad:" + options.param); if(options.param){ getOpenList() ; } }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { //判断本地是否保存sessionId if (storage.isHasKeySync("sessionId")) { storage.getItem('sessionId').then((data) => { this.setData({ sessionId: data }); if (sessionId !== "") {} }).catch((err) => { console.error('Failed to load parameter:', err); }); } else { console.log('Failed to load parameter:false'); } this.getOpenList(); }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { // 下拉刷新触发的逻辑,可以是请求数据等操作 // 例如,请求数据后更新页面内容 console.log(this.data.isRefreshing); this.setData({ isWXRefreshing: true }); console.log(this.data.isRefreshing); // 数据请求完成后,停止下拉刷新的动画 var self = this; setTimeout(function () { self.setData({ isWXRefreshing: false, // 将triggered属性设置为false,表示下拉刷新已完成 }) console.log('下拉刷新已完成'); }, 3000); }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { }, recharge() { wx.navigateTo({ url: '/pages/rechargeCard/rechargeCard', }) }, openValveList() { wx.showToast({ title: '正在开发中', icon: 'none' }) }, feedBack() { wx.showToast({ title: '正在开发中', icon: 'none' }) }, handleChange(e) { const item = e.currentTarget.dataset.item; console.log(item); this.setData({ showConfirm: true, waterIntakeName: item.intakeNum, myItem:item }); }, closeDialog() { this.setData({ showConfirm: false }); }, /** * 关闭阀门 * @param {*} orderNo 订单号 * @param {*} rtuAddr 阀控器地址 * @param {*} vcNum 虚拟卡编号 */ postCloseValaue(orderNo, rtuAddr, vcNum) { const app = getApp(); const data = { rtuAddr: rtuAddr, vcNum: vcNum, //虚拟卡ID orderNo:orderNo, userType: 2, //用户类型1-平台,2-App operator: app.globalData.sessionId //操作员 }; console.log("postCloseValaue"+data); post({ url: "valve/close", data: data, isShowLoding:true }).then(response => { // 处理成功响应 console.log('请求成功:', response); // 加载完成后隐藏加载动画 wx.hideLoading(); //完成后回到首页 wx.reLaunch({ url: '/pages/home/home?param=true' // 首页的路径,根据实际情况填写 }); }).catch(error => { // 处理错误响应 console.error('请求失败:', error); }); }, /** * 获取为关阀记录 */ getOpenList() { const app = getApp(); const params = { url: 'valve/get', data: { operator: app.globalData.sessionId } }; get(params).then(data => { this.setData({ listData: data.content, isRefreshing: false, // 将triggered属性设置为false,表示下拉刷新已完成 }) }).catch(err => { // 错误回调 console.error('Error:', err); this.setData({ isRefreshing: false, // 将triggered属性设置为false,表示下拉刷新已完成 }) }); }, /** * 确认关闭回调 * @param {} item */ confirmDialog(){ this.setData({ showConfirm: false }); this.postCloseValaue(this.data.myItem.orderNo,this.data.myItem.rtuAddr,this.data.myItem.vcNum); } })