Commit 337c8164 authored by 罗超's avatar 罗超

2

parent 92d2c7ad
......@@ -187,7 +187,9 @@
res.Data.Account = data.obj.phoneNum;
uni.setStorageSync("userInfo", res.Data);
Toast.success("登录成功");
emit('success')
setTimeout(()=>{
emit('success')
},1000)
data.showPhone = false
uni.showTabBar()
} else {
......@@ -198,13 +200,11 @@
}
uni.hideLoading();
if (res.Data.Error == -1) { //如果没找到电话号码 就跳入登录
// setTimeout(() => {
// uni.reLaunch({
// url: '/pages/login/login'
// });
// }, 1000);
}
}
......
......@@ -107,14 +107,15 @@
</style>
<template>
<view class="studyCourse">
<div class="loading" v-if="isShowLoad">
<van-loading type="spinner" color="#fff" />
</div>
<template v-if="ChapterList.length>0">
<view class="Course_Top">
<view class="CourseBan">{{CourseName}}</view>
<view class="CourseTotal" v-if="TotalHours>0">{{TotalHours}}</view>
</view>
<div class="loading" v-if="isShowLoad">
<van-loading type="spinner" color="#fff" />
</div>
<view class="Course_Bottom">
<view class="Course_List" v-for="(item,index) in ChapterList" :key="index">
<view class="CourseList_One" @click="getReview(index)">
......@@ -216,6 +217,8 @@
x.isShow = false
})
}
}).catch(err=>{
data.isShowLoad = false;
});
},
getSpeed(score) {
......
......@@ -6,7 +6,15 @@
:key="index"
>
<view class="flex flex_start_center title-row">
<view class="class-time">{{ item.StartTime }} </view>
<view class="class-time">
<view class="" style="font-size: 22rpx;font-weight: 400;color: #111111;">
{{data.DateMonth}}-{{data.DateDay}}
</view>
<view class="">
{{ item.StartTime }}
</view>
</view>
<view class="circle"></view>
<view class="class-title one_line flex">
{{ data.ClassName }}
......@@ -65,7 +73,7 @@ import {
} from "vue";
export default {
name: "",
props: { data: Object },
props: { data: Object},
components: {},
setup(props) {
let methods = {
......
<template>
<view class="" :style="{ 'padding-top': `${statusBarHeight}px` }">
<view style="height: 100rpx"></view>
<view class="navbar">
<van-nav-bar title="课表" fixed title-class="navTitle">
<view slot="left" class="chooseDate flex flex_start_center">
<!-- <van-icon
<view class="" :style="{ 'padding-top': `${statusBarHeight}px` }">
<view style="height: 100rpx"></view>
<view class="navbar">
<van-nav-bar title="课表" fixed title-class="navTitle">
<view slot="left" class="chooseDate flex flex_start_center">
<!-- <van-icon
name="arrow-left"
size="36rpx"
style="margin-right: 10rpx"
@click="back"
/> -->
<view @click="showdatetime">{{ currentDate }}</view>
</view>
</van-nav-bar>
</view>
<van-popup
:show="showPopup"
round
position="bottom"
custom-style="height: 50%"
@close="onClose"
>
<van-datetime-picker
type="year-month"
:value="getCurrentDate"
@cancel="onClose"
@confirm="onConfirm"
/>
</van-popup>
<view class="calendar flex flex_wrap">
<view
v-for="(item, index) in weekArr"
:key="index"
class="calendar-week-item no_shrink"
>
<view class="calendar-week">{{ item }}</view>
</view>
<view
v-for="(item, index) in sliceWeekArr"
:key="index"
class="calendar-item no_shrink"
v-if="!isShowAllDay"
>
<view
class="calendar-day flex flex_center_center"
ref="calendarDay"
@click="calendarActive(item)"
v-show="item"
>
<view class="" :class="{ 'calendar-active': activeDay === item.day ,'calendar-leave':isLeave(item),'calendar-leave2':isLeave2(item)}" >
{{ item.day }}
</view>
</view>
<view class="isToday" v-if="item.isToday === 1">今天</view>
<view class="haveCourse" v-if="getHaveCourse(item)"></view>
</view>
<view
v-for="(item, index) in calendar"
:key="index"
class="calendar-item no_shrink"
v-if="isShowAllDay"
>
<view
class="calendar-day flex flex_center_center"
ref="calendarDay"
@click="calendarActive(item), sliceWeek(item)"
v-show="item"
>
<view class="" :class="{ 'calendar-active': activeDay === item.day,'calendar-leave':isLeave(item),'calendar-leave2':isLeave2(item) }">
{{ item.day }}
</view>
</view>
<view class="isToday" v-if="item.isToday === 1">今天</view>
<view class="haveCourse" v-if="getHaveCourse(item)"></view>
</view>
<view @click="showdatetime">{{ currentDate }}</view>
</view>
</van-nav-bar>
</view>
<van-popup :show="showPopup" round position="bottom" custom-style="height: 50%" @close="onClose">
<van-datetime-picker type="year-month" :value="getCurrentDate" @cancel="onClose" @confirm="onConfirm" />
</van-popup>
<view class="calendar flex flex_wrap">
<view v-for="(item, index) in weekArr" :key="index" class="calendar-week-item no_shrink">
<view class="calendar-week">{{ item }}</view>
</view>
<view v-for="(item, index) in sliceWeekArr" :key="index" class="calendar-item no_shrink"
v-if="!isShowAllDay">
<view class="calendar-day flex flex_center_center" ref="calendarDay" @click="calendarActive(item)"
v-show="item">
<view class=""
:class="{ 'calendar-active': activeDay === item.day ,'calendar-leave':isLeave(item),'calendar-leave2':isLeave2(item)}">
{{ item.day }}
</view>
</view>
<view class="isToday" v-if="item.isToday === 1">今天</view>
<view class="haveCourse" v-if="getHaveCourse(item)"></view>
</view>
<view v-for="(item, index) in calendar" :key="index" class="calendar-item no_shrink" v-if="isShowAllDay">
<view class="calendar-day flex flex_center_center" ref="calendarDay"
@click="calendarActive(item), sliceWeek(item)" v-show="item">
<view class=""
:class="{ 'calendar-active': activeDay === item.day,'calendar-leave':isLeave(item),'calendar-leave2':isLeave2(item) }">
{{ item.day }}
</view>
</view>
<view class="isToday" v-if="item.isToday === 1">今天</view>
<view class="haveCourse" v-if="getHaveCourse(item)"></view>
</view>
<view class="openorclose flex flex_center_center">
<van-divider
contentPosition="center"
style="width: 90%"
v-if="isShowAllDay"
>
<van-icon name="arrow-up" size="40rpx" color="#0000ff" @click="changeCalendar"/>
</van-divider>
<van-divider
contentPosition="center"
style="width: 90%"
v-if="!isShowAllDay"
>
<van-icon name="arrow-down" size="40rpx" color="#0000ff" @click="changeCalendar"/>
</van-divider>
</view>
</view>
<view class="Timetable-box">
<view class="flex flex_center_center" v-if="loading">
<van-loading size="48rpx" type="spinner">加载中...</van-loading>
<view class="openorclose flex flex_center_center">
<van-divider contentPosition="center" style="width: 90%" v-if="isShowAllDay">
<van-icon name="arrow-up" size="40rpx" color="#0000ff" @click="changeCalendar" />
</van-divider>
<van-divider contentPosition="center" style="width: 90%" v-if="!isShowAllDay">
<van-icon name="arrow-down" size="40rpx" color="#0000ff" @click="changeCalendar" />
</van-divider>
</view>
</view>
<view class="Timetable-box">
<view class="flex flex_center_center" v-if="loading">
<van-loading size="48rpx" type="spinner">加载中...</van-loading>
</view>
<van-empty description="暂无课程" v-if="dataList.length === 0" />
<view v-for="(item, index) in dataList" :key="index" v-if="dataList.length > 0">
<Item :data="item"/>
</view>
</view>
<van-empty description="暂无课程" v-if="dataList.length === 0" />
<view
v-for="(item, index) in dataList"
:key="index"
v-if="dataList.length > 0"
>
<Item :data="item" />
</view>
</view>
<van-toast id="van-toast" />
</view>
<van-toast id="van-toast" />
</view>
</template>
<script>
import Item from "./timeTable-item.vue";
import {
ref,
reactive,
toRefs,
toRef,
getCurrentInstance,
watch,
computed,
onMounted,
nextTick,
} from "vue";
import { getWeek, getToday } from "../../utils/date.js";
import { getStundentPlanStatistical } from "../../api/index";
export default {
name: "",
props: {},
components: { Item },
setup(props) {
let weekArr = ["日", "一", "二", "三", "四", "五", "六"];
//年月选择
let currentDate = ref(0);
currentDate.value = getToday("y", "m");
let getCurrentDate = ref(0);
getCurrentDate.value = new Date().getTime();
//弹出层
let showPopup = ref(false);
let showdatetime = () => {
showPopup.value = true;
};
let onClose = () => {
showPopup.value = false;
};
//选择月份
let onConfirm = (val) => {
showPopup.value = false;
isShowAllDay.value = true;
activeDay.value = 1;
let curdate = new Date(val.detail);
getCurrentDate.value = val.detail;
let year= curdate.getFullYear();
let month=curdate.getMonth() < 9 ? "0" + (curdate.getMonth() + 1) : curdate.getMonth() + 1
currentDate.value =year +"-" +month
getcalendar(curdate.getFullYear(), curdate.getMonth() + 1);
let newArr = calendar.value.slice(emptyArr.length, calendar.value.length);
sliceWeek(newArr[0]);
data.msg.StartTime = currentDate.value + "-01";
data.msg.EndTime = currentDate.value + "-01";
that.getData();
let maxDay= new Date(year,month,"0").getDate();
data.msg.EndTime = currentDate.value + '-' +maxDay;
that.getAllData()
};
//获取当月日历数组
let calendar = ref([]);
//默认选中
let activeDay = ref(1);
//切换选中日期
let calendarActive = (item) => {
let d = item.$orig?.day||item.day
activeDay.value = d ;
let day = d < 10 ? "0" + d : d;
data.msg.StartTime = currentDate.value + "-" + day;
data.msg.EndTime = currentDate.value + "-" + day;
that.getData();
};
let emptyArr = []; //日历补空
let getcalendar = (y, m) => {
calendar.value = getWeek(y, m);
emptyArr.length = calendar.value[0].week;
if (calendar.value[0].week > 0) {
emptyArr.fill({ week: "", day: "" });
calendar.value.unshift(...emptyArr);
}
};
//截取最近一周
let isShowAllDay = ref(false);
let sliceWeekArr = ref([]);
let sliceWeek = (item) => {
let w =item.$orig?.week||item.week
let d =item.$orig?.day||item.day
let newArr = calendar.value.slice(emptyArr.length, calendar.value.length);
let s = d - (w + 1) <= 0 ? 0 : d - (w + 1);
let e = d + (6 - w);
sliceWeekArr.value = newArr.slice(s, e);
if (s === 0) {
sliceWeekArr.value.unshift(...emptyArr);
}
};
//切换日历展示模式
let changeCalendar = () => {
isShowAllDay.value = !isShowAllDay.value;
};
//-------------------上边日历部分---------------------------------------
let data = reactive({
msg: {
ClassId: 0,
StartTime: "",
EndTime: "",
},
statusBarHeight: 0,
dataList: [],
allData:[],
loading:false,
});
let methods = {
// 获取当天数据
async getData() {
data.loading=true
let res = await getStundentPlanStatistical(data.msg);
data.loading=false
if (res) {
data.dataList = res.Data;
}
},
//获取当月数据
async getAllData() {
let res = await getStundentPlanStatistical(data.msg);
if (res) {
data.allData = res.Data;
}
},
jumpPage(url) {
uni.navigateTo({
url: url,
});
},
back() {
uni.navigateBack();
},
getHaveCourse(item){
let date=currentDate.value+'-'+(item.day<10?'0'+item.day:item.day)
let res = false
let find= data.allData.find((e)=>{
return e.ClassDateStr===date
})
if(find){
res=true
}
return res
},
// 请假
isLeave(item){
let date=currentDate.value+'-'+(item.day<10?'0'+item.day:item.day)
let res = false
let find= data.allData.find((e)=>{
return e.ClassDateStr===date
})
if(find){
let res1= find.PlanTimeList.some(e=>{
return e.IsLeave === 1 && e.IsCheck == 2
})
if(res1){
res=true
}
}
return res
},
// 缺勤
isLeave2(item){
let date=currentDate.value+'-'+(item.day<10?'0'+item.day:item.day)
let res = false
let find= data.allData.find((e)=>{
return e.ClassDateStr===date
})
if(find){
let res1= find.PlanTimeList.some(e=>{
return e.IsCheck === 1
})
if(res1){
res=true
}
}
return res
}
};
onMounted(() => {
getcalendar(new Date().getFullYear(), new Date().getMonth() + 1);
let today = calendar.value.find((e) => {
return e.isToday === 1;
});
if (today) {
activeDay.value = today.day;
}
sliceWeek(today);
data.statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
});
let that = methods;
return {
currentDate,
getCurrentDate,
showPopup,
showdatetime,
onClose,
onConfirm,
calendar,
activeDay,
calendarActive,
weekArr,
sliceWeekArr,
sliceWeek,
isShowAllDay,
changeCalendar,
...toRefs(data),
...methods,
};
},
onLoad(options) {
const indexData=uni.getStorageSync('indexData')
// this.msg.ClassId = JSON.parse(options.classId);
this.msg.ClassId = indexData.ClassId
this.msg.StartTime = getToday();
this.msg.EndTime = getToday();
if(this.$isLogin()){
this.getAllData()
this.getData();
}
},
};
import Item from "./timeTable-item.vue";
import {
ref,
reactive,
toRefs,
toRef,
getCurrentInstance,
watch,
computed,
onMounted,
nextTick,
} from "vue";
import {
getWeek,
getToday,
getMonthMaxDay,
} from "../../utils/date.js";
import {
getStundentPlanStatistical
} from "../../api/index";
export default {
name: "",
props: {},
components: {
Item
},
setup(props) {
let weekArr = ["日", "一", "二", "三", "四", "五", "六"];
//年月选择
let currentDate = ref(0);
currentDate.value = getToday("y", "m");
let getCurrentDate = ref(0);
getCurrentDate.value = new Date().getTime();
//弹出层
let showPopup = ref(false);
let showdatetime = () => {
showPopup.value = true;
};
let onClose = () => {
showPopup.value = false;
};
//选择月份
let onConfirm = (val) => {
showPopup.value = false;
isShowAllDay.value = true;
activeDay.value = 1;
let curdate = new Date(val.detail);
getCurrentDate.value = val.detail;
let year = curdate.getFullYear();
let month = curdate.getMonth() < 9 ? "0" + (curdate.getMonth() + 1) : curdate.getMonth() + 1
currentDate.value = year + "-" + month
getcalendar(curdate.getFullYear(), curdate.getMonth() + 1);
let newArr = calendar.value.slice(emptyArr.length, calendar.value.length);
sliceWeek(newArr[0]);
data.msg.EndTime = currentDate.value + '-' + getMonthMaxDay(year, month);
that.getData()
that.getAllData()
};
//获取当月日历数组
let calendar = ref([]);
//默认选中
let activeDay = ref(1);
//切换选中日期
let calendarActive = (item) => {
let d = item.$orig?.day || item.day
activeDay.value = d;
let day = d < 10 ? "0" + d : d;
data.msg.StartTime = currentDate.value + "-" + day;
data.msg.EndTime = currentDate.value + "-" + day;
that.getData();
};
let emptyArr = []; //日历补空
let getcalendar = (y, m) => {
calendar.value = getWeek(y, m);
emptyArr.length = calendar.value[0].week;
if (calendar.value[0].week > 0) {
emptyArr.fill({
week: "",
day: ""
});
calendar.value.unshift(...emptyArr);
}
};
//截取最近一周
let isShowAllDay = ref(false);
let sliceWeekArr = ref([]);
let sliceWeek = (item) => {
let w = item.$orig?.week || item.week
let d = item.$orig?.day || item.day
let newArr = calendar.value.slice(emptyArr.length, calendar.value.length);
let s = d - (w + 1) <= 0 ? 0 : d - (w + 1);
let e = d + (6 - w);
sliceWeekArr.value = newArr.slice(s, e);
if (s === 0) {
sliceWeekArr.value.unshift(...emptyArr);
}
};
//切换日历展示模式
let changeCalendar = () => {
isShowAllDay.value = !isShowAllDay.value;
};
//-------------------上边日历部分---------------------------------------
let data = reactive({
msg: {
ClassId: 0,
StartTime: "",
EndTime: "",
},
statusBarHeight: 0,
dataList: [],
allData: [],
loading: false,
});
let methods = {
// 获取当天数据
async getData() {
data.loading = true
let res = await getStundentPlanStatistical(data.msg);
data.loading = false
if (res) {
data.dataList = res.Data;
}
},
//获取当月数据
async getAllData() {
let res = await getStundentPlanStatistical(data.msg);
if (res) {
data.allData = res.Data;
}
},
jumpPage(url) {
uni.navigateTo({
url: url,
});
},
back() {
uni.navigateBack();
},
getHaveCourse(item) {
let date = currentDate.value + '-' + (item.day < 10 ? '0' + item.day : item.day)
let res = false
let find = data.allData.find((e) => {
return e.ClassDateStr === date
})
if (find) {
res = true
}
return res
},
// 请假
isLeave(item) {
let date = currentDate.value + '-' + (item.day < 10 ? '0' + item.day : item.day)
let res = false
let find = data.allData.find((e) => {
return e.ClassDateStr === date
})
if (find) {
let res1 = find.PlanTimeList.some(e => {
return e.IsLeave === 1 && e.IsCheck == 2
})
if (res1) {
res = true
}
}
return res
},
// 缺勤
isLeave2(item) {
let date = currentDate.value + '-' + (item.day < 10 ? '0' + item.day : item.day)
let res = false
let find = data.allData.find((e) => {
return e.ClassDateStr === date
})
if (find) {
let res1 = find.PlanTimeList.some(e => {
return e.IsCheck === 1
})
if (res1) {
res = true
}
}
return res
}
};
onMounted(() => {
getcalendar(new Date().getFullYear(), new Date().getMonth() + 1);
let today = calendar.value.find((e) => {
return e.isToday === 1;
});
if (today) {
activeDay.value = today.day;
}
sliceWeek(today);
data.statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
});
let that = methods;
return {
currentDate,
getCurrentDate,
showPopup,
showdatetime,
onClose,
onConfirm,
calendar,
activeDay,
calendarActive,
weekArr,
sliceWeekArr,
sliceWeek,
isShowAllDay,
changeCalendar,
...toRefs(data),
...methods,
};
},
onShow() {
const indexData = uni.getStorageSync('indexData')
this.msg.ClassId = indexData.ClassId
this.msg.StartTime = getToday('y', 'm') + '-01';
this.msg.EndTime = getToday('y', 'm') + '-'+ getMonthMaxDay();
if (this.$isLogin()) {
this.getData()
this.getAllData()
}
},
};
</script>
<style scoped>
.chooseDate {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #111111;
}
.chooseDate {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #111111;
}
.calendar {
width: 690rpx;
/* height: 120rpx; */
background-color: #f5f6f7;
border-radius: 20rpx;
margin: 0 auto;
/* overflow-x: auto; */
margin-bottom: 38rpx;
}
.calendar-week-item {
width: 98.5rpx;
height: 60rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #111111;
text-align: center;
}
.calendar-item {
width: 98.5rpx;
height: 80rpx;
text-align: center;
position: relative;
}
.calendar-week {
height: 60rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
line-height: 58rpx;
color: #999999;
}
.calendar {
width: 690rpx;
/* height: 120rpx; */
background-color: #f5f6f7;
border-radius: 20rpx;
margin: 0 auto;
/* overflow-x: auto; */
margin-bottom: 38rpx;
}
.calendar-day {
/* height: 50rpx; */
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
line-height: 48rpx;
color: #111111;
.calendar-week-item {
width: 98.5rpx;
height: 60rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #111111;
text-align: center;
}
}
.calendar-item {
width: 98.5rpx;
height: 80rpx;
text-align: center;
position: relative;
}
.isToday {
font-size: 18rpx;
font-family: PingFang SC;
font-weight: 500;
color: #999999;
}
.calendar-week {
height: 60rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
line-height: 58rpx;
color: #999999;
}
.calendar-active {
width: 50rpx;
height: 50rpx;
background-color: rgba(0, 0, 255, 0.9) !important;
border-radius: 50%;
color: #FFFFFF !important;
}
.calendar-day {
/* height: 50rpx; */
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
line-height: 48rpx;
color: #111111;
}
.calendar-leave {
width: 50rpx;
height: 50rpx;
background-color: #E6A23C;
border-radius: 50%;
}
.calendar-leave2 {
width: 50rpx;
height: 50rpx;
background-color: #F56C6C;
border-radius: 50%;
}
.isToday {
font-size: 18rpx;
font-family: PingFang SC;
font-weight: 500;
color: #999999;
}
.calendar .openorclose {
margin-bottom: 17rpx;
width: 100%;
}
.calendar-active {
width: 50rpx;
height: 50rpx;
background-color: rgba(0, 0, 255, 0.9) !important;
border-radius: 50%;
color:#FFFFFF !important;
}
.calendar-leave {
width: 50rpx;
height: 50rpx;
background-color:#E6A23C;
border-radius: 50%;
}
.calendar-leave2 {
width: 50rpx;
height: 50rpx;
background-color:#F56C6C;
border-radius: 50%;
}
.calendar .openorclose {
margin-bottom: 17rpx;
width: 100%;
}
.Timetable-box {
box-sizing: border-box;
/* padding-left: 30rpx;
.Timetable-box {
box-sizing: border-box;
/* padding-left: 30rpx;
text-align: center; */
}
}
/deep/.navTitle {
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 800;
color: #111111;
}
/deep/.navTitle {
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 800;
color: #111111;
}
/deep/.van-divider {
margin: 0 auto;
}
.haveCourse{
width: 10rpx;
height: 10rpx;
border-radius: 50%;
background-color: #FF0000;
position: absolute;
top: 10rpx;
right: 10rpx;
}
/deep/.van-divider {
margin: 0 auto;
}
.haveCourse {
width: 10rpx;
height: 10rpx;
border-radius: 50%;
background-color: #FF0000;
position: absolute;
top: 10rpx;
right: 10rpx;
}
</style>
<template>
<view class="word">
<swiper class="swiper" next-margin="60rpx" @change="swiperChange" :current="current">
<van-skeleton title row="10" v-if="loading" />
<van-empty description="暂无数据" v-if="nodata"/>
<swiper class="swiper" next-margin="60rpx" @change="swiperChange" :current="current" v-if="!loading&&!nodata">
<swiper-item v-for="(item,index) in StudyList" v-if="Type==2" :key="index" class="swiper-item">
<Pronunciation :item="item" :cur="index+1" :total="StudyList.length"></Pronunciation>
</swiper-item>
......@@ -57,14 +59,24 @@
},
Type:1, //1复习 2 单词
TotalHours:0,
CourseName:''
CourseName:'',
loading: false,
nodata: false,
})
let methods = {
getData() {
data.loading=true
proxy.$request('/AppletWords/GetStudyWords', data.msg).then(res => {
data.loading=false
data.StudyList = res.Data.StudyList
data.ReviewList = res.Data.ReviewList;
data.current = 0
if (data.StudyList.length === 0 && data.ReviewList.length == 0) {
data.nodata = true
}
}).catch(err=>{
data.loading=false
data.nodata = true
})
},
swiperChange(val) {
......
......@@ -24,6 +24,16 @@ export let getWeek = (year, month) => {
return arr
}
export let getMonthMaxDay = (y, m) => {
let maxDay = 30
if(y&&m){
maxDay= new Date(y, m, "0").getDate();
}else{
const d=new Date()
maxDay= new Date( d.getFullYear(),d.getMonth()+1,0).getDate();
}
return maxDay
}
export let getToday = (y, m, d) => {
let date = new Date()
let year = date.getFullYear()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment