<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
常用日曆元件可能滿足不了我們自定義的多種需求(比如樣式),因此通常情況下我們可能需要自己手動開發款日曆,先上圖
1. 根據常用日曆樣式,我們template部分可以分為三部分(上下月及當前月份展示;週日至週六展示;主體日期展示三部分)
1) template部分程式碼
<div class="date"> <div class="header"> <span class="pre_month" @click="onPreMonth"></span> <span v-cloak>{{ date.year }}年{{ date.month }}月</span> <span class="next_month" @click="onNextMonth"></span> </div> <div class="days"> <table v-cloak border="0" cellspacing="0" cellpadding="0"> <tr class="label"> <td>週日</td> <td>週一</td> <td>週二</td> <td>週三</td> <td>週四</td> <td>週五</td> <td>週六</td> </tr> <tr class="row" v-for="week in weeks" :key="week[0].date"> <td class="column" v-for="day in week" :key="day.date" v-bind:day="day.date" @click="onSelectDay(day)" > <span v-bind:class="[{ checked: selectedDate == day.date, weekend: day.isWeekend, }]" v-if="day.month == date.month">{{ day.v }}</span> </td> </tr> </table> </div> </div>
2)js部分程式碼
// 生成日曆函數 initDate(month) { var weeks = [] // template中用來渲染日曆的陣列 var firstDay = this.moment(month, 'YYYY-MM') // 當月1號 var week = firstDay.format('d') // 當月1號是周幾 (比如週五則week = 5) var start = firstDay.subtract(week, 'days') // 日曆上展示的第一個數(上個月的二十幾號之類的,用於補齊日曆) for (var i = 0; i < 6; i++) { // 通常日曆為6行7排 42天,因此兩個for迴圈 var days = [] for (var j = 0; j < 7; j++) { var day = {} day.num = start.toObject().date // 當前號數 22 day.date = start.format('YYYY-MM-DD') // 返回值為2021-10-22 day.month = start.format('MM') // 當前號數對應的月份,比如日曆上個月27號則day.month = 9;這個月1號day.month = 10 day.isWeekend = (start.format('E') === '6' || start.format('E') === '7') ? true : false // 是否是週末,用於UI區分週末和平時的顏色 start.add(1, 'days') // 沒回圈一次日期加一天 days.push(day) } weeks.push(days) } this.date.year = this.moment(month).year() this.date.month = this.moment(month, 'YYYY-MM').add(0, 'month').format('MM') this.date.preMonth = this.moment(month, 'YYYY-MM').add(-1, 'month').format('YYYY-MM') this.date.nextMonth = this.moment(month, 'YYYY-MM').add(1, 'month').format('YYYY-MM') return weeks }
初始化完成後呼叫(用於template中渲染)
mounted() { const currDate = new Date() this.weeks = this.initDate(this.moment(currDate).format('YYYY-MM')) }
上個月、下個月處理
// 上一個月 onPreMonth() { const month = this.date.preMonth this.weeks = this.getCalendar(this.moment(month).format('YYYY-MM')) }, // 下一個月 onNextMonth() { const month = this.date.nextMonth this.weeks = this.getCalendar(this.moment(month).format('YYYY-MM')) }
選中某一天
onSelectDay(day) { if (!this.isSelectDay) return false if (day.month === this.date.month) { this.selectedDate = day.date } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45