diff --git a/src/api/login.js b/src/api/login.js
index 6ec051f..5b5f29d 100644
--- a/src/api/login.js
+++ b/src/api/login.js
@@ -1,14 +1,14 @@
import request from "@/utils/request";
// 登录(使用租户名称)
-export function login(account, password, tenant_name) {
+export function login(data) {
return request({
url: `/admin/login`,
method: "post",
data: {
- account: account,
- password: password,
- tenant_name: tenant_name,
+ tenant_name: data.tenant_name,
+ account: data.account,
+ password: data.password,
},
});
}
@@ -31,4 +31,37 @@ export function logout(userInfo = null) {
method: "post",
data: userInfo ? { userInfo: userInfo } : {},
});
+}
+
+/**
+ * 获取极验3.0数据
+ * @returns {Promise}
+ */
+export function getGeetest3Infos() {
+ return request({
+ url: '/admin/login/getGeetest3Infos',
+ method: 'get'
+ });
+}
+
+/**
+ * 获取极验4.0数据
+ * @returns {Promise}
+ */
+export function getGeetest4Infos() {
+ return request({
+ url: '/admin/login/getGeetest4Infos',
+ method: 'get'
+ });
+}
+
+/**
+ * 判断是否开启验证
+ * @returns {Promise}
+ */
+export function getOpenVerify() {
+ return request({
+ url: '/admin/login/getOpenVerify',
+ method: 'get'
+ });
}
\ No newline at end of file
diff --git a/src/assets/js/gt.0.5.0.js b/src/assets/js/gt.0.5.0.js
new file mode 100644
index 0000000..932f5a3
--- /dev/null
+++ b/src/assets/js/gt.0.5.0.js
@@ -0,0 +1,353 @@
+"v0.5.0 Geetest Inc.";
+
+(function (window) {
+ "use strict";
+ if (typeof window === 'undefined') {
+ throw new Error('Geetest requires browser environment');
+ }
+
+var document = window.document;
+var Math = window.Math;
+var head = document.getElementsByTagName("head")[0];
+
+function _Object(obj) {
+ this._obj = obj;
+}
+
+_Object.prototype = {
+ _each: function (process) {
+ var _obj = this._obj;
+ for (var k in _obj) {
+ if (_obj.hasOwnProperty(k)) {
+ process(k, _obj[k]);
+ }
+ }
+ return this;
+ }
+};
+
+function Config(config) {
+ var self = this;
+ new _Object(config)._each(function (key, value) {
+ self[key] = value;
+ });
+}
+
+Config.prototype = {
+ api_server: 'api.geetest.com',
+ protocol: 'http://',
+ typePath: '/gettype.php',
+ fallback_config: {
+ slide: {
+ static_servers: ["static.geetest.com", "static.geevisit.com"],
+ type: 'slide',
+ slide: '/static/js/geetest.0.0.0.js'
+ },
+ fullpage: {
+ static_servers: ["static.geetest.com", "static.geevisit.com"],
+ type: 'fullpage',
+ fullpage: '/static/js/fullpage.0.0.0.js'
+ }
+ },
+ _get_fallback_config: function () {
+ var self = this;
+ if (isString(self.type)) {
+ return self.fallback_config[self.type];
+ } else if (self.new_captcha) {
+ return self.fallback_config.fullpage;
+ } else {
+ return self.fallback_config.slide;
+ }
+ },
+ _extend: function (obj) {
+ var self = this;
+ new _Object(obj)._each(function (key, value) {
+ self[key] = value;
+ })
+ }
+};
+var isNumber = function (value) {
+ return (typeof value === 'number');
+};
+var isString = function (value) {
+ return (typeof value === 'string');
+};
+var isBoolean = function (value) {
+ return (typeof value === 'boolean');
+};
+var isObject = function (value) {
+ return (typeof value === 'object' && value !== null);
+};
+var isFunction = function (value) {
+ return (typeof value === 'function');
+};
+var MOBILE = /Mobi/i.test(navigator.userAgent);
+var pt = MOBILE ? 3 : 0;
+
+var callbacks = {};
+var status = {};
+
+var nowDate = function () {
+ var date = new Date();
+ var year = date.getFullYear();
+ var month = date.getMonth() + 1;
+ var day = date.getDate();
+ var hours = date.getHours();
+ var minutes = date.getMinutes();
+ var seconds = date.getSeconds();
+
+ if (month >= 1 && month <= 9) {
+ month = '0' + month;
+ }
+ if (day >= 0 && day <= 9) {
+ day = '0' + day;
+ }
+ if (hours >= 0 && hours <= 9) {
+ hours = '0' + hours;
+ }
+ if (minutes >= 0 && minutes <= 9) {
+ minutes = '0' + minutes;
+ }
+ if (seconds >= 0 && seconds <= 9) {
+ seconds = '0' + seconds;
+ }
+ var currentdate = year + '-' + month + '-' + day + " " + hours + ":" + minutes + ":" + seconds;
+ return currentdate;
+}
+
+var random = function () {
+ return parseInt(Math.random() * 10000) + (new Date()).valueOf();
+};
+
+var loadScript = function (url, cb) {
+ var script = document.createElement("script");
+ script.charset = "UTF-8";
+ script.async = true;
+
+ // 对geetestçš„é™æ€èµ„æºæ·»åŠ crossOrigin
+ if ( /static\.geetest\.com/g.test(url)) {
+ script.crossOrigin = "anonymous";
+ }
+
+ script.onerror = function () {
+ cb(true);
+ };
+ var loaded = false;
+ script.onload = script.onreadystatechange = function () {
+ if (!loaded &&
+ (!script.readyState ||
+ "loaded" === script.readyState ||
+ "complete" === script.readyState)) {
+
+ loaded = true;
+ setTimeout(function () {
+ cb(false);
+ }, 0);
+ }
+ };
+ script.src = url;
+ head.appendChild(script);
+};
+
+var normalizeDomain = function (domain) {
+ // special domain: uems.sysu.edu.cn/jwxt/geetest/
+ // return domain.replace(/^https?:\/\/|\/.*$/g, ''); uems.sysu.edu.cn
+ return domain.replace(/^https?:\/\/|\/$/g, ''); // uems.sysu.edu.cn/jwxt/geetest
+};
+var normalizePath = function (path) {
+ path = path.replace(/\/+/g, '/');
+ if (path.indexOf('/') !== 0) {
+ path = '/' + path;
+ }
+ return path;
+};
+var normalizeQuery = function (query) {
+ if (!query) {
+ return '';
+ }
+ var q = '?';
+ new _Object(query)._each(function (key, value) {
+ if (isString(value) || isNumber(value) || isBoolean(value)) {
+ q = q + encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&';
+ }
+ });
+ if (q === '?') {
+ q = '';
+ }
+ return q.replace(/&$/, '');
+};
+var makeURL = function (protocol, domain, path, query) {
+ domain = normalizeDomain(domain);
+
+ var url = normalizePath(path) + normalizeQuery(query);
+ if (domain) {
+ url = protocol + domain + url;
+ }
+
+ return url;
+};
+
+var load = function (config, send, protocol, domains, path, query, cb) {
+ var tryRequest = function (at) {
+
+ var url = makeURL(protocol, domains[at], path, query);
+ loadScript(url, function (err) {
+ if (err) {
+ if (at >= domains.length - 1) {
+ cb(true);
+ // report gettype error
+ if (send) {
+ config.error_code = 508;
+ var url = protocol + domains[at] + path;
+ reportError(config, url);
+ }
+ } else {
+ tryRequest(at + 1);
+ }
+ } else {
+ cb(false);
+ }
+ });
+ };
+ tryRequest(0);
+};
+
+
+var jsonp = function (domains, path, config, callback) {
+ if (isObject(config.getLib)) {
+ config._extend(config.getLib);
+ callback(config);
+ return;
+ }
+ if (config.offline) {
+ callback(config._get_fallback_config());
+ return;
+ }
+
+ var cb = "geetest_" + random();
+ window[cb] = function (data) {
+ if (data.status == 'success') {
+ callback(data.data);
+ } else if (!data.status) {
+ callback(data);
+ } else {
+ callback(config._get_fallback_config());
+ }
+ window[cb] = undefined;
+ try {
+ delete window[cb];
+ } catch (e) {
+ }
+ };
+ load(config, true, config.protocol, domains, path, {
+ gt: config.gt,
+ callback: cb
+ }, function (err) {
+ if (err) {
+ callback(config._get_fallback_config());
+ }
+ });
+};
+
+var reportError = function (config, url) {
+ load(config, false, config.protocol, ['monitor.geetest.com'], '/monitor/send', {
+ time: nowDate(),
+ captcha_id: config.gt,
+ challenge: config.challenge,
+ pt: pt,
+ exception_url: url,
+ error_code: config.error_code
+ }, function (err) {})
+}
+
+var throwError = function (errorType, config) {
+ var errors = {
+ networkError: '网络错误',
+ gtTypeError: 'gtå—æ®µä¸æ˜¯å—符串类型'
+ };
+ if (typeof config.onError === 'function') {
+ config.onError(errors[errorType]);
+ } else {
+ throw new Error(errors[errorType]);
+ }
+};
+
+var detect = function () {
+ return window.Geetest || document.getElementById("gt_lib");
+};
+
+if (detect()) {
+ status.slide = "loaded";
+}
+
+window.initGeetest = function (userConfig, callback) {
+
+ var config = new Config(userConfig);
+
+ if (userConfig.https) {
+ config.protocol = 'https://';
+ } else if (!userConfig.protocol) {
+ config.protocol = window.location.protocol + '//';
+ }
+
+ // for KFC
+ if (userConfig.gt === '050cffef4ae57b5d5e529fea9540b0d1' ||
+ userConfig.gt === '3bd38408ae4af923ed36e13819b14d42') {
+ config.apiserver = 'yumchina.geetest.com/'; // for old js
+ config.api_server = 'yumchina.geetest.com';
+ }
+
+ if(userConfig.gt){
+ window.GeeGT = userConfig.gt
+ }
+
+ if(userConfig.challenge){
+ window.GeeChallenge = userConfig.challenge
+ }
+
+ if (isObject(userConfig.getType)) {
+ config._extend(userConfig.getType);
+ }
+ jsonp((config.api_server_v3 || [config.api_server || config.apiserver]), config.typePath, config, function (newConfig) {
+ var type = newConfig.type;
+ var init = function () {
+ config._extend(newConfig);
+ callback(new window.Geetest(config));
+ };
+
+ callbacks[type] = callbacks[type] || [];
+ var s = status[type] || 'init';
+ if (s === 'init') {
+ status[type] = 'loading';
+
+ callbacks[type].push(init);
+
+ load(config, true, config.protocol, newConfig.static_servers || newConfig.domains, newConfig[type] || newConfig.path, null, function (err) {
+ if (err) {
+ status[type] = 'fail';
+ throwError('networkError', config);
+ } else {
+ status[type] = 'loaded';
+ var cbs = callbacks[type];
+ for (var i = 0, len = cbs.length; i < len; i = i + 1) {
+ var cb = cbs[i];
+ if (isFunction(cb)) {
+ cb();
+ }
+ }
+ callbacks[type] = [];
+ }
+ });
+ } else if (s === "loaded") {
+ init();
+ } else if (s === "fail") {
+ throwError('networkError', config);
+ } else if (s === "loading") {
+ callbacks[type].push(init);
+ }
+ });
+
+};
+
+
+})(window);
diff --git a/src/assets/js/gt4.js b/src/assets/js/gt4.js
new file mode 100644
index 0000000..6b2f6ae
--- /dev/null
+++ b/src/assets/js/gt4.js
@@ -0,0 +1,487 @@
+"v4.2.0 Geetest Inc.";
+
+(function (window) {
+ "use strict";
+ if (typeof window === 'undefined') {
+ throw new Error('Geetest requires browser environment');
+ }
+
+var document = window.document;
+var Math = window.Math;
+var head = document.getElementsByTagName("head")[0];
+var TIMEOUT = 10000;
+
+function _Object(obj) {
+ this._obj = obj;
+}
+
+_Object.prototype = {
+ _each: function (process) {
+ var _obj = this._obj;
+ for (var k in _obj) {
+ if (_obj.hasOwnProperty(k)) {
+ process(k, _obj[k]);
+ }
+ }
+ return this;
+ },
+ _extend: function (obj){
+ var self = this;
+ new _Object(obj)._each(function (key, value){
+ self._obj[key] = value;
+ })
+ }
+};
+
+var uuid = function () {
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ var r = Math.random() * 16 | 0;
+ var v = c === 'x' ? r : (r & 0x3 | 0x8);
+ return v.toString(16);
+ });
+ };
+
+function Config(config) {
+ var self = this;
+ new _Object(config)._each(function (key, value) {
+ self[key] = value;
+ });
+}
+
+Config.prototype = {
+ apiServers: ['gcaptcha4.geetest.com','gcaptcha4.geevisit.com','gcaptcha4.gsensebot.com'],
+ staticServers: ["static.geetest.com",'static.geevisit.com'],
+ protocol: 'http://',
+ typePath: '/load',
+ fallback_config: {
+ bypass: {
+ staticServers: ["static.geetest.com",'static.geevisit.com'],
+ type: 'bypass',
+ bypass: '/v4/bypass.js'
+ }
+ },
+ _get_fallback_config: function () {
+ var self = this;
+ if (isString(self.type)) {
+ return self.fallback_config[self.type];
+ } else {
+ return self.fallback_config.bypass;
+ }
+ },
+ _extend: function (obj) {
+ var self = this;
+ new _Object(obj)._each(function (key, value) {
+ self[key] = value;
+ })
+ }
+};
+var isNumber = function (value) {
+ return (typeof value === 'number');
+};
+var isString = function (value) {
+ return (typeof value === 'string');
+};
+var isBoolean = function (value) {
+ return (typeof value === 'boolean');
+};
+var isObject = function (value) {
+ return (typeof value === 'object' && value !== null);
+};
+var isFunction = function (value) {
+ return (typeof value === 'function');
+};
+var MOBILE = /Mobi/i.test(navigator.userAgent);
+
+var callbacks = {};
+var status = {};
+
+var random = function () {
+ return parseInt(Math.random() * 10000) + (new Date()).valueOf();
+};
+
+// bind 函数polify, ä¸å¸¦new功能的bind
+
+var bind = function(target,context){
+ if(typeof target !== 'function'){
+ return;
+ }
+ var args = Array.prototype.slice.call(arguments,2);
+
+ if(Function.prototype.bind){
+ return target.bind(context, args);
+ }else {
+ return function(){
+ var _args = Array.prototype.slice.call(arguments);
+ return target.apply(context,args.concat(_args));
+ }
+ }
+}
+
+
+
+var toString = Object.prototype.toString;
+
+var _isFunction = function(obj) {
+ return typeof(obj) === 'function';
+};
+var _isObject = function(obj) {
+ return obj === Object(obj);
+};
+var _isArray = function(obj) {
+ return toString.call(obj) == '[object Array]';
+};
+var _isDate = function(obj) {
+ return toString.call(obj) == '[object Date]';
+};
+var _isRegExp = function(obj) {
+ return toString.call(obj) == '[object RegExp]';
+};
+var _isBoolean = function(obj) {
+ return toString.call(obj) == '[object Boolean]';
+};
+
+
+function resolveKey(input){
+ return input.replace(/(\S)(_([a-zA-Z]))/g, function(match, $1, $2, $3){
+ return $1 + $3.toUpperCase() || "";
+ })
+}
+
+function camelizeKeys(input, convert){
+ if(!_isObject(input) || _isDate(input) || _isRegExp(input) || _isBoolean(input) || _isFunction(input)){
+ return convert ? resolveKey(input) : input;
+ }
+
+ if(_isArray(input)){
+ var temp = [];
+ for(var i = 0; i < input.length; i++){
+ temp.push(camelizeKeys(input[i]));
+ }
+
+ }else {
+ var temp = {};
+ for(var prop in input){
+ if(input.hasOwnProperty(prop)){
+ temp[camelizeKeys(prop, true)] = camelizeKeys(input[prop]);
+ }
+ }
+ }
+ return temp;
+}
+
+var loadScript = function (url, cb, timeout) {
+ var script = document.createElement("script");
+ script.charset = "UTF-8";
+ script.async = true;
+
+ // 对geetestçš„é™æ€èµ„æºæ·»åŠ crossOrigin
+ if ( /static\.geetest\.com/g.test(url)) {
+ script.crossOrigin = "anonymous";
+ }
+
+ script.onerror = function () {
+ cb(true);
+ // 错误触å‘了,超时逻辑就ä¸ç”¨äº†
+ loaded = true;
+ };
+ var loaded = false;
+ script.onload = script.onreadystatechange = function () {
+ if (!loaded &&
+ (!script.readyState ||
+ "loaded" === script.readyState ||
+ "complete" === script.readyState)) {
+
+ loaded = true;
+ setTimeout(function () {
+ cb(false);
+ }, 0);
+ }
+ };
+ script.src = url;
+ head.appendChild(script);
+
+ setTimeout(function () {
+ if (!loaded) {
+ script.onerror = script.onload = null;
+ script.remove && script.remove();
+ cb(true);
+ }
+ }, timeout || TIMEOUT);
+};
+
+var normalizeDomain = function (domain) {
+ // special domain: uems.sysu.edu.cn/jwxt/geetest/
+ // return domain.replace(/^https?:\/\/|\/.*$/g, ''); uems.sysu.edu.cn
+ return domain.replace(/^https?:\/\/|\/$/g, ''); // uems.sysu.edu.cn/jwxt/geetest
+};
+var normalizePath = function (path) {
+
+ path = path && path.replace(/\/+/g, '/');
+ if (path.indexOf('/') !== 0) {
+ path = '/' + path;
+ }
+ return path;
+};
+var normalizeQuery = function (query) {
+ if (!query) {
+ return '';
+ }
+ var q = '?';
+ new _Object(query)._each(function (key, value) {
+ if (isString(value) || isNumber(value) || isBoolean(value)) {
+ q = q + encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&';
+ }
+ });
+ if (q === '?') {
+ q = '';
+ }
+ return q.replace(/&$/, '');
+};
+var makeURL = function (protocol, domain, path, query) {
+ domain = normalizeDomain(domain);
+
+ var url = normalizePath(path) + normalizeQuery(query);
+ if (domain) {
+ url = protocol + domain + url;
+ }
+
+ return url;
+};
+
+var load = function (config, protocol, domains, path, query, cb, handleCb) {
+ var tryRequest = function (at) {
+ // 处ç†jsonp回调,这里为了ä¿è¯æ¯ä¸ªä¸åŒjsonp都有唯一的回调函数
+ if(handleCb){
+ var cbName = "geetest_" + random();
+ // 需è¦ä¸Žé¢„先定义好cbname傿•°ï¼Œåˆ 除对象
+ window[cbName] = bind(handleCb, null, cbName);
+ query.callback = cbName;
+ }
+ var url = makeURL(protocol, domains[at], path, query);
+ loadScript(url, function (err) {
+ if (err) {
+ // 超时或者出错的时候 移除回调
+ if(cbName){
+ try {
+ window[cbName] = function(){
+ window[cbName] = null;
+ }
+ } catch (e) {}
+ }
+
+ if (at >= domains.length - 1) {
+ cb(true);
+ // report gettype error
+ } else {
+ tryRequest(at + 1);
+ }
+ } else {
+ cb(false);
+ }
+ }, config.timeout);
+ };
+ tryRequest(0);
+};
+
+
+var jsonp = function (domains, path, config, callback) {
+
+ var handleCb = function (cbName, data) {
+
+ // ä¿è¯åªæ‰§è¡Œä¸€æ¬¡ï¼Œå…¨éƒ¨è¶…时的情况下ä¸ä¼šå†è§¦å‘;
+
+ if (data.status == 'success') {
+ callback(data.data);
+ } else if (!data.status) {
+ callback(data);
+ } else {
+ //æŽ¥å£æœ‰è¿”回,但是返回了错误状æ€ï¼Œè¿›å…¥æŠ¥é”™é€»è¾‘
+ callback(data);
+ }
+ window[cbName] = undefined;
+ try {
+ delete window[cbName];
+ } catch (e) {
+ }
+ };
+ load(config, config.protocol, domains, path, {
+ callback: '',
+ captcha_id: config.captchaId,
+ challenge: config.challenge || uuid(),
+ client_type: config.clientType ? config.clientType : (MOBILE? 'h5':'web'),
+ risk_type: config.riskType,
+ user_info: config.userInfo,
+ call_type: config.callType,
+ lang: config.language? config.language : navigator.appName === 'Netscape' ? navigator.language.toLowerCase() : navigator.userLanguage.toLowerCase()
+ }, function (err) {
+ // ç½‘ç»œé—®é¢˜æŽ¥å£æ²¡æœ‰è¿”回,直接使用本地验è¯ç ,走宕机模å¼
+ // 这里å¯ä»¥æ·»åŠ ç”¨æˆ·çš„é€»è¾‘
+ if(err && typeof config.offlineCb === 'function'){
+ // 执行自己的宕机
+ config.offlineCb();
+ return;
+ }
+ if(err){
+ callback(config._get_fallback_config());
+ }
+ }, handleCb);
+};
+
+var reportError = function (config, url) {
+ load(config, config.protocol, ['monitor.geetest.com'], '/monitor/send', {
+ time: Date.now().getTime(),
+ captcha_id: config.gt,
+ challenge: config.challenge,
+ exception_url: url,
+ error_code: config.error_code
+ }, function (err) {})
+}
+
+var throwError = function (errorType, config, errObj) {
+ var errors = {
+ networkError: '网络错误',
+ gtTypeError: 'gtå—æ®µä¸æ˜¯å—符串类型'
+ };
+ if (typeof config.onError === 'function') {
+ config.onError({
+ desc: errObj.desc,
+ msg: errObj.msg,
+ code: errObj.code
+ });
+ } else {
+ throw new Error(errors[errorType]);
+ }
+};
+
+var detect = function () {
+ return window.Geetest || document.getElementById("gt_lib");
+};
+
+if (detect()) {
+ status.slide = "loaded";
+}
+var GeetestIsLoad = function (fname) {
+ var GeetestIsLoad = false;
+ var tags = { js: 'script', css: 'link' };
+ var tagname = fname && tags[fname.split('.').pop()];
+ if (tagname !== undefined) {
+ var elts = document.getElementsByTagName(tagname);
+ for (var i in elts) {
+ if ((elts[i].href && elts[i].href.toString().indexOf(fname) > 0)
+ || (elts[i].src && elts[i].src.toString().indexOf(fname) > 0)) {
+ GeetestIsLoad = true;
+ }
+ }
+ }
+ return GeetestIsLoad;
+};
+window.initGeetest4 = function (userConfig,callback) {
+
+ var config = new Config(userConfig);
+ if (userConfig.https) {
+ config.protocol = 'https://';
+ } else if (!userConfig.protocol) {
+ config.protocol = window.location.protocol + '//';
+ }
+
+
+ if (isObject(userConfig.getType)) {
+ config._extend(userConfig.getType);
+ }
+
+ jsonp(config.apiServers , config.typePath, config, function (newConfig) {
+ //错误æ•获,第一个load请求å¯èƒ½ç›´æŽ¥æŠ¥é”™
+ var newConfig = camelizeKeys(newConfig);
+
+ if(newConfig.status === 'error'){
+ return throwError('networkError', config, newConfig);
+ }
+
+ var type = newConfig.type;
+ if(config.debug){
+ new _Object(newConfig)._extend(config.debug)
+ }
+ var init = function () {
+ config._extend(newConfig);
+ callback(new window.Geetest4(config));
+ };
+
+ callbacks[type] = callbacks[type] || [];
+
+ var s = status[type] || 'init';
+ if (s === 'init') {
+ status[type] = 'loading';
+
+ callbacks[type].push(init);
+
+ if(newConfig.gctPath){
+ load(config, config.protocol, Object.hasOwnProperty.call(config, 'staticServers') ? config.staticServers : newConfig.staticServers || config.staticServers , newConfig.gctPath, null, function (err){
+ if(err){
+ throwError('networkError', config, {
+ code: '60205',
+ msg: 'Network failure',
+ desc: {
+ detail: 'gct resource load timeout'
+ }
+ });
+ }
+ })
+ }
+
+ load(config, config.protocol, Object.hasOwnProperty.call(config, 'staticServers') ? config.staticServers : newConfig.staticServers || config.staticServers, newConfig.bypass || (newConfig.staticPath + newConfig.js), null, function (err) {
+ if (err) {
+ status[type] = 'fail';
+ throwError('networkError', config, {
+ code: '60204',
+ msg: 'Network failure',
+ desc: {
+ detail: 'js resource load timeout'
+ }
+ });
+ } else {
+
+ status[type] = 'loaded';
+ var cbs = callbacks[type];
+ for (var i = 0, len = cbs.length; i < len; i = i + 1) {
+ var cb = cbs[i];
+ if (isFunction(cb)) {
+ cb();
+ }
+ }
+ callbacks[type] = [];
+ status[type] = 'init';
+ }
+ });
+ } else if (s === "loaded") {
+ // 判æ–gct是å¦éœ€è¦é‡æ–°åŠ è½½
+ if(newConfig.gctPath && !GeetestIsLoad(newConfig.gctPath)){
+ load(config, config.protocol, Object.hasOwnProperty.call(config, 'staticServers') ? config.staticServers : newConfig.staticServers || config.staticServers , newConfig.gctPath, null, function (err){
+ if(err){
+ throwError('networkError', config, {
+ code: '60205',
+ msg: 'Network failure',
+ desc: {
+ detail: 'gct resource load timeout'
+ }
+ });
+ }
+ })
+ }
+ return init();
+ } else if (s === "fail") {
+ throwError('networkError', config, {
+ code: '60204',
+ msg: 'Network failure',
+ desc: {
+ detail: 'js resource load timeout'
+ }
+ });
+ } else if (s === "loading") {
+ callbacks[type].push(init);
+ }
+ });
+
+};
+
+
+})(window);
diff --git a/src/components/CommonHeader.vue b/src/components/CommonHeader.vue
index a8eed3f..8fae0a3 100644
--- a/src/components/CommonHeader.vue
+++ b/src/components/CommonHeader.vue
@@ -4,15 +4,6 @@