| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | <template> | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 	<view style="position: relative;"> | 
					
						
							|  |  |  |  | 		<view v-if="type === '2'" class="verify-img-out" :style="{height: (parseInt(imgSize.height) + vSpace) + 'px'}"> | 
					
						
							|  |  |  |  | 			<view class="verify-img-panel" :style="{width: imgSize.width, | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  |                                                    height: imgSize.height,}"> | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 				<image :src="backImgBase?('data:image/png;base64,'+backImgBase):defaultImg" alt="" | 
					
						
							|  |  |  |  | 					style="width:100%;height:100%;display:block"></image> | 
					
						
							|  |  |  |  | 				<view class="verify-refresh" @click="refresh" v-show="showRefresh"> | 
					
						
							|  |  |  |  | 					<text class="iconfont icon-refresh"></text> | 
					
						
							|  |  |  |  | 				</view> | 
					
						
							|  |  |  |  | 				<transition name="tips"> | 
					
						
							|  |  |  |  | 					<text class="verify-tips" v-if="tipWords" :class="passFalg ? 'suc-bg':'err-bg'">{{tipWords}}</text> | 
					
						
							|  |  |  |  | 				</transition> | 
					
						
							|  |  |  |  | 			</view> | 
					
						
							|  |  |  |  | 		</view> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		<!-- 公共部分 --> | 
					
						
							|  |  |  |  | 		<view class="verify-bar-area" :style="{width: imgSize.width, | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  |                                               height: '40px', | 
					
						
							|  |  |  |  |                                               'line-height':'40px'}"> | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 			<text class="verify-msg" v-text="text"></text> | 
					
						
							|  |  |  |  | 			<view class="verify-left-bar" | 
					
						
							|  |  |  |  | 				:style="{width: leftBarWidth?leftBarWidth:'40px', height: '40px', 'border-color': leftBarBorderColor, transaction: transitionWidth}"> | 
					
						
							|  |  |  |  | 				<text class="verify-msg" v-text="finishText"></text> | 
					
						
							|  |  |  |  | 				<view class="verify-move-block" @touchstart="start" @touchend="end" @touchmove="move"
 | 
					
						
							|  |  |  |  | 					:style="{width:'40px', height: '40px', 'background-color': moveBlockBackgroundColor, left: moveBlockLeft, transition: transitionLeft}"> | 
					
						
							|  |  |  |  | 					<text :class="['verify-icon iconfont', iconClass]" :style="{color: iconColor}"></text> | 
					
						
							|  |  |  |  | 					<view v-if="type === '2'" class="verify-sub-block" :style="{'width':Math.floor(parseInt(imgSize.width)*47/310)+ 'px' , | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  |                                   'height': imgSize.height, | 
					
						
							|  |  |  |  |                                   'top':'-' + (parseInt(imgSize.height) + vSpace) + 'px', | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  |                                   }"> | 
					
						
							|  |  |  |  | 						<image :src="'data:image/png;base64,'+blockBackImgBase" alt="" | 
					
						
							|  |  |  |  | 							style="width:100%;height:100%;display:block"></image> | 
					
						
							|  |  |  |  | 					</view> | 
					
						
							|  |  |  |  | 				</view> | 
					
						
							|  |  |  |  | 			</view> | 
					
						
							|  |  |  |  | 		</view> | 
					
						
							|  |  |  |  | 	</view> | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | </template> | 
					
						
							|  |  |  |  | <script> | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 	/** | 
					
						
							|  |  |  |  | 	 * VerifySlide | 
					
						
							|  |  |  |  | 	 * @description 滑块 | 
					
						
							|  |  |  |  | 	 * */ | 
					
						
							|  |  |  |  | 	import { | 
					
						
							|  |  |  |  | 		aesEncrypt | 
					
						
							|  |  |  |  | 	} from "./../utils/ase.js" | 
					
						
							|  |  |  |  | 	import { | 
					
						
							|  |  |  |  | 		myRequest | 
					
						
							|  |  |  |  | 	} from "../utils/request.js" | 
					
						
							|  |  |  |  | 	export default { | 
					
						
							|  |  |  |  | 		name: 'VerifySlide', | 
					
						
							|  |  |  |  | 		props: { | 
					
						
							|  |  |  |  | 			captchaType: { | 
					
						
							|  |  |  |  | 				type: String, | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 			type: { | 
					
						
							|  |  |  |  | 				type: String, | 
					
						
							|  |  |  |  | 				default: '1' | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 			//弹出式pop,固定fixed
 | 
					
						
							|  |  |  |  | 			mode: { | 
					
						
							|  |  |  |  | 				type: String, | 
					
						
							|  |  |  |  | 				default: 'fixed' | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 			vSpace: { | 
					
						
							|  |  |  |  | 				type: Number, | 
					
						
							|  |  |  |  | 				default: 5 | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 			explain: { | 
					
						
							|  |  |  |  | 				type: String, | 
					
						
							|  |  |  |  | 				default: '向右滑动完成验证' | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 			imgSize: { | 
					
						
							|  |  |  |  | 				type: Object, | 
					
						
							|  |  |  |  | 				default () { | 
					
						
							|  |  |  |  | 					return { | 
					
						
							|  |  |  |  | 						width: '310px', | 
					
						
							|  |  |  |  | 						height: '155px' | 
					
						
							|  |  |  |  | 					} | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 			blockSize: { | 
					
						
							|  |  |  |  | 				type: Object, | 
					
						
							|  |  |  |  | 				default () { | 
					
						
							|  |  |  |  | 					return { | 
					
						
							|  |  |  |  | 						width: '50px', | 
					
						
							|  |  |  |  | 						height: '50px' | 
					
						
							|  |  |  |  | 					} | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 			barSize: { | 
					
						
							|  |  |  |  | 				type: Object, | 
					
						
							|  |  |  |  | 				default () { | 
					
						
							|  |  |  |  | 					return { | 
					
						
							|  |  |  |  | 						width: '100%', | 
					
						
							|  |  |  |  | 						height: '40px' | 
					
						
							|  |  |  |  | 					} | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 			}, | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 			defaultImg: { | 
					
						
							|  |  |  |  | 				type: String, | 
					
						
							|  |  |  |  | 				default: '' | 
					
						
							|  |  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 		}, | 
					
						
							|  |  |  |  | 		data() { | 
					
						
							|  |  |  |  | 			return { | 
					
						
							|  |  |  |  | 				secretKey: '', //后端返回的加密秘钥 字段
 | 
					
						
							|  |  |  |  | 				passFalg: false, //请求通过与否
 | 
					
						
							|  |  |  |  | 				backImgBase: '', //验证码背景图片
 | 
					
						
							|  |  |  |  | 				blockBackImgBase: '', //验证滑块的背景图片
 | 
					
						
							|  |  |  |  | 				backToken: "", //后端返回的唯一token值
 | 
					
						
							|  |  |  |  | 				startMoveTime: "", //移动开始的时间
 | 
					
						
							|  |  |  |  | 				endMovetime: '', //移动结束的时间
 | 
					
						
							|  |  |  |  | 				tipsBackColor: '', //提示词的北京颜色
 | 
					
						
							|  |  |  |  | 				tipWords: '', | 
					
						
							|  |  |  |  | 				text: '', | 
					
						
							|  |  |  |  | 				finishText: '', | 
					
						
							|  |  |  |  | 				setSize: { | 
					
						
							|  |  |  |  | 					imgHeight: 0, | 
					
						
							|  |  |  |  | 					imgWidth: 0, | 
					
						
							|  |  |  |  | 					barHeight: 0, | 
					
						
							|  |  |  |  | 					barWidth: 0 | 
					
						
							|  |  |  |  | 				}, | 
					
						
							|  |  |  |  | 				top: 0, | 
					
						
							|  |  |  |  | 				left: 0, | 
					
						
							|  |  |  |  | 				moveBlockLeft: undefined, | 
					
						
							|  |  |  |  | 				leftBarWidth: undefined, | 
					
						
							|  |  |  |  | 				// 移动中样式
 | 
					
						
							|  |  |  |  | 				moveBlockBackgroundColor: undefined, | 
					
						
							|  |  |  |  | 				leftBarBorderColor: '#ddd', | 
					
						
							|  |  |  |  | 				iconColor: undefined, | 
					
						
							|  |  |  |  | 				iconClass: 'icon-right', | 
					
						
							|  |  |  |  | 				status: false, //鼠标状态
 | 
					
						
							|  |  |  |  | 				isEnd: false, //是够验证完成
 | 
					
						
							|  |  |  |  | 				showRefresh: true, | 
					
						
							|  |  |  |  | 				transitionLeft: '', | 
					
						
							|  |  |  |  | 				transitionWidth: '' | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 		}, | 
					
						
							|  |  |  |  | 		methods: { | 
					
						
							|  |  |  |  | 			init() { | 
					
						
							|  |  |  |  | 				this.text = this.explain | 
					
						
							|  |  |  |  | 				this.getPictrue(); | 
					
						
							|  |  |  |  | 				this.$nextTick(() => { | 
					
						
							|  |  |  |  | 					this.$parent.$emit('ready', this) | 
					
						
							|  |  |  |  | 				}) | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 			//鼠标按下
 | 
					
						
							|  |  |  |  | 			start: function(e) { | 
					
						
							|  |  |  |  | 				this.startMoveTime = new Date().getTime(); //开始滑动的时间
 | 
					
						
							|  |  |  |  | 				if (this.isEnd == false) { | 
					
						
							|  |  |  |  | 					this.text = '' | 
					
						
							|  |  |  |  | 					this.moveBlockBackgroundColor = '#337ab7' | 
					
						
							|  |  |  |  | 					this.leftBarBorderColor = '#337AB7' | 
					
						
							|  |  |  |  | 					this.iconColor = '#fff' | 
					
						
							|  |  |  |  | 					e.stopPropagation(); | 
					
						
							|  |  |  |  | 					this.status = true; | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 			//鼠标移动
 | 
					
						
							|  |  |  |  | 			move: function(e) { | 
					
						
							|  |  |  |  | 				var query = uni.createSelectorQuery().in(this); | 
					
						
							|  |  |  |  | 				this.barArea = query.select('.verify-bar-area') | 
					
						
							|  |  |  |  | 				var bar_area_left, barArea_offsetWidth; | 
					
						
							|  |  |  |  | 				this.barArea.boundingClientRect(data => { | 
					
						
							|  |  |  |  | 					bar_area_left = Math.ceil(data.left) | 
					
						
							|  |  |  |  | 					barArea_offsetWidth = Math.ceil(data.width) | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 					if (this.status && this.isEnd == false) { | 
					
						
							|  |  |  |  | 						if (!e.touches) { //兼容移动端
 | 
					
						
							|  |  |  |  | 							var x = Math.ceil(e.clientX); | 
					
						
							|  |  |  |  | 						} else { //兼容PC端
 | 
					
						
							|  |  |  |  | 							var x = Math.ceil(e.touches[0].pageX); | 
					
						
							|  |  |  |  | 						} | 
					
						
							|  |  |  |  | 						// var bar_area_left = this.getLeft(this.barArea);
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 						var move_block_left = x - bar_area_left //小方块相对于父元素的left值
 | 
					
						
							|  |  |  |  | 						if (this.type !== '1') { //图片滑动
 | 
					
						
							|  |  |  |  | 							if (move_block_left >= barArea_offsetWidth - parseInt(parseInt(this.blockSize | 
					
						
							|  |  |  |  | 									.width) / 2) - 2) { | 
					
						
							|  |  |  |  | 								move_block_left = barArea_offsetWidth - parseInt(parseInt(this.blockSize | 
					
						
							|  |  |  |  | 									.width) / 2) - 2; | 
					
						
							|  |  |  |  | 							} | 
					
						
							|  |  |  |  | 						} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 						if (move_block_left <= 0) { | 
					
						
							|  |  |  |  | 							move_block_left = parseInt(parseInt(this.blockSize.width) / 2); | 
					
						
							|  |  |  |  | 						} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 						//拖动后小方块的left值
 | 
					
						
							|  |  |  |  | 						this.moveBlockLeft = (move_block_left - parseInt(parseInt(this.blockSize.width) / 2)) + | 
					
						
							|  |  |  |  | 							"px" | 
					
						
							|  |  |  |  | 						this.leftBarWidth = (move_block_left - parseInt(parseInt(this.blockSize.width) / 2)) + | 
					
						
							|  |  |  |  | 							"px" | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 					} | 
					
						
							|  |  |  |  | 				}).exec(); | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 			//鼠标松开
 | 
					
						
							|  |  |  |  | 			end: function() { | 
					
						
							|  |  |  |  | 				this.endMovetime = new Date().getTime(); | 
					
						
							|  |  |  |  | 				var _this = this; | 
					
						
							|  |  |  |  | 				//                判断是否重合
 | 
					
						
							|  |  |  |  | 				if (this.status && this.isEnd == false) { | 
					
						
							|  |  |  |  | 					if (this.type !== '1') { //图片滑动
 | 
					
						
							|  |  |  |  | 						var moveLeftDistance = parseInt((this.moveBlockLeft || '').replace('px', '')); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 						moveLeftDistance = moveLeftDistance * 310 / parseInt(this.imgSize.width) | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 						var captchaVerification = this.secretKey ? aesEncrypt(this.backToken + '---' + JSON.stringify({ | 
					
						
							|  |  |  |  | 							x: moveLeftDistance, | 
					
						
							|  |  |  |  | 							y: 5.0 | 
					
						
							|  |  |  |  | 						}), this.secretKey) : this.backToken + '---' + JSON.stringify({ | 
					
						
							|  |  |  |  | 							x: moveLeftDistance, | 
					
						
							|  |  |  |  | 							y: 5.0 | 
					
						
							|  |  |  |  | 						}) | 
					
						
							|  |  |  |  | 						let data = { | 
					
						
							|  |  |  |  | 							captchaType: this.captchaType, | 
					
						
							|  |  |  |  | 							"pointJson": this.secretKey ? aesEncrypt(JSON.stringify({ | 
					
						
							|  |  |  |  | 								x: moveLeftDistance, | 
					
						
							|  |  |  |  | 								y: 5.0 | 
					
						
							|  |  |  |  | 							}), this.secretKey) : JSON.stringify({ | 
					
						
							|  |  |  |  | 								x: moveLeftDistance, | 
					
						
							|  |  |  |  | 								y: 5.0 | 
					
						
							|  |  |  |  | 							}), | 
					
						
							|  |  |  |  | 							"token": this.backToken | 
					
						
							|  |  |  |  | 						} | 
					
						
							|  |  |  |  | 						myRequest({ | 
					
						
							| 
									
										
										
										
											2022-11-11 20:02:11 +08:00
										 |  |  |  | 							// url: `/captcha/check`,
 | 
					
						
							| 
									
										
										
										
											2022-11-11 20:47:45 +08:00
										 |  |  |  |               url: '/admin-api/system/captcha/check', // 使用项目自定义的 /admin-api/ 前缀
 | 
					
						
							| 
									
										
										
										
											2022-11-11 20:02:11 +08:00
										 |  |  |  |               data, | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 							method: "POST", | 
					
						
							|  |  |  |  | 						}).then((result) => { | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 							let res = result.data | 
					
						
							|  |  |  |  | 							if (res.repCode == "0000") { | 
					
						
							|  |  |  |  | 								this.moveBlockBackgroundColor = '#5cb85c' | 
					
						
							|  |  |  |  | 								this.leftBarBorderColor = '#5cb85c' | 
					
						
							|  |  |  |  | 								this.iconColor = '#fff' | 
					
						
							|  |  |  |  | 								this.iconClass = 'icon-check' | 
					
						
							|  |  |  |  | 								this.showRefresh = true | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 								this.isEnd = true; | 
					
						
							|  |  |  |  | 								setTimeout(() => { | 
					
						
							|  |  |  |  | 									if (this.mode == 'pop') { | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 										this.$parent.clickShow = false; | 
					
						
							|  |  |  |  | 									} | 
					
						
							|  |  |  |  | 									this.refresh(); | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 								}, 1500) | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 								this.passFalg = true | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 								this.tipWords = | 
					
						
							|  |  |  |  | 									`${((this.endMovetime-this.startMoveTime)/1000).toFixed(2)}s验证成功` | 
					
						
							|  |  |  |  | 								setTimeout(() => { | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 									this.tipWords = "" | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 									this.$emit('success', { | 
					
						
							|  |  |  |  | 										captchaVerification | 
					
						
							|  |  |  |  | 									}) | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 									// this.$parent.$emit('success', {captchaVerification})
 | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 								}, 1000) | 
					
						
							|  |  |  |  | 							} else { | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 								this.moveBlockBackgroundColor = '#d9534f' | 
					
						
							|  |  |  |  | 								this.leftBarBorderColor = '#d9534f' | 
					
						
							|  |  |  |  | 								this.iconColor = '#fff' | 
					
						
							|  |  |  |  | 								this.iconClass = 'icon-close' | 
					
						
							|  |  |  |  | 								this.passFalg = false | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 								setTimeout(() => { | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 									this.refresh(); | 
					
						
							|  |  |  |  | 								}, 1000); | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 								this.$parent.$emit('error', this) | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 								this.tipWords = "验证失败" | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 								setTimeout(() => { | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 									this.tipWords = "" | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 								}, 1000) | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 							} | 
					
						
							|  |  |  |  | 						}) | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 					} | 
					
						
							|  |  |  |  | 					this.status = false; | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 			refresh: function() { | 
					
						
							|  |  |  |  | 				this.showRefresh = true | 
					
						
							|  |  |  |  | 				this.finishText = '' | 
					
						
							|  |  |  |  | 				this.transitionLeft = 'left .3s' | 
					
						
							|  |  |  |  | 				this.moveBlockLeft = 0 | 
					
						
							|  |  |  |  | 				this.leftBarWidth = false | 
					
						
							|  |  |  |  | 				this.transitionWidth = 'width .3s' | 
					
						
							|  |  |  |  | 				this.leftBarBorderColor = '#ddd' | 
					
						
							|  |  |  |  | 				this.moveBlockBackgroundColor = '#fff' | 
					
						
							|  |  |  |  | 				this.iconColor = '#000' | 
					
						
							|  |  |  |  | 				this.iconClass = 'icon-right' | 
					
						
							|  |  |  |  | 				this.getPictrue() | 
					
						
							|  |  |  |  | 				this.isEnd = false | 
					
						
							|  |  |  |  | 				setTimeout(() => { | 
					
						
							|  |  |  |  | 					this.transitionWidth = '' | 
					
						
							|  |  |  |  | 					this.transitionLeft = '' | 
					
						
							|  |  |  |  | 					this.text = this.explain | 
					
						
							|  |  |  |  | 				}, 300) | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 			//获取left值
 | 
					
						
							|  |  |  |  | 			getLeft: function(node) { | 
					
						
							|  |  |  |  | 				let leftValue = 0; | 
					
						
							|  |  |  |  | 				while (node) { | 
					
						
							|  |  |  |  | 					leftValue += node.offsetLeft; | 
					
						
							|  |  |  |  | 					node = node.offsetParent; | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 				let finalvalue = leftValue; | 
					
						
							|  |  |  |  | 				return finalvalue; | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 			// 请求背景图片和验证图片
 | 
					
						
							|  |  |  |  | 			getPictrue() { | 
					
						
							|  |  |  |  | 				let data = { | 
					
						
							|  |  |  |  | 					captchaType: this.captchaType, | 
					
						
							|  |  |  |  | 					clientUid: uni.getStorageSync('slider'), | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | 					ts: Date.now(), // 现在的时间戳
 | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 				} | 
					
						
							|  |  |  |  | 				myRequest({ | 
					
						
							| 
									
										
										
										
											2022-11-11 20:02:11 +08:00
										 |  |  |  | 					// url: '/captcha/get', //仅为示例,并非真实接口地址。
 | 
					
						
							| 
									
										
										
										
											2022-11-11 20:47:45 +08:00
										 |  |  |  | 					url: '/admin-api/system/captcha/get', // 使用项目自定义的 /admin-api/ 前缀
 | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 					data, | 
					
						
							|  |  |  |  | 					method: "POST", | 
					
						
							|  |  |  |  | 				}).then((result) => { | 
					
						
							|  |  |  |  | 					let res = result.data | 
					
						
							|  |  |  |  | 					if (res.repCode == "0000") { | 
					
						
							|  |  |  |  | 						this.backImgBase = res.repData.originalImageBase64 | 
					
						
							|  |  |  |  | 						this.blockBackImgBase = res.repData.jigsawImageBase64 | 
					
						
							|  |  |  |  | 						this.backToken = res.repData.token | 
					
						
							|  |  |  |  | 						this.secretKey = res.repData.secretKey | 
					
						
							|  |  |  |  | 					} | 
					
						
							|  |  |  |  | 					// 判断接口请求次数是否失效
 | 
					
						
							|  |  |  |  | 					if (res.repCode == '6201') { | 
					
						
							|  |  |  |  | 						this.backImgBase = null | 
					
						
							|  |  |  |  | 						this.blockBackImgBase = null | 
					
						
							|  |  |  |  | 					} | 
					
						
							|  |  |  |  | 				}) | 
					
						
							|  |  |  |  | 			}, | 
					
						
							|  |  |  |  | 		}, | 
					
						
							|  |  |  |  | 		watch: { | 
					
						
							|  |  |  |  | 			// type变化则全面刷新
 | 
					
						
							|  |  |  |  | 			type: { | 
					
						
							|  |  |  |  | 				immediate: true, | 
					
						
							|  |  |  |  | 				handler() { | 
					
						
							|  |  |  |  | 					this.init() | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 		}, | 
					
						
							|  |  |  |  | 		mounted() {}, | 
					
						
							|  |  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | </script> | 
					
						
							|  |  |  |  | <style scoped> | 
					
						
							| 
									
										
										
										
											2022-08-06 00:59:24 +08:00
										 |  |  |  | 	.verifybox { | 
					
						
							|  |  |  |  | 		position: relative; | 
					
						
							|  |  |  |  | 		box-sizing: border-box; | 
					
						
							|  |  |  |  | 		border-radius: 2px; | 
					
						
							|  |  |  |  | 		border: 1px solid #e4e7eb; | 
					
						
							|  |  |  |  | 		background-color: #fff; | 
					
						
							|  |  |  |  | 		box-shadow: 0 0 10px rgba(0, 0, 0, .3); | 
					
						
							|  |  |  |  | 		left: 50%; | 
					
						
							|  |  |  |  | 		top: 50%; | 
					
						
							|  |  |  |  | 		transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verifybox-top { | 
					
						
							|  |  |  |  | 		padding: 0 15px; | 
					
						
							|  |  |  |  | 		height: 50px; | 
					
						
							|  |  |  |  | 		line-height: 50px; | 
					
						
							|  |  |  |  | 		text-align: left; | 
					
						
							|  |  |  |  | 		font-size: 16px; | 
					
						
							|  |  |  |  | 		color: #45494c; | 
					
						
							|  |  |  |  | 		border-bottom: 1px solid #e4e7eb; | 
					
						
							|  |  |  |  | 		box-sizing: border-box; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verifybox-bottom { | 
					
						
							|  |  |  |  | 		/* padding: 15px; */ | 
					
						
							|  |  |  |  | 		box-sizing: border-box; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verifybox-close { | 
					
						
							|  |  |  |  | 		position: absolute; | 
					
						
							|  |  |  |  | 		top: 13px; | 
					
						
							|  |  |  |  | 		right: 9px; | 
					
						
							|  |  |  |  | 		width: 24px; | 
					
						
							|  |  |  |  | 		height: 24px; | 
					
						
							|  |  |  |  | 		text-align: center; | 
					
						
							|  |  |  |  | 		cursor: pointer; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.mask { | 
					
						
							|  |  |  |  | 		position: fixed; | 
					
						
							|  |  |  |  | 		top: 0; | 
					
						
							|  |  |  |  | 		left: 0; | 
					
						
							|  |  |  |  | 		z-index: 1001; | 
					
						
							|  |  |  |  | 		width: 100%; | 
					
						
							|  |  |  |  | 		height: 100vh; | 
					
						
							|  |  |  |  | 		background: rgba(0, 0, 0, .3); | 
					
						
							|  |  |  |  | 		/* display: none; */ | 
					
						
							|  |  |  |  | 		transition: all .5s; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-tips { | 
					
						
							|  |  |  |  | 		position: absolute; | 
					
						
							|  |  |  |  | 		left: 0px; | 
					
						
							|  |  |  |  | 		bottom: 0px; | 
					
						
							|  |  |  |  | 		width: 100%; | 
					
						
							|  |  |  |  | 		height: 30px; | 
					
						
							|  |  |  |  | 		background-color: rgb(231, 27, 27, .5); | 
					
						
							|  |  |  |  | 		line-height: 30px; | 
					
						
							|  |  |  |  | 		color: #fff; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.suc-bg { | 
					
						
							|  |  |  |  | 		background-color: rgba(92, 184, 92, .5); | 
					
						
							|  |  |  |  | 		filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7f5CB85C, endcolorstr=#7f5CB85C); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.err-bg { | 
					
						
							|  |  |  |  | 		background-color: rgba(217, 83, 79, .5); | 
					
						
							|  |  |  |  | 		filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7fD9534F, endcolorstr=#7fD9534F); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.tips-enter, | 
					
						
							|  |  |  |  | 	.tips-leave-to { | 
					
						
							|  |  |  |  | 		bottom: -30px; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.tips-enter-active, | 
					
						
							|  |  |  |  | 	.tips-leave-active { | 
					
						
							|  |  |  |  | 		transition: bottom .5s; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	/* ---------------------------- */ | 
					
						
							|  |  |  |  | 	/*常规验证码*/ | 
					
						
							|  |  |  |  | 	.verify-code { | 
					
						
							|  |  |  |  | 		font-size: 20px; | 
					
						
							|  |  |  |  | 		text-align: center; | 
					
						
							|  |  |  |  | 		cursor: pointer; | 
					
						
							|  |  |  |  | 		margin-bottom: 5px; | 
					
						
							|  |  |  |  | 		border: 1px solid #ddd; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.cerify-code-panel { | 
					
						
							|  |  |  |  | 		height: 100%; | 
					
						
							|  |  |  |  | 		overflow: hidden; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-code-area { | 
					
						
							|  |  |  |  | 		float: left; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-input-area { | 
					
						
							|  |  |  |  | 		float: left; | 
					
						
							|  |  |  |  | 		width: 60%; | 
					
						
							|  |  |  |  | 		padding-right: 10px; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-change-area { | 
					
						
							|  |  |  |  | 		line-height: 30px; | 
					
						
							|  |  |  |  | 		float: left; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.varify-input-code { | 
					
						
							|  |  |  |  | 		display: inline-block; | 
					
						
							|  |  |  |  | 		width: 100%; | 
					
						
							|  |  |  |  | 		height: 25px; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-change-code { | 
					
						
							|  |  |  |  | 		color: #337AB7; | 
					
						
							|  |  |  |  | 		cursor: pointer; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-btn { | 
					
						
							|  |  |  |  | 		width: 200px; | 
					
						
							|  |  |  |  | 		height: 30px; | 
					
						
							|  |  |  |  | 		background-color: #337AB7; | 
					
						
							|  |  |  |  | 		color: #FFFFFF; | 
					
						
							|  |  |  |  | 		border: none; | 
					
						
							|  |  |  |  | 		margin-top: 10px; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	/*滑动验证码*/ | 
					
						
							|  |  |  |  | 	.verify-bar-area { | 
					
						
							|  |  |  |  | 		position: relative; | 
					
						
							|  |  |  |  | 		background: #FFFFFF; | 
					
						
							|  |  |  |  | 		text-align: center; | 
					
						
							|  |  |  |  | 		-webkit-box-sizing: content-box; | 
					
						
							|  |  |  |  | 		-moz-box-sizing: content-box; | 
					
						
							|  |  |  |  | 		box-sizing: content-box; | 
					
						
							|  |  |  |  | 		border: 1px solid #ddd; | 
					
						
							|  |  |  |  | 		-webkit-border-radius: 4px; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-bar-area .verify-move-block { | 
					
						
							|  |  |  |  | 		position: absolute; | 
					
						
							|  |  |  |  | 		top: 0px; | 
					
						
							|  |  |  |  | 		left: 0; | 
					
						
							|  |  |  |  | 		background: #fff; | 
					
						
							|  |  |  |  | 		cursor: pointer; | 
					
						
							|  |  |  |  | 		-webkit-box-sizing: content-box; | 
					
						
							|  |  |  |  | 		-moz-box-sizing: content-box; | 
					
						
							|  |  |  |  | 		box-sizing: content-box; | 
					
						
							|  |  |  |  | 		box-shadow: 0 0 2px #888888; | 
					
						
							|  |  |  |  | 		-webkit-border-radius: 1px; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-bar-area .verify-move-block:hover { | 
					
						
							|  |  |  |  | 		background-color: #337ab7; | 
					
						
							|  |  |  |  | 		color: #FFFFFF; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-bar-area .verify-left-bar { | 
					
						
							|  |  |  |  | 		position: absolute; | 
					
						
							|  |  |  |  | 		top: -1px; | 
					
						
							|  |  |  |  | 		left: -1px; | 
					
						
							|  |  |  |  | 		background: #f0fff0; | 
					
						
							|  |  |  |  | 		cursor: pointer; | 
					
						
							|  |  |  |  | 		-webkit-box-sizing: content-box; | 
					
						
							|  |  |  |  | 		-moz-box-sizing: content-box; | 
					
						
							|  |  |  |  | 		box-sizing: content-box; | 
					
						
							|  |  |  |  | 		border: 1px solid #ddd; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-img-panel { | 
					
						
							|  |  |  |  | 		margin: 0; | 
					
						
							|  |  |  |  | 		-webkit-box-sizing: content-box; | 
					
						
							|  |  |  |  | 		-moz-box-sizing: content-box; | 
					
						
							|  |  |  |  | 		box-sizing: content-box; | 
					
						
							|  |  |  |  | 		border-top: 1px solid #ddd; | 
					
						
							|  |  |  |  | 		border-bottom: 1px solid #ddd; | 
					
						
							|  |  |  |  | 		border-radius: 3px; | 
					
						
							|  |  |  |  | 		position: relative; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-img-panel .verify-refresh { | 
					
						
							|  |  |  |  | 		width: 25px; | 
					
						
							|  |  |  |  | 		height: 25px; | 
					
						
							|  |  |  |  | 		text-align: center; | 
					
						
							|  |  |  |  | 		padding: 5px; | 
					
						
							|  |  |  |  | 		cursor: pointer; | 
					
						
							|  |  |  |  | 		position: absolute; | 
					
						
							|  |  |  |  | 		top: 0; | 
					
						
							|  |  |  |  | 		right: 0; | 
					
						
							|  |  |  |  | 		z-index: 2; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-img-panel .icon-refresh { | 
					
						
							|  |  |  |  | 		font-size: 20px; | 
					
						
							|  |  |  |  | 		color: #fff; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-img-panel .verify-gap { | 
					
						
							|  |  |  |  | 		background-color: #fff; | 
					
						
							|  |  |  |  | 		position: relative; | 
					
						
							|  |  |  |  | 		z-index: 2; | 
					
						
							|  |  |  |  | 		border: 1px solid #fff; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-bar-area .verify-move-block .verify-sub-block { | 
					
						
							|  |  |  |  | 		position: absolute; | 
					
						
							|  |  |  |  | 		text-align: center; | 
					
						
							|  |  |  |  | 		z-index: 3; | 
					
						
							|  |  |  |  | 		/* border: 1px solid #fff; */ | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-bar-area .verify-move-block .verify-icon { | 
					
						
							|  |  |  |  | 		font-size: 18px; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.verify-bar-area .verify-msg { | 
					
						
							|  |  |  |  | 		z-index: 3; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	/*字体图标的css*/ | 
					
						
							|  |  |  |  | 	/*@font-face {font-family: "iconfont";*/ | 
					
						
							|  |  |  |  | 	/*src: url('../fonts/iconfont.eot?t=1508229193188'); !* IE9*!*/ | 
					
						
							|  |  |  |  | 	/*src: url('../fonts/iconfont.eot?t=1508229193188#iefix') format('embedded-opentype'), !* IE6-IE8 *!*/ | 
					
						
							|  |  |  |  | 	/*url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'),*/ | 
					
						
							|  |  |  |  | 	/*url('../fonts/iconfont.ttf?t=1508229193188') format('truetype'), !* chrome, firefox, opera, Safari, Android, iOS 4.2+*!*/ | 
					
						
							|  |  |  |  | 	/*url('../fonts/iconfont.svg?t=1508229193188#iconfont') format('svg'); !* iOS 4.1- *!*/ | 
					
						
							|  |  |  |  | 	/*}*/ | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.iconfont { | 
					
						
							|  |  |  |  | 		font-family: "iconfont" !important; | 
					
						
							|  |  |  |  | 		font-size: 16px; | 
					
						
							|  |  |  |  | 		font-style: normal; | 
					
						
							|  |  |  |  | 		-webkit-font-smoothing: antialiased; | 
					
						
							|  |  |  |  | 		-moz-osx-font-smoothing: grayscale; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.icon-check:before { | 
					
						
							|  |  |  |  | 		content: " "; | 
					
						
							|  |  |  |  | 		display: block; | 
					
						
							|  |  |  |  | 		width: 16px; | 
					
						
							|  |  |  |  | 		height: 16px; | 
					
						
							|  |  |  |  | 		position: absolute; | 
					
						
							|  |  |  |  | 		margin: auto; | 
					
						
							|  |  |  |  | 		left: 0; | 
					
						
							|  |  |  |  | 		right: 0; | 
					
						
							|  |  |  |  | 		top: 0; | 
					
						
							|  |  |  |  | 		bottom: 0; | 
					
						
							|  |  |  |  | 		z-index: 9999; | 
					
						
							|  |  |  |  | 		background-image: url("data:image/png;base64,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 | 
					
						
							|  |  |  |  | 		background-size: contain; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.icon-close:before { | 
					
						
							|  |  |  |  | 		content: " "; | 
					
						
							|  |  |  |  | 		display: block; | 
					
						
							|  |  |  |  | 		width: 16px; | 
					
						
							|  |  |  |  | 		height: 16px; | 
					
						
							|  |  |  |  | 		position: absolute; | 
					
						
							|  |  |  |  | 		margin: auto; | 
					
						
							|  |  |  |  | 		left: 0; | 
					
						
							|  |  |  |  | 		right: 0; | 
					
						
							|  |  |  |  | 		top: 0; | 
					
						
							|  |  |  |  | 		bottom: 0; | 
					
						
							|  |  |  |  | 		z-index: 9999; | 
					
						
							|  |  |  |  | 		background-image: url("data:image/png;base64,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
 | 
					
						
							|  |  |  |  | 		background-size: contain; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.icon-right:before { | 
					
						
							|  |  |  |  | 		content: " "; | 
					
						
							|  |  |  |  | 		display: block; | 
					
						
							|  |  |  |  | 		width: 16px; | 
					
						
							|  |  |  |  | 		height: 16px; | 
					
						
							|  |  |  |  | 		position: absolute; | 
					
						
							|  |  |  |  | 		margin: auto; | 
					
						
							|  |  |  |  | 		left: 0; | 
					
						
							|  |  |  |  | 		right: 0; | 
					
						
							|  |  |  |  | 		top: 0; | 
					
						
							|  |  |  |  | 		bottom: 0; | 
					
						
							|  |  |  |  | 		background-size: cover; | 
					
						
							|  |  |  |  | 		z-index: 9999; | 
					
						
							|  |  |  |  | 		background-image: url("data:image/png;base64,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
 | 
					
						
							|  |  |  |  | 		background-size: contain; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	.icon-refresh:before { | 
					
						
							|  |  |  |  | 		content: " "; | 
					
						
							|  |  |  |  | 		display: block; | 
					
						
							|  |  |  |  | 		width: 16px; | 
					
						
							|  |  |  |  | 		height: 16px; | 
					
						
							|  |  |  |  | 		position: absolute; | 
					
						
							|  |  |  |  | 		margin: auto; | 
					
						
							|  |  |  |  | 		left: 0; | 
					
						
							|  |  |  |  | 		right: 0; | 
					
						
							|  |  |  |  | 		top: 0; | 
					
						
							|  |  |  |  | 		bottom: 0; | 
					
						
							|  |  |  |  | 		z-index: 9999; | 
					
						
							|  |  |  |  | 		background-image: url("data:image/png;base64,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
 | 
					
						
							|  |  |  |  | 		background-size: contain; | 
					
						
							|  |  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2022-08-06 00:57:46 +08:00
										 |  |  |  | </style> |