【课程表小程序源码】增加今日课表功能|开源代码

上次做了一个课程表小程序并开源了代码,但总感觉周课表不大方便有时候早上睡醒了都不知道现在是周几还不知道今天有没有课,痛定思痛决定加上今日课表的功能特性(底部附开源地址): 1、超简约,仅显示今天上课的课程2、三种上课状态:已结束、正在上课、即将开始3、准确显示课程上课时间,不再错过精彩课程 先放一个没有课的界面添加课程表之后的界面怎么样效果不错吧.js代码/* eslint-disable no-undef */// +----------------------------.
摘要由CSDN通过智能技术生成

file 上次做了一个课程表小程序并开源了代码,但总感觉周课表不大方便
有时候早上睡醒了都不知道现在是周几
还不知道今天有没有课,痛定思痛 决定加上今日课表的功能

特性(底部附开源地址): 1、超简约,仅显示今天上课的课程
2、三种上课状态:已结束、正在上课、即将开始
3、准确显示课程上课时间,不再错过精彩课程

先放一个没有课的界面 file

添加课程表之后的界面 file

怎么样效果不错吧

.js代码
/* eslint-disable no-undef */
// +----------------------------------------------------------------------
// | 本插件基于GPL-3.0开源协议
// +----------------------------------------------------------------------
// | Copyright (c) 2020~2021 https://www.lianshoulab.com/ All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( https://www.gnu.org/licenses/gpl-3.0.html )
// +----------------------------------------------------------------------
// | Author: liutu <17053613@qq.com>
// +----------------------------------------------------------------------
//index.js
import config from "../../config";
import {
    serializePathQuery
} from "../../utils/api/http";
import {
    couplesMsgList,
    couplesInfoAdd,
    couplesInfoDel,
    couplesAdd,
} from "../../utils/api/user";
import {
    wxShowToast,
    wxShowMaskLoading
} from "../../utils/promisify";
import dayjs from "../../utils/dayjs/dayjs.min";

//获取应用实例
const app = getApp();
Page({
    data: {
        StatusBar: app.globalData.StatusBar,
        CustomBar: app.globalData.CustomBar,
        displayArea: app.globalData.displayArea,
        ImgUrl: app.globalData.ImgUrl,
        colorList: config.colorList, // 色彩列表
        userInfo: null, //用户数据
        newMessage: false, // 给情侣发消息
        messageValue: "", //消息输入框的值
        editMessage: false, // 编辑信息
        sendTime: "现在", // 信息发送时间
        classTime: null, //上课时间
        showAllMsg: false, // 显示所有信息
        message: null, // 我收到的消息
        messageList: [], // 我要发送的消息列表
        editMessageId: null, // 正在编辑的信息的ID
        ScheduleId: 0, // 自己(0) & 情侣(1)课表切换
        courseInfo: null, //课表信息
        loginTimesDescribed: "", //登录次数描述
    },
    /**
     * 计算课程表是否符合当前周
     * @param {*} week 显示周
     * @param {*} userInfo 数据
     */
    weekCourseInfo(week, userInfo) {
        if (!userInfo) {
            return null;
        } else {
            let courseInfo = userInfo
                .map((v) => {
                    let attend = v.attend.split(",").filter((e) => e == week);
                    if (attend[0]) {
                        return v;
                    }
                })
                .filter((v) => v);
            return courseInfo.length > 0 ? courseInfo : [];
        }
    },
    /**
     * 处理当天课程信息
     */
    courseInfoSet(info, classTime = wx.getStorageSync("classTime")) {
        if (!(typeof info === "string" && info && classTime)) {
            return null;
        }
        let _info = JSON.parse(info);
        // 获取当前周
        let week = wx.getStorageSync("currentWeek");
        // 筛选当周
        _info = this.weekCourseInfo(week, _info);
        if (_info.length == 0) {
            // 如果本周没有课程就 return掉
            return null;
        }
        // 筛选当天
        let today = dayjs().day() ? dayjs().day() : 7;
        _info = _info.filter((v) => v.days == today);
        if (_info.length == 0) {
            // 如果今天没有课程就 return掉
            return null;
        }
        console.log(today, _info, classTime, "info");
        // 对比时间
        let checkdate = (t1, t2) => {
            let t11 = t1.split(":");
            let t21 = t2.split(":");
            let sj1 = parseInt(t11[0] * 12 + t11[1]);
            let sj2 = parseInt(t21[0] * 12 + t21[1]);
            return sj1 > sj2 ? false : true;
        };
        // 计算课程状态
        let Remind = (data) => {
            let now = dayjs().format("HH:mm");
            let tipEvent = dayjs().subtract(30, "minute").format("HH:mm");
            let stime = classTime[data.nums - 1].s_time;
            let etime = classTime[data.enum - 1].e_time;
            if (checkdate(etime, now)) {
                return 3; // 已结束
            } else if (checkdate(stime, now)) {
                return 2; // 进行中
            } else if (!checkdate(stime, tipEvent)) {
                return 1; // 即将开始
            } else {
                return 0; //不显示
            }
        };
        let courseTime = (data) => {
            let stime = classTime[data.nums - 1].s_time;
            let etime = classTime[data.enum - 1].e_time;
            return `${stime}-${etime}`;
        };
        let courseInfo = _info.map((v) => {
            return {
                courseTime: courseTime(v),
                courseRemind: Remind(v), // 0,1,2,3分别代表不显示,即将开始,进行中,已结束
                sname: v.sname,
                classroom: v.classroom,
            };
        });
        console.log(courseInfo);
        return courseInfo;
    },
    // 初始化用户信息
    initUserInfo(userInfo) {
        console.warn(use
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值