|
@@ -0,0 +1,114 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div class="date-picker">
|
|
|
|
|
+ <div class="date-picker-box">
|
|
|
|
|
+ <vc-date-picker
|
|
|
|
|
+ ref="Calendar"
|
|
|
|
|
+ class="calendar"
|
|
|
|
|
+ v-model="date"
|
|
|
|
|
+ :min-date='new Date()'
|
|
|
|
|
+ @transition-start="queryMoth"
|
|
|
|
|
+ @dayclick="onDayClick">
|
|
|
|
|
+ </vc-date-picker>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <span class="hide-line" @click="foldBox">^</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<script>
|
|
|
|
|
+export default {
|
|
|
|
|
+ data(){
|
|
|
|
|
+ return{
|
|
|
|
|
+ date:new Date(),
|
|
|
|
|
+ showPicker:true,
|
|
|
|
|
+ num:4,
|
|
|
|
|
+ height:null,
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ mounted() {
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+ watch:{
|
|
|
|
|
+ //
|
|
|
|
|
+ showPicker (){
|
|
|
|
|
+ let weeksBox = document.getElementsByClassName('vc-day');
|
|
|
|
|
+ let pickerBox = document.getElementsByClassName('date-picker-box')[0];
|
|
|
|
|
+ if( this.showPicker){
|
|
|
|
|
+ for(let i = 0; i < weeksBox.length;i++){
|
|
|
|
|
+ weeksBox[i].style.transform = `translate(0, 0px)`;
|
|
|
|
|
+ }
|
|
|
|
|
+ pickerBox.style.height = `${this.height}px`;
|
|
|
|
|
+ console.log('show')
|
|
|
|
|
+ }else {
|
|
|
|
|
+ this.height = pickerBox.offsetHeight;
|
|
|
|
|
+ for(let i = 0; i < weeksBox.length;i++){
|
|
|
|
|
+ weeksBox[i].style.transform = `translate(0, -${this.num * 32}px)`;
|
|
|
|
|
+ }
|
|
|
|
|
+ pickerBox.style.height = `100px`;
|
|
|
|
|
+ console.log('hide')
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ methods:{
|
|
|
|
|
+ foldBox(){
|
|
|
|
|
+ this.showPicker = !this.showPicker;
|
|
|
|
|
+ },
|
|
|
|
|
+ // 获取年、月份
|
|
|
|
|
+ queryMoth(){
|
|
|
|
|
+ let Calendar = this.$refs.Calendar;
|
|
|
|
|
+ let year = Calendar.$refs.calendar.pages[0].year;
|
|
|
|
|
+ let month = Calendar.$refs.calendar.pages[0].month;
|
|
|
|
|
+ this.$emit('Mouth',{year,month});
|
|
|
|
|
+ if(!this.showPicker) this.showPicker = true;
|
|
|
|
|
+ },
|
|
|
|
|
+ //点击日期
|
|
|
|
|
+ onDayClick(day){
|
|
|
|
|
+ let dayLine = day.classes[7].substring(5);
|
|
|
|
|
+ this.num = dayLine -1;
|
|
|
|
|
+ this.$emit('day',day.id)
|
|
|
|
|
+ },
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<style lang="scss">
|
|
|
|
|
+.date-picker {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ .calendar {
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ }
|
|
|
|
|
+ .vc-header{
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ z-index:10;
|
|
|
|
|
+ }
|
|
|
|
|
+ .vc-arrow{
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ z-index:10;
|
|
|
|
|
+ }
|
|
|
|
|
+ .vc-weeks{
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ }
|
|
|
|
|
+ .vc-weekday{
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
|
+ z-index:10;
|
|
|
|
|
+ }
|
|
|
|
|
+ .date-picker-box{
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ }
|
|
|
|
|
+ .hide-line{
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ height: 1px;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ margin-top: 30px;
|
|
|
|
|
+ background-color: red;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|