[若依ruoyi-vue框架使用日历显示课程表]用Elementui Calendar日历显示课程数据- Calendar日历自定义内容

本文介绍了使用ElementUI日历组件结合Vue进行开发的过程。包括在页面插入日历组件并自定义显示内容,发送请求获取数据后进行前端逻辑处理,将数据转换为以课程时间为key的数据格式,最后完成显示。还提及点击日期编辑功能后续更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

显示效果

 

文章目录


前言

 Elementui官方日历组件地址

Element - The world's most popular Vue UI framework


一、组件使用

在页面中插入我们要的日历组件

通过设置名为 dateCell 的 scoped-slot 来自定义日历单元格中显示的内容。在 scoped-slot 可以获取到 date(当前单元格的日期), data(包括 type,isSelected,day 属性)

     <el-calendar>
      <a style="color: black; background: yellow;">放假</a>
      <template
        slot="dateCell"
        slot-scope="{date, data}">
        <p :class="rqi.indexOf(data.day) > -1  ? 'is-selected' : ''" @click="handleBianJi(data.day)">
             {{ data.day.split('-').slice(1).join('-') }} 
          </br>
 
          {{rqi.indexOf(data.day) > -1? rqineirong[data.day].content : ''}}
            </p>
      </template>
    </el-calendar>

二、发送请求获取数据-前端逻辑处理

数据库字段--只用到前几个字段,后面3个是我其他业务使用的

后端返回的数据格式

我们需要通过课程时间,来获取到课程内容,所以数据发回前端的时候要处理成用课程时间来当key的一个数据结构,处理方式如下

1.发送请求+处理数据

 getList() {
      this.loading = true;
      listCourseSchedule(this.queryParams).then(response => {
        let data = response.rows;
        this.rqineirong = {};
        this.rqi = [];
        for(let i=0;i<data.length;i++){
          for(var key in data[i]){
            let rightKey=key.slice(0, 10)
            this.rqi.push(rightKey)
            this.rqineirong[rightKey] = data[i][key]
          }
        }
        //console.log(this.rqineirong)
      });
}
发送请求获取课程表数据的js--query目前是查询指定班级使用的,如果没有可以去除掉query和params
//查询课程表数据
export function listCourseSchedule(query) {
  return request({
    url: '/course/course/listCourseSchedule',
    method: 'get',
    params: query
  })
}

三、显示

完成这些操作后就可以显示了

总结

整个过程最难的就是前端需要处理数据,将数据转换成课程时间为key的数据格式,这个也可以交给后端处理。

上面使用组件的时候还用到了@click="handleBianJi(data.day),这个点击对应的日期可以进行编辑操作的按键,这个功能后期在更新文章,如果需要详细代码的可以点个关注在评论区留言。

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值