uniapp日期,上一周,下一周切换,点击中间日期还能通过日历跳转
因为在网上找不到适合自己的组件,就直接自己手搓了一个,希望能帮到大家。
在页面上要展示周一到周日的时间,并且可以左右切换上一周下一周,还可以通过点击中间日期跳出日历弹窗定点到对应日期的那一周和对应时间,下面是效果图和代码还比较粗糙,可以自己再优化。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/dc3ef865f42e43c8aa8ad68f30df64ad.p
ng#pic_center)
代码`在这里插入代码片
课表
<view class="week-box">
<button class="week-button week-button-left" size="small" @click="subWeekNumber(year,weekNumber)">
<u-icon color="rgba(235, 101, 25, 1)" name="play-left-fill" size="30"></u-icon>
</button>
<button class="week-view" @click="open">
{{year+'第'+weekNumber+'周'}}
</button>
<button class="week-button week-button-right" size="small" @click="addWeekNumber(year,weekNumber)">
<u-icon color="rgba(235, 101, 25, 1)" name="play-right-fill" size="30"></u-icon>
</button>
</view>
<view class="view_H">
<view id="demo1" class="scroll-view-item_H " :class="{ 'scroll-view-item_H-selected': currentIndex ===1 }"
@click="submitDate(1,weekDateList[0].dateFull)">
<view class="scroll-view-H-text">
<text>{{weekDateList[0].date}}</text>
<text>周一</text>
</view>
</view>
<view id="demo2" class="scroll-view-item_H " :class="{ 'scroll-view-item_H-selected': currentIndex ===2 }"
@click="submitDate(2,weekDateList[1].dateFull)">
<view class="scroll-view-H-text">
<text>{{weekDateList[1].date}}</text>
<text>周二</text>
</view>
</view>
<view id="demo3" class="scroll-view-item_H " :class="{ 'scroll-view-item_H-selected': currentIndex ===3. }"
@click="submitDate(3,weekDateList[2].dateFull)">
<view class="scroll-view-H-text">
<text>{{weekDateList[2].date}}</text>
<text>周三</text>
</view>
</view>
<view id="demo4" class="scroll-view-item_H " :class="{ 'scroll-view-item_H-selected': currentIndex ===4 }"
@click="submitDate(4,weekDateList[3].dateFull)">
<view class="scroll-view-H-text">
<text>{{weekDateList[3].date}}</text>
<text>周四</text>
</view>
</view>
<view id="demo5" class="scroll-view-item_H " :class="{ 'scroll-view-item_H-selected': currentIndex ===5 }"
@click="submitDate(5,weekDateList[4].dateFull)">
<view class="scroll-view-H-text">
<text>{{weekDateList[4].date}}</text>
<text>周五</text>
</view>
</view>
<view id="demo6" class="scroll-view-item_H " :class="{ 'scroll-view-item_H-selected': currentIndex ===6 }"
@click="submitDate(6,weekDateList[5].dateFull)">
<view class="scroll-view-H-text">
<text>{{weekDateList[5].date}}</text>
<text>周六</text>
</view>
</view>
<view id="demo7" class="scroll-view-item_H " :class="{ 'scroll-view-item_H-selected': currentIndex ===0 }"
@click="submitDate(0,weekDateList[6].dateFull)">
<view class="scroll-view-H-text">
<text>{{weekDateList[6].date}}</text>
<text>周日</text>
</view>
</view>
</view>
<view>
<uni-calendar ref="calendar" :multiple="false" class="uni-calendar--hook" :clear-date="true"
:date="info.date" :insert="info.insert" :lunar="info.lunar" :startDate="info.startDate"
:endDate="info.endDate" :range="info.range" @confirm="confirm" />
</view>
<!-- <view>
<scroll-view class="scroll-view_H" scroll-x="true" scroll-left="120">
<view id="demo1" class="scroll-view-item_H ">
<view class="scroll-view-H-text">
<text>1月20</text>
<text>周一</text>
</view>
</view>
<view id="demo2" class="scroll-view-item_H ">
<view class="scroll-view-H-text">
<text>1月21日</text>
<text>周二</text>
</view>
</view>
<view id="demo3" class="scroll-view-item_H ">
<view class="scroll-view-H-text">
<text>1月22日</text>
<text>周三</text>
</view>
</view>
<view id="demo4" class="scroll-view-item_H ">
<view class="scroll-view-H-text">
<text>1月23日</text>
<text>周四</text>
</view>
</view>
<view id="demo5" class="scroll-view-item_H ">
<view class="scroll-view-H-text">
<text>1月24日</text>
<text>周五</text>
</view>
</view>
<view id="demo6" class="scroll-view-item_H ">
<view class="scroll-view-H-text">
<text>1月25日</text>
<text>周六</text>
</view>
</view>
<view id="demo7" class="scroll-view-item_H ">
<view class="scroll-view-H-text">
<text>1月26日</text>
<text>周日</text>
</view>
</view>
</scroll-view>
</view> -->
<view class="">
<uni-section class="mb-10" title="今日课程"></uni-section>
</view>
<view v-if="classScheduleList.length>0" class="steps-box" v-for="(item,index) in classScheduleList"
:key="index">
<view class="steps-y">
<u-icon name="clock" color="rgba(166, 166, 166, 1)" size="24"></u-icon>
<p><u-icon class="rotate-90" name="more-dot-fill" color="rgba(166, 166, 166, 1)" size="24"></u-icon>
</p>
<p><u-icon class="rotate-90" name="more-dot-fill" color="rgba(166, 166, 166, 1)" size="24"></u-icon>
</p>
<p><u-icon class="rotate-90" name="more-dot-fill" color="rgba(166, 166, 166, 1)" size="24"></u-icon>
</p>
<p><u-icon class="rotate-90" name="more-dot-fill" color="rgba(166, 166, 166, 1)" size="24"></u-icon>
</p>
<p><u-icon class="rotate-90" name="more-dot-fill" color="rgba(166, 166, 166, 1)" size="24"></u-icon>
</p>
</view>
<view class="steps-time">
<p>{{extractTime(item.startTime)}}</p>
<p>-</p>
<p>{{extractTime(item.endTime)}}</p>
</view>
<view class="steps-card">
<uni-card :is-shadow="true" style="width: 540rpx;">
<view class="card-tile">
<view class="card-tile-left">
<text>{{item.studentName}}</text>
</view>
<view class="card-tile-right">
<image src="../../static/home/teacher.png" style="width: 40rpx; height: 40rpx;"></image>
<text>{{item.teacherName}}</text>
</view>
</view>
<view class="card-body">
<text>课程:</text>
<text style="color: rgba(13, 13, 13, 1);">{{item.bookName}}</text>
</view>
<view class="card-bottom">
<view class="switch-box">
<text style="margin-right: 15rpx;">老师就位</text>
<view class="" @click="teacherSwitchClick(item.disabledTeacher)">
<u-switch v-model="item.checkedTeacher" size="20" :disabled="item.disabledTeacher"
@change="changeTeacher(item.id,1)" active-color="rgba(235, 101, 25, 1)"
inactive-color="rgba(222, 222, 222, 1)"></u-switch>
</view>
</view>
<view class="switch-box">
<text style="margin-right: 15rpx;">学生就位</text>
<view class="" @click="studentSwitchClick(item.disabledStudent)">
<u-switch v-model="item.checkedStudent" size="20" :disabled="item.disabledStudent"
@change="changesSudent(item.id,0)" active-color="rgba(235, 101, 25, 1)"
inactive-color="rgba(222, 222, 222, 1)"></u-switch>
</view>
</view>
</view>
</uni-card>
</view>
</view>
<view class="" v-if="classScheduleList.length<=0">
<u-empty text="暂无数据" mode="list" icon="../../static/数据为空.png">
</u-empty>
</view>
</view>