基于vue和elementui的简易课表

embedded/2025/2/2 10:55:32/

本文参考基于vue和elementui课程表_vue实现类似课程表的周会议列表-CSDN博客,原程序在vue3.5.13版本下不能运行,修改两处:

1)slot-cope改为v-slot

2)return 'background-color:rgb(24 144 255 / 80%);color: #fff; border-radius:10px' 改为:

     return {'background-color':'rgb(24 144 255 / 80%)', 'color': '#fff', 'border-radius':'20px'}

改进几处:

1)简化表格生成算法makeTable;

2)改进数据填表算法mergeData;

3)改进单元格合并算法objectSpanMethod,由原来的100多行,简化为13行

4)增加中午两节课

源程序如下:

<template><div><div class="panel"><el-table :data="timetable" :span-method="objectSpanMethod" border=true:header-cell-style="{background:'#d9e5fd', color:'black'}":cell-style="tableCellStyle"><el-table-column prop="sjd" label="📅" width="60" align="center"><template v-slot="scope"><div v-html="scope.row.sjd.course"></div></template></el-table-column><el-table-column prop="jc" label="节次" width="60" align="center"></el-table-column><el-table-column prop="mon" label="星期一" width="95" align="center"><template v-slot="scope"><div v-html="scope.row.mon.course"></div></template></el-table-column><el-table-column prop="tue" label="星期二" width="95" align="center"><template v-slot="scope"><div v-html="scope.row.tue.course"></div></template></el-table-column><el-table-column prop="wed" label="星期三" width="95" align="center"><template v-slot="scope"><div v-html="scope.row.wed.course"></div></template></el-table-column><el-table-column prop="thu" label="星期四" width="95" align="center"><template v-slot="scope"><div v-html="scope.row.thu.course"></div></template></el-table-column><el-table-column prop="fri" label="星期五" width="95" align="center"><template v-slot="scope"><div v-html="scope.row.fri.course"></div></template></el-table-column><el-table-column prop="sat" label="星期六" width="70" align="center"><template v-slot="scope"><div v-html="scope.row.sat.course"></div></template></el-table-column><el-table-column prop="sun" label="星期日" width="70" align="center"><template v-slot="scope"><div v-html="scope.row.sun.course"></div></template></el-table-column></el-table></div></div>
</template>
<script>
import { colProps } from 'element-plus';
export default {props: {length: {type: [String, Number],default: 14}}, // 总节次data () {return {// 课程表数据timetable: [],events: [{xq: 0,course: '上午',start: 1,last:4},{xq: 0,course: '中午',start: 5,last:2},{xq: 0,course: '下午',start: 7,last:5},{xq: 0,course: '晚上',start: 12,last:3},{xq: 5,start: 1,last:2,course: '👨‍🏫<br>·软件工程<br>·3-4节<br>·计师23级<br>·8教406室<br>·1-16周'},{xq: 1, start: 7,last:2,course: '🔬<br>·软工实验<br>·11-12节<br>·计师23级<br>·25教704室<br>·3-14周'},{xq: 5,start: 7,last:3,course: '👨‍👩‍👦‍👦<br>·集中学习<br>·7-8节<br>·计师23级<br>·25教1-1室<br>·每月第1周'}],weeks: ['sjd','mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'],}},mounted () {this.mergeData()},created () {this.makeTimetable()},methods: {// 单元格添加背景色tableCellStyle (row) {if (row.row[row.column.property].course !== undefined) {return {'background-color':'rgb(24 144 255 / 80%)', 'color': '#fff', 'border-radius':'20px'}}},// 构造课程表完整数据makeTimetable () {this.timetable = []for (let i = 0; i < this.length; i++) {let oneRow = {sjd: {},jc: i + 1,mon: {},tue: {},wed: {},thu: {},fri: {},sat: {}, sun: {}}this.timetable.push(oneRow)}},mergeData () {// 合并数据for (let i = 0; i < this.events.length; i++) {// 获取星期几let week = this.weeks[this.events[i].xq ]console.log(this.events[i].last);for(var j=0;j< this.events[i].last ;j++)this.timetable[this.events[i].start - 1+j][week] = this.events[i]}console.log(this.timetable);},objectSpanMethod ({ row, column, rowIndex, columnIndex }) {var obj={rowspan: 1,colspan: 1};if( row[column.property].course!== undefined){if(rowIndex===row[column.property].start-1){obj = {rowspan: row[column.property].last,colspan: 1}}elseobj = {rowspan: 0,colspan: 0};}return obj;},  }
}
</script>

调用:

<timetable  :length="14" > </timetable>


http://www.ppmy.cn/embedded/158881.html

相关文章

C# 类与对象详解

.NET学习资料 .NET学习资料 .NET学习资料 在 C# 编程中&#xff0c;类与对象是面向对象编程的核心概念。它们让开发者能够将数据和操作数据的方法封装在一起&#xff0c;从而构建出模块化、可维护且易于扩展的程序。下面将详细介绍 C# 中类与对象的相关知识。 一、类的定义 …

【数据结构】_链表经典算法OJ:分割链表(力扣—中等)

目录 1. 题目描述及链接 2. 解题思路 2.1 思路1 2.2 思路2 2.3 思路3&#xff08;本题采取该解法&#xff09; 3. 题解程序 1. 题目描述及链接 题目链接&#xff1a;面试题 02.04. 分割链表 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你一个链表…

【Postman接口测试】Postman的安装和使用

在软件测试领域&#xff0c;接口测试是保障软件质量的关键环节之一&#xff0c;而Postman作为一款功能强大且广受欢迎的接口测试工具&#xff0c;能够帮助测试人员高效地进行接口测试工作。本文将详细介绍Postman的安装和使用方法&#xff0c;让你快速上手这款工具。 一、Pos…

ASP.NET Core 中间件

目录 一、常见的内置中间件 二、自定义中间件 三、中间件的执行顺序 四、其他自动逸中间件案例 1. 身份验证中间件 2、跨域中间件&#xff08;CORS&#xff09; ASP.NET Core 中&#xff0c;中间件&#xff08;Middleware&#xff09;是处理 HTTP 请求和响应的组件链。你…

Pdf to forms如何实现?如何在3分钟内将PDF自动转换为Microsoft Forms

通过将杂乱的文件转换为标准化表单&#xff0c;简化数据收集——无需手动操作。 问题&#xff1a;为什么非标准文件会破坏您的工作流程 每天&#xff0c;企业和教育工作者都淹没在非结构化数据中&#xff1a;PDF报告、CSV导出或保存为TXT文件的手写笔记。手动将这些数据复制到…

InnoSetup使用教程笔记

P01介绍 P02安装lnno Setup 1.下载网址 https://jrsoftware.org/isinfo.php 2.下载 3.安装 4.安装成功后软件界面 P03制作安装包(上) 1.设置软件基本信息 2.设置安装路径 3.向安装包添exe文件及配置文件 4.创建快捷方式 5.显示文件(如许可文档) 6.设置安装模式 04制作安装…

Kafka SASL/PLAIN介绍

文章目录 Kafka SASL/PLAIN介绍1. SASL/PLAIN 简介2. 配置步骤&#xff08;1&#xff09;Kafka 服务器端配置&#xff08;2&#xff09;Kafka 客户端配置&#xff08;3&#xff09;测试连接 3. 认证过程3.1 SASL/PLAIN 认证工作原理3.2 认证过程描述 4. 安全性考虑4.1 SASL/PLA…

K8S知识点

1. 查看Pod状态详情 列出所有Pod&#xff1a; 使用kubectl get pods命令可以查看集群所有Pod的概览信息&#xff0c;包括名称、状态、IP地址等。 结合grep使用&#xff0c;查看包含关键字的pod kubectl get pods |grep test 查看你特定Pod的详细信息&#xff1a; 通过kubect…