vue日程安排_vue日历/日程提醒/html5本地缓存
newVue({
el:'#app',
data: {//日历
currentYear: 2019,//lockYear:2019,//返回当前年
currentMonth: 1,//lockMonth:1,//返回当前月
currentDay: 1,//lockDay:1,//返回当前日
setDay:1,//取月份默认从一号开始取
currentWeek: 2,//周几
setWeek:1,
days: [],//每月天数
week_day:[],//每周天数
today_key:1,//取today所在week为第一个week_day
scroll:0,//滚动高度
dayScrollTop:0,//日历需要隐藏的高度
showMonth:true,//上下拉切换月和周
//日历滑动换月
startX:0,//触摸点
endX:0,//松开点
startY:0,
endY:0,//添加提醒设置时间
currentHour:0,
currentMinute:0,
getRemindTime:null,
eventId:1,//点击显示
show:false,
selectTime:false,//选项卡
tabtit: ["已设置提醒", "创建时间", "最后发言时间"],
tabmain: [new Array(), new Array(), newArray()],
num:0,
selectIndex:-1,
},
created() {this.initData(null);
},
watch: {//渲染完后,获取高度
days(){this.$nextTick(function(){/*console.log(this.$refs.daysBox.offsetHeight,this.$refs.daysBox.offsetTop);*/
var daysBoxHeight=this.$refs.daysBox.offsetHeight;var daysBoxHidden=daysBoxHeight/6*3;
var daysTop=this.$refs.daysBox.offsetTop;this.dayScrollTop=daysTop+daysBoxHidden;
});
},
},
methods: {
initData(cur) {vardate;if(cur) {
date= newDate(cur);
}else{
date= newDate();this.lockYear =date.getFullYear();this.lockMonth = date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1;this.lockDay = date.getDate() <10?'0'+date.getDate():date.getDate();
}this.currentDay = date.getDate() <10?'0'+date.getDate():date.getDate();//showMonth=false
this.currentWeek =date.getDay();
date.setDate(1);this.currentYear =date.getFullYear();this.currentMonth = date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1;/*this.currentWeek = date.getDay(); // 1...6,0*/
this.setWeek=date.getDay();this.currentHour = date.getHours() < 10 ? "0" +date.getHours() : date.getHours();this.currentMinute = date.getMinutes() < 10 ? "0" +date.getMinutes() : date.getMinutes();var str=this.formatDate(this.currentYear , this.currentMonth, this.currentDay);var set_str = this.formatDate(this.currentYear , this.currentMonth, 1);/*console.log("today:" + str + "," + this.currentWeek);*/
this.days.length = 0;this.week_day.length=0;//默认1号,从一号开始计算,负数代表上个月天数,超过本月天数为下月天数
for (var i = this.setWeek; i >= 0; i--) {var d = newDate(set_str);
d.setDate(d.getDate()-i);/*console.log(d);*/
this.days.push(d);
}for (var i = 1; i <= 35 - this.setWeek-1 ; i++) {var d = newDate(set_str);
d.setDate(d.getDate()+i);/*console.log(d);*/
this.days.push(d);
}for (var i = this.currentWeek; i >= 0; i--) {var d = newDate(str);
d.setDate(d.getDate()-i);/*console.log(d);*/
this.week_day.push(d);
}for (var i = 1; i <= 7 - this.currentWeek-1; i++) {var d = newDate(str);
d.setDate(d.getDate()+i);/*console.log(d);*/
this.week_day.push(d);
}this.tabmain[0].length=0;for(var i=0;i
this.tabmain[0].push(key_value);/*console.log(this.tabmain[0].length);*/}
},
eventAdd(){this.show=true;
},
timeAdd(){this.selectTime=true;
},
backToday(){this.initData(null);
},
pickPre(year=this.currentYear, month=this.currentMonth) {//setDate(0); 上月最后一天//setDate(35) date后35天,保证为下个月
var d = new Date(this.formatDate(year , month , 1));
d.setDate(0);/*console.log(d);*/
this.initData(this.formatDate(d.getFullYear(),d.getMonth() + 1,1));this.currentYear=d.getFullYear();this.currentMonth=d.getMonth() + 1;
},
pickNext(year=this.currentYear, month=this.currentMonth) {var d = new Date(this.formatDate(year , month , 1));
d.setDate(35);/*console.log(d);*/
this.initData(this.formatDate(d.getFullYear(),d.getMonth() + 1,1));this.currentYear=d.getFullYear();this.currentMonth=d.getMonth() + 1;
},
pickPre_week(year=this.currentYear, month=this.currentMonth,day=this.currentDay) {//setDate(0); 上月最后一天//setDate(35) date后35天,保证为下个月
var d = new Date(this.formatDate(year , month , day));
d.setDate(d.getDate()-7);/*console.log(d);*/
this.initData(this.formatDate(d.getFullYear(),d.getMonth() + 1,d.getDate()));this.currentYear=d.getFullYear();this.currentMonth=d.getMonth() + 1;this.currentDay=d.getDate();
},
pickNext_week(year=this.currentYear, month=this.currentMonth,day=this.currentDay) {var d = new Date(this.formatDate(year , month , day));
d.setDate(d.getDate()+7);
console.log(d);this.initData(this.formatDate(d.getFullYear(),d.getMonth()+1,d.getDate()));this.currentYear=d.getFullYear();this.currentMonth=d.getMonth()+1;this.currentDay=d.getDate();
console.log(this.currentYear,this.currentMonth,this.currentDay);
},
down(event){this.startX=event.clientX;this.startY=event.clientY;
},
move(event){this.endX=event.clientX;if((this.startX-this.endX)>0){
console.log('zuohua');this.pickNext(this.currentYear, this.currentMonth);
}if((this.startX-this.endX)<0){this.pickPre(this.currentYear, this.currentMonth);
console.log('youhua');
}/*alert('滑动成功');*/},
move_week(event){this.endX=event.clientX;if((this.startX-this.endX)>0){this.pickNext_week(this.currentYear, this.currentMonth);
}if((this.startX-this.endX)<0){this.pickPre_week(this.currentYear, this.currentMonth);
}
},
heightChange(){this.endY=event.clientY;if(this.scroll>0){this.showMonth=false;this.scroll=0;
}if(this.scroll<0){this.showMonth=true;
}
},//返回 类似 YYYY-MM-DD 格式的字符串
formatDate(year,month,day){var y =year;var m =month;if(m<10) {
m= "0" +m;
}var d =day;if(d<10) {
d= "0" +d;
}return y+"-"+m+"-"+d
},
eventAdd_false(){this.show=false;
},
eventAdd_true(id=this.eventId){/*var id = localStorage.getItem(this.eventId);*/
var name=this.$refs.eventName.value;var info=this.$refs.eventInfo.value;var role=this.$refs.eventRole.value;var time=this.getRemindTime;if(name && info && role &&time){var event={"eventName":name,"eventInfo":info,"eventRol":role,"eventTime":time}
localStorage.setItem(id,JSON.stringify(event));/*console.log(localStorage.length);*/
this.eventId++;this.tabmain[0].push(event);this.show=false;/*alert('name'+':'+name +'info'+':'+info +'role'+':'+role +'time'+':'+time + '设置成功');*/}else{
alert('输入不能为空');
}/*console.log(localStorage.getItem("eventId"));*/},
setTime_false(){this.selectTime=false;
},
setTime_true(){this.selectTime=false;this.getRemindTime=this.currentYear + "-" +this.currentMonth + "-" +this.currentDay + " " +this.currentHour + ":" +this.currentMinute + ":00";
},
tab(index) {this.num =index;
},
select(index){this.selectIndex=index;
},
closeDiv(){this.selectIndex=-1;
},
menu() {this.scroll = document.documentElement.scrollTop ||document.body.scrollTop;/*console.log(this.scroll,this.dayScrollTop);*/
/*if (document.documentElement.scrollTop > 200) {
alert('页面高度大于200执行操作')
} else {
alert('页面高度xiao于200执行操作')
}*/
/*console.log(document.getElementsByClassName('days').offsetHeight);
console.log(document.documentElement.scrollTop)*/
/*console.log(this.$refs.elements.value);*/},
eventScroll(){if(this.scroll-this.dayScrollTop>0){var date = newDate();this.currentYear=date.getFullYear();this.currentMonth = date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1;this.currentWeek=date.getDay();for (var i = this.currentWeek; i >= 0; i--) {
date.setDate(date.getDate()-i);/*console.log(d);*/
this.week_day.push(date);
}this.showMonth=false;/*alert('ok');*/}else{
}
}
},//methods
mounted() {
window.addEventListener('scroll', this.menu);
},
destroyed () {
window.removeEventListener('scroll', this.menu)
},
});///new Vue
vue日程安排_vue日历/日程提醒/html5本地缓存相关推荐
- html5本地缓存LocalStorage
HTML5 LocalStorage 本地存储 HTML5 LocalStorage 本地存储 说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cooki ...
- vue日程安排_vue 时间安排表
仿照这种时间安排表的形式,使用vue完成这种类似课表的显示效果 首先将每周的预约信息放入一个长度为7的数组中,0-6表示星期天到星期六 创建一个33*7的数组 每个格子1表示该时间空闲,null表示该 ...
- html5本地缓存如何提交,HTML5: 本地缓存
HTML5 提供了两种在client存储数据的新对象: localStorage:没有时间限制的数据存储,在同一个浏览器中,仅仅要没被手动清理,第二天.第二周或下一年之后,数据依旧可用. sessio ...
- html5 数据缓存,HTML5: 本地缓存
HTML5 提供了两种在客户端存储数据的新对象: localStorage:没有时间限制的数据存储,在同一个浏览器中,只要没被手动清理,第二天.第二周或下一年之后,数据依然可用. sessionSto ...
- html5图片本地缓存,HTML5: 本地缓存
HTML5 提供了两种在client存储数据的新对象: localStorage:没有时间限制的数据存储,在同一个浏览器中,仅仅要没被手动清理,第二天.第二周或下一年之后,数据依旧可用. sessio ...
- html缓存在本地缓存,HTML5 本地缓存 window.localStorage
Conway's Game of Life: An Exercise in WPF, MVVM and C# This blog post was written for the Lo ...
- html5 本地缓存
网站添加 <!DOCTYPE html> <html manifest="sango.manifest"> 服务器的IIS的http头添加mime映射为 . ...
- 利用ASP.NET日期控件制作“会议日程安排”(贴首页过把瘾)
本文转载自: https://www.cnblogs.com/peaceli/archive/2012/08/06/1359862.html 作者:peaceli 转载请注明该声明. 大家应该比较熟悉 ...
- matlab教师考试安排,2018教师资格证考试科目及日程安排
原标题:2018教师资格证考试科目及日程安排 距离下半年考试仅剩119天!教师资格证培训班进行最后一轮招生,名额有限,招满截止,19年开始报考教师资格证考试的人数将大大提升,难度也会提升!今年无疑是最 ...
最新文章
- 清华理工男,跳了7年舞,来华为一年当了PL,这什么小哥哥
- linux使用rz、sz快速上传、下载文件
- Nginx做负载均衡报:nginx: [emerg] could not build the types_hash
- 电子商务实战课程-张晨光-专题视频课程
- nosql的数据服务_使用NoSQL实现实体服务–第1部分:概述
- native.loadlibrary获取路径不对_【Python专题(三)】Python模块导入与路径管理
- 云服务器如何链接本地打印机_利用FileZilla搭建云服务器FTP服务端和本地客户端...
- Adobe illustrator 批量变换同时选中的单个对象 - 连载 12
- Listview刷新数据
- Oracle imp 导入dmp文件到数据库
- “数据类型不一致: 应为 NUMBER, 但却获得 BINARY”解决方法
- 【方案分享】2022虎年新春潮玩嘉年华活动策划方案:我们超虎的.pptx(附下载链接)...
- win10系统安装Docker详解
- (附源码)spring boot物联网智能管理平台 毕业设计 211120
- Python 大作业
- 谷歌图像爬虫方法总结与教程
- 20.JVM监控以及诊断工具-GUI篇
- html网页设计代码作业——代码质量好-重庆火锅(5页) HTML+CSS+JavaScript 大学生网页制作期末作业
- 1896-2021历届奥运会奖牌动态排序动画(Python数据采集)
- 【QT学习】基础篇 3.QT助手(数据手册)存放位置和使用
热门文章
- 查看mysql状态 关闭_查看mysql状态
- 经济学原理笔记(一)
- AOC V24t最薄24英寸
- RHEL-Linux安全加固与基础优化(一)
- SpringBoot实现文件上传(Excel表)
- java mp4视频转换成h5_前端canvas动画如何转成mp4视频的方法
- android 编译报错 xm*,解决Android Studio编译后安装apk报错:The APK file does not exist on disk...
- 不能上网修复Winsock损坏的办法
- html jq五子棋,jQuery实现的五子棋游戏实例
- update更新excel如何指定列为memo_Excel也能设计回写类报表