const api = require('../../api/index.js'); Page({ data: { activeTab: 0, carInfo: {}, Details:[], alertData: [], // 补充:告警列表数据(核心缺失字段) pageNum: 1, // 当前页码 pageSize: 10, // 每页条数 totalPages: 0, // 总数据量(建议字段名改为 totalCount 更易理解) hasMore: true, // 是否还有更多数据 isLoading: false, // 是否正在加载(防止重复请求) electricitydata:[] // 充放电记录 }, onLoad(options) { console.log(options); // 接收首页传递的车辆数据 // const car = JSON.parse(options.car); // console.log(car); this.setData({carInfo: options}); this.getVehicleDetails(); // 补充:页面加载时初始化告警数据 this.initAlertData(true); this.Electricalrecording() }, // 实时数据 getVehicleDetails(){ let data = { carId: this.data.carInfo.id } api.request(`/syscar/selectcardrive`, 'post', data, { isPublic: false }) .then((data) => { console.log('实时数据:', data.data); if (data.code === 200) { this.setData({ Details: data.data }) } }) .catch((err) => { console.error('实时数据请求失败:', err); }); }, // 消息数据加载(完整补充版) initAlertData(isRefresh = true) { // 防止重复加载 if (this.data.isLoading) return; // 设置加载状态 this.setData({ isLoading: true }); // 分页参数处理:刷新重置为1,加载更多则+1 const pageNum = isRefresh ? 1 : this.data.pageNum + 1; const pageSize = this.data.pageSize; // 请求参数(关联当前车辆ID) let data = { faultstatus: '', carId: this.data.carInfo.id, pageNum, pageSize }; api.request(`/alarm/selectalarm`, 'post', data, { isPublic: false }) .then((res) => { console.log('告警数据请求结果:', res); if (res.code === 200) { const { data: responseData } = res; const { data: list, totalPages } = responseData; // 数据处理:刷新=覆盖,加载更多=追加 const newAlertData = isRefresh ? list : [...this.data.alertData, ...list]; // 修正:判断是否还有更多数据(当前列表长度 < 总数据量) const hasMore = newAlertData.length < totalPages; console.log('告警列表:', newAlertData); console.log('当前页码:', pageNum); console.log('总数据量:', totalPages); console.log('是否有更多:', hasMore); // 更新数据 this.setData({ alertData: newAlertData, // 告警列表 pageNum: pageNum, // 更新当前页码 totalPages: totalPages, // 更新总数据量 hasMore: hasMore // 更新是否有更多数据 }); } }) .catch((err) => { console.error('告警数据请求失败:', err); wx.showToast({ title: '告警数据加载失败', icon: 'none', duration: 1500 }); }) .finally(() => { // 无论成功失败,都结束加载状态 this.setData({ isLoading: false }); }); }, // 充放电记录 Electricalrecording(){ let data = { carId: this.data.carInfo.id, pageNum:1, pageSize:10 } api.request(`/sysworkorder/selectpartnerworkorder`, 'post', data, { isPublic: false }) .then((data) => { console.log('实时数据:', data.data); if (data.code === 200) { this.setData({ electricitydata: data.data.data }) } }) .catch((err) => { console.error('实时数据请求失败:', err); }); }, // 切换标签页(补充:切换后可根据标签筛选告警,示例逻辑) changeTab(e) { const index = e.currentTarget.dataset.index; this.setData({activeTab: index}, () => { // 可选:切换标签后重新加载对应状态的告警数据 // this.initAlertData(true); }); }, // 下拉刷新(补充:真实调用刷新逻辑) onPullDownRefresh() { // 调用刷新模式的告警数据加载 this.initAlertData(true).then(() => { wx.stopPullDownRefresh(); wx.showToast({title: '刷新成功', icon: 'success', duration: 1500}); }).catch(() => { wx.stopPullDownRefresh(); wx.showToast({title: '刷新失败', icon: 'none', duration: 1500}); }); }, // 补充:上拉加载更多(小程序原生生命周期) onReachBottom() { // 无更多数据/正在加载时,不执行 if (!this.data.hasMore || this.data.isLoading) return; // 调用加载更多模式的告警数据加载 this.initAlertData(false); }, /** * 跳转工单详情页 */ toOrderDetail(e) { console.log(e); const order = e.currentTarget.dataset.order; if (!order.workorderId) return; // 跳转工单详情页(替换为你的详情页路径) wx.navigateTo({ url: `/pages/orderdetails/index?id=${order.workorderId}` }); }, onUnload() {} })