Timetables

GitHub地址

日程表插件,在线预览 demo1 、demo2

Timetables1
Timetables

安装

npm install timetables
复制代码
直接引入

或者直接引入该地址下Timetables.min.js

使用

import Timetables from 'timetablestim';let Timetable;// 在可以获取到真实dom节点到周期里进行实例化
var courseList = [['语文','语文','英语','物理','语文','数学','英语','物理','物理','数学','英语','物理'],['数学','语文','物理','物理','语文','语文','语文','物理','数学','语文','语文','体育'],['语文','数学','英语','物理','语文','数学','英语','物理','语文','数学','英语','物理'],['数学','语文','物理','物理','语文','语文','语文','英语','数学','语文','语文','体育'],['语文','数学','英语','物理','语文','数学','英语','物理','语文','数学','英语','物理'],];
Timetable = new Timetables({el: '#coursesTable',timetables: courseList,week: ['一', '二', '三', '四', '五'],timetableType: [['上午', 4],['下午', 4],['晚上', 4]],
});
复制代码

参数及方法

参数or方法 类型 说明
el String(必传) 绑定dom节点的id('#id')
timetables Array(必传) 日程表内容,格式为二维数组
week Array(必传) 日程表头部周,格式为二维数组
timetableType Array(必传) 日程表左侧分类,格式为二维数组
highlightWeek Number 传入表头当天的索引,为日程表头部高亮某周增加一个class(可自定义样式)
styles Object 日程表内容样式,具体使用见下文
merge Boolean 是否合并一天内临近的相同日程(默认为true)
gridOnClick Function 单元格点击触发事件,方法参数中可获取到该格的信息
setOption Function 实例化上的方法, 重新设置参数渲染表格,参数同上(没有el参数)

参数示例

var timetables = [['大学英语(Ⅳ)@10203','大学英语(Ⅳ)@10203','','','','','毛概@14208','毛概@14208','','','','选修'],['','','信号与系统@11302','信号与系统@11302','模拟电子技术基础@16204','模拟电子技术基础@16204','','','','','',''],['大学体育(Ⅳ)','大学体育(Ⅳ)','形势与政策(Ⅳ)@15208','形势与政策(Ⅳ)@15208','','','电路、信号与系统实验','电路、信号与系统实验','','','',''],['','','','','电装实习@11301','电装实习@11301','','','','大学体育','大学体育',''],['','','数据结构与算法分析','数据结构与算法分析','','','','','信号与系统','信号与系统','',''],
];
var timetableType = [[{index: '1',name: '8:30'}, 1],[{index: '2',name: '9:30'}, 1],[{index: '3',name: '10:30'}, 1],[{index: '4',name: '11:30'}, 1],[{index: '5',name: '12:30'}, 1],[{index: '6',name: '14:30'}, 1],[{index: '7',name: '15:30'}, 1],[{index: '8',name: '16:30'}, 1],[{index: '9',name: '17:30'}, 1],[{index: '10',name: '18:30'}, 1],[{index: '11',name: '19:30'}, 1],[{index: '12',name: '20:30'}, 1]
];
var week =  ['周一', '周二', '周三', '周四', '周五'];
var highlightWeek = new Date().getDay();
var styles = {Gheight: 50,leftHandWidth: 50,palette: ['#ff6633', '#eeeeee']
};// 实例化(初始化课表)
var Timetable = new Timetables({el: '#coursesTable',timetables: timetables,week: week,timetableType: timetableType,highlightWeek: highlightWeek,gridOnClick: function (e) {alert(e.name + '  ' + e.week +', 第' + e.index + '节课, 课长' + e.length +'节')console.log(e)},styles: styles
});//重新设置参数 渲染
function onChange() {Timetable.setOption({timetables: courseListOther,week: ['一', '二', '三', '四', '五', '六', '日'],styles:{palette: ['#dedcda', '#ff4081']},timetableType:courseType,gridOnClick: function (e) {console.log(e)}})
};
复制代码
  • timetables 参数为表格内容项,格式为二维数组,数组第二维中每项长度需要和timetableType中每一项的长度的累计总和一致, 长度不足时会自动以空字符串追加补全。
    同一天内临近的日程相同时会自动合并为一格展示(设置merge参数为false时不自动合并)。
  • timetableType 参数可以将表格内容分类,数组内的每一项为该行标签,用于分隔行。
    每项中第一项可以是字符串或者一个对象,当为对象时会自动生成多项dom节点。
    第二项为要分类的长度,所有长度累计总和应该与timetables参数中每一项的保持长度一致。
  • week 参数为表格列名,将内容依次分隔为相应列数
  • highlightWeek 参数为数字索引(从1开始),索引对应你上面week参数里的项,传入索引后会在表格头对应节点加上一个class
  • styles 参数为表格表格样式:
    Gheight 为表格内每一个单元格高度(number)单位为'px'
    leftHandWidth 为表格左侧日程分类样式宽带度(number)单位为'px'
    palette 为合并相同课程单元格后颜色调色盘,默认有15种颜色,可以传入颜色数组自定义(传入的颜色会与默认颜色合并,并优先使用自定义颜色),设为false时不为课程单元格生成色盘颜色
  • setOption 在实例化对象上可以使用setOption方法重新渲染表格。参数使用同上,不需要再传入el参数绑定dom,默认使用实例化时候的dom节点
  • 日程表没有过多进行样式装饰,可以根据已有的css类自行美化。有课程内容的节点会绑定名为course-hasContent的class,课程行单元会根据timetableType的分类对应生成**stage_***的class,

作者

See 飞翔的荷兰人.

日程表、学生课表插件相关推荐

  1. html课表插件,课程表插件Timetables(原创)

    插件描述:Timetable 课程表 日程表 插件 Timetables 安装npm install timetables 直接引入 或者直接引入该地址下Timetables.min.js 使用imp ...

  2. 课表查询系统java数据库_教务管理系统-学生查询个人课表

    学生模块-查看个人课表 效果图: 数据库表设计(前期的表设计,实际稍微有改动): 实际的排课表实体类: package com.edu.entity; import java.io.Serializa ...

  3. vue使用lodop打印插件

    首先将lodop安装包放到static下 下载地址:http://www.c-lodop.com/download.html 新建一个vue测试lodop功能 LodopFuncs.js var Cr ...

  4. java学生的退补选模块论文,ASP排课/选课/补选/重选/-431-(代码+论文+开题) - 辅导代做|程序代写毕业设计|代做毕设|定制定做|计算机示例源码...

    代码考虑的处理的情况有些过于细致, 虽然只是算法演示,但应该可以实际使用! 请自己下载最下面的演示 查看功能效果 系统功能有些繁琐 请下载演示查看, 这个是个不错的算法工程 和当今各大院校流行的排课选 ...

  5. 基于安卓/android/微信小程序的学生考勤签到APP-#计算机毕业设计

    X项目介绍 目前高校大学生上课考勤管理都是任课老师上课点名,然后用纸质版考勤表来记录学生上课出勤情况,学期末再根据所有上课出勤表及作业登记表对学生平时成绩打分,最后把出勤数据整理上交到各院系,而学生请 ...

  6. HTML制作简单课表

    这篇文章适合新手使用HTML+CSS制作一张简单美观的学生课表 这个案例是我Web技术的一个实验小作业,也是我作为新手制作的第一个HTML表格,虽然制作中会有一些问题,但还是最终被我克服并完成了 效果 ...

  7. 数据库设计-学生管理系统数据库系统

    数据库系统设计综合实验 注: 这一篇的代码是我看着视频(很详细)一步一步打出来.其中在C#的设计,看到代码也无用,主要那个设计过程才是比较重要的,所以我顺便也把视频链接发上来了,跟着视频一步一步来更方 ...

  8. 数据库选课系统mysql_学生选课系统数据库的设计与实现

    实现功能: 对于学生而言可以实现选课功能,日常学习中,我们选课的时候,需要登陆自己的学号,密码,然后进行选课,选课的时候,会有老师的信息,课程号,课程名,授课老师,等. 学生的信息应该有 (学号,姓名 ...

  9. php正方系统抓取课表,GitHub - melodyne/school_jiaowu: PHP正方教务成绩课表爬虫,微信公众号,小程序校园应用...

    正方教务系统课表成绩爬虫 The helper of ZhengFang System 欢迎fork/star 注意,该项目针对正方教务系统编写,不保证可用于当前你学校的教务系统. 1.项目定义 这个 ...

最新文章

  1. ubuntu-15.10-server-i386.iso 安装 Oracle 11gR2 数据库
  2. 51nod 1102 【单调栈】
  3. leetcode 879. 盈利计划(dp)
  4. java处理报错的快捷键_java快捷键
  5. Google 推出数据集搜索!百度怎么看?
  6. java中子类实例化过程中的内存分配
  7. Centos7 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon run
  8. ART艺术作品相关公开数据集
  9. RC ORC Parquet 格式比较和性能测试
  10. Stardict 81部中文词典下载
  11. 最新使用Python进行开发网站教程项目实战(完整)
  12. vue 脚手架跨域问题解决
  13. 电容笔能否替代Apple pencil?高性价比电容笔排行
  14. etc 文件夹下放什么内容
  15. 亚马逊、速卖通、Shopee阿里国际站、mercari、沃尔玛、newegg、美客多等跨境平台卖家如何有效结合测评,补单打破瓶颈
  16. Scrum敏捷发布和预算管理
  17. android--图片透明
  18. Windows Server 2012 R2 Datacenter ms17-010漏洞出现此更新不适用于你的计算机
  19. Linux操作系统的主要组成部分
  20. mapreduce出现大量task被KILLED_UNCLEAN的3个原因

热门文章

  1. 当网卡收到的包的目的地址是主机上另一个网卡的地址.arp总结
  2. GCC the GNU
  3. (转)HTML5开发中Access-Control-Allow-Origin跨域问题
  4. 带你玩转JavaWeb开发之四 -如何用JS做登录注册页面校验
  5. UNP Chapter 19 - 多播
  6. Hadoop源码分析:Hadoop编程思想
  7. C#网络编程之 UDP编程
  8. PATB1017 A除以B
  9. 反向传播(Back Propagation)与神经网络(Neural Network)
  10. mysql 试题_超经典MySQL练习50题,做完这些你的SQL就过关了