微信小程序开发课程表

课程表

页面结构

  1. 顶部为星期
  2. 左边为上课的节次
  3. 中间为内容部分

代码实现

顶部:考虑到我学校的大部分课程都为星期一至五;且鉴于小程序页面过小,故这里只编写星期一到五的课程(建议根据个人需求编写)

 <view class="top">
  <view wx:for="{{['一','二','三','四','五']}}" class="top-text">周{{item}}
  </view>
</view>

左边上课节次:

<view style="background-color:;color:#7cba23;">
      <view wx:for="{{[1,2,3,4,5,6,7,8,9,10,11,12]}}" class="left">
        {{item}}
      </view>
</view>

中间红色分割线:

<view wx:for="{{[1,2,3,4,5,6,7,8,9,10,11,12]}}">
      <view style="width:750rpx;margin-top:{{(index+1)*100}}rpx;position: absolute;border-bottom:1rpx solid {{index==3?'red':'lightgray'}};">
      </view>
</view>

课表内容部分:这部分我在css做了一些处理优化,比如课程名字过长超过的内容省略号表示(详情请看css代码);主要为通过wx.for来循环打印数组信息,并根据索引以及数组信息来调整课表的位置以及课表背景颜色(课表数组和颜色数组在后边)

 <view  wx:for="{{wlist}}">
        <view class="flex-item kcb-item" data-index="{{index}}" style="margin-left:{{(item.weekTime-1)*140+15}}rpx;background-color:{{colorArrays[index%8]}};margin-top:{{(item.jieCi-1)*2*100+5}}rpx;">
          <view class="smalltext">
            <view class="kbtext-style">{{item.courseName}}</view>
            <view class="kbaddress-style" style="padding-top:5px;">
            {{item.address}}
            </view>
          </view>
        </view>
 </view>

课表数组:

   wlist: [
      { "weekTime": 1, "jieCi": 1, "courseName": "计算机科学与技术","address":"A1-105"},
      { "weekTime": 1, "jieCi": 5, "courseName": "毛泽东思想邓小平理论实践课程","address": "A1-105"},
      { "weekTime": 2, "jieCi": 1, "courseName": "算法思想与课程设计", "address": "A1-105" },
      { "weekTime": 2, "jieCi": 4, "courseName": "高等数学", "address": "A1-105"},
      { "weekTime": 3, "jieCi": 2, "courseName": "大学英语", "address": "A1-105"},
      { "weekTime": 3, "jieCi": 4, "courseName": "篮球", "address": "体育馆1楼-B区"},
      { "weekTime": 3, "jieCi": 3, "courseName": "电子工艺实习", "address": "A1-105"},
      { "weekTime": 4, "jieCi": 1, "courseName": "计算机网络", "address": "A1-105"},
      { "weekTime": 4, "jieCi": 4, "courseName": "JavaEE课程设计", "address": "A1-105" },
      { "weekTime": 5, "jieCi": 3, "courseName": "设计模式", "address": "A1-105" },
    ]

weekTime为星期几,jieCi为上课的节次(1代表1,2节;5代表9,10节...);courseName是课程名称;address为上课地点

颜色数组:这里可以根据个人喜好定义喜欢的背景颜色

 colorArrays:["#85B8CF","#90C652","#D8AA5A","#FC9F9D","#0A9A84","#61BC69","#12AEF3","#E29AAD"],

完整代码以及样式

kbcx.wxml

<!--index.wxml-->
<view class="top">
  <view wx:for="{{['一','二','三','四','五']}}" class="top-text">周{{item}}
  </view>
</view>

<scroll-view scroll-y="true" class="scroll">
  <view style="height:1200rpx;width:730rpx;display:flex;">
    <view style="background-color:;color:#7cba23;">
      <view wx:for="{{[1,2,3,4,5,6,7,8,9,10,11,12]}}" class="left">
        {{item}}
      </view>
    </view>

    <view wx:for="{{[1,2,3,4,5,6,7,8,9,10,11,12]}}">
      <view style="width:750rpx;margin-top:{{(index+1)*100}}rpx;position: absolute;border-bottom:1rpx solid {{index==3?'red':'lightgray'}};">
      </view>
    </view>

    <view  wx:for="{{wlist}}">
        <view class="flex-item kcb-item" data-index="{{index}}" style="margin-left:{{(item.weekTime-1)*140+15}}rpx;background-color:{{colorArrays[index%8]}};margin-top:{{(item.jieCi-1)*2*100+5}}rpx;">
          <view class="smalltext">
            <view class="kbtext-style">{{item.courseName}}</view>
            <view class="kbaddress-style" style="padding-top:5px;">
            {{item.address}}
            </view>
          </view>
        </view>
    </view>

  </view>
</scroll-view>

kbcx.js

//课表查询页面
//获取应用实例
var app = getApp()
Page({
  data: {
    // 颜色数组,用于课程的背景颜色
    colorArrays:["#85B8CF","#90C652","#D8AA5A","#FC9F9D","#0A9A84","#61BC69","#12AEF3","#E29AAD"],
    // 课表数组
    wlist: [
      { "weekTime": 1, "jieCi": 1, "courseName": "计算机科学与技术","address":"A1-105"},
      { "weekTime": 1, "jieCi": 5, "courseName": "毛泽东思想邓小平理论实践课程","address": "A1-105"},
      { "weekTime": 2, "jieCi": 1, "courseName": "算法思想与课程设计", "address": "A1-105" },
      { "weekTime": 2, "jieCi": 4, "courseName": "高等数学", "address": "A1-105"},
      { "weekTime": 3, "jieCi": 2, "courseName": "大学英语", "address": "A1-105"},
      { "weekTime": 3, "jieCi": 4, "courseName": "篮球", "address": "体育馆1楼-B区"},
      { "weekTime": 3, "jieCi": 3, "courseName": "电子工艺实习", "address": "A1-105"},
      { "weekTime": 4, "jieCi": 1, "courseName": "计算机网络", "address": "A1-105"},
      { "weekTime": 4, "jieCi": 4, "courseName": "JavaEE课程设计", "address": "A1-105" },
      { "weekTime": 5, "jieCi": 3, "courseName": "设计模式", "address": "A1-105" },
    ]
  },
})

kbcx.wxcss

.flex-item {
  width: 95rpx;
  height: 80px;
}

.kcb-item {
  position: absolute;
  justify-content: center;
  display: flex;
  /* align-items: center; */
  border-radius: 5px;
}

.smalltext {
  font-size: 8pt;
  color: #fff;
  padding-left: 2px;
  padding-top: 2px;
}

.top {
  display: flex;
  flex-direction: row;
  margin-left: 35rpx;
  /* background-color: #d2e6b3; */
  color: #7cba23;
}

.top-text {
  width: 140rpx;
  height: 35rpx;
  font-size: 9pt;
  justify-content: center;
  display: flex;
  align-items: center;
}

.scroll {
  height: 1170rpx;
  z-index: 101;
  position: fixed;
}

.left {
  width: 35rpx;
  height: 100rpx;
  font-size: 9pt;
  justify-content: center;
  display: flex;
  align-items: center;
}
.kbtext-style{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}

结语

  • 本文借鉴了作者邵磊的博客并做了一些优化,原作者信息:地址
  • 目前我正在开发一个适用于校内会议签到、教务系统课表查询、成绩查询等功能的小程序,已上传至Github,感兴趣的欢迎Start
  • Github源码地址:课程表源代码
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容