import dayjs from 'dayjs';
|
import { useLoading } from '../../../behaviors/loading';
|
import { fetchSceneProSummary } from '../../../services/inspection/fetchScene';
|
import { fetchProblemsStatistic } from '../../../services/inspection/fetchInspection';
|
import { _getParamsArea } from '../param-util.js';
|
|
Page({
|
behaviors: [useLoading],
|
data: {
|
summaryList: [],
|
sort: '',
|
sortBy: 'pro',
|
statistic: {
|
proNum: 0,
|
changeNum: 0,
|
},
|
},
|
|
onLoad(options) {
|
this.getOpenerEventChannel().on('acceptInspectionData', data => {
|
this.setData({
|
location: {
|
provinceText: data.inspection.provinceName,
|
cityText: data.inspection.cityName,
|
districtText: data.inspection.districtName,
|
townText: data.inspection.townName,
|
},
|
inspection: data.inspection,
|
time: data.time,
|
sceneTypeText: data.sceneTypeText,
|
sceneTypeValue: data.sceneTypeValue,
|
});
|
this._startLoad();
|
});
|
},
|
|
onReachBottom() {
|
this._loadMore();
|
},
|
|
_fetchData(page) {
|
const f1 = this.fetchSceneProSummary(page);
|
const f2 = this.fetchProblems(page);
|
return Promise.all([f1, f2]).then(res => {
|
// 返回请求f1的分页信息
|
return res[0];
|
});
|
},
|
|
fetchSceneProSummary(page) {
|
const params = _getParamsArea(this.data);
|
const { sortBy } = this.data;
|
return fetchSceneProSummary({ area: params, sortBy, page }).then(res => {
|
if (res.success) {
|
this.setData({
|
summaryList: page == 1 ? res.data : this.data.summaryList.concat(res.data),
|
});
|
} else {
|
this.setData({
|
summaryList: [],
|
});
|
}
|
return res.head;
|
});
|
},
|
|
fetchProblems(page) {
|
const params = _getParamsArea(this.data);
|
return fetchProblemsStatistic(params).then(res => {
|
let proNum = 0,
|
changeNum = 0,
|
changePer = 0;
|
res.data.forEach(r => {
|
proNum += r.count;
|
changeNum += r.changeCount;
|
});
|
if (proNum > 0) {
|
changePer = Math.round((changeNum / proNum) * 1000) / 10;
|
changePer += '%';
|
}
|
this.setData({
|
statistic: { proNum, changeNum, changePer },
|
});
|
return res.head;
|
});
|
},
|
|
onTimePickerConfirm(e) {
|
const { timeValue } = e.detail;
|
this.setData({
|
time: timeValue,
|
});
|
this._startLoad();
|
},
|
onLocationChange(e) {
|
const { inspection } = this.data;
|
inspection.provinceName = e.detail.provinceText;
|
inspection.cityName = e.detail.cityText;
|
inspection.districtName = e.detail.districtText;
|
inspection.townName = e.detail.townText;
|
inspection.provinceCode = e.detail.provinceValue;
|
inspection.cityCode = e.detail.cityValue;
|
inspection.districtCode = e.detail.districtValue;
|
inspection.townCode = e.detail.townValue;
|
inspection.locationValue = e.detail.locationValue;
|
this.setData({ inspection });
|
this._startLoad();
|
},
|
onScenePickerConfirm(e) {
|
const { sceneText: sceneTypeText, sceneValue: sceneTypeValue } = e.detail;
|
this.setData({ sceneTypeText, sceneTypeValue });
|
this._startLoad();
|
},
|
|
onSortChange(e) {
|
const { sorts } = e.detail;
|
const { type } = e.currentTarget.dataset;
|
this.setData({
|
sort: sorts,
|
sortBy: type,
|
proSort: type == 'pro' ? sorts : 'default',
|
changeSort: type == 'changePer' ? sorts : 'default',
|
});
|
this._startLoad();
|
},
|
|
// 问题数排序更改
|
onProNumSortChange(e) {
|
const { sorts } = e.detail;
|
this.setData({
|
sort: sorts,
|
});
|
this._startLoad();
|
},
|
|
// 整改率排序更改
|
onChangePerSortChange(e) {},
|
|
navToDetail(e) {
|
const { index } = e.currentTarget.dataset;
|
const summary = this.data.summaryList[index];
|
wx.navigateTo({
|
url: '/pages/inspection/detail/index',
|
success: result => {
|
result.eventChannel.emit('acceptInspectionDetailData', {
|
scene: summary.scene,
|
time: this.data.time,
|
});
|
},
|
});
|
},
|
});
|