| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
							- <template name="gracePopupMenu">
 
- 	<view  class="grace-popup-mask" v-if="showIn" @tap.stop="hideMenu" @touchmove.stop.prevent=""
 
- 	:style="{backgroundColor:background}">
 
- 		<view class="grace-popup-menu" 
 
- 		:style="{top:top+'px', right:right, backgroundColor:bgColor, width:menuWidth, borderRadius:borderRadius}">
 
- 			<slot></slot>
 
- 		</view>
 
- 	</view>
 
- </template>
 
- <script>
 
- export default {
 
- 	name: "gracePopupMenu",
 
- 	props: {
 
- 		show:{
 
- 			type : Boolean,
 
- 			default : false
 
- 		},
 
- 		top:{
 
- 			type : Number,
 
- 			default : 0
 
- 		},
 
- 		bgColor:{
 
- 			type : String,
 
- 			default :'#FFFFFF'
 
- 		},
 
- 		menuWidth :{
 
- 			type : String,
 
- 			default : '258rpx'
 
- 		},
 
- 		background : {
 
- 			type : String,
 
- 			default : 'rgba(0,0,0, 0.3)'
 
- 		},
 
- 		right:{
 
- 			type : String,
 
- 			default:'0rpx'
 
- 		},
 
- 		borderRadius:{
 
- 			type : String,
 
- 			default:'0rpx'
 
- 		}
 
- 	},
 
- 	data() {
 
- 		return {
 
- 			showIn : false
 
- 		}
 
- 	},
 
- 	created:function(){
 
- 		if(this.show){this.open();}else{this.hide();}
 
- 	},
 
- 	watch:{
 
- 		show : function(val,oval){
 
- 			this.showIn = val;
 
- 		}
 
- 	},
 
- 	methods: {
 
- 		hideMenu : function() {
 
- 			this.$emit('hideMenu');
 
- 		},
 
- 		open : function(){
 
- 			this.showIn = true;
 
- 		},
 
- 		hide:function(){
 
- 			this.showIn = false;
 
- 		}
 
- 	}
 
- }
 
- </script>
 
- <style scoped>
 
- .grace-popup-menu{background-color:#FFFFFF; width:258rpx; padding:10rpx; right:0px; top:0px; position:absolute;}
 
- .grace-popup-mask{background-color:rgba(0,0,0, 0.3); width:750rpx; position:fixed; left:0; top:0; bottom:0;}
 
- </style>
 
 
  |