| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286 | 
							- <template>
 
- 	<view class="pop-view">
 
- 		<view class="pop-maskView" :style="{
 
- 		  'background-color': maskBgColor,
 
- 		  zIndex: zIndex - 1
 
- 		}" @tap.stop="handleMaskTap"
 
- 		 @touchmove.stop.prevent="moveHandle" v-if='visible'>
 
- 		</view>
 
- 		<view class="buttons" :style="{zIndex: zIndex + 1}" v-if="type=='type1'">
 
- 			<view class="menu_btn" v-if='containerVisible && isshow1' @click="tapAction(1)">
 
- 				<text class="menu_btn_title">客户扫码到访</text>
 
- 				<image class="menu_btn_image" src="../../static/icons/icon_my_qrcode@2x.png" mode=""></image>
 
- 			</view>
 
- 			<view class="menu_btn" v-if='containerVisible && isshow2' @click="tapAction(2)">
 
- 				<text class="menu_btn_title">手动录入到访</text>
 
- 				<image class="menu_btn_image" src="../../static/icons/icon_edit_record@2x.png" mode=""></image>
 
- 			</view>
 
- 			<view class="menu_btn" v-if='containerVisible && isshow3' @click="tapAction(3)">
 
- 				<text class="menu_btn_title">隐号报备到访</text>
 
- 				<image class="menu_btn_image" src="../../static/icons/icon_saoyisao@2x.png" mode=""></image>
 
- 			</view>
 
- 			<view class="main_btn" :style="{'background-color':themeColor}" @click="tapAction(0)">
 
- 				<image class="main_btn_image" v-if='icon' :src="icon" mode=""></image>
 
- 				<text class="main_btn_title">{{title}}</text>
 
- 			</view>
 
- 		</view>
 
- 		<view class="buttons" :style="{zIndex: zIndex + 1}" v-if="type=='type2'">
 
- 			<view class="menu_btn" v-if='containerVisible && isshow1' @click="tapAction(1)">
 
- 				<text class="menu_btn_title">批量变更</text>
 
- 				<image class="menu_btn_image" src="../../static/icons/icon_genjin_piliangbiangeng@2x.png" mode=""></image>
 
- 			</view>
 
- 			<view class="menu_btn" v-if='containerVisible && isshow2' @click="tapAction(2)">
 
- 				<text class="menu_btn_title">批量回收</text>
 
- 				<image class="menu_btn_image" src="../../static/icons/icon_genjin_pilianghuishou@2x.png" mode=""></image>
 
- 			</view>
 
- 			<view class="main_btn mainBtn2" :style="{'background-color':themeColor}" @click="tapAction(0)">
 
- 				<text class="main_btn_title" >批量处理</text>
 
- 			</view>
 
- 		</view>
 
- 		
 
- 		<view class="buttons" :style="{zIndex: zIndex + 1}" v-if="type=='type3'">
 
- 			<view class="menu_btn" v-if='containerVisible && isshow1' @click="tapAction(1)">
 
- 				<text class="menu_btn_title">生成邀请图</text>
 
- 				<image class="menu_btn_image" src="../../static/icons/icon_my_qrcode@2x.png" mode=""></image>
 
- 			</view>
 
- 			<view class="menu_btn" v-if='containerVisible && isshow2' @click="tapAction(2)">
 
- 				<text class="menu_btn_title">分享二维码</text>
 
- 				<image class="menu_btn_image" src="../../static/icons/icon_edit_record@2x.png" mode=""></image>
 
- 			</view>
 
- 			<view class="main_btn" :style="{'background-color':themeColor}" @click="tapAction(0)">
 
- 				<text class="main_btn_title">{{title}}</text>
 
- 			</view>
 
- 		</view>
 
- 	</view>
 
- </template>
 
- <script>
 
- 	export default {
 
- 		props: {
 
- 			title: String,
 
- 			maskColor: {
 
- 				type: String,
 
- 				default: 'rgba(0, 0, 0, 0.3)'
 
- 			},
 
- 			zIndex: {
 
- 				type: Number,
 
- 				default: 899
 
- 			},
 
- 			maskTapHide: {
 
- 				type: Boolean,
 
- 				default: true
 
- 			},
 
- 			title: {
 
- 				type: String,
 
- 				default: '到访'
 
- 			},
 
- 			icon: {
 
- 				type: String,
 
- 				default: '../../static/icons/icon_visit_edit@2x.png',
 
- 			},
 
- 			isshow1:{
 
- 				type:Boolean,
 
- 				default:false
 
- 			},
 
- 			isshow2:{
 
- 				type:Boolean,
 
- 				default:false
 
- 			},
 
- 			isshow3:{
 
- 				type:Boolean,
 
- 				default:false
 
- 			},
 
- 			menus: {
 
- 				style: Array,
 
- 				default () {
 
- 					return [{
 
- 							title: '客户扫码到访',
 
- 							icon: '../../static/icons/icon_my_qrcode@2x.png',
 
- 							show:true
 
- 						},
 
- 						{
 
- 							title: '手动录入到访',
 
- 							icon: '../../static/icons/icon_edit_record@2x.png',
 
- 							show:true
 
- 						},
 
- 						{
 
- 							title: '隐号报备到访',
 
- 							icon: '../../static/icons/icon_saoyisao@2x.png',
 
- 							show:true
 
- 						}
 
- 					]
 
- 				}
 
- 			},
 
- 			type: {
 
- 				type: String,
 
- 				default: 'type1' 
 
- 			}
 
- 		},
 
- 		data() {
 
- 			return {
 
- 				visible: false,
 
- 				containerVisible: false,
 
- 				maskBgColor: 'rgba(0, 0, 0, 0.3)',
 
- 				selectValue: [0],
 
- 				selIdx: 0,
 
- 				themeColor: '',
 
- 			}
 
- 		},
 
- 		mounted() {
 
- 			let app = getApp();
 
- 			this.globalData = app.globalData;
 
- 			this.themeColor = this.globalData.themeColor;
 
- 		},
 
- 		methods: {
 
- 			tapAction(val) {
 
- 				// if (this.type == 'pop') {
 
- 					if (val == 0) {
 
- 						this.visible = !this.visible
 
- 					} else {
 
- 						this.visible = false
 
- 					}
 
- 					if (this.visible) {
 
- 						setTimeout(() => {
 
- 							this.maskBgColor = this.maskColor
 
- 							this.containerVisible = true
 
- 						}, 20)
 
- 					} else {
 
- 						this.maskBgColor = ''
 
- 						this.containerVisible = false
 
- 						setTimeout(() => {
 
- 							this.visible = false
 
- 						}, 200)
 
- 					}
 
- 					this.$emit('tapMenu', val)
 
- 				// }
 
- 			},
 
- 			show() {
 
- 				this.visible = true
 
- 				setTimeout(() => {
 
- 					this.maskBgColor = this.maskColor
 
- 					this.containerVisible = true
 
- 				}, 20)
 
- 			},
 
- 			hide() {
 
- 				this.maskBgColor = ''
 
- 				this.containerVisible = false
 
- 				setTimeout(() => {
 
- 					this.visible = false
 
- 				}, 200)
 
- 				this.$emit('close')
 
- 			},
 
- 			handleCancel() {
 
- 				this.hide()
 
- 			},
 
- 			handleConfirm() {
 
- 				this.hide()
 
- 				this.$emit('confirm')
 
- 			},
 
- 			handleMaskTap() {
 
- 				if (this.maskTapHide) {
 
- 					this.hide()
 
- 				}
 
- 			},
 
- 			moveHandle() {},
 
- 		}
 
- 	}
 
- </script>
 
- <style scoped lang="scss">
 
- 	.pop-view {
 
- 		position: relative;
 
- 		padding-bottom: 0;  
 
- 		padding-bottom: constant(safe-area-inset-bottom);  
 
- 		padding-bottom: env(safe-area-inset-bottom);
 
- 		box-sizing: border-box;
 
- 		.pop-maskView {
 
- 			position: fixed;
 
- 			top: 0;
 
- 			right: 0;
 
- 			left: 0;
 
- 			bottom: 0;
 
- 			transition-property: background-color;
 
- 			transition-duration: 0.3s;
 
- 		}
 
- 		.buttons {
 
- 			position: fixed;
 
- 			right: 40rpx;
 
- 			bottom: 15%;
 
- 			display: flex;
 
- 			flex-direction: column;
 
- 			align-items: flex-end;
 
- 			.menu_btn {
 
- 				margin-top: 20rpx;
 
- 				padding: 0 10rpx 0 40rpx;
 
- 				box-sizing: border-box;
 
- 				display: flex;
 
- 				height: 100rpx;
 
- 				border-radius: 50rpx;
 
- 				background: #ffffff;
 
- 				border: 4rpx solid rgba(255, 255, 255, 0.64);
 
- 				box-shadow: 0px 6px 20px 0px rgba(20, 85, 85, 0.05);
 
- 				align-items: center;
 
- 				.menu_btn_title {
 
- 					font-size: 28rpx;
 
- 					font-family: Verdana, Verdana-Regular;
 
- 					font-weight: 400;
 
- 					color: #333333;
 
- 				}
 
- 				.menu_btn_image {
 
- 					margin-left: 20rpx;
 
- 					width: 80rpx;
 
- 					height: 80rpx;
 
- 				}
 
- 			}
 
- 			.main_btn {
 
- 				margin-top: 30rpx;
 
- 				padding: 0 25rpx;
 
- 				box-sizing: border-box;
 
- 				display: flex;
 
- 				height: 100rpx;
 
- 				border: 4rpx solid rgba(255, 255, 255, 0.64);
 
- 				border-radius: 50rpx;
 
- 				align-items: center;
 
- 				.main_btn_image {
 
- 					width: 54rpx;
 
- 					height: 54rpx;
 
- 				}
 
- 				.main_btn_title {
 
- 					font-size: 32rpx;
 
- 					font-family: Verdana, Verdana-Regular;
 
- 					font-weight: 400;
 
- 					color: #ffffff;
 
- 				}
 
- 			}
 
- 				
 
- 			.mainBtn2{
 
- 				margin-top: 30rpx;
 
- 				padding: 0;
 
- 				box-sizing: border-box;
 
- 				display: flex;
 
- 				height: 100rpx;
 
- 				border: 4rpx solid rgba(255, 255, 255, 0.64);
 
- 				border-radius: 50rpx;
 
- 				align-items: center;
 
- 				width: 170rpx;
 
- 				.main_btn_title {
 
- 					width: 100%;
 
- 					font-size: 32rpx;
 
- 					font-family: Verdana, Verdana-Regular;
 
- 					font-weight: 400;
 
- 					text-align: center;
 
- 					color: #ffffff;
 
- 				}
 
- 			}
 
- 		}
 
- 	}
 
- </style>
 
 
  |