UNPKG

yylib-quick-mobile

Version:

yylib-quick-mobile

594 lines (549 loc) 26.8 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _modal = require('antd-mobile/lib/modal'); var _modal2 = _interopRequireDefault(_modal); var _toast = require('antd-mobile/lib/toast'); var _toast2 = _interopRequireDefault(_toast); require('antd-mobile/lib/modal/style/css'); require('antd-mobile/lib/toast/style/css'); var _superagent = require('superagent'); var _superagent2 = _interopRequireDefault(_superagent); var _superagentJsonp = require('superagent-jsonp'); var _superagentJsonp2 = _interopRequireDefault(_superagentJsonp); var _jsCookie = require('js-cookie'); var _jsCookie2 = _interopRequireDefault(_jsCookie); var _maAjax = require('./maAjax'); var _ajax = require('./ajax'); var _ajax2 = _interopRequireDefault(_ajax); var _util = require('./util'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function loginContextPost(url, checkParams, _success) { _toast2.default.loading('Loading...', 0, null, false); (0, _maAjax.postMAJSON)(url, checkParams, function (resultJson) { if (resultJson.success == true) { _toast2.default.hide(); var resultExt = JSON.parse(resultJson.ext); sessionStorage.setItem("icop_context", JSON.stringify(resultExt['icop_context'])); if (typeof _success === 'function') { _success(); } } else { _toast2.default.fail("身份校验失败"); } }); } function getJssdk(url, Params) { _ajax2.default.getText(url, { url: Params, appid: sessionStorage.getItem('appid') }, function (data) { console.log(data); var JSData = JSON.parse(data); if (JSData.flag == '0') { console.log(JSData.data); console.log('authToken加载wx.config'); setTimeout(function () { wx.config({ debug: false, appId: JSData.data.appid, timestamp: JSData.data.timestamp, nonceStr: JSData.data.nonceStr, signature: JSData.data.signature, jsApiList: ['closeWindow', 'scanQRCode'] }); }, 200); } else { console.log(JSData + '1'); _toast2.default.info(JSData.desc, 1); } }); } function getworkJssdk(url, Params) { _ajax2.default.getText(url, { url: Params, corpid: sessionStorage.getItem('corpid') }, function (data) { console.log(data); var JSData = JSON.parse(data); if (JSData.flag == '0') { console.log(JSData.data); console.log('authToken加载wx.config'); setTimeout(function () { wx.config({ beta: true, debug: false, appId: JSData.data.appid, timestamp: JSData.data.timestamp, nonceStr: JSData.data.nonceStr, signature: JSData.data.signature, jsApiList: ['closeWindow', 'scanQRCode'] }); }, 200); } else { console.log(JSData + '1'); _toast2.default.info(JSData.desc, 1); } }); } function get_context(url, Params, that, _success) { _ajax2.default.getText(url, Params, function (data) { var extData = JSON.parse(data); if (extData.flag == 1) { _toast2.default.info('请先去官网完善企业信息', 2); setTimeout(function () { window.Bridge_YYPlugin.call('CommonPlugin', 'closewindow'); }, 3000); } else { if (extData.data && Object.keys(extData.data).length !== 0) { console.log(extData.data.ext.icop_context); sessionStorage.setItem('icop_context', JSON.stringify(extData.data.ext.icop_context)); _jsCookie2.default.set(that.CONTEXT_KEY, extData.data.ext.icop_context); _jsCookie2.default.set('tenantid', extData.data.ext.icop_context.tenantid); _jsCookie2.default.set('token', extData.data.ext.icop_context.token); _jsCookie2.default.set('u_logints', extData.data.ext.icop_context.u_logints); _jsCookie2.default.set('u_usercode', extData.data.ext.icop_context.u_usercode); _jsCookie2.default.set('userId', extData.data.ext.icop_context.userId); _jsCookie2.default.set('userType', extData.data.ext.icop_context.userType); _success(); } else { console.log('----未获取到上下文-----'); var urlAppid = sessionStorage.getItem('appid'); var openidBind = _modal2.default.alert('账号绑定', '未绑定账号是否进行账号绑定?', [{ text: '取消', onPress: function onPress() { return window.Bridge_YYPlugin.call('CommonPlugin', 'closewindow'); } }, { text: '确定', onPress: function onPress() { console.log('确定'); window.location.href = window.EnvConfig.ADDR + '/icop-ydyy-mobile/?appid=' + urlAppid + '#/openIdBind'; } }]); } } }, function (data) { _toast2.default.info('失败请求', 2); }); } var AuthToken = { CONTEXT_KEY: 'icop_context', SERVER_URL: window.EnvConfig.ADDR + '/icop-workbench/getWorkbenchCookie', _cacheContext: null, init: function init(options) { var _url = options && options.url ? options.url : this.SERVER_URL; var _success = options && options.success ? options.success : null; var _error = options && options.error ? options.error : null; var _clear = options && options.clear !== undefined ? options.clear : true; var that = this; var urlParam = (0, _util.GetUrlObject)(); var nativeCookie = _jsCookie2.default.get(this.CONTEXT_KEY); if ((0, _util.yyBrowserVersions)().microMessenger) { console.log('-------------微信-------------'); if (urlParam.appid) { sessionStorage.setItem('appid', urlParam.appid); } var url = window.location.href; if (url.indexOf('openIdBind') !== -1) { console.log('----企业微信端白名单------'); if (url.indexOf('wechatwork') !== -1) { sessionStorage.setItem('corpid', urlParam.corpid); sessionStorage.setItem('agentid', urlParam.agentid); var js_Url = window.location.href.split('#')[0]; getworkJssdk(window.EnvConfig.ADDR + '/icop-ma-web/wechatWork/jssdkConfig', js_Url); var successUrl = window.location.href; if (successUrl.indexOf('code=') !== -1) { var showCode = urlParam.code; console.log(showCode); var getwechatuserid = window.EnvConfig.ADDR + '/icop-ma-web/wechatWork/wechatWorkUserid'; var getCodeUrl = window.EnvConfig.ADDR + '/icop-ma-web/wechatWork/info'; var getCodeParams = { code: showCode, corpid: urlParam.corpid, agentid: urlParam.agentid }; _ajax2.default.getText(getwechatuserid, getCodeParams, function (data) { var extData = JSON.parse(data); if (extData.flag == '0') { sessionStorage.setItem('wechatuserid', JSON.stringify(extData.data.wechat_userid)); _ajax2.default.getText(getCodeUrl, { wechat_userid: extData.data.wechat_userid, corpid: urlParam.corpid, agentid: urlParam.agentid }, function (data) { var extData = JSON.parse(data); if (extData.flag == '1') { options.wechat(); } else { if (extData.data && Object.keys(extData.data).length !== 0) { console.log(extData.data.ext.icop_context); sessionStorage.setItem('icop_context', JSON.stringify(extData.data.ext.icop_context)); for (var cookiekeys in extData.data.ext.icop_context) { _jsCookie2.default.set(cookiekeys, extData.data.ext.icop_context[cookiekeys]); } options.wechat(); } else { console.log('----未获取到上下文-----'); _toast2.default.info('未获取到上下文信息', 2000); } } }, function (data) { alert('失败请求', data); }); } else { _toast2.default.info(extData.desc, 2); } }); } else { console.log('url中没有code'); if (sessionStorage.getItem('icop_context') !== null) { _success(); } else { console.log('url中没有code且缓存中没有人员信息'); } } } else { console.log('----微信公众号端白名单------'); if (sessionStorage.getItem('openid')) { if (url.indexOf('#') !== -1) { var _js_Url = window.location.href.split('#')[0]; getJssdk(window.EnvConfig.ADDR + '/icop-ma-web/wechat/jssdkConfig', _js_Url); options.wechat(); } else { getJssdk(window.EnvConfig.ADDR + '/icop-ma-web/wechat/jssdkConfig', url); options.wechat(); } } else { if (url.indexOf('code') !== -1 && url.indexOf('from=timeline') == -1) { var _js_Url2 = window.location.href; getJssdk(window.EnvConfig.ADDR + '/icop-ma-web/wechat/jssdkConfig', _js_Url2); var _showCode = urlParam.code; var getIdUrl = window.EnvConfig.ADDR + '/icop-ma-web/wechat/openid'; var _getCodeParams = { code: _showCode, appid: urlParam.appid }; _ajax2.default.getText(getIdUrl, _getCodeParams, function (data) { var idData = JSON.parse(data); if (idData.flag == 0) { sessionStorage.setItem('openid', idData.data.openid); console.log(idData.data.openid); options.wechat(); } else { _toast2.default.info('未获取到openid', 2); } }, function (data) { alert('失败请求', data); }); } else { if (url.indexOf('#') !== -1) { var _js_Url3 = window.location.href.split('#')[0]; getJssdk(window.EnvConfig.ADDR + '/icop-ma-web/wechat/jssdkConfig', _js_Url3); options.wechat(); } else { getJssdk(window.EnvConfig.ADDR + '/icop-ma-web/wechat/jssdkConfig', url); options.wechat(); } } } } } else if (url.indexOf('wechatwork') !== -1) { console.log('----------微信企业号---------'); sessionStorage.setItem('corpid', urlParam.corpid); var _js_Url4 = window.location.href.split('#')[0]; getworkJssdk(window.EnvConfig.ADDR + '/icop-ma-web/wechatWork/jssdkConfig', _js_Url4); var _successUrl = window.location.href; if (_successUrl.indexOf('code=') !== -1) { var _showCode2 = urlParam.code; console.log(_showCode2); var _getCodeUrl = window.EnvConfig.ADDR + '/icop-ma-web/wechatWork/info'; var _getCodeParams2 = { code: _showCode2, corpid: urlParam.corpid, agentid: urlParam.agentid }; if (sessionStorage.getItem('icop_context') !== null) { _success(); } else { _ajax2.default.getText(_getCodeUrl, _getCodeParams2, function (data) { var extData = JSON.parse(data); if (extData.flag == 1) { _toast2.default.info(extData.desc, 2); } else { if (extData.data && Object.keys(extData.data).length !== 0) { console.log(extData.data.ext.icop_context); sessionStorage.setItem('icop_context', JSON.stringify(extData.data.ext.icop_context)); _jsCookie2.default.set(that.CONTEXT_KEY, extData.data.ext.icop_context); _success(); } else { console.log('----未获取到上下文-----'); _toast2.default.info('未获取到上下文信息', 2000); } } }, function (data) { alert('失败请求', data); }); } } else { console.log('url中没有code'); if (sessionStorage.getItem('icop_context') !== null) { _success(); } else { console.log('url中没有code且缓存中没有人员信息'); } } } else { if (sessionStorage.getItem('openid') !== null) { var _js_Url5 = window.location.href.split('#')[0]; getJssdk(window.EnvConfig.ADDR + '/icop-ma-web/wechat/jssdkConfig', _js_Url5); var openid = sessionStorage.getItem('openid'); get_context(window.EnvConfig.ADDR + '/icop-ma-web/wechat/info', { openid: openid }, that, _success); } else { if (url.indexOf('code') !== -1) { console.log('-----微信公众号端-----'); console.log(urlParam.appid); var _js_Url6 = window.location.href.split('#')[0]; getJssdk(window.EnvConfig.ADDR + '/icop-ma-web/wechat/jssdkConfig', _js_Url6); var _showCode3 = urlParam.code; var _getIdUrl = window.EnvConfig.ADDR + '/icop-ma-web/wechat/openid'; var _getCodeParams3 = { code: _showCode3, appid: urlParam.appid }; _ajax2.default.getText(_getIdUrl, _getCodeParams3, function (data) { var idData = JSON.parse(data); if (idData.flag == 0) { var _openid = idData.data.openid; sessionStorage.setItem('openid', idData.data.openid); console.log(idData.data.openid); var _getCodeUrl2 = window.EnvConfig.ADDR + '/icop-ma-web/wechat/info'; var _getCodeParams4 = { openid: _openid }; get_context(_getCodeUrl2, _getCodeParams4, that, _success); } else { _toast2.default.info('未获取到openid', 2); } }, function (data) { alert('失败请求', data); }); } else { if (url.indexOf('openid') !== -1) { var _openid2 = urlParam.openid; sessionStorage.setItem('openid', _openid2); var _getCodeUrl3 = window.EnvConfig.ADDR + '/icop-ma-web/wechat/info'; var _getCodeParams5 = { openid: _openid2 }; get_context(_getCodeUrl3, _getCodeParams5, that, _success); } else { _success(); } } } } } else if (urlParam.cookie == 0) { console.log('-------------cookie-------------'); if (!nativeCookie) { var onDeviceReady = function onDeviceReady() { YYPlugin.call("ExpandPlugin", "getIcopContext", null, function (msg) { var icopContext = msg["icop_context"]; sessionStorage.setItem("icop_context", icopContext); if (typeof _success === 'function') { _success(); } }); }; document.addEventListener("deviceready", onDeviceReady, false); } else { if (typeof _success === 'function') { _success(); } } } else if (urlParam.fromType && urlParam.fromType === 'upEsnApp') { console.log('-------------友空间-------------'); var param = {}; param.token = urlParam.token; param.appid = urlParam.appid; loginContextPost(window.EnvConfig.ADDR + '/icop-ma-web/upesn/checkUpesnToken', param, _success); } else if (urlParam.token) { console.log('-------------token-------------'); var _param = {}; _param.token = urlParam.token; _param.appid = urlParam.appid; loginContextPost(window.EnvConfig.ADDR + '/icop-ma-web/ssoLogin/checkToken', _param, _success); } else { console.log('-------------开发态-------------'); if (_clear) { delete this._cacheContext; _jsCookie2.default.remove(this.CONTEXT_KEY); } var firstResp = false; _superagent2.default.get(_url).use(_superagentJsonp2.default).end(function (err, res) { _toast2.default.hide(); if (res !== null && res.body !== null && res.body !== undefined) { _jsCookie2.default.set(that.CONTEXT_KEY, res.body); if (typeof _success === 'function') { _success(); } } else { if (_clear) { delete this._cacheContext; _jsCookie2.default.remove(this.CONTEXT_KEY); } if (firstResp === false) { firstResp = true; } else { if (_clear) { delete this._cacheContext; _jsCookie2.default.remove(this.CONTEXT_KEY); } if (firstResp === false) { firstResp = true; } else { if (typeof _error === 'function') { _error(err); } } } } }); } }, getContext: function getContext() { var context = {}; if (sessionStorage.getItem(this.CONTEXT_KEY)) { context = sessionStorage.getItem(this.CONTEXT_KEY); } else if (!this._cacheContext) { context = _jsCookie2.default.get(this.CONTEXT_KEY); } if ((0, _util.isJsonStr)(context)) { var jsTxt = '(' + decodeURIComponent(context.replace(/'/, "'")) + ')'; var jsonObj = (0, _util.evil)(jsTxt); this._cacheContext = jsonObj; } return this._cacheContext; }, getToken: function getToken() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["token"]; }, getStaff: function getStaff() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return { id: context["staffId"], code: context["staffCode"], name: context["staffName"] }; }, getStaffId: function getStaffId() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["staffId"]; }, getStaffCode: function getStaffCode() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["staffCode"]; }, getStaffName: function getStaffName() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["staffName"]; }, getDept: function getDept() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return { id: context["deptId"], code: context["deptCode"], name: context["deptName"] }; }, getDeptId: function getDeptId() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["deptId"]; }, getDeptCode: function getDeptCode() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["deptCode"]; }, getDeptName: function getDeptName() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["deptName"]; }, getUser: function getUser() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return { id: context["_A_P_userId"], code: context["_A_P_userLoginName"], name: context["_A_P_userName"] }; }, getUserId: function getUserId() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["_A_P_userId"]; }, getUserCode: function getUserCode() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["_A_P_userLoginName"]; }, getUserName: function getUserName() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["_A_P_userName"]; }, getCurrentRoleId: function getCurrentRoleId() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["_A_P_currentRoleId"]; }, getOrga: function getOrga() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return { id: context["companyId"], code: context["companyCode"], name: context["companyName"] }; }, getOrgaId: function getOrgaId() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["companyId"]; }, getOrgaCode: function getOrgaCode() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["companyCode"]; }, getOrgaName: function getOrgaName() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["companyName"]; }, getLogints: function getLogints() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["u_logints"]; }, getTenantId: function getTenantId() { var context = this.getContext(); if (context === null || context === undefined) { return null; } return context["tenantid"]; }, getAuthenticationStr: function getAuthenticationStr() { var includeFields = ["u_logints", "u_usercode", "token", "tenantid", "userId", "userType", "typeAlias", "_A_P_userLoginName", "_A_P_userName", "userType", "companyId", "companyName", "companyCode"]; var set = new Set(); includeFields.forEach(function (value) { set.add(value); }); var authentication = ''; var context = this.getContext(); if (context) { for (var prop in context) { if (set.has(prop) && context[prop]) { authentication += prop + '=' + encodeURI(context[prop]) + ';'; } } } if (authentication.length > 0 && authentication[authentication.length - 1] === ';') authentication = authentication.substring(0, authentication.length - 1); return authentication; } }; exports.default = AuthToken;