亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue實現(xiàn)打卡功能

 更新時間:2022年08月29日 16:28:55   作者:心有陽光熱愛生活  
這篇文章主要為大家詳細介紹了vue實現(xiàn)打卡功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了vue實現(xiàn)打卡功能的具體代碼,供大家參考,具體內容如下

記錄使用vue實現(xiàn)移動端日歷打卡樣式

template
compareToNow:與當前時間比較
-1:小于當前時間
0:今天
1:大于當前時間

<!-- @click="todo" 實現(xiàn)打卡功能 -->
<div v-if="compareToNow(item) === 1" @click="todo">{{ item.date }}</div>
<!-- @click="todo" 實現(xiàn)補卡功能 -->
?<div v-if="compareToNow(item) === -1" @click="todo" class="otherDay">
<template>
? <div>
? ? <div class="top-title">
? ? ? <div><span @click="lastMonth" class="link">?</span></div>
? ? ? <div><span>{{year}}年{{month}}月</span></div>
? ? ? <div><span @click="nextMonth" class="link">?</span></div>
? ? </div>
? ? <div class="container" style="border-bottom: 1px solid #cccccc">
? ? ? <div v-for="(item,index) in weeks" :key="index">{{ item }}</div>
? ? </div>
? ? <div class="container" style="padding: 1vh 1vh 3vh 1vh;">
? ? ? <div v-for="(item,index) in data" :key="index">
? ? ? ? <div v-if="compareToNow(item) === 0" style="color: #2d8cf0">{{ item.date }}</div>
? ? ? ? <div v-if="compareToNow(item) === 1">{{ item.date }}</div>
? ? ? ? <div v-if="compareToNow(item) === -1" class="otherDay">
? ? ? ? ? <div>{{ item.date }}</div>
? ? ? ? ? <div class="date-desc">補卡</div>
? ? ? ? </div>
? ? ? </div>
? ? </div>
? </div>
</template>

script

<script>
export default {
? data() {
? ? return {
? ? ? today:new Date(),
? ? ? now:new Date(),
? ? ? weeks:["日","一","二","三","四","五","六"],
? ? ? year:"",
? ? ? month:"",
? ? ? date:"",
? ? ? firstDay:"",
? ? ? data:[],
? ? };
? },
? mounted() {
? ? this.getNow();
? },
? methods:{
? ? getNow(){
? ? ? this.year = this.now.getFullYear();
? ? ? this.month = this.now.getMonth() + 1;
? ? ? this.date = this.now.getDate();
? ? ? this.now.setDate(1);
? ? ? this.firstDay = this.now.getDay();
? ? ? this.initData();
? ? },
? ? getMonthDay(month){
? ? ? if ([1,3,5,7,8,10,12].includes(month)) {
? ? ? ? return 31
? ? ? } else if ([4,6,9,11].includes(month)) {
? ? ? ? return 30
? ? ? } else if (month === 2) {
? ? ? ? // ?判斷當年是否為閏年
? ? ? ? if (
? ? ? ? ? (this.year % 4 === 0 && this.year % 100 !== 0) ||
? ? ? ? ? this.year % 400 === 0
? ? ? ? ) {
? ? ? ? ? return 29
? ? ? ? } else {
? ? ? ? ? return 28
? ? ? ? }
? ? ? }
? ? },
? ? initData(){
? ? ? this.data = [];
? ? ? let days = this.getMonthDay(this.month);
? ? ? for (let i = 0; i < this.firstDay; i++) {
? ? ? ? this.data.push({
? ? ? ? ? year:"",
? ? ? ? ? month:"",
? ? ? ? ? date:"",
? ? ? ? });
? ? ? }
? ? ? for (let i = 0; i < days; i++) {
? ? ? ? this.data.push(
? ? ? ? ? {
? ? ? ? ? ? year: this.year,
? ? ? ? ? ? month: this.month,
? ? ? ? ? ? date: i + 1,
? ? ? ? ? }
? ? ? ? );
? ? ? }
? ? },
? ? lastMonth(){
? ? ? this.now.setMonth(this.now.getMonth() - 1);
? ? ? this.getNow();
? ? },
? ? nextMonth(){
? ? ? this.now.setMonth(this.now.getMonth() + 1);
? ? ? this.getNow();
? ? },
? ? compareToNow(item){
? ? ? if (item.year && item.month && item.date) {
? ? ? ? let date1 = new Date();
? ? ? ? date1.setFullYear(item.year)
? ? ? ? date1.setMonth(item.month - 1)
? ? ? ? date1.setDate(item.date)
? ? ? ? date1.setHours(0)
? ? ? ? date1.setMinutes(0)
? ? ? ? date1.setSeconds(0)
? ? ? ? let now = new Date();
? ? ? ? now.setHours(0)
? ? ? ? now.setMinutes(0)
? ? ? ? now.setSeconds(0)

? ? ? ? if (date1.getTime() > now.getTime()){
? ? ? ? ? return 1
? ? ? ? }else if (date1.getTime() === now.getTime()){
? ? ? ? ? return 0
? ? ? ? }else if (date1.getTime() < now.getTime()){
? ? ? ? ? return -1
? ? ? ? }
? ? ? }
? ? }
? }
}
</script>

style

/* 背景圖片 background:url ?和 background-size 可注釋 */
<style scoped lang="less">
? .top-title{
? ? display: grid;
? ? grid-template-columns:repeat(3,1fr);
? ? grid-auto-rows:40px;
? ? grid-gap:1rem;
? ? background-color: #FFFFFF;
? ? border-bottom: 1px solid #cccccc;
? ? line-height: 40px;
? }
? .container{
? ? display: grid;
? ? grid-template-columns:repeat(7,1fr);
? ? grid-auto-rows:40px;
? ? grid-gap:1rem;
? ? background-color: #FFFFFF;
? ? line-height: 40px;

? ? div{
? ? ? text-align: center;
? ? }
? }
? .today{
? ? background: url("../assets/circle_success.png") no-repeat center center;
? ? background-size: 95% 95%;
? ? position: relative;
? }
? .otherDay{
? ? background: url("../assets/circle_error.png") no-repeat center center;
? ? background-size: 95% 95%;
? ? position: relative;
? }
? .link{
? ? font-size: 14px;
? ? color: #2d8cf0;
? }
? .date-desc{
? ? display: block;
? ? position: absolute;
? ? top: 6.8vw;
? ? left: 1.5vw;
? ? font-size: 2.3vw;
? ? color: green;
? }
</style>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論