riku
2023-11-29 9b09d13712c0c005891450a3bf4b6d848ec0ff37
pages/mService/behaviors/bScheduleManager.js
@@ -1,9 +1,9 @@
import scheduleservice from '../../../service/scheduleservice'
import sysSchedules from '../../../data/schedules'
import moment from '../../../utils/moment.min'
import util from '../../../utils/util'
import scheduleservice from '../../../service/scheduleservice';
import sysSchedules from '../../../data/schedules';
import moment from '../../../utils/moment.min';
import util from '../../../utils/util';
const app = getApp()
const app = getApp();
/**
 * 环保日程管理
@@ -14,123 +14,139 @@
    ledgerCompleted: {
      type: Boolean,
      observer(value) {
        this.checkScheduleComplete(0, value)
      }
        this.checkScheduleComplete(0, value);
      },
    },
    assessmentCompleted: {
      type: Boolean,
      observer(value) {
        this.checkScheduleComplete(1, value)
      }
    }
        this.checkScheduleComplete(1, value);
      },
    },
  },
  data: {
    allSchedules: [],
    thisSchedule: {},
    index: 0
    index: 0,
  },
  lifetimes: {
    attached: function () {
      this.getRecentSchedule()
      this.getRecentSchedule();
      this.getSchedules();
      if (app.globalData.newUser) {
        this.nextSchedules()
        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()
      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
      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
        let d = s.time.diff(today, 'days');
        s.diffDays = d;
        if (Math.abs(d) < Math.abs(diffDays)) {
          let _index = i
          let _index = i;
          schedule = s
          diffDays = d
          index = _index
          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
      })
        // thisSchedule: {
        //   date: schedule.time,
        //   time: schedule.time.format('YYYY-MM-DD dddd'),
        //   type: schedule.type,
        //   events: schedule.events,
        //   diffDays: schedule.diffDays,
        // },
        index,
      });
    },
    //获取所有日程
    getAllSchedules() {
      console.log('getAllSchedules');
      scheduleservice.getAllSchedules(app.globalData.accessToken.userId, {
        success(res) {
          console.log('success');
          console.log(res);
        },
        fail(e) {
          console.log('fail');
          console.log(e);
        },
        complete(res) {
          console.log('complete');
        },
      })
      const schedules = sysSchedules();
      this.setData({
        allSchedules: schedules,
      });
    },
    // 当前日程完成,顺延下一个日程
    nextSchedules() {
      let today = moment().hour(0).minute(0).second(0).millisecond(0)
      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
      let d = s.time.diff(today, 'days');
      s.diffDays = d;
      this.setData({
        thisSchedule: {
          date: s.time,
          time: s.time.format('YYYY-MM-DD dddd'),
          time: s.time.format('YYYY-MM-DD'),
          type: s.type,
          events: s.events,
          diffDays: s.diffDays,
        },
        index: this.data.index + 1
      })
        index: this.data.index + 1,
      });
    },
    // 检查当前日程是否完成
    checkScheduleComplete(type, value) {
      debugger
      // 新用户不做判断
      if (app.globalData.newUser) return
      if (app.globalData.newUser) return;
      // 日程类型不一致无需判断
      if (this.data.thisSchedule.type != type) return
      if (this.data.thisSchedule.type != type) return;
      // 日程不在当月的无需判断
      const thisMonth = moment().month()
      const sTimeMonth = moment(this.data.thisSchedule.date).month()
      if (thisMonth != sTimeMonth) return
      const thisMonth = moment().month();
      const sTimeMonth = moment(this.data.thisSchedule.date).month();
      if (thisMonth != sTimeMonth) return;
      // 日程完成则顺延下个日程
      if (value) {
        this.nextSchedules()
        this.nextSchedules();
      }
    }
  }
})
    },
  },
});