更新记录

0.008(2022-09-05)

1.加入上一周,下一周,第几周的点击事件反馈。 2.加入点击第几周时触发弹出周课表。 3.修复一周日期出现不对应时间的bug。

0.007(2022-09-02)

更新使用说明

0.006(2022-09-02)

加入上一周,下一周按钮。修复bug

查看更多

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × ×

Timetable

props

参数 说明 类型 默认值 可选值
timetableType 定制表格左侧的序号和时间 Array 看源码... -
week 定制表格上方的周 Array ['一', '二', '三', '四', '五', '六', '日'] -
timetables 课程内容 Array [] -
palette 调色板, 会优先使用调色板的颜色 Array [] -
startdDate 开始周的时间, string 默认获取当前时间 -
weekButton 是否开启上一周下一周按钮 Boolean false false/true
weekTableState 开启周课表 (点击第几周时触发) Boolean false false/true
weekNumbers 周课表一共显示的周数 Number, String 1 -
controlWeek 根据开始时间显示第几周 如:开始时间是2022/09/05 显示第二周 就是2022/09/12 Number, String 1 -

event

事件名 说明 返回值
courseClick 点击课程时触发, 参数course, 内容如下
lastWeekClick 点击上一周触发 返回周数
nextWeekClick 点击下一周触发 返回周数
weekOpenClick 点击第几周触发
weekSelectClick 点击周课表是触发,注意:需开启周课表 返回周数

course

{
  index: 3,               // 这是第几节课
  length: 2,              // 这节课的课节数
  weekIndex: 4,           // 周数组的下标
  week: '五',             // 周五
  name: '数据结构与算法分析' // 课程名称
}

使用

<template>
    <view>
        <ly-curriculumtable  :weekTableState="true" :weekTableNumber="weekNumbers" 
         :controlWeek="controlWeek" :timetableType="timetableType" 
         :timetables="timetables" :startdDate="startdDate" :weekButton="weekButton" 
         @nextWeekClick="nextWeekClick" @lastWeekClick="lastWeekClick" 
         @courseClick="courseClick" @weekSelectClick="weekSelectClick" 
         @weekOpenClick="weekOpenClick">

         </ly-curriculumtable> 
         <!-- 课程详情 -->
         <u-modal class="modal" :show="showMyModal"  title="课程详情" 
                        :closeOnClickOverlay="true" 
                        :showConfirmButton="false" @close="closeModal">
            <view class="slot-content">
                <u-cell-group>
                    <u-cell
                        v-for="(item,index) in modalItem" :key="index"
                        :title="item"
                        :icon="modalIcon[index]"
                                :iconStyle="{color: colorList()[index+1]}"
                        size="large"
                    ></u-cell>
                </u-cell-group>
            </view>
         </u-modal>
    </view>
</template>
<script>
        export default {
            data() {
                return {

                    weekNumbers:20,//一共显示几周
                    controlWeek:1,//显示的第几周
                    weekButton:true,//开启上一周下一周按钮
                    startdDate:'', //开始时间  默认为当前时间
                    timetables: [
                      ['大学英语', '大学英语', '大学英语', '', '', '', '毛概', '毛概',],
                      ['', '', '信号与系统', '信号与系统', '模拟电子技术基础', '模拟电子技术基础', '模拟电子技术基础', '模拟电子技术基', '', '', '', '信号与系'],
                      ['大学体育', '大学体育', '形势与政策', '形势与政策', '', '', '', '', ''],
                      ['', '', '', '', '电装实习', '电装实习', '', '', ''],
                      ['', '', '数据结构与算法分析数据结构与算法分析', '数据结构与算法分析数据结构与算法分析', '', '', '', '', '信号与系'],
                    ],
                    timetableType:[ 
                       { index: '1', name: '08:00\n08:40' },
                       { index: '2', name: '08:50\n09:30' },
                       { index: '3', name: '09:40\n10:20' },
                       { index: '4', name: '10:30\n11:10' },
                       { index: '5', name: '11:20\n12:00' },
                       { index: '6', name: '14:00\n14:40' },
                       { index: '7', name: '15:50\n16:30' },
                       { index: '8', name: '16:40\n17:20' },
                       { index: '9', name: '17:30\n18:10' },
                       { index: '10', name: '19:00\n19:40'},
                       { index: '11', name: '20:50\n21:30'},
                       { index: '12', name: '21:40\n22:20'}],
                    //弹窗属性
                    showMyModal: false,//课程详情弹窗
                    modalIcon: ['calendar','home','server-man','clock'],//图标
                    modalItem: [],//依次是课程名、教室、教师、上课时间--为了适配渲染
                }

            },
            methods:{
                courseClick(re){
                    console.log(re)

                    //console.log(JSON.stringify(re))
                    this.modalItem[0]="课程: "+re.name;
                    this.modalItem[1]="教室: 213"
                    this.modalItem[2]="教师: 吴老师"
                    this.modalItem[3]="时间: 9:00-9:40";
                    this.showMyModal=true;
                    //console.log(",",JSON.stringify(this.modalItem))

                },
                nextWeekClick(e){
                    console.log("下一周",e)
                },
                lastWeekClick(e){
                    console.log("上一周",e)
                },
                weekOpenClick(){
                    console.log("点击了第几周")
                },
                weekSelectClick(e){
                    console.log("您选择了",e)
                },
                //关闭弹窗
                closeModal(){
                    this.showMyModal=this.showMyModal==true?false:true;
                },
                //返回颜色
                colorList() {
                    return [
                        "#ffffff", //0
                        "#ffaa00", //1
                        "#33CC99",
                        "#ff5500", //3
                        "#789262", //4
                        "#66CCCC", //5
                        "#9999FF", //6
                    ]
                },

        },
    }
</script>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无无1

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问