123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- var util = require('../../../utils/util.js');
- var api = require('../../../api/api.js');
- import todo from '../../../lib/calendar/plugins/todo'
- import selectable from '../../../lib/calendar/plugins/selectable'
- import solarLunar from '../../../lib/calendar/plugins/solarLunar/index'
- import timeRange from '../../../lib/calendar/plugins/time-range'
- import week from '../../../lib/calendar/plugins/week'
- import holidays from '../../../lib/calendar/plugins/holidays/index'
- import plugin from '../../../lib/calendar/plugins/index'
- var calendar;
- plugin
- .use(todo)
- .use(solarLunar)
- .use(selectable)
- .use(week)
- .use(timeRange)
- .use(holidays)
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- calendarConfig: {
- theme: 'elegant'
- },
- list: [],
- board:{},
- selected:[],//选中日期的服务单
- selectedDate: '未选择', //选中的日期和时间
- selectedTime: ''
- },
- afterTapDate(e) {//选中某个日期
- console.log('afterTapDate', e.detail)
- let that = this;
- var month = e.detail.month < 10 ? "0" + String(e.detail.month) : String(e.detail.month);
- var date = e.detail.date < 10 ? "0" + String(e.detail.date) : String(e.detail.date);
- that.setData({
- selectedDate:e.detail.year+'-'+month+'-'+date
- })
- that.data.list.forEach(item=>{
- if(item.date==e.detail.date){
- that.setData({
- selected:item.books
- })
- }
- })
- },
- whenChangeMonth(e) {
- console.log('whenChangeMonth', e.detail)
- this.getScheduling();
- },
- whenChangeWeek(e) {
- console.log('whenChangeWeek', e.detail)
- },
- takeoverTap(e) {
- console.log('takeoverTap', e.detail)
- },
- afterCalendarRender(e) {
- //console.log('afterCalendarRender', e) ;
- //初始化完成后,将插件变量赋值
- calendar = this.selectComponent('#calendar').calendar;
- // this.calendarSetEnabledDates(['2021-1-1']);
- this.getScheduling();
- },
- onSwipe(e) {
- console.log('onSwipe', e)
- },
- getScheduling() { //获取可用排班
- const {year, month } = calendar.getCurrentYM();
- let that = this;
- util.request(api.Board, {
- 'month': year + '-' + month
- }).then(res => {
- if (res.errno != 0) {
- util.showErrorToast(res.errmsg);
- return;
- }
- console.info(res.data)
- that.setData({
- board:res.data
- })
- //获取当月的所有日期
- var dates = calendar.getCalendarDates({
- lunar: true
- })
- //一天多个订单 聚集到一个list
- var books=[];
- dates.forEach(function (item, index) {
- var _date = String(item.year) + '-' + String(item.month) + '-' + String(item.date);
- var bookDate=null;
- books.forEach(book=>{
- if(book.date==_date)
- bookDate=book;
- })
-
- //是否包含当前日期
- res.data.details.forEach(element => {
- if (element.date == _date) {
- if(bookDate==null) {
- bookDate={
- date:item.date,
- books:[]
- };
- books.push(bookDate);
- }
- bookDate.books.push(element);
- }
- })
- })
- //赋值显示
- books.forEach(item=>{
- if(item.books.length>0){
- that.calenderTodo(item.date,item.books);
- }
- })
- that.setData({
- list:books
- });
- }).catch(res => {
- console.info(res)
- util.showErrorToast(res.errmsg);
- })
- },
- calendarSetEnabledDates(dates) { //设置可选择的日期
- //const calendar = this.selectComponent('#calendar').calendar;
- //console.info(dates);
- //calendar['enableDates'](dates);
- },
- calenderTodo(date, title) { //设置指定日期
- const {
- year,
- month
- } = calendar.getCurrentYM();
- const dates = [{
- year,
- month,
- date: date,
- todoText: title
- }]
- calendar['setTodos']({
- showLabelAlways: true,
- dates
- })
- //console.log('set todo: ', dates) ;
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- //type=0 只显示上午 1下午
- console.info(options.type)
- this.setData({
- type: options.type
- })
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- },
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {},
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
- },
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- }
- })
|