| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- <template>
 
- 	<view class="grace-btdialog-shade" v-if="realShow" @tap.stop="closeDialog" @touchmove.stop.prevent="stopFun" 
 
- 	:style="{backgroundColor:background, zIndex:zIndex}">
 
- 		<view :class="['dialog', 'gdIn', isIpx ? 'grace-ipx-bottom' : '', isOut ? 'gdOut' : '']" 
 
- 		:style="{width:width,left:left,borderTopLeftRadius:borderRadius,borderTopRightRadius:borderRadius}" 
 
- 		@tap.stop="stopFun">
 
- 			<view><slot name="btns"></slot></view>
 
- 			<view @tap.stop="stopFun"><slot name="content"></slot></view>
 
- 		</view>
 
- 	</view>
 
- </template>
 
- <script>
 
- export default {
 
- 	props: {
 
- 		width:{type:String,default:'750rpx'},
 
- 		left:{type:String,default:'0rpx'},
 
- 		show : {type : Boolean,default : false},
 
- 		background:{type : String,default : 'rgba(0, 0, 0, 0.5)'},
 
- 		borderRadius : {type : String,default : '0rpx'},
 
- 		zIndex:{type : Number,default : 99}
 
- 	},
 
- 	data() {
 
- 		return {
 
- 			realShow:false,
 
- 			isIpx:false,
 
- 			isOut : false
 
- 		}
 
- 	},
 
- 	watch:{
 
- 		show : function (vn, vo) {
 
- 			if(vn){
 
- 				this.realShow = vn;
 
- 			}else{
 
- 				this.isOut = true;
 
- 				setTimeout(()=>{this.realShow = false;}, 120);
 
- 				setTimeout(()=>{this.isOut = false;}, 150);
 
- 			}
 
- 		}
 
- 	},
 
- 	created : function(){
 
- 		this.realShow = this.show;
 
- 		// #ifndef APP-PLUS
 
- 		try {
 
- 		    var res = uni.getSystemInfoSync();
 
- 			res.model = res.model.replace(' ', '');
 
- 			res.model = res.model.toLowerCase();
 
- 			if(res.model.indexOf('iphonex') != -1 || res.model.indexOf('iphone11') != -1){
 
- 				this.isIpx = true;
 
- 			}
 
- 		} catch (e){return null;}
 
- 		// #endif
 
- 	},
 
- 	methods:{
 
- 		closeDialog : function(){
 
- 			this.$emit('closeDialog');
 
- 		},
 
- 		stopFun : function(){}
 
- 	}
 
- }
 
- </script>
 
- <style scoped>
 
- @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;}
 
- .grace-btdialog-shade{position:fixed; width:100%; height:100%; left:0; top:0; z-index:9; background:rgba(0, 0, 0, 0.5);}
 
- .grace-btdialog-shade .dialog{width:100%; height:auto; background:#FFFFFF; position:absolute; bottom:0; left:0;}
 
- .grace-ipx-bottom{padding-bottom:50rpx !important;}
 
- </style>
 
 
  |