所以不到一天我就咕咕咕了时间表的新版本了。
本来想用 BootStrap 和 Vue 来做时间表的新版本的,所谓现代技术。
结果看了半天文档试着乱搞了好几个小时总算是搞出了一个 Hello, World,嗯。
感觉 Javascript 基本功还是不够扎实,还是不要想着乱玩了。
虽然我前天才说过要在现有的基础上改太困难了,不过嫌新写一个太麻烦,还是强行把现有的给改得支持同一时段内多事件了。虽然只做了紧急的支持遇到其他东西就又歇菜了,反正到时候再改吧,也算争取一点时间
然后现在的代码乱到连我自己都看不懂了,肯定有一天要重写的。咕咕咕。
关于新的时间表 & 有的没的
想了一下顺便搜了一点资料,发现要做单元格合并还是只能不停 rowspan,colspan。
之前稍微做了一下思路整理,发现要是无穷无尽地 rowspan 下去肯定会疯掉
不过 jQuery 的强大选择器可以选择一整行里面的所有子元素,比如 $("#timetable tr").children()
这样的,然后直接设置 attr("rowspan",2)
就行了。遇到有其他事件的就再把 rowspan
设置回 1。所以其实根本不用写新的时间表嘛。
不过我觉得最多也就是权宜之计吧,老这样玩总会玩脱的,摊手。
网上能搜到的 datatables 啊表格插件啊之类的基本都没法用在时间表上。想了想大概是因为下面的特性:
- 列数不定,且表格内数据不定,有很多空栏
- 有可能需要做单元格合并,且合并位置,数量不定
所以大概还是只能自己造轮子了吧。
新时间表大概要支持以下功能:
- 过滤特定紧急。Vue 的数据绑定特性做起来应该会很轻松,不过还要考虑到重新排版。
- 时区调整。在 js 侧处理一下紧急数据应该也不是太大问题。
- 显示可发生随机紧急的时刻。逻辑挺简单的。
- 生成时间表图片。这个没试过,不过应该有其他人造好的轮子吧(
- 隐藏特定时刻。简单地设置为
display: none
应该就行了……? - 切换布局。横排改成竖排之类的。讲道理现在这种横栏反而最难做啊(
- 距离下次固定紧急的时间。从 FF14 的采集时钟上想到的。
感觉功能上应该没有太多难以实现的地方,主要还是 Vue 的使用,大概。得去认真读 js 的书了。
但愿今年之内能写出来吧,然后就可以去把 AC/FUN 数据库那个坑给填了。感觉我挖了好多的坑啊