diff --git a/src/vendor/tianai-captcha/captcha/captcha.js b/src/vendor/tianai-captcha/captcha/captcha.js index e90c1ed..259c50b 100644 --- a/src/vendor/tianai-captcha/captcha/captcha.js +++ b/src/vendor/tianai-captcha/captcha/captcha.js @@ -15,9 +15,8 @@ const template = `
`; @@ -28,7 +27,6 @@ function createCaptchaByType(type, tac) { case "SLIDER": return new Slider(box, styleConfig); case "ROTATE": - case "ROTATE_DEGREE": return new Rotate(box, styleConfig); case "CONCAT": return new Concat(box, styleConfig); @@ -103,20 +101,12 @@ class TianAiCaptcha { loadStyle() { // 设置样式 const bgUrl = this.style.bgUrl; - const logoUrl = this.style.logoUrl; if (bgUrl) { // 背景图片 this.config.domBindEl .find("#tianai-captcha-bg-img") .css("background-image", "url(" + bgUrl + ")"); } - if (logoUrl && logoUrl !== "") { - // logo - this.config.domBindEl.find("#tianai-captcha-logo").attr("src", logoUrl); - } else if (logoUrl === null) { - // 删除logo - this.config.domBindEl.find("#tianai-captcha-logo").css("display", "none"); - } } destroyWindow() { @@ -167,6 +157,12 @@ class TianAiCaptcha { // 清空 const id = c.currentCaptchaData.currentCaptchaId; c.currentCaptchaData = undefined; + if (this.config.onDataReady) { + Promise.resolve(this.config.onDataReady({ id, data }, c, this)).catch((error) => { + console.error("[TAC] onDataReady callback failed", error); + }); + return; + } // 调用验证接口 this.config.validCaptcha(id, data, c, this); }); @@ -180,9 +176,7 @@ class TianAiCaptcha { this.C.el.css("transform", "translateX(300px)"); setTimeout(() => { this.C.destroy(); - if (callback) { - callback(); - } + callback && callback(); }, 500); } else { callback(); diff --git a/src/vendor/tianai-captcha/captcha/captcha.less b/src/vendor/tianai-captcha/captcha/captcha.less index cfcdc3b..c0770cc 100644 --- a/src/vendor/tianai-captcha/captcha/captcha.less +++ b/src/vendor/tianai-captcha/captcha/captcha.less @@ -1,7 +1,6 @@ #tianai-captcha-parent { box-shadow: 0 0 11px 0 #999999; width: 318px; - height: 318px; overflow: hidden; position: relative; z-index: 997; @@ -47,32 +46,25 @@ } .slider-bottom { - .close-btn { + .close-btn, .refresh-btn { + display: inline-block; width: 20px; height: 20px; - background-image: url("../images/icon.png"); background-repeat: no-repeat; - background-position: 0 -14px; - float: right; - margin-right: 2px; cursor: pointer; } + .close-btn { + background-image: url("../images/icon.png"); + background-position: 0 -14px; + margin-right: 2px; + } .refresh-btn { - width: 20px; - height: 20px; background-image: url("../images/icon.png"); background-position: 0 -167px; - background-repeat: no-repeat; - float: right; margin-right: 10px; - cursor: pointer; } - .logo { - height: 30px; - float: left; - } - height: 19px; - width: 100%; + text-align: right; + margin-top: 8px; } .slider-move-shadow { animation: myanimation 2s infinite; diff --git a/src/vendor/tianai-captcha/captcha/common/common.less b/src/vendor/tianai-captcha/captcha/common/common.less index 5d9ed4c..0157de2 100644 --- a/src/vendor/tianai-captcha/captcha/common/common.less +++ b/src/vendor/tianai-captcha/captcha/common/common.less @@ -70,7 +70,6 @@ top: 0; width: 100%; height: 100%; - border-radius: 5px; .tianai-captcha-slider-bg-div-slice { position: absolute; } diff --git a/src/vendor/tianai-captcha/captcha/config/config.js b/src/vendor/tianai-captcha/captcha/config/config.js index 8c354b2..4625e19 100644 --- a/src/vendor/tianai-captcha/captcha/config/config.js +++ b/src/vendor/tianai-captcha/captcha/config/config.js @@ -8,7 +8,7 @@ class CaptchaConfig { if (!args.requestCaptchaDataUrl) { throw new Error("[TAC] 必须配置 [requestCaptchaDataUrl]请求验证码接口"); } - if (!args.validCaptchaUrl) { + if (!args.validCaptchaUrl && !args.onDataReady) { throw new Error("[TAC] 必须配置 [validCaptchaUrl]验证验证码接口"); } this.bindEl = args.bindEl; @@ -21,6 +21,9 @@ class CaptchaConfig { if (args.validFail) { this.validFail = args.validFail; } + if (args.onDataReady) { + this.onDataReady = args.onDataReady; + } if (args.requestHeaders) { this.requestHeaders = args.requestHeaders; } else { diff --git a/src/vendor/tianai-captcha/captcha/slider/slider.less b/src/vendor/tianai-captcha/captcha/slider/slider.less index 9745e79..a3362bf 100644 --- a/src/vendor/tianai-captcha/captcha/slider/slider.less +++ b/src/vendor/tianai-captcha/captcha/slider/slider.less @@ -17,7 +17,6 @@ img { height: 100%; width: 100%; - border-radius: 5px; } } .slider-img-div { diff --git a/src/vendor/tianai-captcha/index.ts b/src/vendor/tianai-captcha/index.ts index 72815bd..7d61c3a 100644 --- a/src/vendor/tianai-captcha/index.ts +++ b/src/vendor/tianai-captcha/index.ts @@ -2,9 +2,13 @@ import { CaptchaConfig, TianAiCaptcha } from "./captcha/captcha.js" export type TianAiCaptchaBindTarget = string | HTMLElement +export interface TianAiCaptchaResult { + id: string + data: Record请先完成验证码校验,再继续登录。
+ +