| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 | <template>	<view class="pop-view" v-if='visible'>		<view class="pop-maskView" :style="{		  'background-color': maskBgColor,		  zIndex: zIndex - 1		}" @tap.stop="handleMaskTap"		 @touchmove.stop.prevent="moveHandle">		</view>								<view :class="['pop-contentView',containerVisible ? 'pop-contentView-show' : '']" :style="{zIndex: zIndex,right:marginSize,left:marginSize}"		 @touchmove.stop.prevent="moveHandle">			<text class="pop-title" v-if="isShowTitle">{{title}}</text>			<image class="pop-close" src="../../static/icons/icon_close@2x.png" v-if="isShowClose" mode="" @click="handleCancel"></image>			<slot></slot>			<text class="pop-commit" :style="{'background-color':color2}" v-if="isShowConfirm" @click="handleConfirm">确定</text>		</view>					</view></template><script>	export default {		props: {			title: String,			maskColor: {				type: String,				default: 'rgba(0, 0, 0, 0.3)'			},			zIndex: {				type: Number,				default: 999			},			maskTapHide: {				type: Boolean,				default: true			},			isShowTitle: {				type: Boolean,				default: true			},			isShowClose: {				type: Boolean,				default: true			},			isShowConfirm: {				type: Boolean,				default: true			},			isScannerOption:{				type:Boolean,				default:false			},			marginSize:{				type: String,				default: '20rpx'			}		},		data() {			return {				visible: false,				containerVisible: false,				maskBgColor: '',				selectValue: [0],				selIdx: 0,				color2:''			}		},		mounted() {			let app = getApp();			this.globalData = app.globalData;			this.color2 = this.globalData.color2;		},		methods: {			show() {				this.visible = true				setTimeout(() => {					this.maskBgColor = this.maskColor					this.containerVisible = true				}, 20)			},			hide() {				this.maskBgColor = ''				this.containerVisible = false				this.visible = false				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;		.pop-maskView {			position: fixed;			top: 0;			right: 0;			left: 0;			bottom: 0;				}		.pop-contentView {			position: fixed;			left: 20rpx;			right: 20rpx;			top: 50%;			transform: translateY(-50%);			overflow-y: scroll;			background-color: #fff;			border-radius: 20rpx;			display: flex;			flex-direction: column;			align-items: center;					.pop-title {				margin-top: 60rpx;				font-size: 32rpx;				font-family: Verdana, Verdana-Bold;				font-weight: 700;				text-align: center;				color: #333333;			}			.pop-close {				position: absolute;				top: 64rpx;				right: 30rpx;				width: 40rpx;				height: 40rpx;			}			.pop-commit {				margin-bottom: 54rpx;				width: 260rpx;				height: 84rpx;				line-height: 84rpx;				border-radius: 42rpx;				font-size: 32rpx;				font-family: Verdana, Verdana-Regular;				font-weight: 400;				text-align: center;				color: #ffffff;			}		}		.pop-contentView-show {					}	}</style>
 |