import scheduleservice from '../../../service/scheduleservice';
|
import sysSchedules from '../../../data/schedules';
|
import moment from '../../../utils/moment.min';
|
import util from '../../../utils/util';
|
|
const app = getApp();
|
|
/**
|
* 环保日程管理
|
*/
|
module.exports = Behavior({
|
// behaviors: [bLoadingStatus],
|
properties: {
|
ledgerCompleted: {
|
type: Boolean,
|
observer(value) {
|
this.checkScheduleComplete(0, value);
|
},
|
},
|
assessmentCompleted: {
|
type: Boolean,
|
observer(value) {
|
this.checkScheduleComplete(1, value);
|
},
|
},
|
},
|
data: {
|
allSchedules: [],
|
thisSchedule: {},
|
index: 0,
|
},
|
lifetimes: {
|
attached: function () {
|
this.getRecentSchedule();
|
this.getSchedules();
|
if (app.globalData.newUser) {
|
this.nextSchedules();
|
}
|
// this.getAllSchedules()
|
},
|
},
|
methods: {
|
getSchedules() {
|
// let startTime = '2023-04-10';
|
// let endTime = '2023-04-10';
|
let startTime = moment().format('YYYY-MM-DD');
|
let endTime = startTime;
|
const that = this;
|
scheduleservice.getSchedules(
|
{ startTime, endTime, type: 0 },
|
{
|
success(res) {
|
if (res.data.length > 0) {
|
const schedule = res.data[0];
|
schedule.time = moment(schedule.time.split('T')[0]).format(
|
'YYYY-MM-DD',
|
);
|
that.setData({
|
thisSchedule: schedule,
|
});
|
}
|
},
|
fail(e) {
|
console.log(e);
|
},
|
},
|
);
|
},
|
|
//查找最临近的日程
|
getRecentSchedule() {
|
//1. 从接口获取用户个人、用户企业类型的相关最临近日程
|
//2. 按照本地逻辑,得出最邻近日程
|
const schedules = sysSchedules();
|
//2.1 将台账、评估、承诺三项APP功能定义为日程
|
//2.2 选择最邻近的事项作为当日的提醒事项,
|
let today = moment().hour(0).minute(0).second(0).millisecond(0);
|
let diffDays = 999;
|
let schedule;
|
let index = 0;
|
for (let i = 0; i < schedules.length; i++) {
|
let s = schedules[i];
|
let d = s.time.diff(today, 'days');
|
s.diffDays = d;
|
if (Math.abs(d) < Math.abs(diffDays)) {
|
let _index = i;
|
|
schedule = s;
|
diffDays = d;
|
index = _index;
|
}
|
}
|
//2.3 日程在时间维度上分为三类提醒,预告、当日、未完成的逾期提醒
|
|
this.setData({
|
allSchedules: schedules,
|
// thisSchedule: {
|
// date: schedule.time,
|
// time: schedule.time.format('YYYY-MM-DD dddd'),
|
// type: schedule.type,
|
// events: schedule.events,
|
// diffDays: schedule.diffDays,
|
// },
|
index,
|
});
|
},
|
|
//获取所有日程
|
getAllSchedules() {
|
const schedules = sysSchedules();
|
this.setData({
|
allSchedules: schedules,
|
});
|
},
|
|
// 当前日程完成,顺延下一个日程
|
nextSchedules() {
|
let today = moment().hour(0).minute(0).second(0).millisecond(0);
|
let s = this.data.allSchedules[this.data.index + 1];
|
let d = s.time.diff(today, 'days');
|
s.diffDays = d;
|
|
this.setData({
|
thisSchedule: {
|
date: s.time,
|
time: s.time.format('YYYY-MM-DD'),
|
type: s.type,
|
events: s.events,
|
diffDays: s.diffDays,
|
},
|
index: this.data.index + 1,
|
});
|
},
|
|
// 检查当前日程是否完成
|
checkScheduleComplete(type, value) {
|
// 新用户不做判断
|
if (app.globalData.newUser) return;
|
// 日程类型不一致无需判断
|
if (this.data.thisSchedule.type != type) return;
|
// 日程不在当月的无需判断
|
const thisMonth = moment().month();
|
const sTimeMonth = moment(this.data.thisSchedule.date).month();
|
if (thisMonth != sTimeMonth) return;
|
|
// 日程完成则顺延下个日程
|
if (value) {
|
this.nextSchedules();
|
}
|
},
|
},
|
});
|