| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- 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() {}
- })
|