|  | @@ -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>
 |