el-calendar自定义日期高亮

需要实现根据数据来展示日历,有数据则高亮,没有数据,则字体颜色灰色,不同状态展示不同颜色,以下是完整代码

<template>
  <div>
    <el-calendar v-model="starttime">
      <template slot="dateCell" slot-scope="{date,data}">
        <div :class="btn(data) && arr[btn(data).allocationSum] || 'on'">
          <div>{{data.day.slice(5).replace('-', '月')}}日</div>
          <div v-if="btn(data) && btn(data).allocationSum === 1">有号</div>
          <div v-if="btn(data) && btn(data).allocationSum === 0">无号</div>
          <div v-if="btn(data) && btn(data).allocationSum === 2">约满</div>
        </div>
      </template>
    </el-calendar>
  </div>
</template>

<script>
export default {
  data () {
    return {
      starttime: '2023-03-06',
      list: [
        {
          "orgId": 0,
          "screenType": "1",
          "day": "2023-03-06",
          "allocationSum": 0,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": "1",
          "day": "2023-03-07",
          "allocationSum": 0,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": "1",
          "day": "2023-03-08",
          "allocationSum": 0,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-09",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-10",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-11",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-12",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-13",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-14",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-15",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-16",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-17",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-18",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-19",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-20",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-21",
          "allocationSum": 1,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-22",
          "allocationSum": 2,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-23",
          "allocationSum": 2,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-24",
          "allocationSum": 2,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-25",
          "allocationSum": 2,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-26",
          "allocationSum": 2,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-27",
          "allocationSum": 2,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-28",
          "allocationSum": 2,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-29",
          "allocationSum": 2,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-30",
          "allocationSum": 2,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-03-31",
          "allocationSum": 2,
          "bookedSum": 0
        },
        {
          "orgId": 0,
          "screenType": null,
          "day": "2023-04-01",
          "allocationSum": 2,
          "bookedSum": 0
        }
      ],
      arr: { 0: 'black', 1: 'green', 2: 'red' }
    }
  },
  methods: {
    btn (data) {
      return this.list.find(item => item.day === data.day)
    }
  }
}
</script>

<style lang="less" scoped>
.on {
  color: #ccc;
}
.black {
  color: black;
}
.green {
  color: green;
}
.red {
  color: red;
}
</style>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学不会•

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值