{"version":3,"file":"/pc/common/js/captcha.js.map","sources":["/pc/common/js/captcha.js"],"sourcesContent":["/**\n * Created by caixiaohua on 2021/6/22.\n * 滑动验证码组件\n * 使用方式:\n * 在html中 \n * \n \t\n \t\n * 两个参数 closeCallback 关闭回调,succCallback 滑动验证成功回调\n */\ndefine([\"ko\", \"jquery\", \"galert\"], function (ko, $, galert){\n var dragHandler;//滑块\n var dragContainer;//滑块容器\n var dragBg;//滑块滑动背景\n var maxHandlerOffset = 0;\n var puzzleReset;//刷新图片\n var puzzleTip;//滑动错误提示\n var closePuzzle;//关闭\n var puzzleVerify;//图形验证方式容器\n var slideVerify;//滑块验证方式容器\n var dragHandlerOriginX = 0;//滑块左边距离\n var isDanger = false;\n var dragDuration = 0;\n var shadeImg;//底图\n var cutImg;//切图\n var dragVerifyconfig = {\n getImgAPI: '',\n checkAPI: '',\n verifyType: 'drag'\n }\n var pageModel = function(params){\n var self = this;\n this.closeCallback = params.closeCallback;\n this.succCallback = params.succCallback;\n this.bizType = params.bizType;\n this.checkUrl = '';\n this.sessionKey = '';\n this.getCaptereAPI = function () {\n var params = {\n bizType: self.bizType || 6\n };\n $.ajax(\"/gmminf/config/getSlideCaptcha\", {\n data: params,\n noNeedBlock: true,\n success: function (res) {\n if (res.data.checkUrl) {\n self.checkUrl = res.data.checkUrl.slice(res.data.checkUrl.indexOf('/api'))\n self.sessionKey = res.data.sessionKey\n dragVerifyconfig.verifyType = 'drag';\n self.initVerifyDOM(dragVerifyconfig.verifyType == 'slide' ? slideVerify : puzzleVerify);\n self.getCaptereImg();\n }\n }\n })\n }\n //获取验证图\n this.getCaptereImg = function(){\n isDanger = false;\n var params = {};\n $.ajax(self.checkUrl, {\n data: params,\n noNeedBlock: true,\n success: function (res) {\n var code = res.code;\n var data = res.data;\n if (code == -3) {\n isDanger = true\n if (puzzleVerify.style.display != \"none\") {\n shadeImg.src = \"data:image/png;base64,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\"\n cutImg.src = \"\"\n puzzleReset.style.display = \"none\"\n }\n return;\n }\n if (!res || !data || !data.shadeImage) {\n galert(res.msg || \"网络错误,请重试\");\n self.hidePuzzle();\n self.closeCallback();\n return;\n }\n\n dragVerifyconfig.verifyType == 'drag' && self.initPuzzleImage({ shadeImage: data.shadeImage, cutoutImage: data.cutoutImage, cutPosY: data.y });\n dragVerifyconfig.verifyType == 'slide' && self.initSlideImage({ shadeImage: data.shadeImage })\n\n maxHandlerOffset = dragContainer.clientWidth - dragHandler.clientWidth;\n dragHandlerOriginX = document.getElementById(\"dragHandler\").getBoundingClientRect().left;\n\n dragVerifyconfig.verifyType == 'drag' && (dragText.textContent = \"向右拖动滑块填充拼图\");\n dragHandler.addEventListener(\"mousedown\", self.onDragHandlerMouseDown);\n }\n })\n }\n this.initVerifyDOM = function(container) {\n if (container.innerHTML) return\n if (dragVerifyconfig.verifyType == 'drag') container.innerHTML += puzzleElement;\n container.innerHTML += dragElement;\n dragContainer = document.getElementById(\"dragContainer\");\n dragBg = document.getElementById(\"dragBg\");\n dragText = document.getElementById(\"dragText\");\n dragHandler = document.getElementById(\"dragHandler\");\n maxHandlerOffset = dragContainer.clientWidth - dragHandler.clientWidth;\n dragHandlerOriginX = document.getElementById(\"dragHandler\").getBoundingClientRect().left;\n },\n this.initPuzzleImage = function(image) {\n shadeImg = document.getElementById(\"shadeImg\");\n cutImg = document.getElementById(\"cutImg\");\n puzzleReset = document.getElementById(\"puzzleReset\");\n puzzleVerify = document.getElementById(\"puzzleVerify\")\n closePuzzle = document.getElementById(\"closePuzzle\");\n puzzleTip = document.getElementById(\"puzzleTip\");\n puzzleVerify.style.opacity = 1;\n puzzleVerify.style.zIndex = 9010;\n puzzleVerify.style.display = \"block\";\n puzzleReset.style.display = \"block\";\n if (self.bizType == 9){ //点券更换刷新图片\n puzzleReset.src = \"https://www.gmmsj.com/r/vpage/upage_pic/bcaptpcudq_s_180/tmp_img_1675232837229.png\";\n }\n cutImg.style.left = 30 + 'px';\n cutImg.style.top = image.cutPosY + 60 + 'px';\n shadeImg.src = \"data:image/png;base64,\" + image.shadeImage;\n cutImg.src = \"data:image/png;base64,\" + image.cutoutImage;\n puzzleReset.addEventListener(\"click\", self.onDragResetClick);\n closePuzzle.addEventListener(\"click\", self.onCloseDragClick);\n },\n this.initSlideImage = function(image) {\n dragContainer.style.backgroundImage = 'url(' + \"data:image/png;base64,\" + image.shadeImage + ')';\n slideVerify.style.opacity = 1;\n slideVerify.style.zIndex = 900;\n slideVerify.style.display = \"block\";\n },\n this.hidePuzzle = function(){\n puzzleVerify.style.opacity = 0;\n puzzleVerify.style.zIndex = -1;\n puzzleVerify.style.display = \"none\";\n puzzleTip.style.color = 'unset';\n },\n this.onDragHandlerMouseDown = function() {\n if (isDanger) return;\n dragDuration = new Date();\n document.addEventListener(\"mousemove\", self.onDragHandlerMouseMove);\n document.addEventListener(\"mouseup\", self.onDragHandlerMouseUp);\n },\n this.onDragHandlerMouseMove = function(event){\n var left = event.clientX - dragHandlerOriginX - dragHandler.clientWidth / 2;\n if (left < 0) {\n left = 0;\n } else if (left > maxHandlerOffset) {\n left = maxHandlerOffset;\n }\n dragHandler.style.left = left + \"px\";\n dragText.textContent = \"\";\n dragBg.style.width = left + 55 + \"px\";\n if (left >= 235 || dragVerifyconfig.verifyType != 'drag') return;\n cutImg.style.left = left + 30 + \"px\";\n },\n this.onDragHandlerMouseUp = function(){\n self.removeEvent();\n dragDuration = new Date().getTime() - dragDuration.getTime();\n var x = parseInt(dragHandler.style.left.match(/(.+)px/)[1]) + 10;\n var params = {\n sessionKey: self.sessionKey,\n point: x,\n phone: 'null',\n bizType: self.bizType || 6,\n src_code: 7,\n dragDuration: dragDuration\n };\n $.ajax('/api/captcha/checkSlideCaptcha',{\n data: params,\n success: function (res){\n if (!res || res.code != 0) self.verifyFail();\n else self.verifySucc();\n },\n error:function() {\n self.verifyFail();\n }\n });\n },\n this.onDragResetClick = function() {\n self.getCaptereImg();\n },\n this.onCloseDragClick = function() {\n self.hidePuzzle();\n self.closeCallback();\n },\n this.removeEvent = function() {\n document.removeEventListener(\"mousemove\", self.onDragHandlerMouseMove);\n document.removeEventListener(\"mouseup\", self.onDragHandlerMouseUp);\n },\n this.verifySucc = function() {\n dragText.style.colr = \"#fff\";\n dragBg.style.backgroundColor = \"#d2f4ef\";\n dragHandler.style.backgroundColor = \"#52ccba\";\n setTimeout(function () {\n self.resetPosition();\n // self.removeEvent();\n dragHandler.removeEventListener(\"mousedown\", self.onDragHandlerMouseDown);\n self.succCallback(self.sessionKey);\n }, 500)\n },\n this.verifyFail = function() {\n dragText.style.colr = \"#fff\";\n dragBg.style.backgroundColor = \"rgba(255, 0, 0, 0.4)\";\n dragHandler.style.backgroundColor = \"rgba(255, 0, 0, 0.5)\";\n puzzleTip.style.color = '#f00';\n setTimeout(function () {\n self.resetPosition();\n self.getCaptereAPI();\n }, 500);\n },\n this.resetPosition = function() {\n dragHandler.style.left = 0;\n dragBg.style.width = 0;\n dragVerifyconfig.verifyType == 'drag' && (cutImg.style.left = 30 + \"px\");\n dragText.style.colr = \"#000\";\n dragBg.style.backgroundColor = \"rgba(25, 145, 250, 0.4)\";\n dragHandler.style.backgroundColor = \"#fff\";\n }\n dragHandler = document.getElementById(\"dragHandler\");\n dragContainer = document.getElementById(\"dragContainer\");\n dragBg = document.getElementById(\"dragBg\");\n shadeImg = document.getElementById(\"shadeImg\");\n cutImg = document.getElementById(\"cutImg\");\n puzzleReset = document.getElementById(\"puzzleReset\");\n puzzleTip = document.getElementById(\"puzzleTip\");\n closePuzzle = document.getElementById(\"closePuzzle\");\n puzzleVerify = document.getElementById(\"puzzleVerify\");\n slideVerify = document.getElementById(\"slideVerify\");\n maxHandlerOffset = dragContainer.clientWidth - dragHandler.clientWidth;\n self.getCaptereAPI();\n };\n\n ko.components.register('captcha', {\n viewModel:pageModel,\n template: \"\\n
\\n
\\n
\\n 请确保滑块填充在拼图缺口\\n \\\"\\\"\\n
\\n \\\"\\\"\\n \\\"\\\"\\n \\\"\\\"\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\"\n });\n})"],"names":["define","ko","$","galert","dragHandler","dragContainer","dragBg","puzzleReset","puzzleTip","closePuzzle","puzzleVerify","slideVerify","shadeImg","cutImg","maxHandlerOffset","dragHandlerOriginX","isDanger","dragDuration","dragVerifyconfig","getImgAPI","checkAPI","verifyType","pageModel","params","self","this","closeCallback","succCallback","bizType","checkUrl","sessionKey","getCaptereAPI","ajax","data","noNeedBlock","success","res","slice","indexOf","initVerifyDOM","getCaptereImg","code","style","display","src","shadeImage","initPuzzleImage","cutoutImage","cutPosY","y","initSlideImage","clientWidth","document","getElementById","getBoundingClientRect","left","dragText","textContent","addEventListener","onDragHandlerMouseDown","msg","hidePuzzle","container","innerHTML","puzzleElement","dragElement","image","opacity","zIndex","top","onDragResetClick","onCloseDragClick","backgroundImage","color","Date","onDragHandlerMouseMove","onDragHandlerMouseUp","event","clientX","width","removeEvent","getTime","x","parseInt","match","point","phone","src_code","verifySucc","verifyFail","error","removeEventListener","colr","backgroundColor","setTimeout","resetPosition","components","register","viewModel","template"],"mappings":"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"}