// 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, // 隐藏日历头部操作栏 }, isDisplay: false, clockShow: false, form: { id: '', //任务ID isRepair: 1, //是否补卡1立即打卡2补卡 repairDate: '', //补卡日期,当isRepair=2时必传,格式:YYYY-MM-dd statisticsUnit: '', //统计单位所含内容 taskDesc: '', //打卡描述内容 taskFileUrl: [], //任务文件(含多个) userId: '' }, fileList: [], 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, isToday:true,//是否是今天 isLarge:false, //是否大于今天 repairText: '' }, /** * 选择日期后执行的事件 */ afterTapDate(e) { let date = e.detail.date this.setData({ isToday:e.detail.isToday }) //选择的年月日 let checkDay = e.detail.year +'-' + e.detail.month +'-' + e.detail.date let checktimeDate= new Date(moment(checkDay).format('YYYY-MM-DD')).getTime() //选择的日期是否大于今天 if(checktimeDate > new Date().getTime()) { console.log('ff') this.setData({ isLarge: true }) }else { this.setData({ isLarge: false }) } this.setData({ repairText: e.detail.todoText }) 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) { 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) } else { wx.showToast({ title: res.msg, icon: 'none' }) } }) }, //初始化日历 initialize() { // 设置待办 this.setData({ 'calendar': this.selectComponent('#calendar').calendar }) }, //显示日历 getV2(resData) { this.setData({ taskVo: resData.taskVo }) // const calendar = this.selectComponent('#calendar').calendar this.data.calendar.setTodos({ // 待办点标记设置 pos: 'bottom', // 待办点标记位置 ['top', 'bottom'] dotColor: 'purple', // 待办点标记颜色 circle: false, // 待办圆圈标记设置(如圆圈标记已签到日期),该设置与点标记设置互斥 showLabelAlways: true, // 点击时是否显示待办事项(圆点/文字),在 circle 为 true 及当日历配置 showLunar 为 true 时,此配置失效 dates: resData.eventDetails }) }, //成果 toAchieve(e) { wx.navigateTo({ url: '../achievement/achievement?valueId='+this.data.valueId, }) }, //唤起 打卡 toClock() { this.setData({ clockShow: true }) }, //唤起补卡 toRepairClock() { let selectData = this.data.calendar.getSelectedDates() let doday = selectData[0].year + '-' + selectData[0].month + '-' + selectData[0].date console.log(doday) let repairDate= moment(doday).format('YYYY-MM-DD') this.setData({ 'form.isRepair':2 }) this.setData({ 'form.repairDate':repairDate }) this.setData({ clockShow: true }) }, //确定-打卡 toCardTask() { this.setData({ 'form.id': this.data.valueId }) this.setData({ 'form.userId': wx.getStorageSync('userInfo_id') }) if(this.data.taskVo.submitCondition=='图片') { if(this.data.form.taskFileUrl.length == 0) { return wx.showToast({ title: '请上传图片', icon: 'none' }) } } request({ url: `/wx/task/commitCardTask`, method: 'post', data: this.data.form, }).then(res => { if (res.code == 0) { wx.showToast({ title: '打卡成功', icon: 'none' }) this.closeClockShow() this.getInfo(moment(new Date().getTime()).format('YYYY-MM-DD')) } else { wx.showToast({ title: res.msg, icon: 'none' }) } }) }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { this.setData({ valueId: options.valueId }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { this.initialize() this.getInfo(moment(new Date().getTime()).format('YYYY-MM-DD')) }, // 统一返回 handleBack() { wx.navigateBack() }, /** * 用户点击右上角分享 */ onShareAppMessage() { }, //统计单位所含内容 onStatisChange(e) { this.setData({ 'form.statisticsUnit': e.detail }) }, //内容 onTaskDescChange(e) { this.setData({ 'form.taskDesc': e.detail }) }, //文件上传 afterRead(event) { const { file } = event.detail; var that = this // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式 wx.uploadFile({ url: 'https://market.myjxt.com:51311/file/fileUpload', // 仅为示例,非真实的接口地址 filePath: file.url, name: 'file', formData: { user: 'test' }, success(res) { // 上传完成需要更新 fileList const { fileList = [] } = that.data; fileList.push({ ...file, url: res.data }); console.log(res, fileList) that.setData({ fileList }); that.setData({ 'form.taskFileUrl': fileList.map(v => v.url) }) }, }); }, //删除 delFile(event) { let [list, index] = [this.data.fileList, event.detail.index] list.splice(index, 1) this.setData({ fileList: list }) this.setData({ 'form.taskFileUrl': this.data.fileList.map(v => v.url) }) }, //关闭 closeClockShow() { this.setData({ clockShow: false }) let form = { id: '', //任务ID isRepair: 1, //是否补卡1立即打卡2补卡 repairDate: '', //补卡日期,当isRepair=2时必传,格式:YYYY-MM-dd statisticsUnit: '', //统计单位所含内容 taskDesc: '', //打卡描述内容 taskFileUrl: [], //任务文件(含多个) userId: '' } this.setData({ form: form }) } })