1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > elementui日历组件实现可标记日历

elementui日历组件实现可标记日历

时间:2018-12-17 13:10:31

相关推荐

elementui日历组件实现可标记日历

这是最后实现的效果,需要用圈来标记日期,有红色的标记和黄色的标记,开始找了很多插件,但是没有找到合适的能实现效果了,最后看到了其他相似的例子实现了这个需求

<el-calendar v-model="value" class="cal"><template slot="dateCell" slot-scope="{ date, data }"><pv-if="handleSelected(data.day) == '1'"class="calendar_circle1"@click="clickCalendar(data)">{{data.day.split("-").slice(2).join("-") }}</p><pv-if="handleSelected(data.day) == '2'"class="calendar_circle2"@click="clickCalendar(data)">{{data.day.split("-").slice(2).join("-") }}</p><pv-if="handleSelected(data.day) == '3'"class="calendar_circle3"@click="clickCalendar(data)">{{data.day.split("-").slice(2).join("-") }}</p></template></el-calendar>

这是日历的组件。

handleSelected(day) {let flag = "1"; //默认显示为0// 没有交易年度 2深色有 3浅色无this.hasYearNot.forEach((item) => {if (item == day) {//判断显示数据flag = "3";return;}});this.hasYear.forEach((item) => {if (item == day) {//判断显示数据flag = "2";return;}});return flag;},

hasYearNothasYear这两个数组是需要被标记的日期。后台需要返回的数据格式,需要后台标识好我们需要标记的日期。

//请求获取后台返回的数据,需要后台做好标识,哪个日期需要标记什么颜色getCal(val) {let month = new Date(val).getMonth() + 1;let year = new Date(val).getFullYear();getHomeNotice({orgId: Id, issue: `${year}-${month}` }).then((res) => {for (let key in res.data) {if (res.data[key] == "1") {this.hasYearNot.push(key);} else if (res.data[key] == "2") {this.hasYear.push(key);}}});}{"status":200,"msg":"查询成功","rel":true,"data":{"-06-20":"2","-06-21":"2","-06-22":"1"}}

.cal ::v-deep.el-calendar-day .calendar_circle1 {margin: 0 auto;padding: 2px;text-align: center;}.cal ::v-deep.el-calendar-day .calendar_circle2 {border: 1px solid #DE4747;border-radius: 50%;margin: 0 auto;padding: 2px;text-align: center;}

给不同的圈设置不同的样式。

ending~~~~~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。