【适合学生的练手项目】做一个简单的课程表小程序

大四马上实习,刚入坑互联网,想着先做一个简单练手项目 ,充实一下自己的简历,思来想去就“课程表小程序“相对我们这个群体更合适

再加上因为现在市面上已经有很多面向学生的课程表,但要么是功能繁多过于臃肿,要么充斥着大量的广告,并且总感觉总有一两个点不适合自己的功能,自己动手丰衣足食。

下定决心就开干!
成品演示(项目已开源,见文末):

file

看到自己制作的第一个小程序,自豪感直接拉满好吧
file

本文后端失业fastadmin框架,前端使用uniapp

file

部分实现代码:

<wxs src="./timetable.wxs" module="tools" />
<view class="headBox">
    <view style="height:{{CustomBar}}px">
        <view class="cu-bar" style="height:{{CustomBar}}px;padding-top:{{StatusBar}}px;">
            <view class="action" bindtap="weeksSwitch">
                <view class="ev-fc-cstart">
                    <view class="weeks ev-fr-start">
                        第{{showWeek}}周
                        <text wx:if="{{currentWeek == showWeek}}">(本周)</text>
                        <text class="cuIcon-unfold" style="color: #1a1b1c;" />
                        <view wx:if="{{currentWeek !== showWeek}}" class="text-blue margin-left-xs" catch:tap="backToCurrent" style="font-size: 24rpx;">
                            回到当前周
                        </view>
                    </view>
                    <view class="switchCouples">
                        {{gradeList[userInfo.grade].label}} 第{{semester}}学期
                    </view>
                </view>
            </view>
        </view>
    </view>
</view>
<view class="ev-relative" style="height: {{displayArea.windowWidth / 3.75}}px">
    <view class="flex solid-bottom padding align-center bg-white" bind:tap="switchCouples">
        </view>
    <view class="ev-fr-start" style="box-shadow: 10px 1px 1px #e3e3e3;">
        <view class="monthBox ev-fc-center">
            10
            <view class="tipsText">月</view>
        </view>
        <view class="flex solid-bottom justify-between align-center">
            <view wx:for="{{['一','二','三','四','五','六','日']}}" wx:key="index" class="ev-fc calendarDate {{index == todayWeek && showWeek == currentWeek ? 'selectedDate':''}}">
                <text>周{{item}}</text>
                <text class="tipsText">{{weeksList[index]}}</text>
            </view>
        </view>
    </view>
</view>
<view>
    <view style="height:{{displayArea.windowHeight - CustomBar - (displayArea.windowWidth / 3.75)}}px;overflow: auto;" class="flex solid-bottom justify-start bg-white {{showcouples?'showcouplesOn':'showcouplesOut'}}">
        <image class="customBG" mode="aspectFill" style="width:100%;height:100%" src="{{userInfo.table_bgimage ? ImgUrl + userInfo.table_bgimage:''}}" />
        <block wx:if="{{!userInfo}}">
            <view class="loginnull">
                <view bindgetuserinfo="bindGetUserInfo" open-type="getUserInfo" style="width:100%;height:100%">
                    <image style="width:100%;height:100%" mode="scaleToFill" src="/images/loginnull.png" />
                </view>
            </view>
        </block>
        <view wx:elif="{{!courseInfo}}" class="coursenull" bind:tap="addTable">
            <image style="width:100%;height:100%" mode="scaleToFill" src="/images/coursenull.png" />
            <view class="ev-fc-start" style="margin-top:-20px">
                <view>没有课程或还未添加课程哦~</view>
                <view class="text-blue">去添加</view>
            </view>
        </view>
        <block wx:else>
            <view class="margin-top-sm">
                <view wx:for="{{classTime}}" wx:key="index" style="width:750rpx;margin-top:{{6 +(index)*50}}px;position:absolute;border-bottom:1px dashed #DFE4EA;z-index:-1"></view>
                <view wx:for="{{classTime}}" wx:key="index" class="ev-fc-start" style="height: 50px; width: 32px;z-index:10">
                    <text class="classTimeText">{{item.s_time}}</text>
                </view>
            </view>
            <view class="margin-top-sm" style="width:100%;margin-top:16px">
                <table-view dataSource="{{courseInfo}}" colorList="{{colorList}}" bind:onAdd="addTable" bind:onEdit="editTable"></table-view>
                <!-- <block>
                    <view wx:for="{{courseInfo}}" wx:key="index" class="flex-item kcb-item {{editTableId == item.subject_id ? 'kcb-selected':''}}" catch:tap="editTable" data-statu="open" data-id="{{item.subject_id}}" style="margin-left:{{(item.days-1)*98}}rpx;margin-top:{{(item.nums-1)*50+8}}px;height:{{(item.enum - item.nums + 1)*50-4}}px;background-color:{{colorList[item.subject_id%8]}};border: 1px solid {{colorList[item.subject_id%8]}};box-shadow:0px 3px 6px {{tools.hexToRgbA(colorList[item.subject_id%8])}};">
                        <view class="smalltext">{{item.sname}}</view>
                        <view class="room">@{{item.classroom}}</view>
                    </view>
                </block> -->
            </view>
        </block>
    </view>
    <block wx:if="{{showcouples}}">
        <view style="height:{{displayArea.windowHeight - CustomBar - (displayArea.windowWidth / 3.75)}}px;overflow: auto;margin-top:-{{displayArea.windowHeight - CustomBar - (displayArea.windowWidth / 3.75)}}px;width:100%;" class="flex solid-bottom justify-start bg-white {{showcouples?'showcouplesOut':'showcouplesOn'}}">
            <view wx:if="{{!loverCourse}}" class="coursenull">
                <image style="width:100%;height:100%" mode="scaleToFill" src="/images/coursenull.png" />
                <text>ta还没有课程~</text>
            </view>
            <block wx:else>
                <view class="margin-top-sm">
                    <view wx:for="{{classTime}}" wx:key="index" style="width:750rpx;margin-top:{{6 +(index)*50}}px;position:absolute;border-bottom:1px dashed #DFE4EA;"></view>
                    <view wx:for="{{classTime}}" wx:key="index" class="ev-fc-start" style="height: 50px; width: 32px;z-index:10">
                        <text class="classTimeText">{{item.s_time}}</text>
                    </view>
                </view>
                <view class="margin-top-sm" style="width:100%;margin-top:16px">
                    <table-view dataSource="{{loverCourse}}" disabled colorList="{{colorList}}"></table-view>
                    <!-- <view wx:for="{{loverCourse}}" wx:key="index" class="flex-item kcb-item" data-statu="open" data-id="{{item.subject_id}}" style="margin-left:{{(item.days-1)*98}}rpx;margin-top:{{(item.nums-1)*50+8}}px;height:{{(item.enum - item.nums + 1)*50-4}}px;background-color:{{colorList[item.subject_id%8]}};border: 1px solid {{colorList[item.subject_id%8]}};box-shadow:0px 3px 6px {{tools.hexToRgbA(colorList[item.subject_id%8])}};">
                        <view class="smalltext">{{item.sname}}</view>
                        <view class="room">@{{item.classroom}}</view>
                    </view> -->
                </view>
            </block>
        </view>
    </block>
</view>

弹窗更改周数

file

实现代码:

<view class="cu-modal top-modal weeksSwitch {{weeksSwitch ?'show':''}}" style="margin-top:{{CustomBar}}px" bind:tap="hideweeksSwitch">
    <view class="cu-dialog">
        <view class="grid col-5 padding-sm bg-white solid-top solid-bottom">
            <view wx:for="{{checkbox}}" class="padding-xs" wx:key="index">
                <button class="cu-btn bg-white WeekCheck tips {{showWeek == item.value?'WeekChecked':''}}" bindtap="ChooseCheckbox" data-value="{{item.value}}">
                    第
                    <view class="WeekNum">{{item.value}}</view>
                    周
                    <view class="thisWeek" style="color:{{showWeek == item.value ?'':'#92979D'}}" wx:if="{{currentWeek== item.value}}">
                        本周
                    </view>
                </button>
            </view>
        </view>
    </view>
</view>

前后端代码太多,直接附加上开源地址:
gitee开源:https://gitee.com/chengdu-gengzixin_liu-jiyuan/timetable#%E7%89%88%E6%9C%AC%E5%8A%9F%E8%83%BD%E4%BB%8B%E7%BB%8D

什么?你觉得有点过于简陋了?
后续俺会继续做这个练手项目,有什么意见都可以评论区提

本文由博客一文多发平台 OpenWrite 发布!

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

推荐阅读更多精彩内容