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