123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <template>
- <view>
- <view @tap.stop="open"><slot></slot></view>
- <view class="graceDateTimeBT" v-if="show" @touchmove.stop.prevent="" @tap.self="close" :style="{backgroundColor:background}"></view>
- <view class="graceDateTimeBT-body" :class="[show?'gdIn':'gdOut']" @touchmove.stop.prevent="" :style="{paddingBottom:paddingBottom}">
- <view class="graceDateTimeBT-header grace-space-between">
- <text class="graceDateTime-header-btn"
- :style="{color:cancelTColor}" @tap="close">{{cancelText}}</text>
- <text class="graceDateTime-header-btn"
- :style="{textAlign:'right', color:confirmColor}" @tap="confirm">{{confirmText}}</text>
- </view>
- <view>
- <text class="graceDateTimeBT-text">{{titles[0]}}</text>
- </view>
- <view>
- <graceDateTimeBetweenBase :value="startValue" :isTime="isTime" @change="chang1"
- :isSecond="isSecond" :startYear="startYear" :endYear="endYear" :units="units"></graceDateTimeBetweenBase>
- </view>
- <view>
- <text class="graceDateTimeBT-text">{{titles[1]}}</text>
- </view>
- <view>
- <graceDateTimeBetweenBase :value="endValue" :isTime="isTime" @change="chang2"
- :isSecond="isSecond" :startYear="startYear" :endYear="endYear" :units="units"></graceDateTimeBetweenBase>
- </view>
- </view>
- </view>
- </template>
- <script>
- import graceDateTimeBetweenBase from "./graceDateTimeBetweenBase.vue";
- export default {
- components:{
- graceDateTimeBetweenBase
- },
- props: {
- background:{ type : String, default : 'rgba(0, 0, 0, 0.5)' },
- cancelText : { type : String, default : '取消' },
- cancelTColor : { type : String, default : '#888888' },
- confirmText : { type : String, default : '确定' },
- confirmColor : { type : String, default : '#3688FF' },
- startValue : { type : String , default:''},
- endValue : { type : String , default:''},
- isTime : {type : Boolean, default : true},
- isSecond : {type : Boolean, default : true},
- startYear : {type : Number, default : 1980},
- endYear : {type : Number, default : 2050},
- units : {type : Array , default:function(){return new Array('年','月','日','时','分','秒')}},
- titles : {type : Array , default:function(){return new Array('请选择开始时间','请选择结束时间')}},
- paddingBottom:{type : String , default:'0rpx'}
- },
- data() {
- return {
- show:false,
- indicatorStyle : 'height:35px',
- defaultVal : [0,0,0,0,0,0],
- sDate:[[],[],[],[],[],[]],
- recDate:[[],[]]
- }
- },
- methods:{
- open : function () {
- this.show = true;
- },
- close : function () {
- this.show = false;
- },
- confirm : function(){
- this.show = false;
- this.$emit('confirm', this.recDate);
- },
- chang1 : function(res){
- this.recDate[0] = res;
- },
- chang2 : function(res){
- this.recDate[1] = res;
- }
- }
- }
- </script>
- <style>
- .graceDateTimeBT{position:fixed; width:100%; height:100%; top:0; left:0; bottom:0; z-index:998;}
- .graceDateTimeBT-body{background-color:#FFFFFF; position:fixed; z-index:999; bottom:-1000px; left:0; width:100%;}
- .graceDateTimeBT-header{padding:25rpx;}
- .graceDateTimeBT-header-btn{width:200rpx; line-height:38rpx; height:38rpx; display:block; font-size:28rpx;}
- .graceDateTimeBT-text{display:block; box-sizing:border-box; padding:15rpx; background-color:#FFFFFF; width:100%; line-height:60rpx; height:100rpx; color:#666666; font-size:28rpx;}
- @keyframes gdIn{ from {bottom:-1000px; } 100% { bottom: 0px; }}
- .gdIn {animation:gdIn 200ms ease-in forwards;}
- @keyframes gdOut{ from {bottom:0px;} 100% { bottom:-1000px; }}
- .gdOut {animation:gdOut 200ms ease-out forwards;}
- </style>
|