av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

用vue寫一個日歷

瀏覽:5日期:2022-11-07 15:24:25

之前在上家公司做過一個公司人員考勤的東西,里面需要用到日歷,當(dāng)時自己用vue隨便寫了一個,比較簡單,刪掉了其他功能的代碼,只留下日歷,直接看代碼

<template> <div class='lookForMonth_wrapper'> <div class='lookForMonth_top'> <div class='selectDate'> <div>{{year}} 年 {{month}} 月</div> <div class='upDownSelect'> <div @click='dateUp'></div> <div @click='dateDown'></div> </div> </div> </div> <div :style='calendarStyle'> <div v-for='(item,index) in calendarData' :key=’index’ :class='{ash:item.color===’ash’,date:index>6&&item.color!==’ash’}'> <p class='dateEdit'>{{item.label}}<i v-if='item.color!==’ash’&&index>=7'></i></p> <p v-if=’index>6’>上班</p> // 打工人 </div> </div> </div></template><script>export default { name: 'lookForMonth', data: () => { return { calendarData: [{label:'日'},{label: '一'}, {label:'二'},{label: '三'},{label: '四'},{label: '五'},{label: '六'}], //日歷循環(huán)渲染數(shù)據(jù) year: 0, //當(dāng)前日期年 month: 0, //當(dāng)前日期月數(shù) date: 0, //當(dāng)前日期號數(shù) day: -1, //當(dāng)前星期幾 }; }, filters:{ }, computed: { // 根據(jù)當(dāng)月日期詳情更改日歷表格高度 calendarStyle() { if (this.calendarData.length > 42) { return 'height: 701px;'; } else { return 'height: 601px;'; } } }, async created(){ // 獲取當(dāng)前日期數(shù)據(jù) this.getNow(); // 獲取當(dāng)前月份一號的時間戳 let firstTime = +new Date(this.year,this.month-1,1,0,0,0) this.getCalendarDate(); // 給calendarData添加當(dāng)月數(shù)據(jù) }, mounted() { }, methods: { // 獲取當(dāng)前時間 getNow() { let now = new Date() this.year = +now.getFullYear() this.month = +now.getMonth() + 1 this.date = +now.getDate() this.day = +now.getDay() }, // 獲取每個月的天數(shù) monthDay(month) { if ([1,3,5,7,8,10,12].includes(month)) { return 31 } else if ([4,6,9,11].includes(month)) { return 30 } else if (month === 2) { // 判斷當(dāng)年是否為閏年 if ( (this.year % 4 === 0 && this.year % 100 !== 0) || this.year % 400 === 0 ) { return 29 } else { return 28 } } }, // 給calendarData添加當(dāng)月數(shù)據(jù) getCalendarDate() { // 獲取當(dāng)前月份一號星期幾 let firstDay = new Date(this.year + '-' + this.month + '-' + '01').getDay(); this.calendarData = [{label:'日'},{label: '一'}, {label:'二'},{label: '三'},{label: '四'},{label: '五'},{label: '六'}]; let num = parseInt(firstDay); let nowDays = this.monthDay(this.month); let lastMonth = this.month - 1>0?this.month - 1:12; let lastDays = this.monthDay(lastMonth); // 循環(huán)添加上一個月數(shù)據(jù) for (let i = 0; i < num; i++) { this.calendarData.push({label:lastDays - num + i + 1,color:’ash’}); } // 循環(huán)添加當(dāng)月數(shù)據(jù) for (let i = 0; i < nowDays; i++) { this.calendarData.push({label:i + 1}); } // 循環(huán)添加下一個月數(shù)據(jù) if (this.calendarData.length % 7 !== 0) { let surplusDay = 7 - (this.calendarData.length % 7); for (let i = 0; i < surplusDay; i++) { this.calendarData.push({label:i + 1,color:’ash’}); } } this.loading = false }, // 將日期調(diào)上 dateUp() { this.month--; if (this.month <= 0) { this.year--; this.month = 12; } this.getCalendarDate(); // 給calendarData添加當(dāng)月數(shù)據(jù) }, // 將日期調(diào)下 dateDown() { this.month++; if (this.month > 12) { this.year++; this.month = 1; } this.getCalendarDate(); // 給calendarData添加當(dāng)月數(shù)據(jù) }, }};</script><style lang='scss' scoped>.lookForMonth_wrapper { padding: 20px; width: 701px; margin: auto;}.lookForMonth_top { margin-bottom: 20px; overflow: hidden; .selectTeacher { float: left; } .selectDate { height: 30px; line-height: 30px; float: right; display: flex; .upDownSelect { display: flex; flex-direction: column; margin-top: -2px; margin-left: 5px; .upDownSelect_item { width: 0; height: 0; border: 7px solid transparent; cursor: pointer; } .upDownSelect_item:nth-child(1) { border-bottom: 7px solid #666; margin-bottom: 5px; &:hover { border-bottom: 7px solid skyblue; } } .upDownSelect_item:nth-child(2) { border-top: 7px solid #666; &:hover { border-top: 7px solid skyblue; } } } }}/* 日歷表樣式=======================================↓ */.calendar { width: 701px; border-top: 1px solid #ccc; border-left: 1px solid #ccc; display: flex; flex-wrap: wrap; box-sizing: border-box; .calendar_item { box-sizing: border-box; width: 100px; height: 100px; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; text-align: center; display: flex; flex-direction: column; justify-content: center; align-items: center; &.date:hover{ background: #eee; } .status{ margin-top: 10px; &.textBlue{ color: blue; } &.textRed{ color: brown; } } .el-icon-edit-outline{ cursor: pointer; margin-left: 7px; } } .ash{ color: gainsboro; } .dateEdit{ margin-bottom: 10px; }}</style>

效果如下:

用vue寫一個日歷

以上就是利用vue寫一個日歷的詳細(xì)內(nèi)容,更多關(guān)于vue 日歷的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 久久久www成人免费无遮挡大片 | 国产一区二区三区四区 | 国产成人免费视频网站视频社区 | 国产视频黄色 | 亚洲一区视频在线 | 日韩网站在线 | 精品日韩在线观看 | 影音先锋亚洲资源 | 日韩av免费看 | 人人看人人干 | 午夜精品一区二区三区在线观看 | 国产一区二区三区在线免费观看 | 日本免费一区二区三区四区 | 国产羞羞视频在线观看 | 亚洲国产免费 | 成人黄色电影在线播放 | 国产亚洲一区二区三区 | 国产精品污污视频 | 国产一区中文 | 精品亚洲一区二区 | 欧美极品少妇xxxxⅹ免费视频 | 三级在线观看 | 精品国产色 | 91精品国产欧美一区二区成人 | 国产成人免费视频 | 日日干日日操 | 国产精品1区2区 | 国产精品美女久久久久久不卡 | 国产精品久久久久久久久久三级 | 欧美一卡二卡在线 | 成人a视频片观看免费 | 国产精品美女久久久 | 99精品国产一区二区三区 | 99精品热视频 | 国产精品一区二区三级 | 久久成人18免费网站 | 亚洲国产精品成人无久久精品 | www视频在线观看 | 欧美精品成人一区二区三区四区 | 久热精品在线 | www久久99|