PageSourceSearch

https://www.designcap.com/web-res/js/fj_login_mod.js?v=1743566377

js designcap.com collected 2026-10-03 22:46:59 UTC 170,519 bytes, 3,451 lines download raw bytes

1// user
2(function() {
3    let info = window.fjuser ? window.fjuser.info : null;
4    window.fjuser = {
5        eventType: {
6            login: 0x0001,
7            register: 0x0010,
8            logout: 0x0100,
9            showLoginPanel:0x1001,
10            hideLoginPanel:0x1002,
11            showRegisterPanel:0x1003,
12            hideRegisterPanel:0x1004,
13        },
14
15        info: info,
16
17        _listeners: [],
18        _showLoginFunc: null,
19        _showRegisterFunc: null,
20        _logoutHooks: [],
21
22        initWithMethods: function(showLoginFunc, showRegisterFunc)
23        {
24            this._showLoginFunc = showLoginFunc;
25            this._showRegisterFunc = showRegisterFunc;
26        },
27
28        // callback(result, info)
29        addListener: function(type, callback, once = false)
30        {
31            this._listeners.push({
32                type: type,
33                callback: callback,
34                once: once
35            });
36        },
37        //移除事件监听
38        removeListener: function(type, callback, once = false)
39        {
40            let removeIndex = -1;
41            let length = this._listeners.length;
42            for (let i = 0; i < length; i++) {
43                let {type: _type, callback: _callback, once: _once} = this._listeners[i];
44                if (type === _type && callback === _callback && once === _once) {
45                    removeIndex = i;
46                    break;
47                }
48            }
49            if (removeIndex !== -1) {
50                this._listeners.splice(removeIndex, 1);
51            }
52        },
53
54        dispatchCallbacks: function(type)
55        {
56            var args = [...arguments].slice(1);
57            for(var i = 0; i < this._listeners.length; i++)
58            {
59                var item = this._listeners[i];
60
61                if(item.type === type)
62                {
63                    item.callback(...args);
64                    if(item.once)
65                    {
66                        this._listeners.splice(i, 1);
67                        i--;
68                    }
69                }
70            }
71        },
72
73        showLoginPanel: function()
74        {
75            if(this._showLoginFunc)
76                this._showLoginFunc();
77        },
78
79        showRegisterPanel: function()
80        {
81            if(this._showRegisterFunc)
82                this._showRegisterFunc();
83        },
84
85        loginPost:function (data, callback) {
86            if(window.csrf_token){
87                data[window.csrf_token] = 1;
88            };
89            $.post("/user/login", data, (json) => {
90                var result = (json.code === 200);
91                if(result)
92                {
93                    window.fjuser.info = json.data;
94                    window.csrf_token = json.token;
95                }
96                window.fjuser.dispatchCallbacks(window.fjuser.eventType.login, result, json);
97
98                if(callback)
99                    callback(result, json.data);
100            });
101        },
102
103        registerPost: function(data, callback) {
104            $.post("/user/register", data, (json) => {
105                var result = (json.code === 200);
106                if(result)
107                {
108                    window.fjuser.info = json.data;
109                    window.csrf_token = json.token;
110                }
111                window.fjuser.dispatchCallbacks(window.fjuser.eventType.register, result, json);
112
113                if(callback)
114                    callback(result, json);
115            });
116        },
117
118        connectFacebook: function(data, callback) {
119            $.post("/user/connectFacebookUser", data, (json) => {
120                var result = (json.code === 200);
121                if(result)
122                {
123                    window.fjuser.info = json.data;
124                    window.csrf_token = json.token;
125                }
126
127                if(json.data.register)
128                {
129                    window.fjuser.dispatchCallbacks(window.fjuser.eventType.register, result, json);
130                }
131                else
132                {
133                    window.fjuser.dispatchCallbacks(window.fjuser.eventType.login, result, json);
134                }
135
136                if(callback)
137                    callback(result, json);
138            });
139        },
140
141        connectGoogle: function(data, callback) {
142            $.post("/user/connectGoogleUser",data,function (json) {
143                var result = (json.code === 200);
144                if(result)
145                {
146                    window.fjuser.info = json.data;
147                    window.csrf_token = json.token;
148                }
149
150                if(json.data.register)
151                {
152                    window.fjuser.dispatchCallbacks(window.fjuser.eventType.register, result, json);
153                }
154                else
155                {
156                    window.fjuser.dispatchCallbacks(window.fjuser.eventType.login, result, json);
157                }
158
159                if(callback)
160                    callback(result, json);
161            });
162        },
163
164        logoutPost: async function(callback) {
165            Promise.all(this._logoutHooks.map((hook) => {
166                return hook();
167            })).then(() => {
168                if(!window.FJTools){
169                    FJTools = $;
170                }
171                post_data = {};
172                post_data[window.csrf_token] = 1;
173                FJTools.post("/user/logout",post_data, (json) => {
174                    var result = (json.code === 200);
175                    if(result)
176                    {
177                        window.csrf_token = json.token;
178                        window.fjuser.info = {result: false};
179                    }
180                    window.fjuser.dispatchCallbacks(window.fjuser.eventType.logout, result);
181
182                    if(callback)
183                        callback(result);
184                })
185            }).catch((e) => {
186                console.log(e);
187            });
188        },
189
190        addLogoutHook: function(hook) {
191            this._logoutHooks.push(hook);
192        },
193
194        isUserLogin:function () {
195            return this.info && this.info.result;
196        },
197
198        getUserCountryCode: function() {
199            return this.getCountryCode();
200        },
201
202        getCountryCode: function() {
203            return new Promise(resolve => {
204                if(this.localCountryCode)
205                    resolve(this.localCountryCode);
206                else {
207                    $.ajax({
208                        type:    "POST",
209                        url:     "https://www.cloudflare.com/cdn-cgi/trace",
210                        data:    {},
211                        success: (data) => {
212                            let params = data.split('\n');
213                            params.forEach((val) => {
214                               if(val.indexOf('loc=') !== -1) {
215                                   this.localCountryCode = val.match(/=(.*)/)[1];
216                               }
217                            });
218
219                            resolve(this.localCountryCode);
220                        },
221                        error:   function(jqXHR, textStatus, errorThrown) {
222                            resolve(null);
223                        }
224                    });
225                }
226            });
227        },
228
229        getBrowser: function (n) {
230            var ua = navigator.userAgent.toLowerCase(),
231                s,
232                name = '',
233                ver = 0;
234            (s = ua.match(/msie ([\d.]+)/)) ? _set("IE", _toFixedVersion(s[1])) :
235                (s = ua.match(/firefox\/([\d.]+)/)) ? _set("Firefox", _toFixedVersion(s[1])) :
236                    (s = ua.match(/chrome\/([\d.]+)/)) ? _set("Chrome", _toFixedVersion(s[1])) :
237                        (s = ua.match(/opera.([\d.]+)/)) ? _set("Opera", _toFixedVersion(s[1])) :
238                            (s = ua.match(/version\/([\d.]+).*safari/)) ? _set("Safari", _toFixedVersion(s[1])) : 0;
239
240            function _toFixedVersion(ver, floatLength) {
241                ver = ('' + ver).replace(/_/g, '.');
242                floatLength = floatLength || 1;
243                ver = String(ver).split('.');
244                ver = ver[0] + '.' + (ver[1] || '0');
245                ver = Number(ver).toFixed(floatLength);
246                return ver;
247            }
248
249            function _set(bname, bver) {
250                name = bname;
251                ver = bver;
252            }
253
254            return (n == 'n' ? name : (n == 'v' ? ver : name + " " + ver));
255        },
256
257        getOS: function () {
258            var sUserAgent = navigator.userAgent;
259            var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
260            var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel");
261            if (isMac) return "Mac";
262            var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
263            if (isUnix) return "Unix";
264            var isLinux = (String(navigator.platform).indexOf("Linux") > -1);
265            if (isLinux) return "Linux";
266            if (isWin) {
267                var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;
268                if (isWin2K) return "Win2000";
269                var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1;
270                if (isWinXP) return "WinXP";
271                var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;
272                if (isWin2003) return "Win2003";
273                var isWinVista = sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;
274                if (isWinVista) return "WinVista";
275                var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;
276                if (isWin7) return "Win7";
277                var isWin10 = sUserAgent.indexOf("Windows NT 10") > -1 || sUserAgent.indexOf("Windows 10") > -1;
278                if (isWin10) return "Win10";
279            }
280            return "Unknown";
281        },
282        getDeviceInfo: function () {
283            let os = this.getOS();
284            if(os != "Unknown")
285            {
286                os = os + " " + window.screen.width + " x " + window.screen.height;
287            }
288
289            return os;
290        }
291    };
292})();
293
294
295//login 模块create周期回调
296window.app_fj_login_created_callback = function (_this) {
297
298    _this.hasLogin = window.fjuser.isUserLogin();
299    _this.userInfo = window.fjuser.info;
300
301    //登录事件回调
302    window.fjuser.addListener(window.fjuser.eventType.login, function (result, response){
303        if(result) {
304            _this.userLogined(response.data);
305        }
306        _this.loaded();
307        _this.setError(response.msg);
308    });
309
310    //注册事件回调
311    window.fjuser.addListener(window.fjuser.eventType.register,function (result, response){
312        if (result) {
313
314            //注册事件统计
315            if(window.eaRegCallBack){
316                if(window.signup_action_path){
317                    window.eaRegCallBack(window.signup_action_path,response.data.email);
318                }
319            }
320            _this.userLogined(response.data);
321            if (window.app_survey) {
322                window.app_survey.openBox();
323            }
324            //window.registerSuccessedEalog("mail",response.data.email);
325        }
326        app_fj_login.loaded();
327        app_fj_login.setError(response.msg);
328    });
329
330    //登出事件回调
331    window.fjuser.addListener(window.fjuser.eventType.logout,function (result, response){
332        _this.hasLogin = !result;
333        if(result) {
334            _this.userInfo = null;
335        }
336        _this.loaded();
337    });
338
339    window.callbackWhenUserIdChange();
340};
341
342
343window.callbackWhenUserIdChange = function(){
344    //设置用户的id和用户的套餐类型
345    if(window.ealog){
346        if(window.fjuser.info && window.fjuser.info.result) {
347            id = window.fjuser.info.id;
348            policy = window.fjuser.info.policy;
349            period = window.fjuser.info.period;
350            email = window.fjuser.info.email;
351            window.amplitude.getInstance().setUserId(window.fjuser.info.id);
352            window.ealog.setUserProperties({
353                "id":email,
354                "account type": policy + " " + period,
355            });
356        }
357    }
358};
359
360window.registerSuccessedEalog = function (path,account) {
361    if(window.gaEvent){
362        window.gaEvent("signUp","signUp_success_"+path);
363    }
364};
365
366
367//打开注册面板的回调
368window.showSignUpEacallback = function () {
369    window.ealog.addEvent("sign up visit",{});
370};
371window.fj = window.fj ? window.fj : {};
372window.fj.fb_app_id = (document.domain === "www.designcap.com") || (document.domain === "designcap.com") ? '147722076005532' : '2459054510782124';
373window.fj.google_auth2_id = "1075051213312-d3jpuou4semk3lm5tmmqsrn3f2nl80k1.apps.googleusercontent.com";
374/**
375 * Created by Administrator on 2019/12/11.
376 */
377//remember me
378var CookieFunc = {
379    initLogin: function (callback) {
380        if ('true' === this.getCookie('fj_remember')) {
381            var usertoken = this.getCookie('fj_usertoken');
382
383            if(usertoken){
384                callback(usertoken)
385            }
386        }
387    },
388    setCookie: function (name, value) {
389        if(CookieFunc.getCookie(name)){
390            CookieFunc.delCookie(name);
391        }
392        var Days = 10;
393        var exp = new Date();
394        exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
395        document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString();
396    },
397    getCookie: function (name) {
398        var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
399        if (arr = document.cookie.match(reg))
400            return unescape(arr[2]);
401        else
402            return null;
403    },
404    delCookie: function (name) {
405        var exp = new Date();
406        exp.setTime(exp.getTime() - 1);
407        var cval = this.getCookie(name);
408        if (cval != null)
409            document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
410    }
411}
412
413//注册成功的ea统计事件
414window.eaRegCallBack = function (path,account) {
415    if(window.ealog){
416
417        mode = path;
418        page = "page_" + window.location.pathname;
419        account = "Account_" + account;
420
421        sign_up_event_name = "sign up";
422        if(location.href.indexOf("recordcast.com") != -1){
423            sign_up_event_name = "sign";
424        }
425        window.ealog.addEvent(sign_up_event_name,{
426            signUpMode:mode,
427            signUpPage:page,
428            signUpAccount:account
429        });
430    }
431};
432
433//实例化facebook连接对象
434window.fbAsyncInit = function () {
435    FB.init({
436        appId: window.fj.fb_app_id,
437        xfbml: true,
438        version: 'v10.0'
439    });
440};
441
442window.loadFacebookSDK = function()
443{
444    (function (d, s, id) {
445        var js,
446            fjs = d.getElementsByTagName(s)[0];
447        if (d.getElementById(id)) {
448            return;
449        }
450        js = d.createElement(s);
451        js.id = id;
452        js.async = 'async';
453        js.defer = 'defer';
454        js.src = "https://connect.facebook.net/en_US/sdk.js";
455        fjs.parentNode.insertBefore(js, fjs);
456    })(document, 'script', 'facebook-jssdk');
457}
458
459/**
460 * 阻止冒泡程序的方法
461 * @param e 事件
462 * @returns {boolean}
463 */
464function stopDefault(e) {
465    //如果提供了事件对象,则这是一个非IE浏览器
466    if (e && e.preventDefault) {
467        //阻止默认浏览器动作(W3C)
468        e.preventDefault();
469    } else {
470        //IE中阻止函数器默认动作的方式
471        window.event.returnValue = false;
472    }
473    return false;
474}
475
476//facebook登录对象
477window.connectWithFaceBook = {
478    errorcallback:function () {
479        //console.log("google auth error callback");
480    },
481    //登录
482    login: function (e,errorcallback) {
483        if(errorcallback){
484            window.connectWithFaceBook.errorcallback = errorcallback;
485        }
486        stopDefault(e);
487        FB.login(function (response) {
488            if (response.status === 'connected') {
489                this.handleFacebookConnected(response);
490            } else if (response.status === 'not_authorized') {
491                // The person is logged into Facebook, but not your app.
492                window.connectWithFaceBook.errorcallback();
493            } else {
494                // The person is not logged into Facebook, so we're not sure if
495                // they are logged into this app or not.
496                window.connectWithFaceBook.errorcallback();
497            }
498        }.bind(this), { scope: 'public_profile,email' });
499    },
500    //连接facebook成功后的回调
501    handleFacebookConnected: function handleFacebookConnected(resp) {
502        var token = resp.authResponse.accessToken;
503        this.ajaxConnectFacebook(token);
504    },
505    //获取到facebook的接口后请求我们的网站
506    ajaxConnectFacebook:function(token) {
507        var post_data = {token:token};
508        post_data[window.csrf_token] = 1;
509
510        window.fjuser.connectFacebook(post_data, (result, response) => {
511            /*if(result)
512            {
513                if (response.data.register == true) {
514                    if(window.app_survey){
515                        window.app_survey.openBox();
516                    }
517                    //registerSuccessedEalog("facebook",response.data.email);
518                }
519            }*/
520        });
521    },
522    // This is called with the results from from FB.getLoginStatus().
523    statusChangeCallback: function statusChangeCallback(response) {
524        if (response.status === 'connected') {
525            // Logged into your app and Facebook.
526            this.handleFacebookConnected(response);
527        } else if (response.status === 'not_authorized') {
528        } else {
529        }
530    },
531    checkLoginState: function checkLoginState() {
532        FB.getLoginStatus(function (response) {
533            this.statusChangeCallback(response);
534        }.bind(this));
535    },
536};
537
538
539window.loadGoogleSDK = function () {
540    (function (d, s, id) {
541        var js,
542            fjs = d.getElementsByTagName(s)[0];
543        if (d.getElementById(id)) {
544            return;
545        }
546        js = d.createElement(s);
547        js.id = id;
548        js.gapi_processed = "true";
549        js.async = 'async';
550        js.defer = 'defer';
551        js.src = "https://apis.google.com/js/api:client.js";
552        fjs.parentNode.insertBefore(js, fjs);
553    })(document, 'script', 'google-jssdk');
554}
555
556//关联google登录
557function attachGoogleSignin(element) {
558    auth2.attachClickHandler(element, {},
559        function(googleUser) {
560            connectWithGoogle.onSignIn(googleUser);
561        }, function(error) {
562            //关闭授权弹窗等
563            //console.log(error);
564            window.connectWithGoogle.errorcallback();
565        });
566}
567
568//实例化google登录组件
569var googleUser = {};
570
571//dom加载完毕自动绑定google登录到按钮
572$(function () {
573    //window.startGoogle();
574});
575
576//google登录对象
577var googleOauthLoaded = false;
578window.connectWithGoogle = {
579    errorcallback:function () {
580        //console.log("google auth error callback");
581    },
582    login:function (e,errorcallback) {
583        if(errorcallback){
584            window.connectWithGoogle.errorcallback = errorcallback;
585        }
586        //console.log(e);
587        if(!googleOauthLoaded){
588            //通过class实现绑定多个按钮
589            btns = jQuery(".fj-login-gl-btn");
590            if(window.gapi != undefined && btns.length > 0){
591                gapi.load('auth2', function(){
592                    // Retrieve the singleton for the GoogleAuth library and set up the client.
593                    auth2 = gapi.auth2.init({
594                        client_id: window.fj.google_auth2_id,
595                        cookiepolicy: 'single_host_origin',
596                    });
597
598                    for(i=0;i<btns.length;i++){
599                        btn = btns[i];
600                        attachGoogleSignin(btn);
601                    };
602                    googleOauthLoaded = true;
603                   $(e.target).click();
604
605                });
606
607            }else{
608                //因为vue没有渲染dom,所以会报错
609                setTimeout(function () {
610                    window.connectWithGoogle.login(e);
611                },1000);
612            }
613        }else{
614            $(e.target).click();
615        }
616    },
617    loginClick: function (e) {
618        stopDefault(e);
619    },
620    onSignIn: function(googleUser) {
621        var id_token = googleUser.getAuthResponse().id_token;
622        this.ajaxConnectGoogle(id_token);
623    },
624    signOut: function() {
625        try{
626            var auth2 = gapi.auth2.getAuthInstance();
627            auth2.signOut().then(function () {});
628        }catch (e) {}
629    },
630    ajaxConnectGoogle: function (token) {
631        var post_data = {token:token};
632        post_data[window.csrf_token] = 1;
633
634        window.fjuser.connectGoogle(post_data, (result,response) => {
635            if(result){
636                if (response.register == true) {
637                    if(window.app_survey){
638                        window.app_survey.openBox();
639                    }
640                    //registerSuccessedEalog("google",response.data.email);
641                }
642            }
643        })
644    }
645};
646
647
648
649
650/**
651 * google验证公共方法,使用方法
652 * 第一步,在dom中加入:<div id="grc" class="g-recaptcha" data-size="invisible" style="display: none"></div>
653 * 第二步,引入google api:
vendor: 117 bytes, lines 653-654
653<script src="https://www.google.com/recaptcha/api.js?onload=captchaCallback&render=explicit" async defer></script>
654 
654* 第三步,引入本js文件
655 * 第四步,调用addTarget 添加验证目标
656 * 第五步,调用submit 触发验证
657 */
658
659window.gcIdSitekey = "";
660if(document.domain == "www.scrapbooking-software.com" || document.domain == "www.designcap.com"){
661    //window.gcIdSitekey = "6LekquIqAAAAAHoMJQ1Aw2CkTR2RsajOTE_IPxvY";
662    window.gcIdSitekey = "6LemAAcrAAAAADNUyN8QACBi2GtQMOFgiuBsLb2v";
663}else if(document.domain == "www.photoframemaster.com" || document.domain == "www.designevo.com"){
664    window.gcIdSitekey = "6LeKzqQUAAAAAEJ6PafM6cSZhhN8ghYC0MRvJpyT";
665}else{
666    console.log("not set site key");
667}
668
669//google验证码回调
670window.captchaCallback = function() {
671    window.getGoogleRecaptchaId = function () {
672        if(window.gcId == undefined){
673            window.gcId = grecaptcha.render('grc', {
674                'sitekey' : window.gcIdSitekey,
675                'callback' : (captcha) => {
676                    googleRecaptcha.gcAjax(captcha);
677                },
678                'expired-callback':()=>{
679                  //console.log("Error call back1.");
680                },
681                'error-callback':()=>{
682                //console.log("Error call back1.");
683                },
684            });
685        }
686        return window.gcId;
687    }
688};
689
690// 加载google验证码
691window.loadGoogleRecaptchaSDK = function()
692{
693    (function (d, s, id) {
694        var js,
695            fjs = d.getElementsByTagName(s)[0];
696        if (d.getElementById(id)) {
697            return;
698        }
699        js = d.createElement(s);
700        js.id = id;
701        js.async = 'async';
702        js.defer = 'defer';
703        js.src = "https://www.google.com/recaptcha/api.js?onload=captchaCallback&render=explicit";
704        fjs.parentNode.insertBefore(js, fjs);
705
706        if (js.addEventListener) {
707            js.addEventListener('load', function () {
708                window.googleRecaptcha.loaded = true;
709            }, false);
710        } else if (js.attachEvent) {
711            js.attachEvent('onreadystatechange', function () {
712                var target = window.event.srcElement;
713                if (target.readyState == 'loaded') {
714                    window.googleRecaptcha.loaded = true;
715                }
716            });
717        }
718    })(document, 'script', 'google-recaptcha-jssdk');
719}
720
721//google验证对象
722window.googleRecaptcha = {
723    // 需要提交的数据
724    post_data : {},
725    // 当前验证完成后,需要执行的目标
726    target: null,
727    // 验证的目标数组
728    targets: [],
729    //是否需要登录验证,默认不需要
730    needLoginRecaptcha:false,
731
732    loaded:false,
733
734    // 添加验证目标
735    addTarget: function(name, func, callback=null)
736    {
737        target = {
738            name: name,
739            func: func,
740            callback: callback
741        };
742
743        for(i=0;i<this.targets.length;i++){
744            temp_target = this.targets[i];
745            if( JSON.stringify(temp_target) == JSON.stringify(target)){
746                return;
747            }
748        }
749
750        this.targets.push(target);
751    },
752
753    // google验证回调
754    gcAjax : function (captcha) {
755        this.post_data['recaptcha'] = captcha;
756        if(window.csrf_token){
757            this.post_data[window.csrf_token] = 1;
758        }
759        this.post_data["rt"] = "gl";
760        // google验证成功后,执行对应的目标函数
761        this.targets.forEach((target) => {
762            if(target.name == this.target)
763            {
764                target.func(this.post_data, (result) => {
765                    this.reset();
766                    if(target.callback)
767                        target.callback(...arguments);
768                });
769            }
770        });
771    },
772
773    // 重置google验证码
774    reset: function()
775    {
776        this.target = null;
777        if((typeof window.grecaptcha !== "undefined") && window.grecaptcha && (typeof gcId !== "undefined")) {
778            grecaptcha.reset(window.gcId);
779        };
780    },
781
782    // 提交请求方法
783    submit:function (post_data, target) {
784        if(window.getGoogleRecaptchaId) {
785            this.post_data = post_data;
786            this.target = target;
787
788            var gcId = window.getGoogleRecaptchaId();
789            grecaptcha.execute(gcId);
790        }
791        else {
792            setTimeout((post_data, target) => {
793                this.submit(post_data, target);
794            }, 100);
795        }
796    }
797}
798
799
800
801window.TCRloadCallback = function () {
802    window.TCcaptcha = new TencentCaptcha('2080394949', function (res) {
803        tencentRecaptcha.gcAjax(res);
804    });
805};
806
807// 加载tencent验证码
808window.loadTencentRecaptchaSDK = function()
809{
810    (function (d, s, id) {
811        var js,
812            fjs = d.getElementsByTagName(s)[0];
813        if (d.getElementById(id)) {
814            return;
815        }
816        js = d.createElement(s);
817        js.id = id;
818        js.async = 'async';
819        js.defer = 'defer';
820        js.src = "https://ssl.captcha.qq.com/TCaptcha.js";
821        fjs.parentNode.insertBefore(js, fjs);
822
823        if (js.addEventListener) {
824            js.addEventListener('load', function () {
825                window.tencentRecaptcha.loaded = true;
826                window.TCRloadCallback();
827            }, false);
828        } else if (js.attachEvent) {
829            js.attachEvent('onreadystatechange', function () {
830                var target = window.event.srcElement;
831                if (target.readyState == 'loaded') {
832                    window.tencentRecaptcha.loaded = true;
833                    window.TCRloadCallback();
834                }
835            });
836        }
837
838    })(document, 'script', 'tencent-recaptcha-jssdk');
839};
840
841//tencent验证对象
842window.tencentRecaptcha = {
843    // 需要提交的数据
844    post_data : {},
845    // 当前验证完成后,需要执行的目标
846    target: null,
847    // 验证的目标数组
848    targets: [],
849    //是否需要登录验证,默认不需要
850    loaded:false,
851
852    // 添加验证目标
853    addTarget: function(name, func, callback=null)
854    {
855        target = {
856            name: name,
857            func: func,
858            callback: callback
859        };
860
861        for(i=0;i<this.targets.length;i++){
862            temp_target = this.targets[i];
863            if( JSON.stringify(temp_target) == JSON.stringify(target)){
864                return;
865            }
866        }
867
868        this.targets.push(target);
869    },
870    //腾讯验证回调
871    gcAjax : function (res) {
872        // res(用户主动关闭验证码)= {ret: 2, ticket: null}
873        // res(验证成功) = {ret: 0, ticket: "String", randstr: "String"}
874        if(res.ret === 0){
875            this.post_data['recaptcha'] = res.ticket;
876            if(window.csrf_token){
877                this.post_data[window.csrf_token] = 1;
878            }
879            this.post_data["rt"] = "tc";
880            this.post_data["randstr"] = res.randstr;
881            this.targets.forEach((target) => {
882                if(target.name == this.target)
883                {
884                    target.func(this.post_data, (result) => {
885                        if(target.callback)
886                            target.callback(...arguments);
887                    });
888                }
889            });
890        }else if(res.ret === 2){
891            //console.log("close box");
892            if(window.tcRecaptchaCloseCallback){
893                window.tcRecaptchaCloseCallback();
894            }
895        }
896    },
897    // 提交请求方法
898    submit:function (post_data, target) {
899        this.post_data = post_data;
900        this.target = target;
901        window.TCcaptcha.show();
902    }
903}
904
905
906
907/**
908 * Created by Administrator on 2019/11/5.
909 */
910
911$(document).on("click",".ga_ab_button",function () {
912    var parameter01 = $(this).attr("ga-parameter01");
913    var parameter02 = $(this).attr("ga-parameter02");
914    var parameter03 = $(this).attr("ga-parameter03");
915
916    if(window.gaEvent){
917        gaEvent(parameter01,parameter02,parameter03);
918        //console.log('gaEvent(' + parameter01 +',' + parameter02 +',' + parameter03 + ')');
919    }
920
921});
922Vue.component('fj-loading', {
923    template: `
924        <div class="loader-inner ball-pulse">
925            <div></div>
926            <div></div>
927            <div></div>
928        </div>
929    `
930});
931Vue.component('fj-login-remember', {
932    template: `
933        <div class="fj-login-remember">
934            <div :class="checkClass" @click="toggleCheck">
935                <div class="fj-check-box"><img v-show="this.isRemember" src="/media/login/images/check.svg"></div>
936                <div class="fj-check-label">{{loginLanguage.rememberMe}}</div>
937            </div>
938            <a href="/reset-request.html" target="_blank" class="fj-login-forgot-password">{{loginLanguage.forgotPassword}}</a>
939        </div>
940    `,
941    data: function () {
942        return {
943            isRemember: false,
944        }
945    },
946    props: {
947        loginLanguage: Object,
948    },
949    computed: {
950        checkClass: function () {
951            return this.isRemember ? 'fj-login-remember-check fj-checked' : 'fj-login-remember-check';
952        },
953     },
954    methods: {
955        getValue: function () {
956            return this.isRemember;
957        },
958        setValue: function (state) {
959            this.isRemember = state;
960        },
961        toggleCheck: function () {
962            this.isRemember = !this.isRemember;
963        },
964    }
965});
966Vue.component('fj-third-button', {
967    template: `
968        <fj-button :onClick="onClick" className="fj-third-button" :icon="icon" :text="text" t
968ype="default" :class="btn_class" :isLoading="isLoading" :isLoadingThird="isLoadingThird">
969            <template v-slot:icon>
970                <slot name="icon"></slot>
971            </template>
972          </div>
973        </fj-button>
974    `,
975    props: {
976        icon: String,
977        text: String,
978        onClick: Function,
979        btn_class: String,
980        isLoading: Boolean
981    },
982    data: function () {
983        return {
984            isLoadingThird: true,
985        };
986    },
987});
988Vue.component('fj-bar', {
989    template: `
990        <i :class="classObject"/>
991    `,
992    props: {
993        type: {
994            type: String,
995            default: 'horizontal'
996        },
997    },
998    computed: {
999        classObject: function () {
1000            return {
1001                'fj-bar': true,
1002                'fj-bar-horizontal': this.type === 'horizontal',
1003                'fj-bar-vertical': this.type === 'vertical',
1004            }
1005        }
1006    }
1007});
1008Vue.component('fj-input', {
1009    template: `
1010        <div class="fj-login-input">
1011            <slot name="icon"></slot>
1012            <input v-model="value" :placeholder="placeholder" :type="inputType" @keyup="change" @keyup.enter="keyupEnter" />
1013            <div class="fj-login-input-border"></div>
1014            <span v-show="this.isErr" class="fj-login-input-err">{{errText}}</span>
1015        </div>
1016    `,
1017    props: {
1018        placeholder: String,
1019        inputType:String,
1020        change:Function,
1021        keyupEnter:Function,
1022    },
1023    data: function () {
1024        return {
1025            isErr: false,
1026            errText: '',
1027            value: '',
1028        };
1029    },
1030    methods: {
1031        getValue: function () {
1032            return this.value;
1033        },
1034        setValue: function (value) {
1035            this.value = value;
1036        },
1037        updateErr:function (value) {
1038            this.errText = value;
1039        },
1040        showErr: function () {
1041            this.isErr = true;
1042        },
1043        hideErr: function () {
1044            this.isErr = false;
1045        },
1046    }
1047});
1048Vue.component('fj-button', {
1049    template: `
1050        <button @click="onDataChange" :style="style" :class="buttonClass">
1051            <div v-show="!this.isLoading">
1052                <template>
1053                    <slot name="icon"></slot>
1054                    <span class="fj-third-text">{{text}}</span>
1055                </template>
1056            </div>
1057            <fj-loading v-show="this.isLoading" />
1058        </button>
1059    `,
1060    data: function () {
1061    },
1062    props: {
1063        icon: String,
1064        text: String,
1065        style: Object,
1066        type: {
1067            type: String,
1068            default: 'primary',
1069        },
1070        className: {
1071            type: String,
1072            default: '',
1073        },
1074        onClick: Function,
1075        isLoading:Boolean,
1076        isLoadingThird:Boolean,
1077
1078    },
1079    computed: {
1080        buttonClass: function () {
1081            return {
1082                'fj-button': true,
1083                'fj-button_primary': this.type === 'primary',
1084                'fj-button_default': this.type === 'default',
1085                'fj-button_warning': this.type === 'warning',
1086                'fj_button_loading': this.isLoading,
1087                'fj_loading_third': this.isLoadingThird,
1088                [this.className]: this.className,
1089            }
1090        }
1091    },
1092    methods: {
1093        onDataChange: function (e) {
1094            // if (this.onClick && !this.isLoading) {
1095            //     this.isLoading = true;
1096            //     this.onClick(() => {
1097            //         this.isLoading = false;
1098            //     });
1099            // }
1100            if (this.onClick) {
1101                this.onClick(e);
1102            }
1103        },
1104    }
1105});
1106Vue.component('fj-box-button', {
1107    template: `
1108        <div @click="onClick" class="fj-box-button" :class="className">
1109            <span>{{text}}</span>
1110        </div>
1111    `,
1112    props: {
1113        onClick: Function,
1114        text: String,
1115        type: String,
1116        className: String
1117    }
1118});
1119Vue.component('fj-email-input', {
1120    template: `
1121        <fj-input ref="input" :placeholder="inputLanguage" :inputType="emailType" :change="change" :keyupEnter="keyupEnter">
1122            <template v-slot:icon>
1123                <svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="24px" height="24px"
1124                     viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
1125                    <path fill="#C8C8C8" d="M22,6.322c-0.001-0.133-0.035-0.265-0.059-0.397c-0.002-0.009-0.002-0.019-0.004-0.028
1126                    c-0.055-0.288-0.143-0.571-0.305-0.815c-0.18-0.272-0.433-0.501-0.714-0.683c-0.029-0.019-0.058-0.039-0.087-0.057
1127                    c-0.058-0.033-0.105-0.082-0.166-0.109c-0.054-0.023-0.109-0.034-0.163-0.054c-0.049-0.02-0.101-0.033-0.151-0.05
1128                    c-0.084-0.026-0.168-0.055-0.254-0.073c-0.151-0.032-0.308-0.051-0.467-0.054C19.624,4.002,19.618,4,19.611,4h-0.004h-0.074h-0.398
1129                    h-0.719h-0.41H16.38h-0.085H14.4h-0.822h-1.327h-1.602h-0.566H8.056H7.892h-1.56H5.717H5.068H4.505H4.428
1130                    C4.247,4,4.064,4.021,3.886,4.057C3.862,4.062,3.837,4.059,3.813,4.064C3.794,4.068,3.778,4.08,3.76,4.084
1131                    C3.735,4.091,3.709,4.092,3.685,4.1C3.609,4.124,3.542,4.163,3.47,4.194C2.763,4.477,2.185,5.109,2.052,5.839
1132                    c-0.03,0.169-0.045,0.337-0.044,0.506C2.007,6.373,2,6.399,2,6.427v0.254v1.13V9.56v2.088v2.172v1.992v1.551v0.846
1133                    c0,0.197,0.013,0.396,0.075,0.583c0.241,0.71,0.875,1.198,1.635,1.207c0.141,0.002,0.279,0,0.42,0h1.041h1.53h1.891h2.1h2.181h2.126
1134                    h1.938h1.61H19.7h0.559c0.349,0,0.716-0.092,0.992-0.304c0.347-0.258,0.632-0.609,0.707-1.045C21.98,18.525,22,18.398,22,18.271
1135                    c0.002-0.229,0-0.451,0-0.676v-1.435V14.24v-2.156V9.959V8.127V6.85V6.389c0-0.011-0.007-0.022-0.007-0.034S22,6.334,22,6.322z
1136                     M12.457,13.176c-0.063,0.043-0.131,0.078-0.2,0.112c-0.057,0.019-0.114,0.034-0.172,0.047c-0.056,0.003-0.112,0.003-0.168,0
1137                    c-0.061-0.013-0.12-0.029-0.179-0.048c-0.062-0.031-0.124-0.063-0.183-0.103c-0.24-0.192-0.472-0.395-0.707-0.589
1138                    c-0.615-0.517-1.229-1.033-1.846-1.549c-0.749-0.628-1.496-1.253-2.245-1.88C6.124,8.637,5.49,8.104,4.856,7.574
1139                    C4.567,7.331,4.274,7.091,3.988,6.846C3.936,6.802,3.892,6.751,3.846,6.701c-0.03-0.043-0.057-0.088-0.082-0.134
1140                    c-0.019-0.056-0.035-0.112-0.047-0.17c-0.001-0.037,0-0.073,0.001-0.11C3.73,6.232,3.746,6.178,3.764,6.124
1141                    C3.793,6.067,3.825,6.012,3.86,5.959c0.036-0.04,0.074-0.077,0.113-0.113c0.046-0.03,0.094-0.058,0.143-0.083
1142                    C4.172,5.745,4.229,5.73,4.288,5.718C4.44,5.709,4.595,5.706,4.746,5.706h1.095h1.647H9.5h2.22h2.241h2.084h1.754h1.24H19.6
1143                    c0.029,0,0.058,0.004,0.086,0.006c0.063,0.012,0.125,0.03,0.187,0.049c0.05,0.026,0.099,0.054,0.146,0.084
1144                    c0.038,0.035,0.075,0.072,0.11,0.11c0.034,0.052,0.066,0.107,0.095,0.163c0.023,0.07,0.045,0.14,0.059,0.212
1145                    c0,0.014,0.002,0.028,0.002,0.042c-0.014,0.065-0.032,0.129-0.053,0.193c-0.023,0.042-0.049,0.083-0.075,0.124
1146                    c-0.096,0.103-0.197,0.199-0.307,0.29c-0.178,0.149-0.354,0.298-0.535,0.447c-0.604,0.507-1.207,1.013-1.812,1.521
1147                    c-0.747,0.625-1.496,1.253-2.243,1.879c-0.643,0.539-1.285,1.079-1.93,1.618C13.037,12.689,12.748,12.933,12.457,13.176z
1148                     M18.674,18.289H16.88h-2.188h-2.396H9.872H7.616h-1.91H4.35H3.741C3.73,18.286,3.72,18.283,3.709,18.28
1149                    c0-0.001,0-0.002-0.001-0.003c-0.003-0.096-0.006-0.191-0.006-0.285v-0.866V14.24v-3.472V8.789c0.292,0.244,0.584,0.489,0.876,0.733
1150                    c0.71,0.595,1.421,1.191,2.132,1.786c0.7,0.586,1.4,1.175,2.103,1.76c0.459,0.387,0.917,0.77,1.376,1.154
1151                    c0.07,0.059,0.139,0.115,0.209,0.174c0.213,0.177,0.42,0.309,0.674,0.414c0.26,0.104,0.504,0.155,0.788,0.184
1152                    c0.241,0.02,0.493-0.012,0.726-0.066c0.229-0.055,0.459-0.148,0.659-0.271c0.371-0.23,0.702-0.554,1.032-0.831
1153                    c0.592-0.495,1.184-0.992,1.771-1.487c0.733-0.615,1.471-1.23,2.202-1.846c0.646-0.541,1.289-1.082,1.937-1.622
1154                    c0.033-0.027,0.064-0.055,0.098-0.082v1.663v3.462v2.963c0,0.46,0.002,0.92,0,1.38c-0.002,0.008-0.005,0.016-0.007,0.023
1155                    c-0.002,0-0.004,0.001-0.006,0.001c-0.135,0.007-0.271,0.008-0.403,0.008H18.674z"/>
1156                </svg>
1157            </template>
1158        </fj-input>
1159    `,
1160    data: function () {
1161        return {
1162            emailType:'email',
1163        };
1164    },
1165    props:{
1166        change:Function,
1167        keyupEnter:Function,
1168        inputLanguage:String,
1169        isInFotoJetUpgradeWrapper:Boolean
1170    },
1171    methods: {
1172        getValue: function () {
1173            return this.$refs.input.getValue();
1174        },
1175        setValue: function (val) {
1176            return this.$refs.input.setValue(val);
1177        },
1178        setErr: function (value) {
1179            this.$refs.input.updateErr(value);
1180            this.$refs.input.showErr();
1181        },
1182        reset: function () {
1183            this.$refs.input.setValue('');
1184            this.$refs.input.updateErr('');
1185            this.$refs.input.hideErr();
1186        },
1187    }
1188});
1189Vue.component('fj-password-input', {
1190    template: `
1191        <fj-input ref="input" :placeholder="loginLanguage.password" :inputType="passwordType" :change="change" :keyupEnter="keyupEnter">
1192            <template v-slot:icon>
1193                <svg version="1.1"
1194	 xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="24px" height="24px"
1195	 viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
1196	<g id="Logoin-" transform="translate(-467.000000, -406.000000)">
1197		<g id="password" transform="translate(467.000000, 406.000000)">
1198			<path id="Shape" fill="#C2C2C2" d="M12,13c-0.468,0-1,0.45-1,0.999v1.999C11,16.55,11.532,17,12,17s1-0.45,1-1.002v-1.999
1199				C13,13.45,12.468,13,12,13z"/>
1200			<path id="Shape_1_" fill="#C2C2C2" d="M18.566,6.11C17.979,3.18,15.514,1,12.604,1C9.71,1,7.296,3.124,6.662,6.072
1201				C5.032,6.339,4,7.813,4,9.601v8.813C4,20.393,5.254,22,7.189,22H12.5h5.311C19.746,22,21,20.393,21,18.416V9.601
1202				C21,7.896,20.064,6.472,18.566,6.11z M12.994,3C14.842,3,16.42,4.254,17,6h-4.113H9C9.601,4.233,11.152,3,12.994,3z M19,18.514
1203				C19,19.334,18.693,20,17.914,20H12.5H7.085C6.306,20,6,19.334,6,18.514V9.488C6,8.667,6.306,8,7.085,8H12.5h5.414
1204				C18.693,8,19,8.667,19,9.488V18.514z"/>
1205		</g>
1206	</g>
1207</svg>
1208            </template>
1209        </fj-input>
1210    `,
1211    data: function () {
1212        return {
1213            passwordType:'password',
1214        };
1215    },
1216    props: {
1217        change:Function,
1218        keyupEnter:Function,
1219    },
1220    methods: {
1221        getValue: function () {
1222            return this.$refs.input.getValue();
1223        },
1224        setValue: function (val) {
1225            return this.$refs.input.setValue(val);
1226        },
1227        setErr: function (value) {
1228            this.$refs.input.updateErr(value);
1229            this.$refs.input.showErr();
1230        },
1231        reset: function () {
1232            this.$refs.input.setValue('');
1233            this.$refs.input.updateErr('');
1234            this.$refs.input.hideErr();
1235        },
1236    }
1237});
1238
1239Vue.component('fj-user-info', {
1240    template: `
1241        <div id="logged" class="">
1242            <div class="userGroup user-avatar dropdown">
1243                <button id="btUser" class="fj-user" type="button"
1244                data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" @click="toggleMenu">
1245                    <div>
1246                    </div>
1247                    <img id="imgAvatarThumb" :src="userInfo.img">
1248                    <span class="fj-username">
1249                        <nobr id="user_name">
1250                            {{userInfo.name}}
1251                        </nobr>
1252                    </span>
1253                </button>
1254                <transition name="drop">
1255                    <ul id="fj-profile-drop-menu" class="fj-profile-drop-menu dropdown-menu animated" role="menu" v-show="isOpen">
1256                        <div class="fj-profile-userinfo">
1257                            <div class="user-img"><img :src="userInfo.img"></div>
1258                            <div class="user-policy-wrapper">
1259                                    <div class="user-name">{{userInfo.email}}</div>
1260                                    <div class="user-policy policy-upgrade" v-if="userInfo.policy === 'free'" @click="upgrade">{{loginLanguage.upgrade}}</div>
1261                                    <div class="user-policy policy-info" v-if="userInfo.policy === 'basic'" @click="billing">{{loginLanguage.policyBasic}}</div>
1262                                    <div class="user-policy policy-info" v-if="userInfo.policy === 'plus'" @click="billing">{{loginLanguage.policyPlus}}</div>
1263                            </div>
1264                        </div>
1265                        <div class="fj-profile-border"></div>
1266                        <li>
1267                            <a id="myDesigns" @click="myDesigns">
1268                                {{loginLanguage.myDesigns}}
1269                            </a>
1270                        </li>
1271                        <li>
1272                            <a id="myProfile" target="_self" ref="nofollw" href="/profile.html">
1273                                {{loginLanguage.myAccount}}
1274                            </a>
1275                        </li>
1276                        <li>
1277                            <a id="logout" @click="userLogout">
1278                               {{loginLanguage.signOut}}
1279                            </a>
1280                        </li>
1281                    </ul>
1282                </transition>
1283            </div>
1284        </div>
1285    `,
1286    props: {
1287        userInfo: Object,
1288        hasLogin: Boolean,
1289        loginLanguage: Object,
1290    },
1291    data: function () {
1292        return {
1293            isOpen: false,
1294        };
1295    },
1296    methods: {
1297        toggleMenu:function () {
1298            this.isOpen = !this.isOpen;
1299        },
1300        userLogout: function () {
1301            window.fjuser.logoutPost((json) => {
1302                if(json.code === 200){
1303                    this.$parent.userLogedout();
1304                }
1305            });
1306        },
1307        upgrade:function () {
1308            if(window.openSubscription){
1309                window.openSubscription("profile");
1310            }
1311        },
1312        billing:function () {
1313            window.open("/profile.html?page=billing",'_blank');
1314        },
1315        myDesigns:function () {
1316            //防止网络过慢的时候页面跳转依然显示用户头像的问题
1317            //$("#logged").hide();
1318            localStorage.setItem("isDefaultProjectPage",true);
1319
1320            var hasLangTag = window.language_tag?true:false;
1321            if(hasLangTag && "en" != window.language_tag){
1322                //location.href = "/" + window.language_tag +"/app/";
1323                window.open("/" + window.language_tag +"/app/","_blank");
1324            }else{
1325                //location.href = "/app/";
1326                window.open("/app/","_blank");
1327            }
1328
1329
1330            /*if(window.language_tag && "en" != window.language_tag){
1331                location.href = "/" + window.language_tag + "/app/";
1332            }else{
1333                location.href = "/app/";
1334            }*/
1335
1336        }
1337    },
1338    created:function () {
1339        //添加点击按钮移除事件
1340        document.addEventListener('click', (e)=> {
1341                if(this.isOpen === true){
1342                    dom = e.target;
1343                    className01 = $(dom).attr("class");
1344                    className02 = $(dom).parent().attr("class");
1345                    className03 = $(dom).parent().parent().attr("class");
1346                    if(className01 !== "fj-user" && className02 !== "fj-user" && className03 !== "fj-user"){
1347                        this.isOpen = false;
1348                    }
1349                }
1350        });
1351
1352        //绑定keydown事件
1353        var _this = this;
1354        $(document).keydown(function(e){
1355            var code =  e.which || e.keyCode;
1356
1357            if(27 === code ){
1358                _this.isOpen = false;
1359            }
1360        });
1361
1362    }
1363});
1364
1365Vue.component('fj-user-container', {
1366    template: `
1367        <div class="fj-user-container">
1368            <fj-box-button :text="loginLanguage.login" :onClick="showSignIn" v-if="!hasLogin" :className="'fj-btn-signin'" />
1369            <fj-box-button :text="loginLanguage.signUpFree" :onClick="showSignUp" v-if="!hasLogin" :className="'fj-btn-signup'" />
1370            <fj-user-info v-if="hasLogin" :userInfo="userInfo" :hasLogin="hasLogin" :loginLanguage="loginLanguage" />
1371        </div>
1372    `,
1373    props: {
1374        loginLanguage: Object,
1375        hasLogin: Boolean,
1376        setPanelMode: Function,
1377        userInfo: Object,
1378    },
1379    methods: {
1380        showSignUp: function () {
1381            this.setPanelMode(false);
1382        },
1383        showSignIn: function () {
1384            this.setPanelMode(true);
1385        },
1386        userLogedout:function () {
1387            this.hasLogin = false;
1388            this.userInfo = {};
1389        }
1390    },
1391});
1392Vue.component('fj-login-panel', {
1393    template: `
1394        <div class="fj-login-panel">
1395            <div class="fj-login-head">
1396                <div class="fj-login-head__title">{{headTitle}}</div>
1397                <div class="fj-login-head__desc">
1398                    <span>{{headDesc}}</span>
1399                    <span @click="togglePanel" class="fj-login-head__desc-sign">{{headToggleTitle}}</span>
1400                </div>
1401            </div>
1402            <fj-bar />
1403            <fj-third-button :onClick="facebookSubmit" :text="facebookText" :isLoading="isLoadingFB">
1404                <template v-slot:icon>
1405                    <svg class="fl-facebook-icon" version="1.1"  xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
1406	 width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
1407<path fill="#3B5997" d="M21.643,2.176h-3.31c0,0-5.299-0.973-5.299,5.346c0,1.359,0,4.207,0,4.207H9.561l0.015,3.583h3.159
1408	l0.004,15.522h3.875V15.311h4.751l0.894-3.583h-5.645V7.395c0,0,0.535-1.637,2.352-1.637h2.662L21.643,2.176L21.643,2.176z"/>
1409</svg>
1410                </template>
1411            </fj-third-button>
1412            <fj-third-button :onClick="googleSubmit" :text="googleText" :btn_class="'fj-login-gl-btn'" :isLoading="isLoadingGL">
1413                <template v-slot:icon>
1414                    <svg class="fl-google-icon" version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
1415	 width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
1416<g>
1417	<g>
1418		<g>
1419			<g>
1420				<defs>
1421					<path id="LOGOIN_SVG_SVGID_1_" d="M27.59,13.673H16.408v4.636h6.436c-0.6,2.944-3.107,4.637-6.436,4.637c-3.926,0-7.09-3.161-7.09-7.09
1422						s3.164-7.09,7.09-7.09c1.691,0,3.218,0.6,4.418,1.582l3.49-3.491c-2.127-1.854-4.854-3-7.909-3c-6.655,0-12,5.346-12,12
1423						c0,6.654,5.345,12,12,12c6,0,11.456-4.362,11.456-12C27.863,15.146,27.754,14.382,27.59,13.673z"/>
1424				</defs>
1425				<clipPath id="LOGOIN_SVG_SVGID_2_">
1426					<use xlink:href="#LOGOIN_SVG_SVGID_1_"  overflow="visible"/>
1427				</clipPath>
1428				<path clip-path="url(#LOGOIN_SVG_SVGID_2_)" fill="#FBBC05" d="M3.317,22.945V8.764l9.273,7.089L3.317,22.945z"/>
1429			</g>
1430		</g>
1431	</g>
1432	<g>
1433		<g>
1434			<g>
1435				<defs>
1436					<path id="LOGOIN_SVG_SVGID_3_" d="M27.59,13.673H16.408v4.636h6.436c-0.6,2.944-3.107,4.637-6.436,4.637c-3.926,0-7.09-3.161-7.09-7.09
1437						s3.164-7.09,7.09-7.09c1.691,0,3.218,0.6,4.418,1.582l3.49-3.491c-2.127-1.854-4.854-3-7.909-3c-6.655,0-12,5.346-12,12
1438						c0,6.654,5.345,12,12,12c6,0,11.456-4.362,11.456-12C27.863,15.146,27.754,14.382,27.59,13.673z"/>
1439				</defs>
1440				<clipPath id="LOGOIN_SVG_SVGID_4_">
1441					<use xlink:href="#LOGOIN_SVG_SVGID_3_"  overflow="visible"/>
1442				</clipPath>
1443				<path clip-path="url(#LOGOIN_SVG_SVGID_4_)" fill="#EA4335" d="M3.317,8.764l9.273,7.089l3.818-3.326L29.499,10.4V2.764H3.317V8.764z"/>
1444			</g>
1445		</g>
1446	</g>
1447	<g>
1448		<g>
1449			<g>
1450				<defs>
1451					<path id="LOGOIN_SVG_SVGID_5_" d="M27.59,13.673H16.408v4.636h6.436c-0.6,2.944-3.107,4.637-6.436,4.637c-3.926,0-7.09-3.161-7.09-7.09
1452						s3.164-7.09,7.09-7.09c1.691,0,3.218,0.6,4.418,1.582l3.49-3.491c-2.127-1.854-4.854-3-7.909-3c-6.655,0-12,5.346-12,12
1453						c0,6.654,5.345,12,12,12c6,0,11.456-4.362,11.456-12C27.863,15.146,27.754,14.382,27.59,13.673z"/>
1454				</defs>
1455				<clipPath id="LOGOIN_SVG_SVGID_6_">
1456					<use xlink:href="#LOGOIN_SVG_SVGID_5_"  overflow="visible"/>
1457				</clipPath>
1458				<path clip-path="url(#LOGOIN_SVG_SVGID_6_)" fill="#34A853" d="M3.317,22.945L19.682,10.4l4.311,0.546L29.5,2.763v26.182H3.317V22.945z"/>
1459			</g>
1460		</g>
1461	</g>
1462	<g>
1463		<g>
1464			<g>
1465				<defs>
1466					<path id="LOGOIN_SVG_SVGID_7_" d="M27.59,13.673H16.408v4.636h6.436c-0.6,2.944-3.107,4.637-6.436,4.637c-3.926,0-7.09-3.161-7.09-7.09
1467						s3.164-7.09,7.09-7.09c1.691,0,3.218,0.6,4.418,1.582l3.49-3.491c-2.127-1.854-4.854-3-7.909-3c-6.655,0-12,5.346-12,12
1468						c0,6.654,5.345,12,12,12c6,0,11.456-4.362,11.456-12C27.863,15.146,27.754,14.382,27.59,13.673z"/>
1469				</defs>
1470				<clipPath id="LOGOIN_SVG_SVGID_8_">
1471					<use xlink:href="#LOGOIN_SVG_SVGID_7_"  overflow="visible"/>
1472				</clipPath>
1473				<path clip-path="url(#LOGOIN_SVG_SVGID_8_)" fill="#4285F4" d="M29.499,28.945L12.59,15.854l-2.182-1.636l19.091-5.455V28.945z"/>
1474			</g>
1475		</g>
1476	</g>
1477</g>
1478</svg>
1479                </template>
1480            </fj-third-button>
1481            <div class="fj-or">
1482                <i />
1483                <span class="fj-or-text">{{loginLanguage.or}}</span>
1484                <i />
1485            </div>
1486            <div v-show="!isLoginMode" class="fj-sign-inputs" >
1487                <fj-email-input ref="emailSignInput" :inputLanguage="loginLanguage.email" :change="checkInput" :keyupEnter="submitNull" />
1488                <fj-email-input ref="emailSignConfirmInput" :inputLanguage="loginLanguage.emailConfirm" :change="checkInput" :keyupEnter="submitNull" />
1489                <fj-password-input ref="passwordSignInput" :loginLanguage="loginLanguage" :change="checkInput" :keyupEnter="submit" />
1490            </div>
1491            <div v-show="isLoginMode" class="fj-login-inputs">
1492                <fj-email-input   ref="emailLoginInput" :inputLanguage="loginLanguage.email" :change="checkInput" :keyupEnter="submitNull" />
1493                <fj-password-input  ref="passwordLoginInput" :loginLanguage="loginLanguage" :change="checkInput" :keyupEnter="submit" />
1494            </div>
1495            <fj-login-remember ref="loginRemember" v-show="isLoginMode" :loginLanguage="loginLanguage"/>
1496            <div class="joms-input--append designevo-login-input-append" style="display: none">
1497                <div id="grc" class="g-recaptcha" data-size="invisible"></div>
1498            </div>
1499            
1500            <fj-button :onClick="submit" :style="submitStyle" type="primary" :text="submitText" :isLoading="isLoading" />
1501            <div class="fj-login-policy">
1502                <span>{{isLoginMode ? loginLanguage.loginPolicy : loginLanguage.signPolicy}}</span>
1503                <a href="/terms.html" target="_blank">{{loginLanguage.terms}}</a>
1504                <span>{{loginLanguage.and}}</span>
1505                <a href="/privacy.html" target="_blank">{{loginLanguage.privacyPolicy}}</a>
1506            </div>
1507        </div>
1508    `,
1509    props: {
1510        loginLanguage: Object,
1511        isLoginMode: Boolean,
1512        hideLoginPanel: Function,
1513        showLoginPanel: Function,
1514        setPanelMode:Function,
1515        userLogined: Function,
1516
1517    },
1518    data: function () {
1519        return {
1520            isLoading: false,
1521            isLoadingFB:false,
1522            isLoadingGL:false,
1523            isFirstSignIn:true,
1524            isFirstSignUp:true,
1525        };
1526    },
1527    computed: {
1528        headTitle: function () {
1529            let {signUp, login} = this.loginLanguage;
1530            return this.isLoginMode ? login : signUp;
1531        },
1532        headToggleTitle: function () {
1533            let {signUp, login} = this.loginLanguage;
1534            return this.isLoginMode ? signUp : login;
1535        },
1536        headDesc: function () {
1537            let {haveAccount, noAccount} = this.loginLanguage;
1538            return this.isLoginMode ? noAccount : haveAccount;
1539        },
1540        googleText: function () {
1541            let {googleSignUp, googleLogin} = this.loginLanguage;
1542            return this.isLoginMode ? googleLogin : googleSignUp;
1543        },
1544        facebookText: function () {
1545            let {facebookSignUp, facebookLogin} = this.loginLanguage;
1546            return this.isLoginMode ? facebookLogin : facebookSignUp;
1547        },
1548        submitText: function () {
1549            let {signUp, login} = this.loginLanguage;
1550            return this.isLoginMode ? login : signUp;
1551        },
1552        loadingText:function () {
1553            return "Loading...";
1554        },
1555        submitStyle: function () {
1556            return {
1557                display: 'block',
1558                margin: 'auto',
1559                'min-width': '280px',
1560                'box-shadow': '0 4px 8px 0 rgba(238,92,51,0.3)',
1561            }
1562        },
1563        loadingStyle:function () {
1564            return {
1565                display: 'block',
1566                margin: 'auto',
1567                'min-width': '280px',
1568                'box-shadow': '0 4px 8px 0 rgba(238,92,51,0.3)',
1569                'background':"#a74f37",
1570            }
1571        }
1572    },
1573    methods: {
1574        setRemember:function(state){
1575            this.$refs.loginRemember.setValue(state);
1576        },
1577        autoLogin:function (data) {
1578            this.$refs.emailLoginInput.setValue(data.email);
1579            this.$refs.passwordLoginInput.setValue(data.pswd);
1580        },
1581        initFirst:function () {
1582            this.isFirstSignIn = true;
1583            this.isFirstSignUp = true;
1584        },
1585        checkInput:function () {
1586            if(this.isFirstSignIn === false){
1587                this.validateLogin();
1588            }
1589            if(this.isFirstSignUp === false){
1590                this.validateSignUp();
1591            }
1592        },
1593        checkLoading:function () {
1594            /*if(this.isLoading || this.isLoadingFB || this.isLoadingGL){
1595                return true;
1596            }*/
1597            //需求修改,允许同时操作
1598            return false;
1599        },
1600        loading:function () {
1601            this.isLoading = true;
1602        },
1603        loaded:function () {
1604            this.isLoading = false;
1605        },
1606        facebookSubmit: function (e) {
1607            //如果有其它在登录,则退出
1608            if(this.isLoadingFB){
1609                return false;
1610            }
1611            //需要有facebook连接对象,并且加载了FB对象才行
1612            if(window.connectWithFaceBook && window.FB){
1613                this.isLoadingFB = true;
1614                var _this = this;
1615                window.signup_action_path = "facebook";
1616                connectWithFaceBook.login(e,function () {
1617                    _this.isLoadingFB = false;
1618                });
1619            }
1620
1621        },
1622        googleSubmit: function (e) {
1623
1624            //如果有其它在登录,则退出
1625            if(this.isLoadingGL){
1626                return false;
1627            }
1628            //需要有google的api登录对象才行
1629            if(window.connectWithGoogle && window.gapi){
1630                this.isLoadingGL = true;
1631                var _this = this;
1632                window.signup_action_path = "google";
1633                //loginFacebookFunc.loginClick(e);
1634                connectWithGoogle.login(e,function () {
1635                    _this.isLoadingGL = false;
1636                });
1637            }
1638
1639        },
1640        togglePanel: function () {
1641            //如果有其它在登录,则退出
1642            if(this.checkLoading()){
1643                return false;
1644            }
1645            if(this.isLoginMode === true){
1646                this.$emit("setPanelMode",false);
1647            }else{
1648                this.$emit("setPanelMode",true);
1649            }
1650        },
1651        resetLoading:function () {
1652            this.isLoading = false;
1653            this.isLoadingFB = false;
1654            this.isLoadingGL = false;
1655        },
1656        reset: function () {
1657            let {
1658                emailSignInput,
1659                emailSignConfirmInput,
1660                passwordSignInput,
1661                emailLoginInput,
1662                passwordLoginInput,
1663            } = this.$refs;
1664            emailSignInput.reset();
1665            emailSignConfirmInput.reset();
1666            passwordSignInput.reset();
1667            emailLoginInput.reset();
1668            passwordLoginInput.reset();
1669        },
1670        isRemember:function () {
1671            return this.$refs.loginRemember.getValue()?true:false;
1672        },
1673        submitNull:function () {
1674            //点击email的时候不需要自动提交
1675        },
1676        submit: function () {
1677            //如果有其它在登录,则退出
1678            if(this.isLoading){
1679                return false;
1680            }
1681            let loginRemember = this.$refs.loginRemember;
1682            let isRemember = loginRemember.getValue();
1683            if (this.isLoginMode === true) {
1684                var loginData = this.validateLogin();
1685                this.isFirstSignIn = false;
1686                if (loginData) {
1687                    // loginData = {email: xxx, password: xxx}
1688                    // 登录
1689                    loginData.remember = isRemember;
1690                    this.isLoading = true;
1691                    //如果是第一次登录,默认不需要验证码
1692                    if(window.needLoginRecaptcha === undefined){
1693                        window.needLoginRecaptcha = false;
1694                    }
1695                    //如果需要验证码,则使用验证登录方法
1696                    if(window.needLoginRecaptcha === true){
1697                        window.recaptchaPost(loginData,'login');
1698                    }else{
1699                        window.fjuser.loginPost(loginData,(result,data)=>{
1700                            if(data.needCaptcha === true){
1701                                window.needLoginRecaptcha = true;
1702                                //console.log(data);
1703                                if(result === true){
1704                                    this.userLogined(data);
1705                                }
1706                            }
1707                        });
1708                    }
1709                }
1710            } else {
1711                var signUpData = this.validateSignUp();
1712                this.isFirstSignUp = false;
1713                if (signUpData) {
1714                    email = signUpData.email;
1715                    var emailService = jQuery("#emailService")[0];
1716                    //console.log(email);
1717                    emailService.href = "http://www." + email.substr(email.indexOf("@") + 1);
1718
1719                    signUpData.remember = isRemember;
1720                    this.isLoading = true;
1721                    window.signup_action_path = "email";
1722                    //window.googleRecaptcha.submit(signUpData, 'register');
1723                    window.recaptchaPost(signUpData,'register');
1724                }
1725            }
1726        },
1727        validateSignUp: function () {
1728            let emailSignInput = this.$refs.emailSignInput;
1729            let emailSignConfirmInput = this.$refs.emailSignConfirmInput;
1730            let passwordSignInput = this.$refs.passwordSignInput;
1731            let emailText = emailSignInput.getValue();
1732            let emailConfirmText = emailSignConfirmInput.getValue();
1733            let passwordText = passwordSignInput.getValue();
1734            let emailErrText = this.validateEmail(emailText);
1735            let passwordErrText = this.validatePassword(passwordText);
1736            let emailNotConfirm = false;
1737            if (emailErrText) {
1738                emailSignInput.setErr(emailErrText);
1739            }else{
1740                emailSignInput.setErr("");
1741            }
1742            if (emailConfirmText === '') {
1743                emailSignConfirmInput.setErr(this.loginLanguage.emailEmpty);
1744                emailNotConfirm = true;
1745            } else if (emailConfirmText !== emailText) {
1746                emailSignConfirmInput.setErr(this.loginLanguage.emailWrongConfirm);
1747                emailNotConfirm = true;
1748            }else{
1749                emailSignConfirmInput.setErr("");
1750            }
1751            if (passwordErrText) {
1752                passwordSignInput.setErr(passwordErrText);
1753            }else{
1754                passwordSignInput.setErr("");
1755            }
1756            return emailErrText || emailNotConfirm || passwordErrText ? null
1757                : {email: emailText, password: passwordText};
1758        },
1759        validateLogin: function () {
1760            let emailLoginInput = this.$refs.emailLoginInput;
1761            let passwordLoginInput = this.$refs.passwordLoginInput;
1762            let emailText = emailLoginInput.getValue();
1763            let passwordText = passwordLoginInput.getValue();
1764            let emailErrText = this.validateEmail(emailText);
1765            //console.log(passwordText);
1766            let passwordErrText = this.validatePassword(passwordText);
1767            if (emailErrText) {
1768                emailLoginInput.setErr(emailErrText);
1769            }else{
1770                emailLoginInput.setErr("");
1771            }
1772            if (passwordErrText) {
1773                passwordLoginInput.setErr(passwordErrText);
1774            }else{
1775                passwordLoginInput.setErr("");
1776            }
1777            return emailErrText || passwordErrText ? null : {email: emailText, password: passwordText};
1778        },
1779        checkEmail: function checkEmail(email) {
1780            if (email.indexOf(".") === -1) {
1781                return false
1782            }
1783            let regex = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
1784            return regex.test(email);
1785        },
1786        validateEmail: function (value) {
1787            let email = value.replace(/(^\s*)|(\s*$)/g, "");
1788            let errText = '';
1789            let {emailEmpty, emailOverLength, emailWrongAddress} = this.loginLanguage;
1790            if (email.length === 0) {
1791                errText = emailEmpty;
1792            } else if (email.length > 64) {
1793                errText = emailOverLength;
1794            } else if (!this.checkEmail(email)) {
1795                errText = emailWrongAddress;
1796            }
1797            return errText;
1798        },
1799        validatePassword: function (value) {
1800            let password = value.replace(/(^\s*)|(\s*$)/g, "");
1801            let errText = '';
1802            let {passwordEmpty, passwordOverLength} = this.loginLanguage;
1803            if (password.length === 0) {
1804                errText = passwordEmpty;
1805            } else if (password.length < 6 || password.length > 64) {
1806                errText = passwordOverLength;
1807            }
1808            return errText;
1809        },
1810        setError:function (text) {
1811            let emailSignInput = this.$refs.emailSignInput;
1812            if(this.isLoginMode === true){
1813                emailSignInput = this.$refs.emailLoginInput;
1814            }
1815            emailSignInput.setErr(text);
1816        },
1817    },
1818    created:function () {
1819        var _this = this;
1820        window.tcRecaptchaCloseCallback = function () {
1821            _this.isLoading = false;
1822        };
1823    },
1824    watch: {
1825        isLoginMode: function () {
1826            this.reset();
1827        }
1828    }
1829});
1830
1831Vue.component('fj-modal', {
1832    template: `
1833        <div v-show="isVisible" class="fj-modal">
1834            <transition name="fade">
1835                <div class="mask"/>
1836            </transition>
1837            <div class="wrap">
1838                <div @click="closeModal" class="close">
1839                    <img src="/media/login/images/close.svg">
1840                </div>
1841                <slot name="content"></slot>
1842            </div>
1843        </div>
1844    `,
1845    props: {
1846        isVisible: Boolean,
1847        closeModal: Function
1848    },
1849    data: function () {
1850        return {
1851            isHover:false
1852        };
1853    },
1854    methods:{
1855    }
1856});
1857var app_fj_login = new Vue({
1858    el: '#login',
1859    template: `
1860        <div id="login-module">
1861            <fj-user-container :hasLogin="hasLogin" 
1862                               :loginLanguage="loginLanguage"
1863                               :setPanelMode="setPanelMode" 
1864                               :loginLanguage="loginLanguage"
1865                               :userLogout="userLogout"
1866                               :showSignUpPanel="showSignUpPanel"
1867                               :userInfo="userInfo" 
1868                               />
1869            <fj-modal :closeModal="hideLoginPanel" :isVisible="active">
1870                <template v-slot:content>
1871                    <fj-login-panel ref="fj_login_panel" :loginLanguage="loginLanguage"
1872                                    :isLoginMode="isLoginMode" 
1873                                    :hideLoginPanel="hideLoginPanel" 
1874                                    :showLoginPanel="showLoginPanel"
1875                                    @setPanelMode="setPanelMode"
1876                                    :userLogined="userLogined"
1877                                      />
1878                </template>
1879            </fj-modal>
1880        </div>
1881    `,
1882    data: function () {
1883        return {
1884            hasLogin: false,
1885            isLoginMode: null, // true:login界面,false: signUp界面, null: 界面隐藏
1886            loginLanguage: loginLanguage,
1887            userInfo:null,
1888        };
1889    },
1890    computed: {
1891        active: function () {
1892            return this.isLoginMode !== null
1893        }
1894    },
1895    methods: {
1896        autoLogin:function (data) {
1897            this.$refs.fj_login_panel.autoLogin(data);
1898        },
1899        userLogout: function () {
1900            window.fjuser.logoutPost();
1901        },
1902        checkRemeber:function () {
1903            //console.log("call CookieFunc");
1904            var _this = this;
1905            if(window.CookieFunc){
1906                window.CookieFunc.initLogin(function (token) {
1907                    if (token) {
1908                        _this.$refs.fj_login_panel.setRemember(true);
1909                        $.post("/user/rememberState",{token: token},function (result) {
1910                            if(result.code === 200){
1911                                csrf_token = result.csrf_token || result.token;
1912                                if(csrf_token){
1913                                    window.csrf_token = csrf_token;
1914                                }
1915                                _this.autoLogin(result.data);
1916                            }
1917                        });
1918                    }
1919                });
1920            }
1921        },
1922        dispatchPanelEvent:function (old_status,new_status) {
1923            if(old_status !== new_status){
1924                //隐藏
1925                if(new_status === null){
1926                    if(old_status === false){
1927                        window.fjuser.dispatchCallbacks(window.fjuser.eventType.hideRegisterPanel);
1928                    }else{
1929                        window.fjuser.dispatchCallbacks(window.fjuser.eventType.hideLoginPanel);
1930                    }
1931                }else if(new_status === false){ //显示注册面板
1932                    window.fjuser.dispatchCallbacks(window.fjuser.eventType.showRegisterPanel);
1933                }else if(new_status === true){ //显示登录面板
1934                    window.fjuser.dispatchCallbacks(window.fjuser.eventType.showLoginPanel);
1935                }
1936            };
1937        },
1938        setPanelMode:function (statue) {
1939            this.dispatchPanelEvent(this.isLoginMode,statue);
1940            //关闭弹窗后重置验证
1941            if(statue === null){
1942                this.$refs.fj_login_panel.initFirst();
1943            }
1944            else {
1945                this.ensureSDKs();
1946            }
1947            this.isLoginMode = statue;
1948            if(window.callbackWhenLoginPanelModeChange){
1949                callbackWhenLoginPanelModeChange(statue);
1950            }
1951            if(statue === true){
1952                var _this = this;
1953                setTimeout(function () {
1954                    _this.checkRemeber();
1955                }, 300);
1956            }
1957
1958            if(!window.hasAutoLogin) {
1959                window.hasAutoLogin = true;
1960                this.checkAutoLogin();
1961            }
1962
1963            //检查是否是程序页需要特殊处理
1964            if(statue === false && window.showSignUpEacallback){
1965                showSignUpEacallback();
1966            }
1967        },
1968        showLoginPanel: function () {
1969            this.setPanelMode(true);
1970        },
1971        hideLoginPanel: function () {
1972            this.setPanelMode(null);
1973        },
1974        showSignUpPanel:function () {
1975            this.setPanelMode(false);
1976        },
1977        checkAutoLogin:function () {
1978            var _this = this;
1979
1980            if(!window.$ && window.jQuery){
1981                window.$ = window.jQuery;
1982            }
1983
1984            $.post("/user/checkState",{},function (json) {
1985                if(200 == json.code){
1986                    window.fjuser.dispatchCallbacks(window.fjuser.eventType.login, true, json);
1987                    window.fjuser.info = json.data;
1988                };
1989                if(json.token){
1990                    window.csrf_token = json.token;
1991                }
1992            })
1993        },
1994        userLogined:function (info) {
1995            this.userInfo = info;
1996            //this.hasLogin = true;
1997            //在直接更新登录状态直接dispatch一下面板状态
1998            this.dispatchPanelEvent(this.isLoginMode,true);
1999            this.hasLogin = true;
2000            if(info.email){
2001                this.setEmailWeb(info.email);
2002            }else if(info.userEmail){ //兼容fotojet
2003                this.setEmailWeb(info.userEmail);
2004            }
2005
2006            if(info.remembertoken){
2007                this.setRememberState(info.remembertoken);
2008            }
2009
2010            this.hideLoginPanel();
2011            this.$refs.fj_login_panel.resetLoading();
2012            if(window.appLoginCallback){
2013                window.appLoginCallback(info);
2014            }
2015            if(window.callbackWhenUserIdChange){
2016                window.callbackWhenUserIdChange();
2017            }
2018        },
2019        setEmailWeb:function (email) {
2020            var emailService = jQuery("#emailService")[0];
2021            //console.log(email);
2022            emailService.href = "http://www." + email.substr(email.indexOf("@") + 1);
2023        },
2024        setRememberState:function (remembertoken) {
2025            is_remember = this.$refs.fj_login_panel.isRemember();
2026            if (is_remember) {
2027                CookieFunc.setCookie('fj_remember', true);
2028                CookieFunc.setCookie('fj_usertoken', remembertoken);
2029            }
2030            else {
2031                CookieFunc.delCookie('fj_remember');
2032                CookieFunc.delCookie('fj_usertoken');
2033            }
2034        },
2035        loading:function () {
2036            this.$refs.fj_login_panel.loading();
2037        },
2038        loaded:function () {
2039            this.$refs.fj_login_panel.loaded();
2040        },
2041        setError:function (text) {
2042            this.$refs.fj_login_panel.setError(text);
2043        },
2044        getQueryVariable:function(variable) {
2045            var query = window.location.search.substring(1);
2046            var vars = query.split("&");
2047            for (var i=0;i<vars.length;i++) {
2048                var pair = vars[i].split("=");
2049                if(pair[0] == variable){return pair[1];}
2050            }
2051            return(false);
2052        },
2053        updatePackInfo:function (data) {
2054            this.userInfo.policy = data.package;
2055            this.userInfo.period = data.period;
2056        },
2057        ensureSDKs: function () {
2058            this.ensureRecaptcha();
2059        },
2060        setUserInfo: function (data) {
2061            $('#user_name').text(data.email);
2062            $('#imgAvatar').attr("src",data.img);
2063            $('#imgAvatarThumb').attr("src",data.img);
2064            window.userInfo = {
2065                img: data.img,
2066                userName: data.name,
2067                userEmail: data.email,
2068            };
2069            if (window.appLoginCallback) {
2070                window.appLoginCallback();
2071            }
2072            if (window.packageLoginCallback) {
2073                window.packageLoginCallback();
2074            }
2075        },
2076        ensureRecaptcha:function () {
2077            if(window.googleRecaptcha.loaded || window.tencentRecaptcha.loaded){
2078                return true;
2079            }
2080
2081            window.loadGoogleRecaptchaSDK();
2082            window.loadFacebookSDK();
2083            window.loadGoogleSDK();
2084            window.loadTencentRecaptchaSDK();
2085
2086            // window.fjuser.getCountryCode().then(code => {
2087            //     if(code && code !== "CN")
2088            //     {
2089            //         window.loadGoogleRecaptchaSDK();
2090            //         window.loadFacebookSDK();
2091            //         window.loadGoogleSDK();
2092            //     } else {
2093            //         window.loadFacebookSDK();
2094            //         window.loadGoogleSDK();
2095            //         window.loadTencentRecaptchaSDK();
2096            //     }
2097            // });
2098        }
2099    },
2100    created: function () {
2101        // `this` 指向 vm 实例
2102        var _this = this;
2103        //create后的回调,不同产品执行不同的处理
2104        if(window.app_fj_login_created_callback){
2105            app_fj_login_created_callback(this);
2106        }
2107
2108        //如果地址栏包含signin或signup且用户未登录,则打开页面弹出登录弹窗
2109        if(!this.userInfo || !this.userInfo.result){
2110            action = this.getQueryVariable("action");
2111            if(action == "signin"){
2112                this.showLoginPanel();
2113            } else if(action == "signup"){
2114                this.showSignUpPanel();
2115            }
2116        }
2117    }
2118});
2119
2120
2121
2122window.loadRecaptcha = function (ele_id,re_name,cb_before,cb_after) {
2123    //加载验证sdk
2124    app_fj_login.ensureSDKs();
2125
2126    // 添加google验证目标方法
2127    window.googleRecaptcha.addTarget(re_name,(data) => {
2128        cb_after(data);
2129    });
2130
2131    //添加腾讯验证的方法
2132    window.tencentRecaptcha.addTarget(re_name,(data)=>{
2133        cb_after(data);
2134    });
2135
2136    //绑定事件
2137    $(document).on("click",ele_id,() => {
2138        data = cb_before();
2139        if(data === false){
2140
2141        }else{
2142            window.recaptchaPost(data,re_name);
2143        }
2144    });
2145};
2146function handleCredentialResponse(response) {
2147    FJTools.post("/user/connectGoogleUser", {token: response.credential}, function (res) {
2148        let result = (res.code === 200);
2149        if(result) {
2150            window.fjuser.info = res.data;
2151            window.csrf_token = res.token;
2152        }
2153
2154        if(res.data.register) {
2155            if (window.ealog) {
2156                window.ealog.addEvent("sign up", {
2157                    "signUpMode": "google",
2158                    "signUpPage": window.location.pathname,
2159                    "signUpAccount": window.fjuser.info.email
2160                })
2161            }
2162            window.fjuser.dispatchCallbacks(window.fjuser.eventType.register, result, res);
2163        } else {
2164            window.fjuser.dispatchCallbacks(window.fjuser.eventType.login, result, res);
2165        }
2166    })
2167}
2168
2169window.onload = function () {
2170    if (window.fjuser && !window.fjuser.info.result) {
2171
2172        let dom = document.createElement("div");
2173        $(dom).attr("id", "google-one-tap");
2174
2175        let path = location.pathname
2176        let style;
2177        if (path.indexOf('/embed') !== -1) {
2178            return false
2179        }
2180        if (path.indexOf('editor/') !== -1) {
2181            style = {
2182                "z-index": "100",
2183                "position": "fixed",
2184                "top": "55px",
2185                "right": 0
2186            }
2187        } else {
2188            style = {
2189                "z-index": "5",
2190                "position": "fixed",
2191                "top": "86px",
2192                "right": 0
2193            }
2194        }
2195        $(dom).css(style);
2196
2197        let loginModule = document.getElementById('login-module')
2198        $(loginModule).after(dom)
2199        try {
2200            google.accounts.id.initialize({
2201                client_id: window.fj.google_auth2_id,
2202                prompt_parent_id: "google-one-tap",
2203                // auto_select: true,
2204                callback: handleCredentialResponse,
2205                // cancel_on_tap_outside: false
2206            });
2207            google.accounts.id.prompt((notification) => {
2208                console.log(notification)
2209                if(!notification.h) {
2210                    document.getElementById('google-one-tap').remove()
2211                    window.fj.event.dispatch("SHOW_APP_LOGIN_TIPS_MODEL")
2212                } else {
2213                    window.fj.event.dispatch("MOVE_SHARE_TOOLS_TOP")
2214                }
2215                if (notification.g) {
2216                    switch (notification.g) {
2217                        case "skipped":
2218                            window.fj.event.dispatch("REDUCTION_SHARE_TOOLS_POSITION")
2219                            break;
2220                    }
2221                }
2222            });
2223        } catch (e) {
2224            document.getElementById('google-one-tap').remove()
2225        }
2226    }
2227};
2228
2229window.fjuser.addListener(window.fjuser.eventType.logout,function (result, response){
2230    if(result) {
2231        try {
2232            google.accounts.id.disableAutoSelect()
2233        } catch (e) {
2234
2235        }
2236    }
2237
2238});
2239
2240//icon components
2241Vue.component('fj-icon-success', {
2242    template: `
2243<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2244	 width="46px" height="46px" viewBox="0 0 46 46" enable-background="new 0 0 46 46" xml:space="preserve">
2245<polygon fill="#52BF8A" points="17.998,34.414 10.584,27 11.999,25.586 17.998,31.586 33.998,15.586 35.412,17 "/>
2246<path fill="#52BF8A" d="M23,46C10.317,46,0,35.684,0,23C0,10.318,10.317,0,23,0c12.684,0,23,10.318,23,23
2247	C45.998,35.684,35.684,46,23,46z M23,2.001C11.421,2.001,2,11.421,2,23s9.421,20.998,21,20.998c11.58,0,20.998-9.419,20.998-20.998
2248	C43.996,11.421,34.578,2.001,23,2.001z"/>
2249</svg>
2250`
2251});
2252
2253Vue.component('fj-icon-delete', {
2254    template: `
2255<svg width="12px" height="12px" viewBox="0 0 12 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2256    <!-- Generator: sketchtool 43.1 (39012) - http://www.bohemiancoding.com/sketch -->
2257    <title>73E9C865-B140-4020-81F7-4E5628F0F688</title>
2258    <desc>Created with sketchtool.</desc>
2259    <defs></defs>
2260    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
2261        <g id="2.9.3-调查窗口3-copy" transform="translate(-284.000000, -173.000000)" fill="#404040">
2262            <path d="M291.364803,178.95059 L295.606827,174.708565 C296.000149,174.315244 295.997968,173.68426 295.607444,173.293735 C295.214197,172.900488 294.583479,172.903487 294.192614,173.294352 L289.95059,177.536376 L285.708565,173.294352 C285.315244,172.90103 284.68426,172.903211 284.293735,173.293735 C283.900488,173.686982 283.903487,174.3177 284.294352,174.708565 L288.536376,178.95059 L284.294352,183.192614 C283.90103,183.585935 283.903211,184.216919 284.293735,184.607444 C284.686982,185.000691 285.3177,184.997692 285.708565,184.606827 L289.95059,180.364803 L294.192614,184.606827 C294.585935,185.000149 295.216919,184.997968 295.607444,184.607444 C296.000691,184.214197 295.997692,183.583479 295.606827,183.192614 L291.364803,178.95059 Z" id="delete"></path>
2263        </g>
2264    </g>
2265</svg>
2266`
2267});
2268
2269Vue.component('fj-icon-back', {
2270    template: `
2271<svg width="17px" height="18px" viewBox="0 0 17 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2272    <!-- Generator: sketchtool 43.1 (39012) - http://www.bohemiancoding.com/sketch -->
2273    <defs></defs>
2274    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
2275        <g id="2.9.3-调查窗口3-copy" transform="translate(-169.000000, -57.000000)" fill-rule="nonzero" fill="#6A6E79">
2276            <path d="M173.414214,65 L179.707107,58.7071068 L178.292893,57.2928932 L169.585786,66 L178.292893,74.7071068 L179.707107,73.2928932 L173.414214,67 L186,67 L186,65 L173.414214,65 Z" id="Back"></path>
2277        </g>
2278    </g>
2279</svg>
2280`
2281});
2282
2283Vue.component('fj-icon-step-designcap', {
2284    template: `
2285    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2286         width="12px" height="12px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
2287    <title>Shape Copy 15</title>
2288    <desc>Created with Sketch.</desc>
2289    <g id="Page-1">
2290        <g id="pricing" transform="translate(-876.000000, -492.000000)">
2291            <path id="Shape-Copy-15" fill="#EE5C33" d="M892.209,495.001c-0.452,0.013-0.881,0.202-1.197,0.525
2292                c-2.717,2.724-5.438,5.436-8.159,8.16l-3.998-3.336c-0.739-0.614-1.835-0.514-2.451,
22920.224c-0.615,0.738-0.517,1.834,0.22,2.45
2293                l5.222,4.353c0.693,0.577,1.712,0.53,2.348-0.108c3.092-3.099,6.187-6.18,9.285-9.284c0.512-0.501,0.662-1.265,0.383-1.924
2294                C893.58,495.4,892.925,494.98,892.209,495.001L892.209,495.001z"/>
2295        </g>
2296    </g>
2297    </svg>
2298`
2299});
2300
2301Vue.component('fj-icon-step-designevo', {
2302    template: `
2303<svg width="13px" height="9px" viewBox="0 0 13 9" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2304    <!-- Generator: sketchtool 43.1 (39012) - http://www.bohemiancoding.com/sketch -->
2305    <title>812F623D-E5C8-417F-83CD-9AF088F8D726</title>
2306    <desc>Created with sketchtool.</desc>
2307    <defs></defs>
2308    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
2309        <g id="2.9.3-调查窗口-2" transform="translate(-489.000000, -233.000000)" fill-rule="nonzero" fill="#FFFFFF">
2310            <polygon id="Path-3" points="490.353553 236.646447 489.646447 237.353553 494 241.707107 501.353553 234.353553 500.646447 233.646447 494 240.292893"></polygon>
2311        </g>
2312    </g>
2313</svg>
2314`
2315});
2316
2317Vue.component('fj-icon-enterprise', {
2318    template: `
2319<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2320	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2321<g>
2322	<path fill="#404040" d="M54.3,21.6H41.4V7.4c0-0.969-0.73-1.7-1.7-1.7H20.3c-0.969,0-1.7,0.731-1.7,1.7v14.2H5.7
2323		c-0.969,0-1.7,0.731-1.7,1.7v29.3c0,0.97,0.731,1.7,1.7,1.7h14.6h19.4h14.6c0.97,0,1.7-0.73,1.7-1.7V23.3
2324		C56,22.331,55.27,21.6,54.3,21.6z M5,52.6V23.3c0-0.425,0.275-0.7,0.7-0.7h12.9v30c0,0.253,0.052,0.488,0.143,0.7H5.7
2325		C5.275,53.3,5,53.025,5,52.6z M20.3,53.3c-0.425,0-0.7-0.274-0.7-0.7V7.4c0-0.425,0.274-0.7,0.7-0.7h19.4
2326		c0.426,0,0.7,0.274,0.7,0.7v45.2c0,0.426-0.274,0.7-0.7,0.7H20.3z M55,52.6c0,0.426-0.274,0.7-0.7,0.7H41.258
2327		c0.091-0.212,0.143-0.447,0.143-0.7v-30H54.3c0.426,0,0.7,0.274,0.7,0.7V52.6z"/>
2328	<path fill="#404040" d="M34.9,10.3h-9.7c-0.969,0-1.7,0.731-1.7,1.7v6.1c0,0.969,0.731,1.7,1.7,1.7h9.7
2329		c0.969,0,1.699-0.731,1.699-1.7V12C36.6,11.031,35.869,10.3,34.9,10.3z M35.6,18.1c0,0.425-0.274,0.7-0.699,0.7h-9.7
2330		c-0.425,0-0.7-0.274-0.7-0.7V12c0-0.425,0.275-0.7,0.7-0.7h9.7c0.425,0,0.699,0.275,0.699,0.7V18.1z"/>
2331	<rect x="50.1" y="31.8" fill="#404040" width="1" height="15.9"/>
2332	<rect x="29.5" y="34.9" fill="#404040" width="1" height="1.8"/>
2333	<rect x="29.5" y="31.2" fill="#404040" width="1" height="1.8"/>
2334	<rect x="29.5" y="42.2" fill="#404040" width="1" height="1.8"/>
2335	<rect x="29.5" y="38.5" fill="#404040" width="1" height="1.9"/>
2336	<rect x="29.5" y="27.6" fill="#404040" width="1" height="1.8"/>
2337	<rect x="25.9" y="34.9" fill="#404040" width="1" height="1.8"/>
2338	<rect x="25.9" y="31.2" fill="#404040" width="1" height="1.8"/>
2339	<rect x="25.9" y="42.2" fill="#404040" width="1" height="1.8"/>
2340	<rect x="25.9" y="38.5" fill="#404040" width="1" height="1.9"/>
2341	<rect x="25.9" y="27.6" fill="#404040" width="1" height="1.8"/>
2342	<rect x="22.2" y="34.9" fill="#404040" width="1" height="1.8"/>
2343	<rect x="22.2" y="31.2" fill="#404040" width="1" height="1.8"/>
2344	<rect x="22.2" y="42.2" fill="#404040" width="1" height="1.8"/>
2345	<rect x="22.2" y="38.5" fill="#404040" width="1" height="1.9"/>
2346	<rect x="36.8" y="34.9" fill="#404040" width="1" height="1.8"/>
2347	<rect x="36.8" y="31.2" fill="#404040" width="1" height="1.8"/>
2348	<rect x="36.8" y="42.2" fill="#404040" width="1" height="1.8"/>
2349	<rect x="36.8" y="38.5" fill="#404040" width="1" height="1.9"/>
2350	<rect x="33.1" y="27.6" fill="#404040" width="1" height="1.8"/>
2351	<rect x="33.1" y="34.9" fill="#404040" width="1" height="1.8"/>
2352	<rect x="33.1" y="31.2" fill="#404040" width="1" height="1.8"/>
2353	<rect x="33.1" y="42.2" fill="#404040" width="1" height="1.8"/>
2354	<rect x="29.5" y="45.9" fill="#404040" width="1" height="1.8"/>
2355	<rect x="25.9" y="45.9" fill="#404040" width="1" height="1.8"/>
2356	<rect x="22.2" y="45.9" fill="#404040" width="1" height="1.8"/>
2357	<rect x="36.8" y="45.9" fill="#404040" width="1" height="1.8"/>
2358	<rect x="33.1" y="45.9" fill="#404040" width="1" height="1.8"/>
2359	<rect x="33.1" y="38.5" fill="#404040" width="1" height="1.9"/>
2360	<rect x="45.4" y="31.8" fill="#404040" width="1" height="15.9"/>
2361	<rect x="13.7" y="31.8" fill="#404040" width="1" height="15.9"/>
2362	<rect x="8.9" y="31.8" fill="#404040" width="1" height="15.9"/>
2363</g>
2364</svg>
2365`
2366});
2367
2368Vue.component('fj-icon-nonprofit-ngo', {
2369    template: `
2370<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2371	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2372<path fill="#404040" d="M54.9,33.9h-8.7c-0.576,0-1.101,0.524-1.1,1.133l0.156,2.365c-1.136-0.631-5.203-2.694-8.391-1.78
2373	c-1.685,0.468-3.561,1.679-5.546,2.962c-0.159,0.103-0.319,0.205-0.479,0.309l2.045-8.269L32.9,30.5c0-0.373-0.327-0.7-0.7-0.7
2374	H21.703c0.222-0.483,0.406-0.927,0.553-1.337l2.171-3.78c0.025,0.004,0.047,0.018,0.073,0.018l0.982-0.007
2375	c1.457-0.243,2.346-0.614,2.948-1.217c1.103-0.965,1.15-2.49,1.07-3.676c0-0.338-0.295-1.334-0.422-1.747L28.877,17.4l-0.562,0.389
2376	c-0.013,0.009-1.293,0.893-2.555,1.572c-1.106,0.603-1.688,1.36-1.942,2.502C23.6,22.63,23.6,23.295,23.6,24
2377	c0,0.03,0.012,0.056,0.017,0.084l-0.927,1.614c-0.201-1.531-1.34-2.573-3.096-4.163l-0.563-0.511
2378	c-3.116-2.749-1.765-7.537-1.751-7.584c0.077-0.265-0.075-0.542-0.339-0.62c-0.269-0.079-0.542,0.074-0.62,0.338
2379	c-0.044,0.149-0.728,2.574-0.069,5.108c-0.242-0.181-0.473-0.364-0.687-0.536l-0.147-0.118C14.477,16.844,14,15.729,14,14.3
2380	c0-0.769,0.241-1.461,0.647-2.376c0.28-0.56,0.76-1.23,1.426-1.992c0.82-0.922,1.389-1.69,1.757-2.23
2381	c0.14,0.287,0.305,0.611,0.493,0.979c0.16,0.313,0.336,0.659,0.542,1.067c0.711,1.245,1.241,2.271,1.579,3.059
2382	C20.874,13.75,21.1,14.612,21.1,15.3c0,0.832-0.411,1.976-1.112,3.117l-1.1,1.6c-0.156,0.228-0.099,0.539,0.129,0.695
2383	c0.086,0.06,0.185,0.088,0.283,0.088c0.159,0,0.315-0.076,0.413-0.217l1.114-1.621c0.822-1.335,1.274-2.636,1.274-3.663
2384	c0-0.841-0.25-1.819-0.741-2.896c-0.348-0.813-0.895-1.874-1.612-3.127c-0.193-0.387-0.371-0.735-0.532-1.05
2385	c-0.411-0.804-0.708-1.385-0.841-1.785l-0.354-1.061l-0.937,1.641c-0.326,0.489-0.895,1.275-1.76,2.248
2386	c-0.725,0.828-1.253,1.57-1.581,2.227C13.367,12.342,13,13.255,13,14.3c0,1.719,0.617,3.133,1.788,4.091l0.15,0.12
2387	c0.467,0.376,1.049,0.843,1.714,1.224c0.055,0.032,0.113,0.048,0.172,0.058c0.36,0.701,0.858,1.376,1.54,1.978l0.56,0.507
2388	c2.483,2.247,3.364,3.059,2.493,5.591l-1.405-0.961c-0.296-0.591-0.604-1.198-1.031-1.732c-0.668-0.779-1.364-1.344-2.575-1.563
2389	c-1.403-0.301-2.907-0.602-2.907-0.602l-0.701-0.14l0.109,0.707c0.035,0.224,0.212,1.358,0.313,1.661
2390	c0.43,1.504,1.218,2.548,2.284,3.022c0.408,0.175,0.872,0.263,1.392,0.263c0.502,0,1.057-0.083,1.663-0.248
2391	c0.342-0.113,0.583-0.233,0.92-0.458c0.015-0.01,0.024-0.025,0.039-0.037l1.529,1.046c-0.091,0.211-0.189,0.43-0.298,0.663
2392	c-0.047,0.102-0.049,0.209-0.028,0.311H11.1c-0.373,0-0.7,0.327-0.7,0.7l2.511,10.723c-2.11-1.538-4.687-3.291-5.645-3.418
2393	c-1.381-0.192-2.396,0.768-2.674,1.065c-0.21,0.224-0.688,0.803-0.577,1.351c0.152,0.609,10.853,13.123,12.161,13.727
2394	c0.774,0.387,5.28,0.664,9.233,0.664c2.712,0,5.164-0.131,5.972-0.445c0.845-0.328,1.889-1.153,2.994-2.025
2395	c1.332-1.053,2.842-2.245,3.895-2.445c2.009-0.289,7.703,0.492,7.761,0.5c0.023,0.003,0.046-0.005,0.069-0.006l0.1,1.511
2396	c0,0.627,0.473,1.1,1.1,1.1H54.9c0.575,0,1.1-0.524,1.1-1.1V35C56,34.373,55.527,33.9,54.9,33.9z M18.923,26.984
2397	c-0.265,0.176-0.424,0.256-0.655,0.333c-0.983,0.268-1.78,0.277-2.365,0.025c-0.781-0.347-1.376-1.17-1.729-2.401
2398	c-0.036-0.107-0.1-0.444-0.164-0.808c0.567,0.115,1.397,0.286,2.2,0.458c0.944,0.171,1.452,0.582,1.999,1.22
2399	c0.273,0.341,0.499,0.739,0.719,1.167C18.927,26.981,18.925,26.982,18.923,26.984z M26.237,20.24
2400	c0.788-0.424,1.567-0.914,2.074-1.245c0.104,0.378,0.186,0.717,0.19,0.838c0.1,1.491-0.119,2.355-0.754,2.914
2401	c-0.467,0.467-1.194,0.754-2.347,0.954h-0.651c-0.031-0.07-0.078-0.131-0.14-0.181c0.009-0.476,0.038-0.913,0.18-1.411
2402	C24.957,21.351,25.258,20.774,26.237,20.24z M11.484,30.8h20.328l-2.193,8.864c-1.775,1.1-3.534,2.042-5.081,2.24l-1.154,0.14
2403	c-2.906,0.345-5.887,0.704-7.39,1.726c-0.009-0.139-0.069-0.272-0.187-0.364c-0.295-0.229-0.897-0.695-1.654-1.264L11.484,30.8z
2404	 M38.106,48.709c-1.315,0.25-2.858,1.469-4.351,2.646c-1.045,0.825-2.031,1.604-2.737,1.879c-1.667,0.648-13.35,0.342-14.409-0.188
2405	C15.458,52.489,5.977,41.34,5.014,39.982c0.151-0.381,1.079-1.314,2.12-1.188c0.995,0.133,5.471,3.383,8.059,5.399
2406	c0.066,0.052,0.141,0.077,0.218,0.092c-0.01,0.012-0.026,0.021-0.036,0.033c-0.311,0.399-0.436,0.852-0.371,1.345
2407	c0.337,2.589,1.566,2.729,3.122,2.907l0.191,0.021c0.212,0.035,0.473,0.084,0.771,0.139c1.476,0.273,3.751,0.694,5.925,0.694
2408	c1.286,0,2.537-0.147,3.566-0.56c3.124-1.209,7.334-4.233,7.511-4.361c0.225-0.161,0.275-0.474,0.113-0.697
2409	c-0.162-0.226-0.476-0.276-0.697-0.113c-0.043,0.03-4.285,3.077-7.293,4.242c-2.507,1.001-6.854,0.197-8.944-0.188
2410	c-0.305-0.057-0.571-0.105-0.813-0.146l-0.218-0.024c-1.542-0.177-2.008-0.23-2.244-2.043c-0.029-0.225,0.024-0.416,0.169-0.602
2411	c0.88-1.13,4.46-1.556,7.337-1.897l1.162-0.14c2.267-0.291,4.774-1.91,7.2-3.477c1.92-1.24,3.733-2.411,5.274-2.84
2412	c3.245-0.926,7.857,1.82,7.903,1.848c0.09,0.055,0.189,0.067,0.287,0.062l0.706,10.698C45.146,49.068,40.126,48.422,38.106,48.709z
2413	 M55,51.695c-0.006,0.035-0.066,0.097-0.103,0.104H47.3c-0.1,0-0.1-0.053-0.101-0.133l-1.1-16.662
2414	c0.006-0.036,0.069-0.099,0.101-0.104h8.7c0.1,0,0.1,0.053,0.1,0.1V51.695z"/>
2415</svg>
2416`
2417});
2418
2419Vue.component('fj-icon-store', {
2420    template: `
2421<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2422	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2423<g>
2424	<path fill="#404040" d="M33.8,44.2H44c0.262,0,0.477-0.124,0.618-0.3H44.9v-8.7c0-0.479-0.414-0.8-0.801-0.8H33.8
2425		c-0.479,0-0.8,0.413-0.8,0.8v8.2C33,43.872,33.422,44.2,33.8,44.2z M34,35.4h9.9v7.5H43.8v0.3H34V35.4z"/>
2426	<path fill="#404040" d="M56,50.7h-5.811c0.065-0.084,0.11-0.185,0.11-0.3V28.1c0-0.012-0.006-0.022-0.007-0.034
2427		C52.992,27.77,55.1,25.477,55.1,22.7v-5.4v-0.194V17.1c0-0.26-0.201-0.467-0.455-0.491l-7.302-7.967
2428		C47.254,8.451,47.064,8.3,46.8,8.3H13.2c-0.222,0-0.449,0.127-0.548,0.349l-7.32,7.985c-0.15,0.054-0.261,0.178-0.305,0.333
2429		L4.9,17.105V17.3c0,0.11,0.041,0.218,0.1,0.314V22.7c0,2.743,2.058,5.01,4.71,5.351C9.708,28.068,9.7,28.083,9.7,28.1v22.3
2430		c0,0.115,0.045,0.216,0.11,0.3H4c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5h52c0.276,0,0.5-0.224,0.5-0.5S56.276,50.7,56,50.7z
2431		 M13.412,9.3h33.177l6.966,7.6H6.445L13.412,9.3z M6,22.7v-4.8h9.3h9.8h9.8h9.8h0.1h9.3v4.8c0,2.426-1.974,4.4-4.399,4.4
2432		c-2.427,0-4.4-1.974-4.4-4.4v-4.3c0-0.276-0.224-0.5-0.5-0.5c-0.018,0-0.032,0.008-0.05,0.01c-0.018-0.002-0.032-0.01-0.05-0.01
2433		c-0.276,0-0.5,0.224-0.5,0.5v4.3c0,2.426-1.974,4.4-4.4,4.4c-2.426,0-4.399-1.974-4.399-4.4v-4.3c0-0.276-0.224-0.5-0.5-0.5
2434		s-0.5,0.224-0.5,0.5v4.3c0,2.426-1.974,4.4-4.4,4.4c-2.426,0-4.4-1.974-4.4-4.4v-4.3c0-0.276-0.224-0.5-0.5-0.5s-0.5,0.224-0.5,0.5
2435		v4.3c0,2.426-1.974,4.4-4.4,4.4s-4.4-1.974-4.4-4.4v-4.3c0-0.276-0.224-0.5-0.5-0.5s-0.5,0.224-0.5,0.5v4.3
2436		c0,2.426-1.974,4.4-4.4,4.4S6,25.126,6,22.7z M10.697,28.085c2.044-0.112,3.786-1.362,4.603-3.129
2437		c0.856,1.853,2.728,3.145,4.9,3.145c2.172,0,4.043-1.292,4.9-3.145c0.856,1.853,2.728,3.145,4.9,3.145s4.044-1.292,4.9-3.145
2438		c0.856,1.853,2.728,3.145,4.899,3.145c2.213,0,4.117-1.339,4.95-3.248c0.783,1.793,2.513,3.079,4.554,3.228
2439		c0,0.007-0.004,0.013-0.004,0.02v22.3c0,0.115,0.045,0.216,0.11,0.3H29.6V35.2c0-0.479-0.414-0.8-0.8-0.8H16
2440		c-0.479,0-0.8,0.413-0.8,0.8v15.5h-4.61c0.065-0.084,0.11-0.185,0.11-0.3V28.1C10.7,28.095,10.697,28.09,10.697,28.085z M28.6,50.7
2441		H16.2V35.4h12.4V50.7z"/>
2442</g>
2443</svg>
2444`
2445});
2446
2447Vue.component('fj-icon-government', {
2448    template: `
2449<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2450	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2451<g>
2452	<path fill="#404040" d="M55.5,48.7h-2v-1.9c0-0.276-0.224-0.5-0.5-0.5h-4.9V25.2H53c0.276,0,0.5-0.224,0.5-0.5v-3.4
2453		c0-0.174-0.091-0.335-0.238-0.426l-23-14.1c-0.16-0.099-0.362-0.098-0.523,0l-22.9,14.1C6.69,20.965,6.6,21.126,6.6,21.3v3.4
2454		c0,0.276,0.224,0.5,0.5,0.5h4.8v21.1H7.1c-0.276,0-0.5,0.224-0.5,0.5v1.9H4.5c-0.276,0-0.5,0.224-0.5,0.5v3.6
2455		c0,0.276,0.224,0.5,0.5,0.5h51c0.276,0,0.5-0.224,0.5-0.5v-3.6C56,48.924,55.776,48.7,55.5,48.7z M47.1,46.3h-3.6V25.2h3.6V46.3z
2456		 M27.2,25.2v21.1h-9.7V25.2H27.2z M28.2,25.2h3.6v21.1h-3.6V25.2z M32.8,25.2h9.7v21.1h-9.7V25.2z M7.6,21.579L30,7.787L52.5,21.58
2457		V24.2H7.6V21.579z M12.9,25.2h3.6v21.1h-3.6V25.2z M55,52.3H5v-2.6h2.1c0.276,0,0.5-0.224,0.5-0.5v-1.9h44.9v1.9
2458		c0,0.276,0.224,0.5,0.5,0.5h2V52.3z"/>
2459	<path fill="#404040" d="M30,13.1c-2.041,0-3.7,1.66-3.7,3.7c0,2.041,1.66,3.7,3.7,3.7c2.04,0,3.7-1.66,3.7-3.7
2460		C33.7,14.76,32.04,13.1,30,13.1z M30,19.5c-1.489,0-2.7-1.211-2.7-2.7s1.211-2.7,2.7-2.7c1.489,0,2.7,1.211,2.7,2.7
2461		S31.489,19.5,30,19.5z"/>
2462</g>
2463</svg>
2464
2465`
2466});
2467
2468//Self-Employed
2469Vue.component('fj-icon-self-employed', {
2470    template: `
2471<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2472	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2473<path fill="#404040" d="M33.177,32.378C38.645,30.951,42.7,25.95,42.7,20c0-7.058-5.697-12.8-12.7-12.8S17.3,12.942,17.3,20
2474	c0,5.95,4.056,10.951,9.523,12.378C17.303,33.915,10,42.205,10,52.2c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
2475	C11,41.668,19.523,33.1,30,33.1S49,41.668,49,52.2c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
2476	C50,42.205,42.697,33.915,33.177,32.378z M18.3,20c0-6.506,5.249-11.8,11.7-11.8c6.451,0,11.7,5.293,11.7,11.8S36.451,31.8,30,31.8
2477	C23.548,31.8,18.3,26.506,18.3,20z"/>
2478</svg>
2479
2480`
2481});
2482
2483//community
2484Vue.component('fj-icon-community', {
2485    template: `
2486<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2487	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2488<g>
2489	<path fill="#404040" d="M30,15.9c4.656,0,8.391-7.363,8.547-7.676c0.123-0.247,0.023-0.547-0.224-0.671
2490		c-0.247-0.121-0.547-0.023-0.671,0.224C37.617,7.848,34.045,14.9,30,14.9c-4.039,0-7.617-7.052-7.653-7.124
2491		c-0.124-0.248-0.424-0.346-0.671-0.224c-0.247,0.124-0.347,0.424-0.224,0.671C21.609,8.537,25.345,15.9,30,15.9z"/>
2492	<path fill="#404040" d="M30,10.6c1.819,0,3.3-1.48,3.3-3.3C33.3,5.48,31.819,4,30,4s-3.3,1.48-3.3,3.3
2493		C26.7,9.089,28.211,10.6,30,10.6z M30,5c1.269,0,2.3,1.032,2.3,2.3c0,1.269-1.031,2.3-2.3,2.3c-1.225,0-2.3-1.075-2.3-2.3
2494		C27.7,6.032,28.732,5,30,5z"/>
2495	<path fill="#404040" d="M30,44.1c-4.655,0-8.391,7.363-8.547,7.677c-0.124,0.247-0.023,0.547,0.224,0.671
2496		c0.072,0.036,0.148,0.053,0.223,0.053c0.184,0,0.36-0.102,0.448-0.276C22.383,52.152,25.961,45.1,30,45.1s7.617,7.053,7.652,7.124
2497		c0.124,0.248,0.427,0.349,0.671,0.224c0.247-0.124,0.347-0.424,0.224-0.671C38.391,51.463,34.656,44.1,30,44.1z"/>
2498	<path fill="#404040" d="M30,49.4c-1.819,0-3.3,1.48-3.3,3.3S28.181,56,30,56s3.3-1.48,3.3-3.3C33.3,50.911,31.789,49.4,30,49.4z
2499		 M30,55c-1.268,0-2.3-1.031-2.3-2.3s1.032-2.3,2.3-2.3c1.226,0,2.3,1.074,2.3,2.3C32.3,53.969,31.269,55,30,55z"/>
2500	<path fill="#404040" d="M52.126,37.653C52.056,37.618,45.1,34.047,45.1,30c0-4.041,6.957-7.619,7.027-7.654
2501		c0.246-0.125,0.344-0.426,0.22-0.672c-0.126-0.247-0.426-0.345-0.672-0.22C51.365,21.611,44.1,25.347,44.1,30
2502		c0,4.654,7.266,8.389,7.575,8.546c0.072,0.036,0.149,0.054,0.226,0.054c0.182,0,0.357-0.101,0.446-0.274
2503		C52.472,38.079,52.373,37.778,52.126,37.653z"/>
2504	<path fill="#404040" d="M52.7,26.7c-1.819,0-3.3,1.48-3.3,3.3s1.48,3.3,3.3,3.3S56,31.819,56,30S54.52,26.7,52.7,26.7z M52.7,32.3
2505		c-1.269,0-2.3-1.031-2.3-2.3c0-1.268,1.031-2.3,2.3-2.3S55,28.732,55,30C55,31.269,53.969,32.3,52.7,32.3z"/>
2506	<path fill="#404040" d="M15.9,30c0-4.653-7.265-8.389-7.574-8.546c-0.247-0.127-0.548-0.027-0.672,0.22
2507		c-0.125,0.246-0.026,0.547,0.22,0.672C7.944,22.381,14.9,25.954,14.9,30c0,4.041-6.956,7.618-7.026,7.653
2508		c-0.246,0.125-0.345,0.426-0.22,0.673C7.742,38.5,7.918,38.6,8.101,38.6c0.076,0,0.153-0.018,0.226-0.054
2509		C8.635,38.389,15.9,34.654,15.9,30z"/>
2510	<path fill="#404040" d="M10.6,30c0-1.819-1.48-3.3-3.3-3.3C5.48,26.7,4,28.181,4,30s1.48,3.3,3.3,3.3
2511		C9.12,33.3,10.6,31.819,10.6,30z M7.3,32.3C6.032,32.3,5,31.269,5,30c0-1.268,1.032-2.3,2.3-2.3c1.269,0,2.3,1.032,2.3,2.3
2512		C9.6,31.269,8.568,32.3,7.3,32.3z"/>
2513	<path fill="#404040" d="M8.642,20.674c0.202,0.067,3.2,1.048,6.249,1.048c1.935,0,3.89-0.395,5.164-1.668
2514		c3.28-3.281,0.731-11.082,0.621-11.412c-0.087-0.262-0.369-0.405-0.632-0.316c-0.262,0.087-0.403,0.37-0.316,0.632
2515		c0.025,0.075,2.469,7.54-0.379,10.389c-2.846,2.844-10.313,0.404-10.389,0.379c-0.261-0.085-0.545,0.055-0.632,0.317
2516		C8.238,20.304,8.38,20.587,8.642,20.674z"/>
2517	<path fill="#404040" d="M14.05,17.225c0.859,0,1.677-0.345,2.303-0.972c1.292-1.292,1.292-3.315,0-4.607
2518		c-1.253-1.253-3.354-1.252-4.607,0c-1.292,1.292-1.292,3.315,0,4.607C12.373,16.88,13.191,17.225,14.05,17.225z M12.454,12.354
2519		c0.438-0.438,1.004-0.679,1.597-0.679c0.592,0,1.159,0.241,1.596,0.679c0.91,0.91,0.91,2.283,0,3.193
2520		c-0.875,0.875-2.318,0.875-3.193,0C11.543,14.636,11.543,13.264,12.454,12.354z"/>
2521	<path fill="#404040" d="M51.358,39.325c-0.331-0.11-8.133-2.659-11.412,0.621c-3.28,3.281-0.731,11.082-0.621,11.412
2522		c0.07,0.209,0.266,0.342,0.475,0.342c0.053,0,0.105-0.008,0.158-0.025c0.262-0.088,0.403-0.371,0.316-0.633
2523		c-0.025-0.075-2.47-7.54,0.379-10.389c2.845-2.847,10.314-0.403,10.389-0.379c0.263,0.087,0.545-0.055,0.633-0.316
2524		C51.762,39.695,51.62,39.413,51.358,39.325z"/>
2525	<path fill="#404040" d="M43.63,43.764c-1.165,1.282-1.165,3.291,0,4.572c0.571,0.629,1.403,0.988,2.282,0.988
2526		c0.871,0,1.724-0.354,2.342-0.971c1.291-1.291,1.291-3.315,0-4.607C47,42.493,44.915,42.478,43.63,43.764z M47.547,47.646
2527		c-0.862,0.86-2.4,0.869-3.177,0.018c-0.823-0.905-0.822-2.323-0.017-3.211c0.438-0.438,1.004-0.678,1.597-0.678
2528		c0.592,0,1.159,0.24,1.597,0.678C48.457,45.363,48.457,46.736,47.547,47.646z"/>
2529	<path fill="#404040" d="M39.946,19.954c1.274,1.274,3.229,1.669,5.164,1.668c3.048,0,6.046-0.98,6.248-1.048
2530		c0.262-0.087,0.403-0.37,0.316-0.632c-0.088-0.262-0.37-0.399-0.633-0.316c-0.074,0.026-7.544,2.464-10.389-0.379
2531		c-2.845-2.845-0.404-10.313-0.379-10.388c0.087-0.262-0.055-0.545-0.316-0.632c-0.261-0.085-0.545,0.054-0.633,0.316
2532		C39.215,8.873,36.666,16.673,39.946,19.954z"/>
2533	<path fill="#404040" d="M45.95,17.125c0.858,0,1.677-0.345,2.304-0.972c1.291-1.292,1.291-3.315,0-4.607
2534		c-1.254-1.254-3.355-1.252-4.607,0c-1.23,1.231-1.237,3.247,0,4.607C44.272,16.78,45.091,17.125,45.95,17.125z M44.354,12.253
2535		c0.438-0.438,1.004-0.679,1.597-0.679c0.592,0,1.159,0.241,1.597,0.679c0.91,0.91,0.91,2.283,0,3.193
2536		c-0.876,0.875-2.336,0.857-3.177,0.017C43.494,14.5,43.487,13.12,44.354,12.253z"/>
2537	<path fill="#404040" d="M20.054,40.047c-3.278-3.278-11.169-0.829-11.504-0.724c-0.263,0.083-0.409,0.364-0.326,0.627
2538		c0.083,0.264,0.362,0.409,0.627,0.326c0.076-0.022,7.644-2.375,10.496,0.478c2.845,2.845,0.404,10.313,0.379,10.388
2539		c-0.087,0.263,0.055,0.545,0.317,0.633c0.052,0.018,0.105,0.025,0.158,0.025c0.209,0,0.404-0.133,0.474-0.342
2540		C20.785,51.128,23.334,43.327,20.054,40.047z"/>
2541	<path fill="#404040" d="M11.747,43.746c-0.626,0.627-0.972,1.445-0.972,2.304c0,0.859,0.345,1.678,0.972,2.304
2542		s1.444,0.971,2.304,0.971c0.859,0,1.677-0.345,2.303-0.971c1.189-1.189,1.197-3.291,0-4.607
2543		C15.1,42.493,12.999,42.495,11.747,43.746z M15.646,47.646c-0.875,0.876-2.318,0.874-3.193,0c-0.438-0.438-0.679-1.004-0.679-1.597
2544		c0-0.592,0.241-1.159,0.679-1.597s1.004-0.678,1.597-0.678c0.592,0,1.159,0.24,1.58,0.66
2545		C16.448,45.337,16.456,46.837,15.646,47.646z"/>
2546</g>
2547</svg>
2548
2549`
2550});
2551
2552//school-university
2553Vue.component('fj-icon-school-university', {
2554    template: `
2555<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2556	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2557<path fill="#404040" d="M59.881,23.876c-0.021-0.025-0.046-0.048-0.072-0.069c0,0,0,0,0,0c-0.033-0.026-0.069-0.047-0.107-0.064
2558	l-29.39-13.695C30.245,10.016,30.173,10,30.1,10h-0.2c-0.073,0-0.145,0.016-0.211,0.047l-29.4,13.7C0.113,23.829,0,24.105,0,24.3
2559	s0.113,0.371,0.289,0.453l11.705,5.455L7.1,32.342c-0.183,0.079-0.3,0.259-0.3,0.458v16.7c0,0.276,0.224,0.5,0.5,0.5
2560	s0.5-0.224,0.5-0.5V33.127l5.403-2.356l0.712,0.332c-0.005,0-0.009-0.003-0.015-0.003c-0.276,0-0.5,0.224-0.5,0.5v10.5
2561	c0,0.084,0.021,0.167,0.062,0.241C15.817,46.623,22.463,49.5,30,49.5c7.537,0,14.184-2.877,16.538-7.159
2562	c0.04-0.074,0.062-0.157,0.062-0.241V31.6c0-0.276-0.224-0.5-0.5-0.5s-0.5,0.224-0.5,0.5v10.369C43.391,45.82,37.005,48.5,30,48.5
2563	c-7.004,0-13.39-2.68-15.6-6.531V31.6c0-0.129-0.052-0.244-0.132-0.332l15.421,7.186c0.066,0.031,0.139,0.047,0.211,0.047h0.2
2564	c0.073,0,0.146-0.017,0.212-0.048l29.223-13.716c0.257-0.021,0.461-0.267,0.465-0.529c0,0,0,0,0,0v0c0-0.002,0-0.005,0-0.007
2565	c0-0.001,0-0.003,0-0.004c0,0,0-0.001,0-0.001c0,0,0,0,0-0.001C59.998,24.072,59.954,23.961,59.881,23.876z M30,37.495
2566	l-15.574-7.258L30.2,23.358c0.253-0.11,0.369-0.405,0.259-0.658c-0.11-0.253-0.406-0.37-0.658-0.259l-16.584,7.233L1.577,24.25
2567	L30,11.005l28.319,13.197L30,37.495z"/>
2568</svg>
2569
2570`
2571});
2572
2573//other
2574Vue.component('fj-icon-other', {
2575    template: `
2576<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2577	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2578<g>
2579	<path fill="#404040" d="M51.672,47.166c-0.902-1.004-1.552-2.065-2.104-3.44C53.122,39.718,55,34.976,55,30
2580		C55,17.814,43.785,7.9,30,7.9S5,17.814,5,30c0,12.139,11.258,22.098,25.096,22.2c0.001,0,0.002,0,0.004,0
2581		c4.738,0,9.417-1.195,13.533-3.458c1.802,1.05,4.025,1.657,6.452,1.758l3.5,0.1c0.005,0,0.01,0,0.015,0c0.009,0,0.014,0,0.02,0
2582		c0.276,0,0.5-0.224,0.5-0.5c0-0.171-0.086-0.322-0.217-0.412L51.672,47.166z M50.12,49.5c-2.339-0.097-4.469-0.693-6.159-1.727
2583		C43.883,47.726,43.792,47.7,43.7,47.7H43.6c-0.307,0-0.479,0.109-0.575,0.235c-3.938,2.136-8.402,3.265-12.922,3.265
2584		C16.813,51.101,6,41.591,6,30C6,18.365,16.767,8.9,30,8.9S54,18.365,54,30c0,4.77-1.823,9.322-5.254,13.146
2585		c-0.257,0.257-0.289,0.586-0.11,0.939c0.599,1.495,1.306,2.651,2.29,3.745l1.535,1.736L50.12,49.5z"/>
2586	<path fill="#404040" d="M28.9,17.7c-1.972,0-3.908,0.827-5.312,2.268c-1.398,1.435-2.14,3.298-2.088,5.245
2587		c0.008,0.277,0.266,0.483,0.513,0.487c0.276-0.007,0.494-0.237,0.487-0.513c-0.044-1.675,0.597-3.281,1.805-4.521
2588		c1.217-1.249,2.892-1.965,4.595-1.965c3.108,0,5.761,2.182,6.308,5.188c0.477,2.667-0.591,5.233-2.789,6.699
2589		C30.09,32.174,28.7,34.833,28.7,37.7v0.6c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5v-0.6c0-2.536,1.227-4.886,3.277-6.284
2590		c2.53-1.688,3.762-4.639,3.215-7.706C35.559,20.228,32.491,17.7,28.9,17.7z"/>
2591	<path fill="#404040" d="M29.3,40.6c-0.4,0-0.7,0.301-0.7,0.7c0,0.4,0.3,0.7,0.7,0.7c0.4,0,0.7-0.3,0.7-0.7
2592		C30,40.9,29.7,40.6,29.3,40.6z"/>
2593</g>
2594</svg>
2595
2596`
2597});
2598
2599//hr-admin
2600Vue.component('fj-icon-hr-admin', {
2601    template: `
2602<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2603	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2604<g>
2605	<path fill="#404040" d="M55.754,43.047l-0.086-0.086l-1.778-0.563l-0.315-0.655l-0.037-0.111l0.715-1.519l0.048-0.564l-0.084-0.126
2606		c-0.692-1.04-1.602-1.788-2.316-2.323L51.666,37H51.5l-1.826,0.765l-0.018-0.006c-0.184-0.15-0.363-0.21-0.499-0.256
2607		c-0.045-0.015-0.09-0.028-0.198-0.076l-0.572-1.648C48.349,35.601,48.209,35.3,47.7,35.3H44.6c-0.286,0-0.497,0.19-0.555,0.249
2608		l-0.085,0.086l-0.562,1.775l-0.655,0.315l-0.111,0.037l-1.519-0.715L40.549,37l-0.126,0.084c-1.038,0.691-1.786,1.601-2.323,2.316
2609		L38,39.533v0.078c-0.079,0.189-0.053,0.389,0.075,0.56l0.69,1.467l-0.339,0.703l-1.648,0.573C36.601,42.952,36.3,43.092,36.3,43.6
2610		V46.7c0,0.284,0.189,0.496,0.247,0.554l0.086,0.087l1.777,0.561l0.315,0.656l0.037,0.11l-0.715,1.52L38,50.751l0.084,0.126
2611		c0.691,1.038,1.601,1.786,2.316,2.323l0.232,0.1H40.8l1.832-0.767l0.711,0.342l0.572,1.647C43.953,54.7,44.093,55,44.6,55H47.7
2612		c0.283,0,0.494-0.187,0.552-0.244l0.088-0.087l0.562-1.779l0.767-0.353l1.52,0.715l0.563,0.048l0.126-0.084
2613		c1.04-0.692,1.788-1.602,2.323-2.316l0.1-0.134v-0.076c0.08-0.19,0.054-0.39-0.075-0.562l-0.689-1.466l0.34-0.705l1.647-0.571
2614		C55.7,47.348,56,47.208,56,46.7V43.6C56,43.315,55.812,43.104,55.754,43.047z M55,46.503L53.106,47.1l-0.481,1.144l-0.162,0.489
2615		l0.813,1.73c-0.447,0.583-1.038,1.273-1.805,1.818l-1.739-0.818L48.1,52.106L47.502,54h-2.704l-0.599-1.894l-1.142-0.481
2616		l-0.484-0.16l-1.77,0.786c-0.577-0.445-1.251-1.029-1.785-1.779l0.818-1.739l-0.19-0.557l-0.272-0.535L39.193,47.1L37.3,46.502
2617		v-2.703l1.894-0.599l0.481-1.143l0.162-0.49l-0.813-1.729c0.448-0.585,1.04-1.275,1.805-1.819l1.739,0.818l0.559-0.19l0.533-0.272
2618		l0.541-0.181l0.599-1.894h2.703l0.598,1.894l0.478,0.154c0.088,0.044,0.176,0.075,0.265,0.104c0.115,0.038,0.157,0.054,0.205,0.102
2619		l0.084,0.084l0.596,0.197l1.77-0.786c0.576,0.444,1.251,1.027,1.785,1.779l-0.818,1.739l0.19,0.559l0.18,0.357l0.273,0.716
2620		L55,43.798V46.503z"/>
2621	<path fill="#404040" d="M22.1,28.5c-5.459,0-9.9,4.441-9.9,9.9s4.441,9.899,9.9,9.899S32,43.859,32,38.4S27.559,28.5,22.1,28.5z
2622		 M22.1,47.3c-4.907,0-8.9-3.992-8.9-8.899s3.993-8.9,8.9-8.9s8.9,3.993,8.9,8.9S27.007,47.3,22.1,47.3z"/>
2623	<path fill="#404040" d="M22.1,31.8c-3.523,0-6.5,3.022-6.5,6.601c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
2624		c0-3.036,2.519-5.601,5.5-5.601c0.276,0,0.5-0.224,0.5-0.5S22.376,31.8,22.1,31.8z"/>
2625	<path fill="#404040" d="M46.1,40.7c-2.481,0-4.5,2.019-4.5,4.5s2.019,4.5,4.5,4.5s4.5-2.019,4.5-4.5S48.581,40.7,46.1,40.7z
2626		 M46.1,48.7c-1.93,0-3.5-1.57-3.5-3.5s1.57-3.5,3.5-3.5s3.5,1.57,3.5,3.5S48.029,48.7,46.1,48.7z"/>
2627	<path fill="#404040" d="M34.5,29.3c0.373,0,0.7-0.327,0.7-0.7v-8.483l1.364-0.642C36.744,19.424,37,19.269,37,18.8v-5.4
2628		c0-1.669-1.287-3.16-2.944-3.397l-0.189-0.021l0.098-0.196C34.193,9.214,34.3,8.646,34.3,8c0-2.371-1.929-4.3-4.3-4.3
2629		S25.7,5.629,25.7,8c0,0.602,0.123,1.253,0.353,1.824l0.08,0.159l-0.203,0.022C24.232,10.248,23,11.675,23,13.4v5.4
2630		c0,0.47,0.256,0.625,0.436,0.675l1.364,0.642v5.265c-0.872-0.183-1.774-0.282-2.7-0.282c-1.47,0-2.879,0.253-4.2,0.702v-5.685
2631		l1.364-0.642C19.443,19.424,19.7,19.27,19.7,18.8v-5.4c0-1.669-1.287-3.16-2.945-3.397l-0.189-0.021l0.098-0.196
2632		C16.894,9.212,17,8.645,17,8c0-2.371-1.929-4.3-4.3-4.3c-2.411,0-4.3,1.845-4.3,4.2c0,0.741,0.146,1.314,0.453,1.824l0.08,0.159
2633		L8.729,9.905C7.032,10.147,5.8,11.575,5.8,13.3v5.4c0,0.463,0.25,0.62,0.428,0.673L7.5,20.009V28.5c0,0.373,0.327,0.7,0.7,0.7h4.39
2634		c-2.28,2.392-3.69,5.63-3.69,9.2c0,2.202,0.542,4.275,1.486,6.106l-1.942,1.941c-0.291,0.294-0.291,0.81-0.002,1.102l0.89,0.91
2635		l-5.084,5.086c-0.142,0.141-0.223,0.343-0.223,0.555c0,0.211,0.081,0.413,0.222,0.553l1.499,1.499
2636		c0.141,0.142,0.343,0.223,0.555,0.223c0.211,0,0.413-0.081,0.553-0.222l5.056-5.057l0.836,0.855
2637		c0.141,0.142,0.343,0.223,0.554,0.223c0.212,0,0.414-0.081,0.554-0.222l1.898-1.898C17.637,51.102,19.8,51.7,22.1,51.7
2638		c7.278,0,13.2-5.966,13.2-13.3c0-3.521-1.375-6.719-3.6-9.101H34.5z M24,18.636V13.4c0-1.222,0.871-2.233,2.055-2.403l1.613-0.18
2639		l-0.704-1.403C26.799,9.001,26.7,8.473,26.7,8c0-1.819,1.48-3.3,3.3-3.3s3.3,1.48,3.3,3.3c0,0.522-0.081,0.958-0.247,
26391.376
2640		l-0.722,1.441l1.599,0.178C35.071,11.158,36,12.237,36,13.4v5.236l-1.8,0.846V28.3h-2.8c-0.193,0-0.355,0.112-0.438,0.272
2641		c-1.462-1.339-3.216-2.356-5.162-2.93v-6.159L24,18.636z M6.8,18.541V13.3c0-1.222,0.871-2.233,2.055-2.403l1.613-0.18l-0.74-1.475
2642		C9.498,8.858,9.4,8.457,9.4,7.9c0-1.794,1.45-3.2,3.3-3.2C14.52,4.7,16,6.181,16,8c0,0.521-0.082,0.958-0.247,1.376l-0.721,1.441
2643		l1.598,0.178c1.142,0.163,2.071,1.242,2.071,2.405l0,5.236l-1.8,0.847V25.9c0,0.091,0.031,0.171,0.073,0.245
2644		c-1.288,0.549-2.465,1.308-3.507,2.219c-0.091-0.099-0.22-0.164-0.365-0.164H8.5v-8.809L6.8,18.541z M6.3,55.293L5.107,54.1
2645		l4.924-4.924l1.18,1.206L6.3,55.293z M13.302,51.091l-3.997-4.089l1.595-1.596c1.017,1.643,2.37,3.05,3.975,4.111L13.302,51.091z
2646		 M22.1,50.7c-2.292,0-4.431-0.652-6.265-1.765l-0.189-0.189l-0.045,0.045c-1.625-1.036-2.986-2.446-3.973-4.112l0.025-0.025
2647		l-0.102-0.103C10.508,42.739,9.9,40.643,9.9,38.4c0-6.782,5.473-12.3,12.2-12.3s12.2,5.518,12.2,12.3S28.827,50.7,22.1,50.7z"/>
2648	<path fill="#404040" d="M28.6,13.4h1.215c-0.126,0.091-0.215,0.232-0.215,0.4v3.9c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
2649		v-3.9c0-0.168-0.088-0.309-0.215-0.4H31.6c0.276,0,0.5-0.224,0.5-0.5s-0.224-0.5-0.5-0.5h-3c-0.276,0-0.5,0.224-0.5,0.5
2650		S28.324,13.4,28.6,13.4z"/>
2651	<path fill="#404040" d="M11.3,13.4h1.115c-0.127,0.091-0.215,0.232-0.215,0.4v3.9c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
2652		v-3.9c0-0.168-0.088-0.309-0.215-0.4H14.2c0.276,0,0.5-0.224,0.5-0.5s-0.224-0.5-0.5-0.5h-2.9c-0.276,0-0.5,0.224-0.5,0.5
2653		S11.023,13.4,11.3,13.4z"/>
2654	<path fill="#404040" d="M40.836,19.375l1.364,0.643V28.5c0,0.379,0.32,0.7,0.7,0.7H51.8c0.38,0,0.7-0.321,0.7-0.7v-8.482
2655		l1.332-0.627c0.295-0.043,0.568-0.241,0.568-0.69v-5.4c0-1.668-1.287-3.16-2.944-3.397l-0.189-0.021l0.099-0.197
2656		C51.594,9.111,51.7,8.543,51.7,7.9c0-2.371-1.929-4.3-4.3-4.3S43.1,5.529,43.1,7.9c0,0.601,0.123,1.251,0.354,1.824l0.079,0.159
2657		L43.33,9.905c-1.698,0.243-2.93,1.67-2.93,3.395v5.4C40.4,19.169,40.656,19.324,40.836,19.375z M41.4,13.3
2658		c0-1.222,0.871-2.233,2.056-2.403l1.611-0.18l-0.703-1.403C44.198,8.9,44.1,8.371,44.1,7.9c0-1.819,1.48-3.3,3.301-3.3
2659		c1.819,0,3.3,1.48,3.3,3.3c0,0.52-0.081,0.956-0.247,1.376l-0.722,1.441l1.598,0.178c1.143,0.163,2.071,1.242,2.071,2.405v5.188
2660		l-1.9,0.895V28.2h-8.3v-8.817l-1.8-0.847V13.3z"/>
2661	<path fill="#404040" d="M46,13.4h1.215C47.088,13.491,47,13.632,47,13.8v3.9c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5v-3.9
2662		c0-0.168-0.088-0.309-0.215-0.4H48.9c0.276,0,0.5-0.224,0.5-0.5s-0.224-0.5-0.5-0.5H46c-0.276,0-0.5,0.224-0.5,0.5
2663		S45.724,13.4,46,13.4z"/>
2664</g>
2665</svg>
2666
2667`
2668});
2669
2670//it-engineering
2671Vue.component('fj-icon-it-engineering', {
2672    template: `
2673<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2674	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2675<g>
2676	<path fill="#404040" d="M47.1,33.7c0-3.529-2.826-6.4-6.3-6.4h-2.989c0.053-0.321,0.09-0.675,0.09-1c0-3.529-2.826-6.4-6.301-6.4
2677		c-2.454,0-4.567,1.339-5.714,3.6H25.5c-2.491,0-4.792,1.513-5.832,3.8H19.2c-3.474,0-6.3,2.871-6.3,6.4
2678		c0,3.528,2.826,6.399,6.3,6.399h21.6C44.273,40.1,47.1,37.229,47.1,33.7z M40.8,39.1H19.2c-2.922,0-5.3-2.422-5.3-5.399
2679		s2.378-5.4,5.3-5.4h1.141l0.125-0.318c0.815-2.083,2.838-3.482,5.034-3.482h1.022l0.133-0.293c0.941-2.071,2.79-3.307,4.944-3.307
2680		c2.923,0,5.301,2.422,5.301,5.4c0,0.469-0.1,1.036-0.186,1.379L36.561,28.3H40.8c2.922,0,5.3,2.423,5.3,5.4
2681		C46.1,36.627,43.673,39.1,40.8,39.1z"/>
2682	<path fill="#404040" d="M30.5,49v-6.3c0-0.276-0.224-0.5-0.5-0.5s-0.5,0.224-0.5,0.5V49c0,0.276,0.224,0.5,0.5,0.5
2683		S30.5,49.276,30.5,49z"/>
2684	<path fill="#404040" d="M29.5,11v7.5c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5V11c0-0.276-0.224-0.5-0.5-0.5
2685		S29.5,10.724,29.5,11z"/>
2686	<path fill="#404040" d="M30,9c2.15,0,3.9-1.794,3.9-4S32.15,1,30,1s-3.9,1.794-3.9,4S27.85,9,30,9z M30,2c1.6,0,2.9,1.346,2.9,3
2687		S31.6,8,30,8c-1.599,0-2.9-1.346-2.9-3S28.401,2,30,2z"/>
2688	<path fill="#404040" d="M30,51c-2.15,0-3.9,1.794-3.9,4s1.75,4,3.9,4s3.9-1.794,3.9-4S32.15,51,30,51z M30,58
2689		c-1.599,0-2.9-1.346-2.9-3s1.301-3,2.9-3c1.6,0,2.9,1.346,2.9,3S31.6,58,30,58z"/>
2690	<path fill="#404040" d="M45.457,40.671l-0.5-0.3c-0.233-0.142-0.543-0.065-0.686,0.172c-0.143,0.236-0.065,0.544,0.172,0.686
2691		l0.5,0.3c0.08,0.049,0.169,0.071,0.257,0.071c0.169,0,0.335-0.087,0.429-0.243C45.771,41.12,45.694,40.813,45.457,40.671z"/>
2692	<path fill="#404040" d="M20.406,23.604c0.089,0.064,0.192,0.096,0.294,0.096c0.154,0,0.307-0.071,0.405-0.206
2693		c0.163-0.223,0.113-0.536-0.11-0.699l-5.9-4.3c-0.223-0.162-0.536-0.114-0.699,0.11c-0.163,0.223-0.113,0.536,0.11,0.699
2694		L20.406,23.604z"/>
2695	<path fill="#404040" d="M9.9,19.3c2.15,0,3.9-1.794,3.9-4s-1.75-4-3.9-4S6,13.094,6,15.3S7.75,19.3,9.9,19.3z M9.9,12.3
2696		c1.599,0,2.9,1.346,2.9,3s-1.301,3-2.9,3S7,16.954,7,15.3S8.301,12.3,9.9,12.3z"/>
2697	<path fill="#404040" d="M50.1,40.7c-2.15,0-3.899,1.794-3.899,4s1.749,4,3.899,4s3.9-1.794,3.9-4S52.25,40.7,50.1,40.7z M50.1,47.7
2698		c-1.599,0-2.899-1.346-2.899-3s1.301-3,2.899-3c1.6,0,2.9,1.346,2.9,3S51.699,47.7,50.1,47.7z"/>
2699	<path fill="#404040" d="M15.335,40.176l-0.8,0.5c-0.234,0.146-0.305,0.454-0.159,0.688c0.095,0.152,0.258,0.235,0.424,0.235
2700		c0.09,0,0.182-0.024,0.265-0.076l0.8-0.5c0.234-0.146,0.305-0.454,0.159-0.688C15.877,40.1,15.57,40.029,15.335,40.176z"/>
2701	<path fill="#404040" d="M39.2,23.7c0.102,0,0.203-0.03,0.291-0.094l6-4.3c0.225-0.161,0.276-0.473,0.115-0.698
2702		c-0.161-0.226-0.476-0.275-0.697-0.115l-6,4.3c-0.225,0.161-0.276,0.473-0.115,0.698C38.892,23.628,39.045,23.7,39.2,23.7z"/>
2703	<path fill="#404040" d="M50.1,19.3c2.15,0,3.9-1.794,3.9-4s-1.75-4-3.9-4s-3.899,1.794-3.899,4S47.949,19.3,50.1,19.3z M50.1,12.3
2704		c1.6,0,2.9,1.346,2.9,3s-1.301,3-2.9,3c-1.599,0-2.899-1.346-2.899-3S48.501,12.3,50.1,12.3z"/>
2705	<path fill="#404040" d="M9.9,40.7c-2.15,0-3.9,1.794-3.9,4s1.75,4,3.9,4s3.9-1.794,3.9-4S12.05,40.7,9.9,40.7z M9.9,47.7
2706		c-1.599,0-2.9-1.346-2.9-3s1.301-3,2.9-3s2.9,1.346,2.9,3S11.499,47.7,9.9,47.7z"/>
2707</g>
2708</svg>
2709
2710`
2711});
2712
2713//designer
2714Vue.component('fj-icon-designer', {
2715    template: `
2716<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2717	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2718<g>
2719	<path fill="#404040" d="M24.6,34c6.121,0,11.1-5.024,11.1-11.2c0-1.137,0-2.854-1.344-3.829c-1.215-0.73-2.791-0.343-4.21,1.075
2720		c-0.778,0.778-2.015,0.778-2.793,0C26.976,19.668,26.8,19.209,26.8,18.6c0-0.504,0.193-0.991,0.567-1.461
2721		c1.459-1.58,1.52-2.759,1.407-3.397c-0.261-0.784-0.883-1.455-1.751-1.89C26.318,11.5,25.366,11.5,24.6,11.5
2722		c-6.224,0-11.1,4.963-11.1,11.3C13.5,28.976,18.479,34,24.6,34z M24.6,12.5c0.625,0,1.482,0,1.976,0.247
2723		c0.62,0.31,1.075,0.788,1.23,1.235c0.051,0.308,0.04,1.165-1.197,2.505c-0.537,0.672-0.81,1.383-0.81,2.113
2724		c0,0.879,0.277,1.583,0.847,2.153c1.156,1.156,3.051,1.156,4.207,0c0.752-0.752,1.506-1.15,2.178-1.15
2725		c0.289,0,0.563,0.076,0.774,0.201C34.7,20.455,34.7,21.755,34.7,22.8c0,5.625-4.531,10.2-10.1,10.2s-10.1-4.576-10.1-10.2
2726		C14.5,16.928,18.842,12.5,24.6,12.5z"/>
2727	<path fill="#404040" d="M39.9,20.251V30h1v-9.62c1.284-0.104,2.3-1.17,2.3-2.48v-1.1c0-1.474,0-2.538,0.183-3.269l0.53-1.944
2728		l-1.941,0.53c-3.771,0.999-3.771,3.938-3.764,5.973C38.399,19.138,39.053,19.937,39.9,20.251z M42.231,13.083l0.257-0.07
2729		l-0.073,0.266C42.2,14.139,42.2,15.255,42.2,16.8v1.1c0,0.827-0.673,1.5-1.5,1.5c-0.74,0-1.346-0.599-1.5-1.4
2730		C39.2,16.071,39.2,13.885,42.231,13.083z"/>
2731	<path fill="#404040" d="M32,39.8h-3.9c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5H32c0.276,0,0.5-0.224,0.5-0.5
2732		S32.276,39.8,32,39.8z"/>
2733	<path fill="#404040" d="M52.1,7.8H7.9c-2.467,0-4.4,1.933-4.4,4.4V39.6c0,2.427,1.974,4.4,4.4,4.4h21.6v7.2H15.1
2734		c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5H45c0.276,0,0.5-0.224,0.5-0.5s-0.224-0.5-0.5-0.5H30.5V44h21.6
2735		c2.468,0,4.4-1.933,4.4-4.4V12.2C56.5,9.774,54.526,7.8,52.1,7.8z M7.9,8.8h44.2c1.875,0,3.4,1.525,3.4,3.4v24.7h-51V12.2
2736		C4.5,10.262,5.961,8.8,7.9,8.8z M52.1,43H7.9c-1.875,0-3.4-1.525-3.4-3.4V37.9h51V39.6C55.5,41.538,54.038,43,52.1,43z"/>
2737	<path fill="#404040" d="M20.5,20.7c1.158,0,2.1-0.942,2.1-2.1s-0.942-2.1-2.1-2.1s-2.1,0.942-2.1,2.1S19.342,20.7,20.5,20.7z
2738		 M20.5,17.5c0.606,0,1.1,0.494,1.1,1.1s-0.494,1.1-1.1,1.1s-1.1-0.494-1.1-1.1S19.894,17.5,20.5,17.5z"/>
2739	<path fill="#404040" d="M19.2,26c1.158,0,2.1-0.942,2.1-2.1s-0.942-2.1-2.1-2.1c-1.158,0-2.1,0.942-2.1,2.1S18.042,26,19.2,26z
2740		 M19.2,22.8c0.606,0,1.1,0.494,1.1,1.1S19.807,25,19.2,25s-1.1-0.494-1.1-1.1S18.594,22.8,19.2,22.8z"/>
2741	<path fill="#404040" d="M21.2,28.4c0,1.158,0.942,2.1,2.1,2.1c1.158,0,2.1-0.942,2.1-2.1s-0.942-2.1-2.1-2.1
2742		C22.142,26.3,21.2,27.242,21.2,28.4z M23.3,27.3c0.606,0,1.1,0.494,1.1,1.1s-0.494,1.1-1.1,1.1s-1.1-0.494-1.1-1.1
2743		S22.693,27.3,23.3,27.3z"/>
2744	<path fill="#404040" d="M29.3,28.3c1.158,0,2.101-0.942,2.101-2.1c0-1.158-0.942-2.1-2.101-2.1c-1.158,0-2.1,0.942-2.1,2.1
2745		C27.2,27.358,28.142,28.3,29.3,28.3z M29.3,25.1c0.607,0,1.101,0.494,1.101,1.1s-0.494,1.1-1.101,1.1c-0.606,0-1.1-0.493-1.1-1.1
2746		S28.693,25.1,29.3,25.1z"/>
2747	<path fill="#404040" d="M41.9,30.2h-3c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5h3c0.276,0,0.5-0.224,0.5-0.5
2748		S42.177,30.2,41.9,30.2z"/>
2749</g>
2750</svg>
2751
2752`
2753});
2754
2755//agent
2756Vue.component('fj-icon-agent', {
2757    template: `
2758<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2759	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2760<path fill="#404040" d="M51.9,16.7h-4.621c0.008-0.033,0.021-0.064,0.021-0.1v-1.3c0-0.976-0.824-1.8-1.8-1.8h-0.843
2761	c0.027-0.062,0.043-0.129,0.043-0.2v-3c0-1.68-1.42-3.1-3.101-3.1H18.4c-1.681,0-3.1,1.419-3.1,3.1v3c0,0.071,0.016,0.139,0.043,0.2
2762	H14.5c-0.976,0-1.8,0.824-1.8,1.8v1.3c0,0.036,0.013,0.067,0.02,0.1H8.1C6.419,16.7,5,18.12,5,19.8V23v5.2v21.5
2763	c0,1.68,1.419,3.1,3.1,3.1h43.8c1.68,0,3.1-1.42,3.1-3.1V28.2V23v-3.2C55,18.12,53.58,16.7,51.9,16.7z M46.3,15.3v1.3
2764	c0,0.036,0.013,0.067,0.021,0.1h-6.841c0.007-0.033,0.021-0.064,0.021-0.1v-1.3c0-0.426,0.374-0.8,0.8-0.8h5.2
2765	C45.926,14.5,46.3,14.874,46.3,15.3z M19.7,13.5h-0.843c0.027-0.062,0.043-0.129,0.043-0.2v-1.7c0-0.426,0.374-0.8,0.8-0.8h20.6
2766	c0.426,0,0.8,0.374,0.8,0.8v1.7c0,0.071,0.016,0.139,0.043,0.2H40.3c-0.976,0-1.8,0.824-1.8,1.8v1.3c0,0.036,0.014,0.067,0.021,0.1
2767	H21.48c0.007-0.033,0.02-0.064,0.02-0.1v-1.3C21.5,14.324,20.676,13.5,19.7,13.5z M16.3,13.3v-3c0-1.119,0.981-2.1,2.1-2.1h23.2
2768	c1.119,0,2.101,0.981,2.101,2.1v3c0,0.071,0.016,0.139,0.043,0.2h-1.687c0.027-0.062,0.043-0.129,0.043-0.2v-1.7
2769	c0-0.976-0.824-1.8-1.8-1.8H19.7c-0.976,0-1.8,0.824-1.8,1.8v1.7c0,0.071,0.016,0.139,0.043,0.2h-1.686
2770	C16.284,13.438,16.3,13.371,16.3,13.3z M13.7,16.6v-1.3c0-0.426,0.374-0.8,0.8-0.8h5.2c0.426,0,0.8,0.374,0.8,0.8v1.3
2771	c0,0.036,0.013,0.067,0.02,0.1h-6.84C13.687,16.667,13.7,16.636,13.7,16.6z M6,19.8c0-1.119,0.981-2.1,2.1-2.1h43.8
2772	c1.118,0,2.1,0.981,2.1,2.1V23v5.2c0,2.636-2.064,4.7-4.7,4.7H34.4V31.8c0-0.976-0.824-1.8-1.801-1.8h-5.2
2773	c-0.976,0-1.8,0.824-1.8,1.8V32.9H10.7c-2.592,0-4.7-2.108-4.7-4.7V23V19.8z M43.7,51.8H42.1V33.9H43.7V51.8z M17.9,51.8h-1.6V33.9
2774	h1.6V51.8z M18.9,33.9h6.7v1.8c0,0.976,0.824,1.8,1.8,1.8h5.2c0.977,0,1.801-0.824,1.801-1.8v-1.8H41.1V51.8H18.9V33.9z M33.4,35.7
2775	c0,0.426-0.374,0.8-0.801,0.8h-5.2c-0.426,0-0.8-0.374-0.8-0.8v-3.9c0-0.426,0.374-0.8,0.8-0.8h5.2c0.427,0,0.801,0.374,0.801,0.8
2776	V35.7z M6,49.7V31.419c1.028,1.497,2.751,2.481,4.7,2.481h4.6V51.8H8.1C6.981,51.8,6,50.818,6,49.7z M54,49.7
2777	c0,1.118-0.981,2.1-2.1,2.1h-7.2V33.9h4.6c1.974,0,3.681-0.956,4.7-2.439V49.7z"/>
2778</svg>
2779
2780`
2781});
2782
2783//analyst
2784Vue.component('fj-icon-analyst', {
2785    template: `
2786<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2787	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2788<path fill="#404040" d="M51.9,16.7h-4.621c0.008-0.033,0.021-0.064,0.021-0.1v-1.3c0-0.976-0.824-1.8-1.8-1.8h-0.843
2789	c0.027-0.062,0.043-0.129,0.043-0.2v-3c0-1.68-1.42-3.1-3.101-3.1H18.4c-1.681,0-3.1,1.419-3.1,3.1v3c0,0.071,0.016,0.139,0.043,0.2
2790	H14.5c-0.976,0-1.8,0.824-1.8,1.8v1.3c0,0.036,0.013,0.067,0.02,0.1H8.1C6.419,16.7,5,18.12,5,19.8V23v5.2v21.5
2791	c0,1.68,1.419,3.1,3.1,3.1h43.8c1.68,0,3.1-1.42,3.1-3.1V28.2V23v-3.2C55,18.12,53.58,16.7,51.9,16.7z M46.3,15.3v1.3
2792	c0,0.036,0.013,0.067,0.021,0.1h-6.841c0.007-0.033,0.021-0.064,0.021-0.1v-1.3c0-0.426,0.374-0.8,0.8-0.8h5.2
2793	C45.926,14.5,46.3,14.874,46.3,15.3z M19.7,13.5h-0.843c0.027-0.062,0.043-0.129,0.043-0.2v-1.7c0-0.426,0.374-0.8,0.8-0.8h20.6
2794	c0.426,0,0.8,0.374,0.8,0.8v1.7c0,0.071,0.016,0.139,0.043,0.2H40.3c-0.976,0-1.8,0.824-1.8,1.8v1.3c0,0.036,0.014,0.067,0.021,0.1
2795	H21.48c0.007-0.033,0.02-0.064,0.02-0.1v-1.3C21.5,14.324,20.676,13.5,19.7,13.5z M16.3,13.3v-3c0-1.119,0.981-2.1,2.1-2.1h23.2
2796	c1.119,0,2.101,0.981,2.101,2.1v3c0,0.071,0.016,0.139,0.043,0.2h-1.687c0.027-0.062,0.043-0.129,0.043-0.2v-1.7
2797	c0-0.976-0.824-1.8-1.8-1.8H19.7c-0.976,0-1.8,0.824-1.8,1.8v1.7c0,0.071,0.016,0.139,0.043,0.2h-1.686
2798	C16.284,13.438,16.3,13.371,16.3,13.3z M13.7,16.6v-1.3c0-0.426,0.374-0.8,0.8-0.8h5.2c0.426,0,0.8,0.374,0.8,0.8v1.3
2799	c0,0.036,0.013,0.067,0.02,0.1h-6.84C13.687,16.667,13.7,16.636,13.7,16.6z M6,19.8c0-1.119,0.981-2.1,2.1-2.1h43.8
2800	c1.118,0,2.1,0.981,2.1,2.1V23v5.2c0,2.636-2.064,4.7-4.7,4.7H34.4V31.8c0-0.976-0.824-1.8-1.801-1.8h-5.2
2801	c-0.976,0-1.8,0.824-1.8,1.8V32.9H10.7c-2.592,0-4.7-2.108-4.7-4.7V23V19.8z M43.7,51.8H42.1V33.9H43.7V51.8z M17.9,51.8h-1.6V33.9
2802	h1.6V51.8z M18.9,33.9h6.7v1.8c0,0.976,0.824,1.8,1.8,1.8h5.2c0.977,0,1.801-0.824,1.801-1.8v-1.8H41.1V51.8H18.9V33.9z M33.4,35.7
2803	c0,0.426-0.374,0.8-0.801,0.8h-5.2c-0.426,0-0.8-0.374-0.8-0.8v-3.9c0-0.426,0.374-0.8,0.8-0.8h5.2c0.427,0,0.801,0.374,0.801,0.8
2804	V35.7z M6,49.7V31.419c1.028,1.497,2.751,2.481,4.7,2.481h4.6V51.8H8.1C6.981,51.8,6,50.818,6,49.7z M54,49.7
2805	c0,1.118-0.981,2.1-2.1,2.1h-7.2V33.9h4.6c1.974,0,3.681-0.956,4.7-2.439V49.7z"/>
2806</svg>
2807
2808`
2809});
2810
2811//Blogger-Writer
2812Vue.component('fj-icon-blogger-writer', {
2813    template: `
2814<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2815	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2816<g>
2817	<path fill="#404040" d="M56.055,15.902c-2.549,0.232-6.921,2.851-13.365,8.006c-0.639,0.506-1.308,1.053-1.989,1.617V16.1h10.1
2818		v-3.5c0-2.812-2.198-5.1-4.899-5.1h-29c-0.104,0-0.195,0.039-0.275,0.094C16.326,7.534,16.017,7.5,15.7,7.5
2819		c-2.277,0-4.2,1.923-4.2,4.2v32.21c-0.084-0.065-0.185-0.11-0.3-0.11H2.5V47.4c0,2.859,2.196,5.1,5,5.1
2820		c0.66,0,1.276-0.107,1.828-0.3H36.5c2.276,0,4.2-1.924,4.2-4.2v-7.4c0-0.005-0.003-0.01-0.003-0.015
2821		c2.492-2.685,5.799-6.42,8.698-10.079c2.461-3.19,7.581-9.827,7.9-13.343l0.181-1.439L56.055,15.902z M45.9,8.5
2822		c2.15,0,3.899,1.839,3.899,4.1v2.5h-9.1V15H20.4v-2.8c0-1.509-0.728-2.84-1.836-3.7H45.9z M3.5,47.4V44.8h7.7
2823		c0.115,0,0.215-0.045,0.3-0.11V47.4c0,1.012-0.413,2.111-1.07,2.863l-0.373,0.41c-0.027,0.016-0.058,0.024-0.083,0.046
2824		C9.388,51.223,8.51,51.5,7.5,51.5C5.257,51.5,3.5,49.699,3.5,47.4z M39.7,48c0,1.734-1.466,3.2-3.2,3.2H10.93l0.246-0.271
2825		c0.829-0.946,1.324-2.266,1.324-3.528V11.7c0-1.735,1.465-3.2,3.2-3.2c2.04,0,3.7,1.66,3.7,3.7v3.1c0,0.373,0.327,0.7,0.7,0.7
2826		h0.215c0.082,0.059,0.177,0.1,0.285,0.1h19.1V26c0,0.105,0.04,0.197,0.095,0.277c-3.053,2.569-6.469,5.652-10.048,9.07
2827		c-2.709,2.709-2.612,6.71-2.442,8.323c0.004,0.027,0.083,0.534,0.413,1.106l-4.071,4.07c-0.195,0.195-0.195,0.512,0,0.707
2828		C23.744,49.651,23.872,49.7,24,49.7s0.256-0.049,0.354-0.146l4.052-4.052C29.21,45.927,30.638,46,31.5,46h0.01h0.01
2829		c2.574-0.103,4.919-1.031,6.434-2.547c0.465-0.464,1.063-1.081,1.747-1.805V48z M56.302,17.055
2830		c-0.295,3.244-5.482,9.969-7.693,12.835c-3.944,4.977-9.019,10.514-11.362,12.856c-1.337,1.338-3.435,2.159-5.756,2.254
2831		c-0.955-0.001-1.838-0.105-2.333-0.25l23.496-23.497c0.195-0.195,0.195-0.512,0-0.707s-0.512-0.195-0.707,0L28.459,44.033
2832		c-0.117-0.27-0.162-0.486-0.163-0.486c-0.152-1.452-0.248-5.089,2.148-7.485c4.729-4.517,9.179-8.448,12.867-11.371
2833		c6.2-4.96,10.518-7.582,12.85-7.794l0.162-0.021L56.302,17.055z"/>
2834	<path fill="#404040" d="M16.5,24.1h19.3c0.276,0,0.5-0.224,0.5-0.5s-0.224-0.5-0.5-0.5H16.5c-0.276,0-0.5,0.224-0.5,0.5
2835		S16.224,24.1,16.5,24.1z"/>
2836	<path fill="#404040" d="M16.5,29.3h18c0.276,0,0.5-0.224,0.5-0.5s-0.224-0.5-0.5-0.5h-18c-0.276,0-0.5,0.224-0.5,0.5
2837		S16.224,29.3,16.5,29.3z"/>
2838	<path fill="#404040" d="M16.5,34.6h12.7c0.276,0,0.5-0.224,0.5-0.5s-0.224-0.5-0.5-0.5H16.5c-0.276,0-0.5,0.224-0.5,0.5
2839		S16.224,34.6,16.5,34.6z"/>
2840	<path fill="#404040" d="M25.8,39.3c0-0.276-0.224-0.5-0.5-0.5h-8.8c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5h8.8
2841		C25.576,39.8,25.8,39.576,25.8,39.3z"/>
2842</g>
2843</svg>
2844
2845`
2846});
2847
2848//Consultant
2849Vue.component('fj-icon-consultant', {
2850    template: `
2851<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2852	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2853<g>
2854	<path fill="#404040" d="M21.788,31.582C26.911,30.215,30.7,25.548,30.7,20c0-6.617-5.383-12-12-12s-12,5.383-12,12
2855		c0,5.556,3.801,10.229,8.935,11.588C6.898,33.119,0,41.009,0,50.2c0,0.276,
28550.224,0.5,0.5,0.5S1,50.477,1,50.2
2856		c0-8.791,6.659-16.323,15.044-17.666l-0.501,1.566l1.515,1.92l-2.813,11.953l4.451,3.994l4.56-3.989l-2.814-11.958l1.508-1.91
2857		l-0.437-1.56C29.882,33.927,36.3,41.306,36.3,50.2c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
2858		C37.3,40.85,30.576,33.084,21.788,31.582z M7.7,20c0-6.065,4.935-11,11-11s11,4.935,11,11s-4.935,11-11,11S7.7,26.065,7.7,20z
2859		 M20.85,33.89l-1.492,1.891l2.787,11.841l-3.44,3.011l-3.35-3.006l2.788-11.846l-1.485-1.881l0.485-1.517
2860		c0.515-0.049,1.033-0.083,1.558-0.083c0.584,0,1.16,0.032,1.729,0.089L20.85,33.89z"/>
2861	<path fill="#404040" d="M58.1,11H34.8c-1.172,0-1.899,0.728-1.899,1.9v13.3c0,1.172,0.728,1.9,1.899,1.9h2.3v3.8
2862		c0,0.255,0.051,0.455,0.156,0.611c0.135,0.201,0.355,0.316,0.604,0.316c0.33,0,0.653-0.193,1.017-0.412
2863		c0.57-0.38,3.981-3.46,4.815-4.216H58.1c1.172,0,1.9-0.728,1.9-1.9V12.9C60,11.728,59.271,11,58.1,11z M59,26.3
2864		c0,0.623-0.277,0.9-0.9,0.9H43.307l-0.143,0.129c-1.717,1.558-4.424,3.976-4.821,4.242c-0.068,0.041-0.157,0.095-0.243,0.142V27.1
2865		h-3.3c-0.622,0-0.899-0.277-0.899-0.9V12.9c0-0.623,0.277-0.9,0.899-0.9h23.3c0.623,0,0.9,0.277,0.9,0.9V26.3z"/>
2866	<circle fill="#404040" cx="46.4" cy="20" r="1.3"/>
2867	<circle fill="#404040" cx="39.9" cy="20" r="1.3"/>
2868	<circle fill="#404040" cx="53" cy="20" r="1.3"/>
2869</g>
2870</svg>
2871
2872`
2873});
2874
2875//Customer Service
2876Vue.component('fj-icon-customer-service', {
2877    template: `
2878<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2879	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2880<g>
2881	<path fill="#404040" d="M21.788,31.582C26.911,30.215,30.7,25.548,30.7,20c0-6.617-5.383-12-12-12s-12,5.383-12,12
2882		c0,5.556,3.801,10.229,8.935,11.588C6.898,33.119,0,41.009,0,50.2c0,0.276,0.224,0.5,0.5,0.5S1,50.477,1,50.2
2883		c0-8.791,6.659-16.323,15.044-17.666l-0.501,1.566l1.515,1.92l-2.813,11.953l4.451,3.994l4.56-3.989l-2.814-11.958l1.508-1.91
2884		l-0.437-1.56C29.882,33.927,36.3,41.306,36.3,50.2c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
2885		C37.3,40.85,30.576,33.084,21.788,31.582z M7.7,20c0-6.065,4.935-11,11-11s11,4.935,11,11s-4.935,11-11,11S7.7,26.065,7.7,20z
2886		 M20.85,33.89l-1.492,1.891l2.787,11.841l-3.44,3.011l-3.35-3.006l2.788-11.846l-1.485-1.881l0.485-1.517
2887		c0.515-0.049,1.033-0.083,1.558-0.083c0.584,0,1.16,0.032,1.729,0.089L20.85,33.89z"/>
2888	<path fill="#404040" d="M58.1,11H34.8c-1.172,0-1.899,0.728-1.899,1.9v13.3c0,1.172,0.728,1.9,1.899,1.9h2.3v3.8
2889		c0,0.255,0.051,0.455,0.156,0.611c0.135,0.201,0.355,0.316,0.604,0.316c0.33,0,0.653-0.193,1.017-0.412
2890		c0.57-0.38,3.981-3.46,4.815-4.216H58.1c1.172,0,1.9-0.728,1.9-1.9V12.9C60,11.728,59.271,11,58.1,11z M59,26.3
2891		c0,0.623-0.277,0.9-0.9,0.9H43.307l-0.143,0.129c-1.717,1.558-4.424,3.976-4.821,4.242c-0.068,0.041-0.157,0.095-0.243,0.142V27.1
2892		h-3.3c-0.622,0-0.899-0.277-0.899-0.9V12.9c0-0.623,0.277-0.9,0.899-0.9h23.3c0.623,0,0.9,0.277,0.9,0.9V26.3z"/>
2893	<circle fill="#404040" cx="46.4" cy="20" r="1.3"/>
2894	<circle fill="#404040" cx="39.9" cy="20" r="1.3"/>
2895	<circle fill="#404040" cx="53" cy="20" r="1.3"/>
2896</g>
2897</svg>
2898
2899`
2900});
2901
2902//FitnessHealth
2903Vue.component('fj-icon-fitness-health', {
2904    template: `
2905<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2906	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2907<path fill="#404040" d="M58.5,28.4h-6.118C53.435,26.457,54,24.306,54,22.1c0-3.443-1.363-6.762-3.839-9.346
2908	C47.813,10.305,44.475,8.9,41,8.9c-3.525,0-6.779,1.369-9.146,3.838l-1.846,1.763l-1.647-1.647C26.014,10.405,22.675,9,19.2,9
2909	c-3.475,0-6.814,1.405-9.157,3.85c-4.973,5.077-4.974,13.418,0.001,18.601l2.027,2.049H1.5C1.224,33.5,1,33.724,1,34
2910	s0.224,0.5,0.5,0.5h11.562l15.985,16.153c0.304,0.305,0.639,0.446,1.054,0.446c0.496,0,0.898-0.183,1.099-0.492l18.962-19.162
2911	c0.613-0.64,1.157-1.325,1.63-2.045H58.5c0.276,0,0.5-0.224,0.5-0.5S58.776,28.4,58.5,28.4z M10.761,30.753
2912	c-4.601-4.792-4.602-12.509,0-17.207C12.92,11.292,15.997,10,19.2,10s6.28,1.292,8.446,3.554l2.345,2.346l2.57-2.453
2913	C34.753,11.159,37.75,9.9,41,9.9c3.203,0,6.279,1.292,8.438,3.546C51.735,15.842,53,18.916,53,22.1c0,2.221-0.628,4.381-1.776,6.3
2914	H35.297l-5.519,10.578l-4.098-17.392L19.398,33.5h-5.919L10.761,30.753z M49.444,30.748l-19,19.2l-0.066,0.093
2915	C30.355,50.06,30.253,50.1,30.1,50.1c-0.15,0-0.228-0.034-0.345-0.151L14.469,34.5h5.533l5.317-10.086l4.103,17.409l6.48-12.423
2916	H50.56C50.217,29.867,49.854,30.321,49.444,30.748z"/>
2917</svg>
2918
2919`
2920});
2921
2922//Manager
2923Vue.component('fj-icon-manager', {
2924    template: `
2925<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2926	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2927<path fill="#404040" d="M33.177,31.778C38.645,30.351,42.7,25.351,42.7,19.4c0-7.058-5.697-12.8-12.7-12.8s-12.7,5.742-12.7,12.8
2928	c0,5.951,4.056,10.951,9.523,12.378C17.303,33.315,10,41.605,10,51.6c0,0.276,
29280.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
2929	c0-9.535,6.994-17.438,16.092-18.852l-0.554,1.539l1.621,2.127l-3.014,12.557L30,53.375l4.855-4.404l-3.014-12.557l1.621-2.127
2930	l-0.555-1.539C42.006,34.162,49,42.064,49,51.6c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5C50,41.605,42.697,33.315,33.177,31.778
2931	z M18.3,19.4c0-6.506,5.249-11.8,11.7-11.8c6.451,0,11.7,5.293,11.7,11.8c0,6.507-5.249,11.8-11.7,11.8
2932	C23.548,31.2,18.3,25.907,18.3,19.4z M32.338,34.113l-1.58,2.072l2.986,12.443L30,52.025l-3.745-3.396l2.986-12.443l-1.579-2.072
2933	l0.548-1.522C28.8,32.535,29.396,32.5,30,32.5c0.604,0,1.199,0.035,1.789,0.091L32.338,34.113z"/>
2934</svg>
2935
2936`
2937});
2938
2939//Marketer-PR
2940Vue.component('fj-icon-marketer-pr', {
2941    template: `
2942<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2943	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2944<g>
2945	<path fill="#404040" d="M23.1,38.9v-1.282l12.749,4.059C35.898,41.692,35.949,41.7,36,41.7c0.104,0,0.208-0.033,0.295-0.097
2946		C36.424,41.51,36.5,41.359,36.5,41.2V17c0-0.16-0.076-0.31-0.205-0.404c-0.13-0.094-0.295-0.121-0.446-0.073l-24.5,7.8
2947		c-0.039,0.013-0.062,0.048-0.095,0.069c-0.029-0.018-0.046-0.048-0.078-0.061l-6.7-2.5c-0.153-0.058-0.325-0.037-0.46,0.058
2948		C3.88,21.982,3.8,22.136,3.8,22.3V35.9c0,0.164,0.08,0.317,0.215,0.411C4.1,36.37,4.199,36.4,4.3,36.4
2949		c0.059,0,0.118-0.011,0.175-0.031l6.7-2.5c0.032-0.012,0.05-0.043,0.078-0.061c0.034,0.021,0.056,0.056,0.095,0.068l2.178,0.693
2950		c-0.012,0.042-0.026,0.084-0.026,0.13v4.2c0,1.178,0.922,2.1,2.1,2.1H21C22.178,41,23.1,40.078,23.1,38.9z M10.5,33.054L4.8,35.18
2951		V23.02l5.7,2.127V33.054z M12,25.166l23.5-7.481v22.833L12,33.035V25.166z M14.5,38.9v-4.02l7.619,2.425
2952		C22.113,37.338,22.1,37.367,22.1,37.4v1.5c0,0.627-0.473,1.1-1.1,1.1h-5.4C14.973,40,14.5,39.527,14.5,38.9z"/>
2953	<path fill="#404040" d="M41.8,18.8h13.8c0.006,0,0.014,0,0.02,0c0.276,0,0.5-0.224,0.5-0.5c0-0.07-0.014-0.137-0.04-0.198
2954		l-0.083-0.66c-0.364-3.103-2.729-5.544-5.752-6.176C51.57,10.671,52.5,9.345,52.5,7.8c0-2.095-1.704-3.8-3.8-3.8
2955		s-3.8,1.705-3.8,3.8c0,1.549,0.935,2.88,2.267,3.471c-2.944,0.64-5.308,3.072-5.763,6.167l-0.101,0.8
2956		c-0.018,0.143,0.026,0.286,0.121,0.393C41.52,18.738,41.656,18.8,41.8,18.8z M45.9,7.8c0-1.544,1.256-2.8,2.8-2.8
2957		s2.8,1.256,2.8,2.8s-1.256,2.8-2.8,2.8S45.9,9.344,45.9,7.8z M42.396,17.573c0.466-3.171,3.117-5.473,6.305-5.473
2958		c3.227,0,5.937,2.347,6.304,5.462l0.029,0.238H42.366L42.396,17.573z"/>
2959	<path fill="#404040" d="M55.996,36.041c-0.36-3.059-2.663-5.473-5.623-6.146c1.255-0.621,2.127-1.902,2.127-3.395
2960		c0-2.095-1.704-3.8-3.8-3.8s-3.8,1.705-3.8,3.8c0,1.497,0.878,2.782,2.139,3.401c-2.885,0.682-5.186,3.086-5.635,6.136
2961		l-0.101,0.801c-0.018,0.143,0.026,0.286,0.121,0.394S41.656,37.4,41.8,37.4h13.8c0.006,0,0.014,0,0.02,0c0.276,0,0.5-0.224,0.5-0.5
2962		c0-0.07-0.014-0.138-0.04-0.198L55.996,36.041z M45.9,26.5c0-1.544,1.256-2.8,2.8-2.8s2.8,1.256,2.8,2.8s-1.256,2.8-2.8,2.8
2963		S45.9,28.044,45.9,26.5z M42.366,36.4l0.029-0.228c0.458-3.12,3.169-5.473,6.305-5.473c3.227,0,5.937,2.347,6.304,5.461
2964		l0.029,0.239H42.366z"/>
2965	<path fill="#404040" d="M55.996,54.642c-0.359-3.058-2.661-5.473-5.622-6.147c1.254-0.621,2.126-1.902,2.126-3.395
2966		c0-2.096-1.704-3.8-3.8-3.8s-3.8,1.704-3.8,3.8c0,1.497,0.877,2.782,2.138,3.401c-2.884,0.683-5.186,3.088-5.634,6.137l-0.101,0.8
2967		c-0.018,0.143,0.026,0.286,0.121,0.394S41.656,56,41.8,56h13.8c0.006,0,0.014,0,0.02,0c0.276,0,0.5-0.224,0.5-0.5
2968		c0-0.07-0.014-0.138-0.04-0.198L55.996,54.642z M45.9,45.1c0-1.544,1.256-2.8,2.8-2.8s2.8,1.256,2.8,2.8S50.244,47.9,48.7,47.9
2969		S45.9,46.644,45.9,45.1z M42.366,55l0.029-0.228c0.466-3.171,3.117-5.473,6.305-5.473c3.227,0,5.937,2.347,6.304,5.462L55.033,55
2970		H42.366z"/>
2971	<path fill="#404040" d="M30,25.4h-6.2c-1.177,0-2.1,0.922-2.1,2.1v1.693l-3.154,3.154c-0.143,0.143-0.186,0.358-0.108,0.545
2972		c0.077,0.187,0.26,0.309,0.462,0.309h11c1.065,0,1.921-0.755,2.076-1.771c0.077-0.088,0.124-0.204,0.124-0.33v-3.6
2973		C32.1,26.322,31.178,25.4,30,25.4z M31.1,30.8c-0.063,0.084-0.1,0.188-0.1,0.3c0,0.627-0.473,1.101-1.1,1.101h-9.793l2.347-2.347
2974		c0.058-0.058,0.247-0.269,0.247-0.554v-1.8c0-0.627,0.473-1.1,1.1-1.1H30c0.627,0,1.1,0.473,1.1,1.1V30.8z"/>
2975	<path fill="#404040" d="M28.5,28.8h-3.4c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5h3.4c0.276,0,0.5-0.224,0.5-0.5
2976		S28.776,28.8,28.5,28.8z"/>
2977	<path fill="#404040" d="M39.4,6.9H16.6c-0.276,0-0.5,0.224-0.5,0.5v9.3c0,0.276,
29770.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5V7.9h22.3
2978		c0.276,0,0.5-0.224,0.5-0.5S39.677,6.9,39.4,6.9z"/>
2979	<path fill="#404040" d="M39.4,52.1H17.1v-8.8c0-0.276-0.224-0.5-0.5-0.5s-0.5,0.224-0.5,0.5v9.3c0,0.276,0.224,0.5,0.5,0.5h22.8
2980		c0.276,0,0.5-0.224,0.5-0.5S39.677,52.1,39.4,52.1z"/>
2981</g>
2982</svg>
2983
2984`
2985});
2986
2987//Operations-Finance
2988Vue.component('fj-icon-operations-finance', {
2989    template: `
2990<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
2991	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
2992<g>
2993	<path fill="#404040" d="M51.594,32.522c-0.033-0.213-0.199-0.381-0.412-0.416C51.131,32.098,49.929,31.9,48.8,31.9
2994		c-2.714,0-5.185,0.98-7.146,2.838c-2.371,2.269-3.464,5.531-2.974,8.851l-7.98,6.972V28.774c6.936-0.263,12.5-5.929,12.5-12.875
2995		c0-7.113-5.832-12.9-13-12.9c-7.168,0-13,5.787-13,12.9c0,6.945,5.564,12.611,12.5,12.875v17.211l-8.57-7.334
2996		c0.019-0.043,0.046-0.084,0.056-0.128l0.105-0.334c0.614-3.378-0.487-6.799-2.948-9.153c-1.929-1.822-4.453-2.829-7.023-2.829
2997		c-0.01,0-0.021,0-0.031,0c-0.234-0.043-0.487-0.064-0.751-0.064c-0.941,0-1.762,0.27-1.796,0.282
2998		c-0.178,0.059-0.307,0.212-0.336,0.397c-0.038,0.247-0.897,6.093,2.741,9.73c1.83,1.83,4.386,2.838,7.198,2.838h0
2999		c0.664,0,1.326-0.063,1.912-0.171l9.418,8.06c0.008,0.007,0.018,0.009,0.025,0.015V56h-9.2c-0.276,0-0.5,0.224-0.5,0.5
3000		s0.224,0.5,0.5,0.5h19.4c0.276,0,0.5-0.224,0.5-0.5S40.177,56,39.9,56h-9.2v-4.146c0.045-0.02,0.09-0.042,0.129-0.076l8.207-7.17
3001		c0.133,0.144,0.302,0.256,0.474,0.285c0.732,0.159,1.484,0.239,2.234,0.239c2.689,0,5.28-1.049,7.109-2.878
3002		C52.491,38.616,51.632,32.77,51.594,32.522z M18.344,38.392c-2.544,0-4.85-0.903-6.491-2.545c-2.822-2.822-2.613-7.328-2.496-8.554
3003		c0.277-0.066,0.715-0.148,1.18-0.148c0.188,0,0.382,0.013,0.662,0.056c2.413,0,4.706,0.91,6.454,2.561
3004		c2.216,2.119,3.208,5.203,2.671,8.181l-0.053,0.16c-0.125,0.007-0.246,0.062-0.337,0.16C19.407,38.342,18.875,38.392,18.344,38.392
3005		L18.344,38.392z M18.2,15.9c0-6.562,5.383-11.9,12-11.9c6.617,0,12,5.338,12,11.9s-5.383,11.9-12,11.9
3006		C23.583,27.8,18.2,22.461,18.2,15.9z M48.146,41.547c-2.092,2.092-5.355,3.021-8.378,2.378l-0.076-0.215
3007		c-0.555-3.045,0.438-6.129,2.651-8.247c1.77-1.677,4.002-2.563,6.456-2.563c0.684,0,1.418,0.082,1.847,0.139
3008		C50.766,34.328,50.94,38.753,48.146,41.547z"/>
3009	<path fill="#404040" d="M30.7,24.4v-1.844c0.95-0.097,1.771-0.416,2.425-0.976C33.883,20.931,34.3,20.015,34.3,19
3010		c0-0.904-0.419-1.75-1.146-2.354c-0.475-0.476-1.317-0.797-2.695-1.221c-1.488-0.497-2.511-0.971-3.004-1.379
3011		C27.02,13.612,26.8,13.126,26.8,12.6c0-0.592,0.287-1.18,0.825-1.72c0.629-0.54,1.331-0.78,2.275-0.78
3012		c0.006,0,0.011,0.001,0.017,0.001c0.082,0.058,0.176,0.099,0.283,0.099c0.08,0,0.152-0.022,0.219-0.056
3013		c0.399,0.062,0.779,0.182,1.171,0.313c0.443,0.266,0.86,0.523,1.189,0.918c0.029,0.054,0.063,0.114,0.099,0.178
3014		c0.084,0.149,0.188,0.326,0.247,0.504c0.086,0.261,0.369,0.403,0.632,0.317c0.263-0.087,0.404-0.37,0.317-0.632
3015		c-0.085-0.255-0.219-0.491-0.326-0.681c-0.038-0.068-0.073-0.13-0.101-0.184c-0.016-0.032-0.035-0.062-0.057-0.089
3016		c-0.458-0.571-1.005-0.899-1.534-1.216c-0.031-0.019-0.064-0.034-0.099-0.045c-0.399-0.133-0.812-0.264-1.258-0.345V7.3
3017		c0-0.276-0.224-0.5-0.5-0.5s-0.5,0.224-0.5,0.5v1.815c-1.086,0.037-1.963,0.353-2.754,1.032C26.186,10.908,25.8,11.733,25.8,12.6
3018		c0,0.801,0.318,1.525,0.98,2.184c0.632,0.527,1.731,1.047,3.373,1.594c1.175,0.361,1.969,0.651,2.327,1.006
3019		c0.529,0.44,0.82,1.014,0.82,1.616c0,0.508-0.144,1.236-0.825,1.82c-0.612,0.525-1.39,0.78-2.375,0.78
3020		c-0.651,0-1.283-0.15-1.876-0.447c-0.488-0.244-0.837-0.671-1.202-1.127c-0.029-0.054-0.063-0.114-0.098-0.177
3021		c-0.085-0.15-0.189-0.328-0.249-0.506c-0.087-0.262-0.37-0.402-0.632-0.317c-0.262,0.087-0.404,0.37-0.317,0.632
3022		c0.085,0.256,0.219,0.493,0.328,0.684c0.038,0.067,0.073,0.129,0.1,0.183c0.016,0.031,0.035,
30220.061,0.056,0.088
3023		c0.427,0.534,0.869,1.085,1.567,1.435c0.612,0.306,1.258,0.478,1.924,0.53V24.4c0,0.276,0.224,0.5,0.5,0.5S30.7,24.676,30.7,24.4z"
3024		/>
3025</g>
3026</svg>
3027
3028`
3029});
3030
3031//Organizer
3032Vue.component('fj-icon-organizer', {
3033    template: `
3034<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
3035	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
3036<g>
3037	<path fill="#404040" d="M20.9,24.9c0.276,0,0.5-0.224,0.5-0.5c0-4.797,3.858-8.7,8.6-8.7s8.6,3.903,8.6,8.7
3038		c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5c0-4.466-3.007-8.227-7.079-9.349c2.165-0.984,3.68-3.189,3.68-5.751
3039		C36.2,5.826,33.419,3,30,3s-6.2,2.826-6.2,6.3c0,2.562,1.515,4.767,3.68,5.751c-4.073,1.123-7.08,4.883-7.08,9.349
3040		C20.4,24.676,20.624,24.9,20.9,24.9z M24.8,9.3C24.8,6.377,27.133,4,30,4s5.2,2.377,5.2,5.3s-2.333,5.3-5.2,5.3
3041		S24.8,12.222,24.8,9.3z"/>
3042	<path fill="#404040" d="M32.259,48.737c1.676-0.853,2.841-2.602,2.841-4.638c0-2.867-2.288-5.199-5.1-5.199
3043		c-2.812,0-5.1,2.332-5.1,5.199c0,2.036,1.165,3.785,2.841,4.638C24.483,49.725,22.1,52.784,22.1,56.4c0,0.276,0.224,0.5,0.5,0.5
3044		s0.5-0.224,0.5-0.5c0-3.859,3.095-7,6.9-7s6.9,3.141,6.9,7c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
3045		C37.9,52.784,35.518,49.725,32.259,48.737z M25.9,44.1c0-2.315,1.839-4.199,4.1-4.199s4.1,1.884,4.1,4.199
3046		c0,2.316-1.839,4.2-4.1,4.2S25.9,46.416,25.9,44.1z"/>
3047	<path fill="#404040" d="M53.327,48.756c1.693-0.847,2.873-2.606,2.873-4.656c0-2.867-2.288-5.199-5.101-5.199
3048		c-2.812,0-5.1,2.332-5.1,5.199c0,2.023,1.15,3.761,2.81,4.62c-3.293,0.965-5.71,4.04-5.71,7.681c0,0.276,
30480.224,0.5,0.5,0.5
3049		s0.5-0.224,0.5-0.5c0-3.859,3.096-7,6.9-7s6.9,3.141,6.9,7c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
3050		C58.9,52.809,56.551,49.764,53.327,48.756z M47,44.1c0-2.315,1.839-4.199,4.1-4.199S55.2,41.784,55.2,44.1
3051		c0,2.316-1.84,4.2-4.101,4.2S47,46.416,47,44.1z"/>
3052	<path fill="#404040" d="M11.159,48.737C12.835,47.885,14,46.136,14,44.1c0-2.867-2.288-5.199-5.1-5.199S3.8,41.232,3.8,44.1
3053		c0,2.036,1.165,3.785,2.841,4.638C3.383,49.725,1,52.784,1,56.4c0,0.276,0.224,0.5,0.5,0.5S2,56.677,2,56.4c0-3.859,3.095-7,6.9-7
3054		s6.9,3.141,6.9,7c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5C16.8,52.784,14.417,49.725,11.159,48.737z M4.8,44.1
3055		c0-2.315,1.839-4.199,4.1-4.199S13,41.784,13,44.1c0,2.316-1.839,4.2-4.1,4.2S4.8,46.416,4.8,44.1z"/>
3056	<path fill="#404040" d="M8.9,36.3c0.276,0,0.5-0.224,0.5-0.5v-4.5c0-0.123,0.077-0.2,0.2-0.2h19.9v4.7c0,0.276,0.224,0.5,0.5,0.5
3057		s0.5-0.224,0.5-0.5v-4.7h19.8c0.123,0,0.2,0.077,0.2,0.2v4.5c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5v-4.5
3058		c0-0.673-0.527-1.2-1.2-1.2H30.5v-4c0-0.276-0.224-0.5-0.5-0.5s-0.5,0.224-0.5,0.5v4H9.6c-0.673,0-1.2,0.527-1.2,1.2v4.5
3059		C8.4,36.076,8.624,36.3,8.9,36.3z"/>
3060</g>
3061</svg>
3062
3063`
3064});
3065
3066//owner
3067Vue.component('fj-icon-owner', {
3068    template: `
3069<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
3070	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
3071<g>
3072	<path fill="#404040" d="M42.1,53.2h6.7c0.373,0,0.7-0.327,0.7-0.7v-5.3c0-0.38-0.32-0.7-0.7-0.7h-6.7
3073		c-0.379,0-0.699,0.32-0.699,0.7v5.3C41.4,52.873,41.728,53.2,42.1,53.2z M42.4,47.5h6.1v4.7h-6.1V47.5z"/>
3074	<path fill="#404040" d="M56.6,57h-4H39.7v-9.8c0-0.373-0.327-0.7-0.7-0.7h-8.3c-0.379,0-0.7,0.32-0.7,0.7V57h-3h-4
3075		c-0.276,0-0.5,0.224-0.5,0.5S22.724,58,23,58h33.6c0.276,0,0.5-0.224,0.5-0.5S56.876,57,56.6,57z M31,47.5h7.7V57H31V47.5z"/>
3076	<path fill="#404040" d="M27.5,56.5V42.051c0.167,0.018,0.328,0.049,0.5,0.049c1.72,0,3.167-0.93,3.927-2.313
3077		C32.7,41.115,34.121,42,35.8,42c1.737,0,3.198-0.949,3.95-2.356C40.502,41.051,41.963,42,43.7,42c1.717,0,3.163-0.927,3.923-2.306
3078		c0.744,1.435,2.219,2.405,3.977,2.405c0.172,0,0.334-0.031,0.5-0.049V56.5c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5V42
3079		c0-0.056-0.015-0.107-0.031-0.157c1.776-0.599,3.031-2.239,3.031-4.243v-2.901l0.728-0.002l-5.678-6.246
3080		c-0.1-0.223-0.327-0.351-0.55-0.351H28.9c-0.266,0-0.457,0.153-0.545,0.348L23.4,34.01v0.19c0,0.126,0.043,0.229,0.1,0.317V37.6
3081		c0,2.004,1.255,3.645,3.032,4.243C26.515,41.893,26.5,41.944,26.5,42v14.5c0,0.276,0.224,0.5,0.5,0.5S27.5,56.776,27.5,56.5z
3082		 M29.113,29.1h21.274l4.186,4.604l-29.645,0.093L29.113,29.1z M24.5,37.6v-2.802l30.6-0.096V37.6c0,1.963-1.537,3.5-3.5,3.5
3083		c-1.804,0-3.231-1.303-3.455-3.036c0.023-0.187,0.056-0.37,0.056-0.563v-2c0-0.276-0.224-0.5-0.5-0.5
3084		c-0.163,0-0.302,0.084-0.393,0.205C47.185,35.296,47.1,35.435,47.1,35.6v2c0,0.159,0.03,0.31,0.045,0.464
3085		C46.881,39.747,45.47,41,43.7,41c-1.788,0-3.209-1.28-3.45-2.991c0.019-0.169,0.05-0.334,0.05-0.509v-2c0-0.276-0.224-0.5-0.5-0.5
3086		c-0.018,0-0.032,0.008-0.05,0.01C39.732,35.008,39.718,35,39.7,35c-0.276,0-0.5,0.224-0.5,0.5v2c0,0.175,0.031,0.34,0.05,0.509
3087		C39.009,39.72,37.588,41,35.8,41c-1.652,0-2.991-1.096-3.377-2.611c0.044-0.257,0.077-0.518,0.077-0.789v-2
3088		c0-0.233-0.163-0.421-0.38-0.476C32.033,35.05,31.924,35,31.8,35c-0.276,0-0.5,0.224-0.5,0.5v2c0,0.32,0.033,0.632,0.095,0.933
3089		C31.028,39.979,29.673,41.1,28,41.1C26.038,41.1,24.5,39.563,24.5,37.6z"/>
3090	<path fill="#404040" d="M14.6,14.6c3.757,0,6.7-2.987,6.7-6.8c0-3.75-3.005-6.8-6.7-6.8c-3.757,0-6.7,2.987-6.7,6.8
3091		C7.9,11.549,10.906,14.6,14.6,14.6z M14.6,2c3.143,0,5.7,2.602,5.7,5.8c0,3.252-2.503,5.8-5.7,5.8c-3.143,0-5.7-2.602-5.7-5.8
3092		C8.9,4.547,11.404,2,14.6,2z"/>
3093	<path fill="#404040" d="M37.5,25.3c2.188,0,3.9-1.713,3.897-3.952c-0.241-2.287-1.963-3.947-4.065-3.947c-0.001,0-0.002,0-0.002,0
3094		L20.7,16.4h-2.5c-0.414,0-0.749,0.142-1.092,0.489l-2.71,3.409l-2.845-3.552C11.257,16.45,10.937,16.3,10.6,16.3H8.9
3095		c-1.748,0-3.383,0.758-4.482,2.078c-1.164,1.375-1.639,2.985-1.414,4.785l1.4,11.104c0.228,1.706,1.237,3.3,2.672,4.181
3096		l0.164,0.082L9.605,56.17c0.226,1.582,1.485,2.73,2.995,2.73h3.9c1.481,0,2.74-1.101,2.997-2.645l1.199-10.688L23.437,25.3H37.5z
3097		 M22.504,24.733l-2.801,20.711l-1.196,10.674C18.359,57.004,17.622,57.9,16.5,57.9h-3.9c-1.007,0-1.851-0.787-2.004-1.867
3098		l-2.4-17.899c-0.022-0.164-0.124-0.307-0.272-0.381l-0.362-0.179c-1.13-0.695-1.98-2.046-2.166-3.437l-1.4-11.1
3099		c-0.189-1.511,0.21-2.862,1.188-4.018C6.095,17.927,7.449,17.3,8.9,17.3h1.7c0.058,0,0.15,0.058,0.209,0.113l3.2,4
3100		c0.095,0.119,0.239,0.188,0.391,0.188c0,0,0,0,0.001,0c0.152,0,0.296-0.07,0.391-0.189l3.062-3.857
3101		c0.119-0.119,0.197-0.154,0.347-0.154l2.47-0.001L37.3,18.4c1.826,0,2.943,1.536,3.101,3c0,1.815-1.475,2.9-2.9,2.9H23
3102		C22.75,24.3,22.538,24.485,22.504,24.733z"/>
3103</g>
3104</svg>
3105
3106`
3107});
3108
3109//Sales
3110Vue.component('fj-icon-sales', {
3111    template: `
3112<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
3113	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
3114<g>
3115	<path fill="#404040" d="M38.4,36.6c7.829,0,14.199-6.415,14.199-14.3S46.229,8,38.4,8c-7.83,0-14.2,6.415-14.2,14.3
3116		S30.57,36.6,38.4,36.6z M38.4,9C45.679,9,51.6,14.966,51.6,22.3S45.679,35.6,38.4,35.6s-13.2-5.966-13.2-13.3S31.122,9,38.4,9z"/>
3117	<path fill="#404040" d="M38.263,22.781c1.278,0.365,2.161,0.739,2.612,1.099c0.682,0.584,0.825,1.313,0.825,1.82
3118		c0,0.768-0.346,1.523-0.954,2.046C40.18,28.313,39.323,28.6,38.2,28.6c-0.723,0-1.352-0.137-2.022-0.416
3119		c-0.563-0.375-1.009-0.732-1.361-1.261c-0.165-0.248-0.251-0.506-0.342-0.78c-0.087-0.262-0.37-0.403-0.632-0.317
3120		c-0.263,0.087-0.404,0.37-0.317,0.632c0.103,0.31,0.219,0.661,0.459,1.021c0.471,0.707,1.065,1.157,1.719,1.582
3121		c0.779,0.334,1.456,0.491,2.197,0.526V31.8c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5v-2.25
3122		c1.062-0.111,1.922-0.465,2.524-1.069c0.799-0.685,1.275-1.724,1.275-2.78c0-1.015-0.417-1.931-1.188-2.591
3123		c-0.576-0.46-1.549-0.882-2.972-1.289c-1.627-0.479-2.681-0.955-3.287-1.474C34.719,19.812,34.5,19.334,34.5,18.7
3124		c0-0.776,0.247-1.34,0.829-1.924C36.031,16.162,36.8,15.9,37.9,15.9c0.807,0,1.402,0.11,1.876,0.347
3125		c0.635,0.317,1.13,0.686,1.407,1.031c0.179,0.267,0.363,0.543,0.441,0.78c0.086,0.261,0.37,0.403,0.632,0.317
3126		c0.263-0.087,0.404-0.37,0.317-0.632c-0.121-0.365-0.344-0.698-0.584-1.054c-0.398-0.499-0.992-0.948-1.767-1.335
3127		c-0.384-0.191-0.821-0.313-1.323-0.382V12.7c0-0.276-0.224-0.5-0.5-0.5s-0.5,0.224-0.5,0.5v2.2c-1.327,0-2.354,0.357-3.254,1.146
3128		C33.854,16.839,33.5,17.658,33.5,18.7c0,0.904,0.323,1.63,1.075,2.379C35.331,21.729,36.468,22.252,38.263,22.781z"/>
3129	<path fill="#404040" d="M56.742,39.401c-0.385-0.834-1.234-1.314-2.108-1.196c-1.499,0.199-15.344,2.986-15.933,3.104
3130		c-0.271,0.055-0.446,0.318-0.392,0.589c0.055,0.271,0.323,0.445,0.589,0.392c0.144-0.029,14.401-2.898,15.868-3.095
3131		c0.442-0.056,0.866,0.187,1.068,0.626c0.31,0.67,0.022,1.495-0.771,2.211c-1.021,0.807-18.636,8.071-23.171,8.071
3132		c-0.059,0-0.116-0.001-0.17-0.003c-2.721-0.121-7.517-2.616-11.02-4.438c-2.248-1.17-4.023-2.093-4.913-2.255
3133		c-1.79-0.323-3.128,1.076-3.784,1.968l0.75-10.687c0.091,0.008,0.184,0.001,0.271-0.044c0.056-0.027,5.562-2.802,9.028-1.767
3134		c3.765,1.149,12.317,5.689,12.655,7.712c0.183,0.99-0.191,1.278-0.314,1.372c-1.479,1.136-7.029-0.818-10.18-2.314
3135		c-0.25-0.12-0.548-0.013-0.667,0.236c-0.119,0.25-0.012,0.548,0.237,0.666c0.711,0.339,5.876,2.738,9.176,2.738
3136		c0.834,0,1.55-0.153,2.043-0.532c0.448-0.345,0.932-1.031,0.689-2.339c-0.472-2.827-10.115-7.509-13.351-8.497
3137		c-3.446-1.024-8.353,1.154-9.513,1.709L13,31.2c0-0.576-0.524-1.101-1.1-1.101H4.1C3.524,30.1,3,30.624,3,31.2v17.1
3138		C3,48.876,3.524,49.4,4.1,49.4h6.6c0.576,0,1.1-0.524,1.098-1.065l0.109-1.551c0.209,0.041,0.428-0.051,0.534-0.248
3139		c0.013-0.025,1.349-2.488,3.17-2.144c0.742,0.135,2.631,1.117,4.63,2.157c3.785,1.969,8.496,4.419,11.437,4.549
3140		c0.055,0.003,0.11,0.004,0.17,0.004c4.581-0.001,22.933-7.377,23.888-8.331C57.07,41.569,57.131,40.242,56.742,39.401z
3141		 M10.8,48.295c-0.006,0.036-0.067,0.098-0.104,0.105H4.105C4.069,48.395,4.006,48.331,4,48.3l0-17.095
3142		c0.006-0.036,0.069-0.1,0.101-0.105h7.795c0.037,0.006,0.096,0.066,0.106,0.065L10.8,48.295z"/>
3143</g>
3144</svg>
3145
3146`
3147});
3148
3149//Student
3150Vue.component('fj-icon-student', {
3151    template: `
3152<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
3153	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
3154<path fill="#404040" d="M54.1,6H41.8H18.2H5.9C5.624,6,5.4,6.224,5.4,6.5S5.624,7,5.9,7h10.819C16.644,7.186,16.6,7.388,16.6,7.6
3155	v10.5c0,0.882,0.718,1.6,1.6,1.6h0.271c-0.181,0.868-0.271,1.804-0.271,2.9c0,6.126,3.756,11.277,8.824,12.757
3156	c-8.843,1.417-15.624,9-15.624,18.143c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5c0-9.595,7.896-17.4,17.6-17.4
3157	c9.704,0,17.6,7.806,17.6,17.4c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5c0-9.142-6.78-16.726-15.623-18.143
3158	c5.067-1.48,8.823-6.631,8.823-12.757c0-1.023-0.142-1.974-0.303-2.9H41.8c0.883,0,1.601-0.718,1.601-1.6V7.6
3159	c0-0.212-0.044-0.415-0.119-0.6H48.3v13.8c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5V7h4.8c0.276,0,0.5-0.224,0.5-0.5
3160	S54.376,6,54.1,6z M40.8,22.6c0,6.727-4.845,12.2-10.8,12.2s-10.8-5.473-10.8-12.2c0-1.129,0.09-2.042,0.289-2.9h20.993
3161	C40.653,20.66,40.8,21.588,40.8,22.6z M42.4,7.6v10.5c0,0.325-0.275,0.6-0.601,0.6h-0.481h-22.6H18.2c-0.325,0-0.6-0.275-0.6-0.6
3162	V7.6c0-0.325,0.275-0.6,0.6-0.6h23.6C42.125,7,42.4,7.275,42.4,7.6z"/>
3163</svg>
3164
3165`
3166});
3167
3168
3169//Teacher-Professor
3170Vue.component('fj-icon-teacher-professor', {
3171    template: `
3172<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
3173	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
3174<g>
3175	<path fill="#404040" d="M59.5,8.7H2.7c-0.276,0-0.5,0.224-0.5,0.5v3.2c0,0.276,0.224,0.5,0.5,0.5H5v21.4
3176		c0,0.091,0.031,0.171,0.073,0.245l-3.668,4.849l-0.659,0.853c-0.619,0.619-0.936,1.463-0.87,2.313
3177		c0.065,0.825,0.477,1.57,1.105,2.026l5.7,4.7c0.042,0.035,0.104,0.067,0.156,0.087c0.031,0.012,0.077,0.035,0.135,0.063
3178		c0.087,0.042,0.203,0.098,0.339,0.155c-0.185,0.131-0.264,0.375-0.176,0.595C7.435,50.935,8.035,51.4,8.7,51.4h12.4
3179		c0.927,0,1.6-0.673,1.6-1.601V48.4h34c0.276,0,0.5-0.224,0.5-0.5v-35h2.3c0.276,0,0.5-0.224,0.5-0.5V9.2
3180		C60,8.924,59.776,8.7,59.5,8.7z M21.7,49.8c0,0.141-0.043,0.601-0.6,0.601H8.7c-0.284,0-0.508-0.29-0.622-0.552
3181		c0.745,0.176,1.678,0.164,2.421-0.648c0.522-0.392,0.738-1.114,0.593-1.982c-0.125-0.749-0.4-1.248-0.86-1.591l-2.146-1.916
3182		C8.096,43.676,8.1,43.638,8.1,43.6v-3.393l1.456-1.455c0.292-0.295,0.292-0.812-0.003-1.106c-0.294-0.293-0.811-0.293-1.096-0.01
3183		l-1.746,1.649l-1.664,2.061c-0.165,0.164-0.241,0.401-0.204,0.633c0.036,0.22,0.167,0.41,0.366,0.531L9.6,46.4
3184		c0.282,0.211,0.424,0.486,0.507,0.981c0.078,0.466-0.003,0.865-0.274,1.079c-0.696,0.755-1.619,0.459-2.429,0.073
3185		c-0.054-0.026-0.103-0.049-0.144-0.067l-5.667-4.671c-0.416-0.303-0.678-0.781-0.72-1.315c-0.044-0.566,0.162-1.109,0.621-1.574
3186		l6.56-8.653c0.276-0.276,0.515-0.516,1.004-0.679c0.073-0.024,0.14-0.065,0.194-0.12l0.06-0.063
3187		c0.378-0.303,0.948-0.491,1.487-0.491h8.3c0.516,0,1.147,0.208,1.584,0.514c0.073,0.121,0.188,0.208,0.315,0.253
3188		c0.055,0.034,0.109,0.065,0.162,0.097c0.128,0.075,0.249,0.146,0.265,0.195c0.017,0.051,0.042,0.099,0.074,0.142l5.748,7.655
3189		c0.131,0.13,0.232,0.205,0.391,0.232c0.149,0.068,0.318,0.073,0.474,0.009c0.146-0.061,0.261-0.177,0.327-0.319L35.3,33.4
3190		c0.24-0.18,0.738-0.271,1.116-0.225c0.1,0.063,0.218,0.131,0.339,0.201c0.145,0.084,0.339,0.196,0.453,0.265
3191		c0.01,0.114,0.053,0.227,0.141,0.313c0.031,0.031,0.068,0.048,0.104,0.069c0.089,0.225,0.149,0.475,0.156,0.778
3192		c-0.083,0.417-0.251,0.749-0.563,1.144l-6.4,7.5c-0.296,0.296-0.675,0.469-1.304,0.579C29.119,44.1,28.879,44.1,28.6,44.1
3193		c-1.265,0-2.296-0.545-2.984-1.577c-0.048-0.072-0.115-0.132-0.193-0.17l-2.27-2.906C22.907,39.2,22.632,39.2,22.5,39.2h-0.1
3194		c-0.132,0-0.259,0.053-0.353,0.146C21.909,39.483,21.7,39.691,21.7,40v7.4h-0.2c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5h0.2
3195		V49.8z M7.1,40.389v2.447l-1.157-1.013L7.1,40.389z M43.3,47.1v-2.6c0-0.123,0.077-0.2,0.2-0.2h7.3c0.123,0,0.2,0.077,0.2,0.2v2.6
3196		c0,0.123-0.077,0.2-0.2,0.2h-7.3C43.377,47.3,43.3,47.223,43.3,47.1z M56.2,47.4h-4.26C51.966,47.302,52,47.207,52,47.1v-2.6
3197		c0-0.673-0.527-1.2-1.2-1.2h-7.3c-0.673,0-1.2,0.527-1.2,1.2v2.6c0,0.107,0.034,0.202,0.06,0.301H22.7v-6.904l1.901,2.506
3198		c0.047,0.062,0.107,0.111,0.176,0.146l0.084,0.042c0.871,1.233,2.193,1.91,3.739,1.91c0.319,0,0.681,0,0.982-0.106
3199		c0.762-0.126,1.325-0.394,1.799-0.869l6.272-7.37l0.138-0.142c0.452-0.566,0.684-1.033,0.809-1.712
3200		c0-0.497-0.075-0.905-0.225-1.271l11.181-11.277c0.194-0.196,0.192-0.513-0.004-0.707c-0.195-0.194-0.511-0.192-0.707,0.003
3201		L37.766,32.823c-0.14-0.093-0.304-0.192-0.51-0.312c-0.143-0.082-0.278-0.161-0.379-0.228c-0.055-0.036-0.115-0.062-0.179-0.074
3202		c-0.561-0.114-1.425-0.039-2.035,0.421l-6.831,6.245l-5.491-7.321c-0.149-0.347-0.438-0.516-0.674-0.654
3203		c-0.055-0.032-0.111-0.065-0.168-0.102c-0.025-0.033-0.054-0.063-0.087-0.09C20.797,30.217,19.889,29.9,19.1,29.9h-8.3
3204		c-0.768,0-1.557,0.265-2.152,0.746l-0.021,0.021c-0.639,0.237-0.981,0.581-1.326,0.933L6,33.319V12.9h50.2V47.4z M59,11.9H3.2V9.7
3205		H59V11.9z"/>
3206	<path fill="#404040" d="M14.9,29.1c3.75,0,6.8-3.051,6.8-6.8c0-3.763-2.833-6.71-6.448-6.71c-0.126,0-0.253,0.004-0.352,0.01
3207		c-3.75,0-6.8,3.05-6.8,6.8C8.1,26.157,11.087,29.1,14.9,29.1z M14.928,16.599c0.109-0.006,0.217-0.009,0.324-0.009
3208		c3.055,0,5.448,2.508,5.448,5.71c0,3.198-2.602,5.8-5.8,5.8c-3.252,0-5.8-2.504-5.8-5.7C9.1,19.202,11.702,16.6,14.928,16.599z"/>
3209</g>
3210</svg>
3211
3212`
3213});
3214
3215//Trainer
3216Vue.component('fj-icon-trainer', {
3217    template: `
3218<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
3219	 width="60px" height="60px" viewBox="0 0 60 60" enable-background="new 0 0 60 60" xml:space="preserve">
3220<g>
3221	<path fill="#404040" d="M53.939,46.771c0.243-0.188,0.386-0.472,0.386-0.771c0-0.324-0.168-0.63-0.391-0.771l-8.3-7.5
3222		c-0.008-0.007-0.018-0.009-0.025-0.015c-0.022-0.519-0.052-0.876-0.092-1.114H45.6c0-4.301-3.454-7.8-7.699-7.8h-5.462
3223		c0.711-0.695,1.161-1.655,1.161-2.7V11.786c0.059-0.082,0.101-0.177,0.101-0.286V6.8c0-2.06-1.74-3.8-3.8-3.8h-9.2
3224		c-2.06,0-3.8,1.74-3.8,3.8v2.8c0,0.031,0.012,0.057,0.018,0.086c-0.495,0.234-0.991,0.495-1.489,0.793l-1.7,1.1
3225		c-0.186,0.121-0.271,0.349-0.208,0.562C13.583,12.354,13.778,12.5,14,12.5h2.8v13.6c0,1.045,0.45,2.005,1.161,2.7H13.3
3226		c-4.174,0-7.7,3.572-7.7,7.8v19.9c0,0.276,0.224,0.5,0.5,0.5h39.1c0.007-0.001,0.014-0.001,0.02,0c0.276,0,0.5-0.224,0.5-0.5
3227		c0-0.049-0.007-0.096-0.02-0.141c0-0.041,0-0.099,0-0.156L53.939,46.771z M53.322,45.984c-0.036,0.024-0.07,0.054-0.1,0.087
3228		l-7.523,8.611c-0.001-1.894-0.004-5.012-0.012-8.134c-0.009-3.574-0.015-5.918-0.041-7.466L53.322,45.984z M38.5,49.965
3229		l-5.923-5.349c0.036-0.023,0.067-0.052,0.096-0.084l5.827-6.544V49.965z M38.514,29.832C38.511,29.854,38.5,29.875,38.5,29.9v6.613
3230		c-0.024,0.02-0.052,0.032-0.073,0.056l-6.465,7.259c-0.243,0.189-0.387,0.473-0.387,0.772c0,0.324,0.167,0.629,0.389,0.771
3231		l6.536,5.941V56H26.2V41.274c4.729-0.265,8.5-4.228,8.5-9.074v-2.4h3.2C38.107,29.8,38.312,29.813,38.514,29.832z M17.7,29.8h1.843
3232		C19.516,29.861,19.5,29.929,19.5,30v1.5c0,3.229,2.523,5.872,5.7,6.079v2.695c-4.178-0.264-7.5-3.779-7.5-8.074V29.8z M30.7,29.8
3233		v1.7c0,2.812-2.288,5.1-5.1,5.1s-5.1-2.288-5.1-5.1V30c0-0.04-0.014-0.076-0.023-0.113c0.042,0.001,0.081,0.013,0.123,0.013h9.2
3234		c0.282,0,0.555-0.039,0.821-0.1H30.7z M31.7,31.5v-1.7h2v2.4c0,4.295-3.322,7.811-7.5,8.074v-2.705
3235		C29.283,37.267,31.7,34.661,31.7,31.5z M25.781,12.5H32.6v2.318l-1.983,2.362c-0.415,0.498-0.883,0.72-1.516,0.72
3236		c-0.382,0-0.704-0.161-1.043-0.329C27.586,17.289,26.985,17,26.1,17h-1.711l1.386-4.245C25.803,12.669,25.799,12.583,25.781,12.5z
3237		 M17.9,6.8c0-1.518,1.282-2.8,2.8-2.8h9.2c1.518,0,2.8,1.282,2.8,2.8v4.015C32.642,10.896,32.6,10.991,32.6,11.1v0.018
3238		l-0.906-0.624C29.795,9.124,27.584,8.4,25.3,8.4h-3.1c-1.404,0-2.842,0.29-4.3,0.858V6.8z M15.958,11.329
3239		C18.091,10.049,20.191,9.4,22.2,9.4h3.1c2.073,0,4.082,0.659,5.817,1.912l0.273,0.188H15.693L15.958,11.329z M24.807,12.5
3240		l-1.529,4.685l-0.581,0.258c-0.056,0.025-0.141,0.065-0.185,0.108c-0.065,0.025-0.142,0.054-0.312,0.149
3241		c-0.288,0.216-0.568,0.3-1,0.3c-0.497,0-1.075-0.282-1.516-0.72L17.8,15.019V12.5H24.807z M17.8,26.1v-9.52l1.146,1.374
3242		C19.611,18.619,20.433,19,21.2,19c0.645,0,1.139-0.154,1.523-0.453c0.058-0.029,0.105-0.047,0.146-0.062
3243		c0.087-0.034,0.192-0.074,0.301-0.159L23.906,18H26.1c0.604,0,1.013,0.171,1.476,0.447C28,18.659,28.481,18.9,29.1,18.9
3244		c0.932,0,1.678-0.353,2.283-1.078l1.217-1.449V26.1c0,1.28-0.916,2.382-2.112,2.7H19.912C18.715,28.482,17.8,27.38,17.8,26.1z
3245		 M16.7,29.8v2.4c0,4.847,3.771,8.81,8.5,9.074V56H12.9V29.9c0-0.028-0.011-0.051-0.016-0.078C13.022,29.813,13.16,29.8,13.3,29.8
3246		H16.7z M6.6,36.6c0-3.2,2.313-5.966,5.3-6.64V56H6.6V36.6z M39.5,56V30.004c2.923,0.73,5.1,3.407,5.1,6.596
3247		c0,0.037,0.004,0.074,0.012,0.108C44.675,37.523,44.699,48.454,44.7,56H39.5z"/>
3248	<path fill="#404040" d="M26.1,24.2h-4.2c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5h4.2c0.276,0,0.5-0.224,0.5-0.5
3249		S26.376,24.2,26.1,24.2z"/>
3250</g>
3251</svg>
3252
3253`
3254});
3255
3256
3257//Trainer
3258Vue.component('fj-icon-email-check', {
3259    template: `
3260<svg width="86px" height="85px" viewBox="0 0 86 85" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3261    <!-- Generator: sketchtool 43.1 (39012) - http://www.bohemiancoding.com/sketch -->
3262    <title>A024D77C-D271-4218-821A-6C51DB1CC608</title>
3263    <desc>Created with sketchtool.</desc>
3264    <defs></defs>
3265    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
3266        <g id="step3" transform="translate(-597.000000, -321.000000)">
3267            <g id="Group-12" transform="translate(597.000000, 321.000000)">
3268                <g id="Group-7" fill="#F0EFFF">
3269                    <path d="M85.7324561,42.6038759 C85.7324561,19.1884889 66.68784,0.207070707 43.1951754,0.207070707 C19.7025109,0.207070707 0.657894737,19.1884889 0.657894737,42.6038759 C0.657894737,66.0185818 19.7025109,85 43.1951754,85 C66.68784,85 85.7324561,66.0185818 85.7324561,42.6038759" id="Fill-8"></path>
3270                </g>
3271                <g id="Group-11" transform="translate(14.000000, 9.000000)">
3272                    <g id="Group-4">
3273                        <path d="M59.5773626,38.1892523 L29.7883516,55.6192523 L0,38.1892523 L0.00461538462,38.1408411 C0.029010989,38.0302804 1.67340659,36.6682243 4.18021978,34.646729 L4.24813187,34.5891589 C12.4740659,27.9627103 29.7883516,14.3925234 29.7883516,14.3925234 C29.7883516,14.3925234 47.1032967,27.9627103 55.3285714,34.5891589 C57.8749451,36.6394393 59.549011,38.0257009 59.5727473,38.1408411 L59.5773626,38.1892523" id="Fill-17" fill="#F69C1A"></path>
3274                        <path d="M42.4068132,0 L10.2665934,0 C7.50989011,0 5.27472527,2.21775701 5.27472527,4.95233645 L5.27472527,53.1699065 C5.27472527,55.9051402 7.50989011,58.122243 10.2665934,58.122243 L50.5397802,58.122243 C53.2958242,58.122243 55.530989,55.9051402 55.530989,53.1699065 L55.530989,13.0219626 L42.4068132,0" id="Fill-18" fill="#FFFFFF"></path>
3275                        <path d="M42.1978022,8.06962617 C42.1978022,10.8048598 44.432967,13.0219626 47.189011,13.0219626 L55.321978,13.0219626 L42.1978022,0 L42.1978022,8.06962617" id="Fill-19" fill="#F7F8FA"></path>
3276                        <path d="M59.5773626,37.9439252 L59.5773626,66.2998131 C59.5773626,68.2820561 57.9448352,69.901215 55.947033,69.901215 L3.62043956,69.901215 C1.62263736,69.901215 0,68.2820561 0,66.2998131 L0,37.9439252 L29.7883516,55.3706542 L59.5773626,37.9439252" id="Fill-24" fill="#FFD454"></path>
3277                        <path d="M58.8876923,68.7458879 L39.7147253,49.7215888 L30.1054945,55.3431776 L20.492967,49.7196262 L1.31868132,68.7445794 C1.97868132,69.4360748 2.90505495,69.8737383 3.93758242,69.8737383 L56.2641758,69.8737383 C57.2967033,69.8737383 58.2250549,69.436729 58.8876923,68.7458879" id="Fill-25" fill="#FFB228"></path>
3278                    </g>
3279                    <path d="M39.2560142,22.8155607 C38.78686,22.8291494 38.3414414,23.0236555 38.0140568,23.3579007 C35.1938351,26.1667699 32.3706025,28.9643136 29.5461657,31.7735299 L25.396914,28.3324673 C24.6303042,27.6991925 23.4924819,27.8025157 22.8540483,28.5633795 C22.2156147,29.3242433 22.3177595,30.4552058 23.082327,31.0909147 L28.5017774,35.5792455 C29.2206986,36.1747896 30.278231,36.1260947 30.9386633,35.4670372 C34.1474597,32.271196 37.3589657,29.0932484 40.5732417,25.8919375 C41.1038055,25.3745596 41.2613722,24.58703 40.9703244,23.9072896 C40.6792765,23.2275493 39.9990199,22.7943395 39.2560142,22.8155607 L39.2560142,22.8155607 Z" id="Shape" fill="#7762EF" fill-rule="nonzero"></path>
3280                </g>
3281            </g>
3282        </g>
3283    </g>
3284</svg>
3285
3286`
3287});
3288
3289window.confirmAccount = function () {
3290    jQuery("#emailService")[0].click();
3291}
3292
3293window.app_survey = new Vue({
3294    el: '.app_survey',
3295    data: {
3296        local: {
3297            answerType:'organization',
3298            step:1,
3299            animateStepClass:"step0-step1-next",
3300            isOtherOrganization:false,
3301            isShowOtherDelBtn:false,
3302            otherOrganization:null,
3303            doSurvey:false,
3304        }
3305    },
3306    methods: {
3307        askRole:function (organization) {
3308            this.local.answerType = organization;
3309            this.local.animateStepClass = "step1-step2-next",
3310            this.local.step = 2;
3311        },
3312        submitSurvey:function (role) {
3313            ealog.addEvent("user survey",{
3314                organization:this.local.answerType,
3315                role:this.local.answerType + " " + role
3316            });
3317            this.local.animateStepClass = "step2-step3-next";
3318            this.local.step = 3;
3319        },
3320        goBack(){
3321            if(this.local.step === 2){
3322                if(this.local.isOtherOrganization){
3323                    this.local.isOtherOrganization = false;
3324                }else{
3325                    this.local.answerType = 'organization';
3326                }
3327                this.local.animateStepClass = "step2-step1-prev";
3328                this.local.step = 1;
3329            }
3330        },
3331        closeBox(){
3332            this.local.doSurvey = false;
3333            if(document.domain != "localhost"){
3334                if(this.local.step === 1){ //在组织页面点击关闭
3335                    ealog.addEvent("user survey",{
3336                        "step1 2 close":1
3337                    });
3338                }
3339                if(this.local.step === 2 && this.local.isOtherOrganization && this.local.answerType === "organization"){ //其它组织页面点击关闭
3340                    ealog.addEvent("user survey",{
3341                        "step1 2 close":1
3342                    });
3343                }
3344                if(this.local.step === 2 && !this.local.isOtherOrganization && this.local.answerType != "organization"){ //角色页面点击关闭
3345                    ealog.addEvent("user survey",{
3346                        "step1 2 close":1,
3347                        "organization":this.local.answerType
3348                    });
3349                }
3350            }
3351        },
3352        openBox(){
3353            this.local.step = 1;
3354            this.local.answerType = 'organization';
3355            this.local.animateStepClass = "step0-step1-next";
3356            this.local.isOtherOrganization = false;
3357            this.local.isShowOtherDelBtn = false;
3358            this.local.otherOrganization = null;
3359            this.local.doSurvey = true;
3360        },
3361        goOtherPage(){
3362            if(this.local.step === 1){ //组织页面点other,提交other,并弹出输入框
3363                this.local.animateStepClass = "step1-step2-next";
3364                this.local.isOtherOrganization = true;
3365                this.local.step = 2;
3366                ealog.addEvent("user survey",{
3367                    organization:"other",
3368                });
3369            }else if(this.local.step === 2 && this.local.answerType != 'organization'){ //角色页面点other,直接完成,提交other
3370                this.local.step = 3;
3371                ealog.addEvent("user survey",{
3372                    organization:this.local.answerType,
3373                    role:"other"
3374                });
3375            }
3376
3377        },
3378        inputChange(){
3379            if(this.local.otherOrganization.length > 0){
3380                this.local.isShowOtherDelBtn = true;
3381            }else{
3382                this.local.isShowOtherDelBtn = false;
3383            }
3384        },
3385        clearOtherInput(){
3386            this.local.otherOrganization = null;
3387            this.local.isShowOtherDelBtn = false;
3388        },
3389        completeOther(){
3390            if(this.local.answerType === "organization"){ //组织页面点其他,然后输入完成
3391                ealog.addEvent("user survey",{
3392                    "organization other":this.local.otherOrganization
3393                });
3394            }
3395            this.local.step = 3;
3396            this.local.isOtherOrganization = false;
3397        },
3398        goConfirmEmail:function () {
3399            if(window.confirmAccount){
3400                window.confirmAccount();
3401            }
3402            //jQuery("#emailService")[0].click();
3403            this.local.doSurvey = false;
3404        }
3405    },
3406    create:function () {
3407
3408    },
3409    mounted: function () {
3410    },
3411});
3412//订阅状态改变后更新订阅信息
3413document.addEventListener('DOMContentLoaded', function() {
3414    if (window.FJGlobalariable && window.FJGlobalariable.modSubscription) {
3415        window.FJGlobalariable.modSubscription.addSubscriptionChangedListener(function(data) {
3416            //console.log(data);
3417            app_fj_login.updatePackInfo(data);
3418        });
3419    } else {
3420        console.log('modSubscription is undefined');
3421    }
3422});
3423// 初始化显示登录/注册面板的方法
3424window.fjuser.initWithMethods(app_fj_login.showLoginPanel, app_fj_login.showSignUpPanel);
3425
3426// 添加google验证目标方法
3427if(window.googleRecaptcha){
3428    window.googleRecaptcha.addTarget('login', window.fjuser.loginPost);
3429    window.googleRecaptcha.addTarget('register', window.fjuser.registerPost);
3430}
3431
3432//添加腾讯验证的方法
3433if(window.tencentRecaptcha){
3434    window.tencentRecaptcha.addTarget('login', window.fjuser.loginPost);
3435    window.tencentRecaptcha.addTarget('register', window.fjuser.registerPost);
3436};
3437
3438window.recaptchaPost = function(data,type){
3439    if(window.googleRecaptcha.loaded === true){
3440        window.googleRecaptcha.submit(data, type);
3441        return;
3442    }
3443    if(window.tencentRecaptcha.loaded === true){
3444        window.tencentRecaptcha.submit(data, type);
3445        return;
3446    }
3447
3448    setTimeout(() => {
3449        window.recaptchaPost(data, type);
3450    }, 500);
3451};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.