// pages/index/achievement/achievement.js // 引入插件安装器 import plugin from '../../../component/v2/plugins/index' import week from '../../../component/v2/plugins/week' import todo from '../../../component/v2/plugins/todo' import request from '../../../api/request.js' import moment from 'moment'; plugin .use(week) .use(todo) Page({ /** * 页面的初始数据 */ data: { calendarConfig: { theme: 'elegant', weekMode: true, // 周视图模式 // highlightToday: true, // 是否高亮显示当天 hideHeader: true, // 隐藏日历头部操作栏 autoChoosedWhenJump: true, // 设置默认日期及跳转到指定日期后是否需要自动选中 defaultDate: moment(new Date().getTime()).format('YYYY-MM-DD'), // 默认选中指定某天,如需选中需配置 autoChoosedWhenJump: true disableMode: { // 禁用某一天之前/之后的所有日期 type: 'after', // [‘before’, 'after'] // 无该属性或该属性值为假,则默认为当天 }, }, isDisplay: false, calendar: {}, //日历 valueId: '', //任务ID taskVo: { allowRepairCard: 0, hasData: 0, statisticsUnit: "", submitCondition: "", id: 0, releaseTime: "", signTotal: 0, taskCycle: 0, taskDesc: "", taskFrequency: "", taskTitle: "", weekDay: "" }, resData: [], //成果数据 recordVo: { commitTime: "", files: [], signDate: "", taskRecordDesc: "", taskStatisticsParam: "" }, //成果数据当天 recordVoShow: false, dayMoment: 0, //数据月份 }, /** * 选择日期后执行的事件 */ afterTapDate(e) { let date = e.detail.date // let month = e.detail.month // let year = e.detail.year this.resetV2(e.detail.year,e.detail.month,date ) let recordVo = this.data.resData.eventDetails[date - 1].recordVo if (recordVo != null) { console.log('复制', recordVo) this.setData({ recordVo: recordVo }) this.setData({ recordVoShow: true }) } else { this.setData({ recordVoShow: false }) } }, //获取信息(第一次进来,模拟点击渲染) getInfo(doday, isOne = 0,e) { request({ url: `/wx/task/getSignRecord`, method: 'get', data: { // wx.getStorageSync('userInfo_id'), "taskId": this.data.valueId, "signDate": doday }, }).then(res => { if (res.code == 0) { this.setData({ resData: res.data }) this.getV2(res.data) if (isOne == 1) { this.afterTapDate(e) } } else { wx.showToast({ title: res.msg, icon: 'none' }) } }) }, //初始化日历 initialize() { // 设置待办 this.setData({ 'calendar': this.selectComponent('#calendar').calendar }) }, //重置日历 resetV2(year,month,date) { console.log(year,month,date) if(this.data.dayMoment == month) { }else { let e = { detail: { date: date, month: month, year: year } } this.setData({ dayMoment:month }) this.getInfo(moment(year + '-' + month +'-' + date).format('YYYY-MM-DD'),1,e) } }, //显示日历 getV2(resData) { this.setData({ taskVo: resData.taskVo }) // const calendar = this.selectComponent('#calendar').calendar this.data.calendar.setTodos({ // 待办点标记设置 pos: 'bottom', // 待办点标记位置 ['top', 'bottom'] dotColor: 'red', // 待办点标记颜色 circle: false, // 待办圆圈标记设置(如圆圈标记已签到日期),该设置与点标记设置互斥 showLabelAlways: true, // 点击时是否显示待办事项(圆点/文字),在 circle 为 true 及当日历配置 showLunar 为 true 时,此配置失效 dates: resData.eventDetails }) this.data.calendar.enableArea([this.data.taskVo.startDate, moment(new Date().getTime()).format('YYYY-MM-DD')]) }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { this.setData({ valueId: options.valueId }) }, // 统一返回 handleBack() { wx.navigateBack() }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { this.initialize() let e = { detail: { date: moment().date(), month: moment().month() + 1, year: moment().year() } } this.getInfo(moment(new Date().getTime()).format('YYYY-MM-DD'), 1,e) }, })