{"version":3,"sources":["tplus-api/../src/store/ReLoginStore.ts"],"names":[],"mappings":"AAEA,cAAM,YAAY;IAEd,OAAO,SAAK;IACZ,QAAQ,KAAM;IAEd,QAAQ,SAAS;IACjB,YAAY,SAAuB;IACnC,SAAS,SAAuB;IAEhC;;;OAGG;IACH,eAAe,CAAC,YAAY,KAAA;IAK5B;;;OAGG;IACH,YAAY,CAAC,SAAS,KAAA;IAKtB;;OAEG;WACU,OAAO;IASpB;;OAEG;WACU,SAAS;IAatB;;OAEG;IACG,YAAY;IAalB;;OAEG;IACG,KAAK;IAgBL,KAAK;IASX;;OAEG;IACH,IAAI;CAGP;AACD,eAAe,YAAY,CAAC","file":"ReLoginStore.d.ts","sourcesContent":["import User from '../model/User';\nimport axios from 'axios';\nclass ReLoginStore{\n\n    timerId = 0;\n    timerObj = {};//控制轮训的标识位\n\n    unitTime =  1000;  //单位秒\n    intervalTime =  10 * this.unitTime; //轮训时间间隔  \n    delayTime =  30 * this.unitTime; //轮训时间间隔\n\n    /**\n     * 设置轮训时间间隔\n     * @param {*} intervalTime 秒\n     */\n    setIntervalTime(intervalTime){\n        this.intervalTime = intervalTime * this.unitTime;\n        return this;\n    }\n\n    /**\n     * 设置延迟启动时间\n     * @param {*} delayTime \n     */\n    setDelayTime(delayTime){\n        this.delayTime = delayTime * this.unitTime;\n        return this;\n    }\n\n    /**\n     * 重登陆方法\n     */\n    static async relogin() {\n        const user = Object.assign(new User(),User.restore());\n        const param = {\n            clientName: window.localStorage.clientName,\n            desc: window.localStorage.desc\n        }\n        await user.loginTplus(param);\n    }\n\n    /**\n     * 延长session时长  重连接口\n     */\n    static async reconnect() {\n        const user = User.restore();\n        return new Promise((resolve,reject)=>{\n            axios.create({baseURL: user.channel.targetURL}).get(`/sm/runmanage/linktplus.aspx?method=getonlinusers&token=${user.tplusToken}`).then((res)=>{\n                if(res.status === 200 ){\n                    resolve(true);\n                }else{\n                    resolve(false);\n                }\n            });\n        });\n    }\n\n    /**\n     * 判断当前环境是否是云部署\n     */\n    async isCloudProxy(){\n        const user = User.restore();\n        return new Promise((resolve,reject)=>{\n            axios.create({baseURL: user.channel.targetURL}).get('/ajaxpro/Ufida.T.SM.Login.UIP.LoginManager,Ufida.T.SM.Login.UIP.ashx?method=GetVersionType').then((res)=>{\n                if(res.status === 200 && res.data.value && res.data.value.IsCloudDeployment){\n                    resolve(res.data.value.IsCloudDeployment);\n                }else{\n                    resolve(false);\n                }\n            });\n        });\n    }\n\n    /**\n     * 开启重登陆轮询\n     */\n    async start () {\n      await this.delay();\n      const id = this.timerId++;\n      this.timerObj[id] = true;\n      let timerObj = this.timerObj;\n      let intervalTime = this.intervalTime;\n      async function timerFn () {\n        if (!timerObj[id]) {\n            return\n        }\n        await ReLoginStore.reconnect();\n        setTimeout(timerFn, intervalTime);\n      }\n      timerFn()\n    }\n\n    async delay(){\n        const delayTime = this.delayTime;\n        return new Promise((resolve,reject)=>{\n            setTimeout(()=>{\n                resolve();\n            },delayTime);\n        });\n    }\n\n    /**\n     * 关闭轮询\n     */\n    stop () {\n      this.timerObj = {}\n    }\n}\nexport default ReLoginStore;"]}