641 lines
16 KiB
TypeScript
641 lines
16 KiB
TypeScript
// pages/vehicleMonitoring/failureAlert/failureAlert.ts
|
|
import { getAction } from '../../../api/base';
|
|
|
|
Page({
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
tabActive: 0,
|
|
startDate: '',
|
|
endDate: '',
|
|
startDateTmp: '',
|
|
endDateTmp: '',
|
|
selectDate: 'startDate',
|
|
showDateSelect: false,
|
|
dateList: {
|
|
years: [2023, 2024, 2025],
|
|
months: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
|
|
date: [
|
|
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
|
|
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
|
|
]
|
|
},
|
|
dateValue: [0, 0, 0],
|
|
loading: false,
|
|
current: 1,
|
|
isLast: false,
|
|
plateNumber: '',
|
|
showSelect: {
|
|
projectSelectShow: false,
|
|
statusSelectShow: false
|
|
},
|
|
projectOptions: [
|
|
{
|
|
value: '',
|
|
text: '全部'
|
|
}
|
|
] as any,
|
|
selectProjectIndex: 0,
|
|
statusOptions: [
|
|
{
|
|
value: '',
|
|
text: '全部'
|
|
},
|
|
{
|
|
value: '1',
|
|
text: '已结束'
|
|
},
|
|
{
|
|
value: '0',
|
|
text: '未结束'
|
|
}
|
|
],
|
|
selectStatusIndex: 2,
|
|
selectProject: {} as any,
|
|
listTotal: 0,
|
|
fenceAlarmList: [],
|
|
speedAlarmlistTotal: 0,
|
|
overTimeAlarmlistTotal: 0,
|
|
speedAlarmList: [],
|
|
overTimeAlarmList: []
|
|
},
|
|
toSearch() {
|
|
wx.setStorageSync('isGlobal', '');
|
|
wx.navigateTo({
|
|
url: '../component/vehicleSearch/vehicleSearch',
|
|
fail: e => {
|
|
console.log(e);
|
|
}
|
|
});
|
|
},
|
|
// 日期相关--------------
|
|
showDate(e: any) {
|
|
// selectDate
|
|
let clickDate = null as any;
|
|
if (e.currentTarget.dataset.key == 'startDate') {
|
|
clickDate = this.data.startDate;
|
|
} else {
|
|
clickDate = this.data.endDate;
|
|
}
|
|
let y = this.data.dateList.years.findIndex(
|
|
(x: number) => x == Number(clickDate.split('-')[0])
|
|
);
|
|
let m = this.data.dateList.months.findIndex(
|
|
(x: number) => x == Number(clickDate.split('-')[1])
|
|
);
|
|
let d = this.data.dateList.date.findIndex(
|
|
(x: number) => x == Number(clickDate.split('-')[2])
|
|
);
|
|
// console.log(this.data.startDate.split('-'))
|
|
console.log([y, m, d]);
|
|
this.setData({
|
|
showDateSelect: true,
|
|
selectDate: e.currentTarget.dataset.key,
|
|
|
|
startDateTmp: this.data.startDate,
|
|
endDateTmp: this.data.endDate,
|
|
dateValue: [y, m, d]
|
|
});
|
|
},
|
|
hideDate() {
|
|
this.setData({
|
|
showDateSelect: false
|
|
});
|
|
},
|
|
changeSelectDate(e: any) {
|
|
this.setData({
|
|
selectDate: e.currentTarget.dataset.key,
|
|
current: 1,
|
|
isLast: false,
|
|
fenceAlarmList: [],
|
|
speedAlarmList: [],
|
|
overTimeAlarmList: []
|
|
});
|
|
},
|
|
selectDate(e: any) {
|
|
console.log(e.detail.value);
|
|
let y: string | number = this.data.dateList.years[e.detail.value[0]];
|
|
let m: string | number = this.data.dateList.months[e.detail.value[1]];
|
|
let d: string | number = this.data.dateList.date[e.detail.value[2]];
|
|
y = y < 10 ? '0' + y : y;
|
|
m = m < 10 ? '0' + m : m;
|
|
d = d < 10 ? '0' + d : d;
|
|
if (this.data.selectDate == 'startDate') {
|
|
this.setData({
|
|
startDateTmp: `${y}-${m}-${d}`
|
|
});
|
|
} else {
|
|
this.setData({
|
|
endDateTmp: `${y}-${m}-${d}`
|
|
});
|
|
}
|
|
},
|
|
changeDate(e: any) {
|
|
console.log(
|
|
new Date(this.data.startDateTmp).getTime(),
|
|
new Date(this.data.endDateTmp).getTime()
|
|
);
|
|
if (
|
|
new Date(this.data.startDateTmp).getTime() >
|
|
new Date(this.data.endDateTmp).getTime()
|
|
) {
|
|
wx.showToast({
|
|
title: '结束时间不能早于开始时间',
|
|
icon: 'none'
|
|
});
|
|
return;
|
|
}
|
|
this.setData({
|
|
startDate: this.data.startDateTmp,
|
|
endDate: this.data.endDateTmp,
|
|
showDateSelect: false
|
|
});
|
|
},
|
|
// 日期相关--------------end
|
|
tabOnClick(event: any) {
|
|
console.log(event.detail.name);
|
|
// 看情况要不要重置查询条件
|
|
this.setData({
|
|
current: 1,
|
|
isLast: false,
|
|
fenceAlarmList: [],
|
|
speedAlarmList: [],
|
|
overTimeAlarmList: [],
|
|
tabActive: event.detail.name
|
|
// selectProjectIndex: 0
|
|
});
|
|
// 查询
|
|
if (event.detail.name == 0) {
|
|
this.getFenceAlarmList();
|
|
} else if (event.detail.name == 1) {
|
|
this.getSpeedAlarmList();
|
|
} else if (event.detail.name == 2) {
|
|
this.getOverTimeAlarmList();
|
|
}
|
|
},
|
|
|
|
getNextList() {
|
|
if (this.data.loading) return;
|
|
if (!this.data.isLast) {
|
|
this.setData({
|
|
current: this.data.current + 1
|
|
});
|
|
this.getFenceAlarmList();
|
|
} else {
|
|
wx.showToast({
|
|
title: '告警信息已加载完毕',
|
|
duration: 1000,
|
|
icon: 'none'
|
|
});
|
|
}
|
|
},
|
|
searchList() {
|
|
this.setData({
|
|
current: 1,
|
|
isLast: false,
|
|
fenceAlarmList: [],
|
|
speedAlarmList: [],
|
|
overTimeAlarmList: [],
|
|
listTotal: 0,
|
|
speedAlarmlistTotal: 0,
|
|
overTimeAlarmlistTotal: 0
|
|
});
|
|
// 查询
|
|
if (this.data.tabActive == 0) {
|
|
this.getFenceAlarmList();
|
|
} else if (this.data.tabActive == 1) {
|
|
this.getSpeedAlarmList();
|
|
} else if (this.data.tabActive == 2) {
|
|
this.getOverTimeAlarmList();
|
|
}
|
|
},
|
|
getFenceAlarmList() {
|
|
let parms = {
|
|
status: this.data.statusOptions[this.data.selectStatusIndex].value,
|
|
projectId: this.data.projectOptions[this.data.selectProjectIndex].value,
|
|
plateNumber: this.data.plateNumber,
|
|
startTime: this.data.startDate + ' 00:00:00',
|
|
endTime: this.data.endDate + ' 23:59:59',
|
|
pageNo: this.data.current,
|
|
pageSize: 10
|
|
};
|
|
this.setData({
|
|
loading: true
|
|
});
|
|
wx.showLoading({
|
|
title: '加载中'
|
|
});
|
|
getAction('api/monitor/fenceAlarm/list', parms)
|
|
.then((res: any) => {
|
|
wx.hideLoading();
|
|
this.setData({
|
|
loading: false
|
|
});
|
|
if (res.code == 200) {
|
|
let tmpArr = this.data.fenceAlarmList.concat(res.result.records);
|
|
this.setData({
|
|
listTotal: res.result.total,
|
|
fenceAlarmList: tmpArr
|
|
});
|
|
if (res.result.total == tmpArr.length) {
|
|
// tmpArr 目前只是调试流程用
|
|
this.setData({
|
|
isLast: true
|
|
});
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: 'none'
|
|
});
|
|
}
|
|
})
|
|
.catch((err: any) => {
|
|
this.setData({
|
|
loading: false
|
|
});
|
|
wx.showToast({
|
|
title: err.message,
|
|
icon: 'none'
|
|
});
|
|
});
|
|
},
|
|
getSpeedAlarmList() {
|
|
let parms = {
|
|
status: this.data.statusOptions[this.data.selectStatusIndex].value,
|
|
projectId: this.data.projectOptions[this.data.selectProjectIndex].value,
|
|
plateNumber: this.data.plateNumber,
|
|
startTime: this.data.startDate + ' 00:00:00',
|
|
endTime: this.data.endDate + ' 23:59:59',
|
|
pageNo: this.data.current,
|
|
pageSize: 10
|
|
};
|
|
this.setData({
|
|
loading: true
|
|
});
|
|
wx.showLoading({
|
|
title: '加载中'
|
|
});
|
|
getAction('api/monitor/speedAlarm/list', parms)
|
|
.then((res: any) => {
|
|
wx.hideLoading();
|
|
this.setData({
|
|
loading: false
|
|
});
|
|
if (res.code == 200) {
|
|
let tmpArr = this.data.speedAlarmList.concat(res.result.records);
|
|
this.setData({
|
|
speedAlarmlistTotal: res.result.total,
|
|
speedAlarmList: tmpArr
|
|
});
|
|
if (res.result.total == tmpArr.length) {
|
|
// tmpArr 目前只是调试流程用
|
|
this.setData({
|
|
isLast: true
|
|
});
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: 'none'
|
|
});
|
|
}
|
|
})
|
|
.catch((err: any) => {
|
|
this.setData({
|
|
loading: false
|
|
});
|
|
wx.showToast({
|
|
title: err.message,
|
|
icon: 'none'
|
|
});
|
|
});
|
|
},
|
|
// 获取停车超时数据
|
|
getOverTimeAlarmList() {
|
|
let parms = {
|
|
status: this.data.statusOptions[this.data.selectStatusIndex].value,
|
|
projectId: this.data.projectOptions[this.data.selectProjectIndex].value,
|
|
plateNumber: this.data.plateNumber,
|
|
startTime: this.data.startDate + ' 00:00:00',
|
|
endTime: this.data.endDate + ' 23:59:59',
|
|
pageNo: this.data.current,
|
|
pageSize: 10
|
|
};
|
|
this.setData({
|
|
loading: true
|
|
});
|
|
wx.showLoading({
|
|
title: '加载中'
|
|
});
|
|
getAction('api/monitor/stopAlarm/list', parms)
|
|
.then((res: any) => {
|
|
wx.hideLoading();
|
|
this.setData({
|
|
loading: false
|
|
});
|
|
if (res.code == 200) {
|
|
console.log(res.result);
|
|
let tmpArr = this.data.overTimeAlarmList.concat(res.result.records);
|
|
this.setData({
|
|
overTimeAlarmlistTotal: res.result.total,
|
|
overTimeAlarmList: tmpArr
|
|
});
|
|
if (res.result.total == tmpArr.length) {
|
|
// tmpArr 目前只是调试流程用
|
|
this.setData({
|
|
isLast: true
|
|
});
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: 'none'
|
|
});
|
|
}
|
|
})
|
|
.catch((err: any) => {
|
|
this.setData({
|
|
loading: false
|
|
});
|
|
wx.showToast({
|
|
title: err.message,
|
|
icon: 'none'
|
|
});
|
|
});
|
|
},
|
|
getProjectOptions() {
|
|
getAction('api/projects/list').then((res: any) => {
|
|
if (res.code == 200) {
|
|
res.result.unshift({
|
|
id: '',
|
|
projectName: '全部'
|
|
});
|
|
let arr = [] as any;
|
|
res.result.forEach((item: any) => {
|
|
arr.push({
|
|
text: item.projectName,
|
|
value: item.id
|
|
});
|
|
});
|
|
this.setData({
|
|
projectOptions: arr,
|
|
selectProjectIndex: 0,
|
|
selectProject: arr[0]
|
|
});
|
|
} else {
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: 'none'
|
|
});
|
|
}
|
|
});
|
|
},
|
|
toDetail(e: any) {
|
|
wx.setStorageSync('selectCar', e.currentTarget.dataset.inf);
|
|
if (this.data.tabActive == 0) {
|
|
wx.navigateTo({
|
|
url: '../realtime/realtime',
|
|
fail: e => {
|
|
console.log(e);
|
|
}
|
|
});
|
|
} else {
|
|
console.log('跳转到超速详情');
|
|
}
|
|
},
|
|
bindPickerProject(e: any) {
|
|
console.log(e);
|
|
let index = Number(e.detail.value);
|
|
this.setData({
|
|
selectProject: this.data.projectOptions[index],
|
|
selectProjectIndex: index,
|
|
current: 1,
|
|
isLast: false,
|
|
listTotal: 0,
|
|
speedAlarmlistTotal: 0,
|
|
overTimeAlarmlistTotal: 0,
|
|
fenceAlarmList: [],
|
|
speedAlarmList: [],
|
|
overTimeAlarmList: []
|
|
});
|
|
// 查询
|
|
if (this.data.tabActive == 0) {
|
|
this.getFenceAlarmList();
|
|
} else if (this.data.tabActive == 1) {
|
|
this.getSpeedAlarmList();
|
|
} else if (this.data.tabActive == 2) {
|
|
this.getOverTimeAlarmList();
|
|
}
|
|
},
|
|
pickerChange(event: any) {
|
|
//下拉框切换是否展示
|
|
let fieldName: any = event.currentTarget.dataset.fieldname;
|
|
let data: any = { ...this.data };
|
|
data.showSelect[fieldName] = true;
|
|
this.setData(data);
|
|
},
|
|
hidePicker() {
|
|
let showSelect = this.data.showSelect;
|
|
showSelect = {
|
|
projectSelectShow: false,
|
|
statusSelectShow: false
|
|
};
|
|
this.setData({
|
|
showSelect: showSelect
|
|
});
|
|
},
|
|
pickerConfirm(event: any) {
|
|
console.log(event);
|
|
//下拉框点击确认
|
|
let { fieldname, fieldindex } = event.currentTarget.dataset;
|
|
let detail = event.detail;
|
|
let data: any = { ...this.data };
|
|
// if (fieldname === 'projectId') {
|
|
// data.params[fieldname] = detail.value.value;
|
|
// data[fieldindex] = detail.index;
|
|
|
|
// } else {
|
|
data[fieldname] = this.data.projectOptions[detail.index];
|
|
data[fieldindex] = detail.index;
|
|
// }
|
|
console.log(this.data);
|
|
this.setData(data);
|
|
this.hidePicker();
|
|
this.setData({
|
|
current: 1,
|
|
isLast: false,
|
|
fenceAlarmList: [],
|
|
speedAlarmList: [],
|
|
overTimeAlarmList: [],
|
|
listTotal: 0,
|
|
speedAlarmlistTotal: 0,
|
|
overTimeAlarmlistTotal: 0
|
|
});
|
|
// 查询
|
|
if (this.data.tabActive == 0) {
|
|
this.getFenceAlarmList();
|
|
} else if (this.data.tabActive == 1) {
|
|
this.getSpeedAlarmList();
|
|
} else if (this.data.tabActive == 2) {
|
|
this.getOverTimeAlarmList();
|
|
}
|
|
},
|
|
clearValue() {
|
|
this.setData({
|
|
plateNumber: ''
|
|
});
|
|
},
|
|
// 日期初始化
|
|
initDate() {
|
|
let year = new Date().getFullYear();
|
|
let mon = (new Date().getMonth() + 1) as any;
|
|
let day =
|
|
new Date().getDate() < 10
|
|
? '0' + new Date().getDate()
|
|
: new Date().getDate();
|
|
let years = [] as any;
|
|
|
|
let sy = mon > 1 ? year : year - 1;
|
|
let smon = mon > 1 ? mon - 1 : (12 as any);
|
|
mon = mon < 10 ? '0' + mon : mon;
|
|
smon = smon < 10 ? '0' + smon : smon;
|
|
for (let i = -3; i < 6; i++) {
|
|
years.push(year + i);
|
|
}
|
|
this.setData({
|
|
dateList: {
|
|
years: years,
|
|
months: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
|
|
date: [
|
|
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
|
|
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
|
|
]
|
|
},
|
|
dateValue: [0, 0, 0],
|
|
|
|
startDate: `${sy}-${smon}-${day}`,
|
|
endDate: `${year}-${mon}-${day}`,
|
|
startDateTmp: `${sy}-${smon}-${day}`,
|
|
endDateTmp: `${year}-${mon}-${day}`
|
|
});
|
|
},
|
|
lower(e: any) {
|
|
console.log(e.detail.direction == 'bottom');
|
|
if (this.data.isLast) {
|
|
wx.showToast({
|
|
title: '已经是最后一页',
|
|
icon: 'none'
|
|
});
|
|
return;
|
|
}
|
|
if (e.detail.direction == 'bottom' && !this.data.loading) {
|
|
// this.data.current += 1
|
|
this.setData({
|
|
loading: true,
|
|
current: (this.data.current += 1)
|
|
});
|
|
// 查询
|
|
if (this.data.tabActive == 0) {
|
|
this.getFenceAlarmList();
|
|
} else if (this.data.tabActive == 1) {
|
|
this.getSpeedAlarmList();
|
|
} else if (this.data.tabActive == 2) {
|
|
this.getOverTimeAlarmList();
|
|
}
|
|
}
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad() {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady() {
|
|
this.initDate();
|
|
this.getProjectOptions();
|
|
this.getFenceAlarmList();
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow() {
|
|
// this.initDate();
|
|
let plateNumber = wx.getStorageSync('selectCarInf').plateNumber;
|
|
this.setData({
|
|
plateNumber: plateNumber ? plateNumber : this.data.plateNumber,
|
|
current: 1,
|
|
isLast: false,
|
|
fenceAlarmList: [],
|
|
speedAlarmList: [],
|
|
overTimeAlarmList: [],
|
|
listTotal: 0,
|
|
speedAlarmlistTotal: 0,
|
|
overTimeAlarmlistTotal: 0
|
|
});
|
|
console.log(this.data);
|
|
wx.removeStorageSync('selectCarInf');
|
|
if (this.data.tabActive == 0) {
|
|
this.getFenceAlarmList();
|
|
} else if (this.data.tabActive == 1) {
|
|
this.getSpeedAlarmList();
|
|
} else if (this.data.tabActive == 2) {
|
|
this.getOverTimeAlarmList();
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide() {
|
|
wx.setStorageSync('selectCarInf', '');
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload() {
|
|
wx.setStorageSync('selectCarInf', '');
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh() {
|
|
this.initDate();
|
|
this.getProjectOptions();
|
|
this.setData({
|
|
plateNumber: '',
|
|
current: 1,
|
|
isLast: false,
|
|
fenceAlarmList: [],
|
|
speedAlarmList: [],
|
|
overTimeAlarmList: []
|
|
});
|
|
if (this.data.tabActive == 0) {
|
|
this.getFenceAlarmList();
|
|
} else if (this.data.tabActive == 1) {
|
|
this.getSpeedAlarmList();
|
|
} else if (this.data.tabActive == 2) {
|
|
this.getOverTimeAlarmList();
|
|
}
|
|
|
|
//停止下拉刷新
|
|
wx.stopPullDownRefresh();
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom() {},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage() {}
|
|
});
|