UNPKG

ecology9-src4js-tools

Version:

src4js-tools

350 lines (341 loc) 12.8 kB
(function () { function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } window.isLocalApp = true; window.getLocalAppInfo = new Promise(function (rs) { window.em.getItem({ key: 'localAppInfo', success: function (result) { try { var localAppInfoObj = result.value; if (localAppInfoObj) { localAppInfoObj = localAppInfoObj.origin ? localAppInfoObj : JSON.parse(localAppInfoObj); window.localAppOrigin = localAppInfoObj.origin; rs(); } else { console.log('没有获取到Origin') rs(); } } catch (e) { rs(); } } }); }).then(function () { delete window.getLocalAppInfo; }); window.getEmAuthCode = new Promise(function (rs) { var params = getFrameParams(); if (params.emobile_ec_id) window.localStorage['emobile_ec_id'] = params.emobile_ec_id; if (window.em && window.em.checkJsApi("getEmAuthCode")) { window.em.getEmAuthCode({ sysId: params.emobile_ec_id || window.localStorage.emobile_ec_id, // 集成系统ID success: function (emres) { // 如:{"em_auth_code":"abc123","errMsg":"getEmAuthCode:ok"} if (emres.em_auth_code) { window.localStorage['em_auth_code'] = emres.em_auth_code; } else { alert('获取em_auth_code失败'); } rs(); }, error: function (error) { alert('获取em_auth_code失败: ' + JSON.stringify(error)); rs(); } }); } }).then(function () { delete window.getEmAuthCode; }); var u = window.navigator.userAgent; var isEM = (/.*E-Mobile7.*/.test(u) || /.*E-Mobile\/7.*/.test(u)); if (isEM) { window.localAppUa = 'EM7'; // window.em.getItem({ // key: 'localAppInfo', // success: function (result) { // try { // var localAppInfoObj = result.value; // if (localAppInfoObj) { // localAppInfoObj = localAppInfoObj.origin ? localAppInfoObj : JSON.parse(localAppInfoObj); // window.localAppOrigin = localAppInfoObj.origin; // } else { // console.log('没有获取到Origin') // } // } catch (e) { // } // } // }); } else { window.localAppUa = 'WeLink'; window.localAppOrigin = 'http://cloudstore.e-cology.cn'; } window.localAppIds = {}; window.debugwithvconsole = window.location.href.indexOf('debugwithvconsole=true') > 0; function getLocalAppInfo() { } function getFrameParams() { var urlStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var url = urlStr || window.location.href; var urlParams = url.slice(url.indexOf('?') + 1).split('&'); var params = []; urlParams.forEach(function (element) { var datas = element.split('='); params[datas[0]] = datas[1]; }); return params; }; function getFd(values) { var fd = ''; for (var p in values) { if (values.hasOwnProperty(p)) { var target = values[p]; target = target === void 0 ? '' : target; var item = encodeURIComponent(target); fd += p + '=' + item + '&'; } } return fd; }; function getFetchParams(method, params, includeCredentials, useJson) { var obj = { method: method, headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8', 'X-Requested-With': 'XMLHttpRequest' } }; if (window.localStorage.m_access_token) { obj.headers.__emobile7TokenName = window.localStorage.m_access_token; obj.headers.mobiletoken = window.localStorage.m_access_token; obj.headers['Emobile7-Token-Name'] = window.localStorage.m_access_token; } if (includeCredentials && (window.server === '' || window.server === undefined)) { obj.credentials = 'include'; } if (Object.keys(params).length > 0 && method.toUpperCase() !== 'GET') { obj.body = getFd(params); } if (useJson) { obj.headers['Content-Type'] = 'application/json; charset=utf-8'; obj.body = JSON.stringify(params); } return obj; }; function getRequestParams(method, params, includeCredentials, useJson) { var obj = {}; if (Object.keys(params).length > 0 && method.toUpperCase() !== 'GET') { Object.keys(params).forEach(item => { obj[item] = params[item].join ? params[item].join(',') : params[item] }) } else { obj = params; } // if (useJson) { // Object.keys(params).forEach(item=>{ // obj[item] = encodeURIComponent(params[item]); // }) // } return obj; }; window.getEcAddress = function (callback) { new Promise(function (resolve, reject) { if (!window.localAppOrigin) { window.em.getItem({ key: 'localAppInfo', success: function (result) { try { var localAppInfoObj = result.value; if (localAppInfoObj) { localAppInfoObj = localAppInfoObj.origin ? localAppInfoObj : JSON.parse(localAppInfoObj); window.localAppOrigin = localAppInfoObj.origin; } else { console.log('没有获取到Origin') } resolve(); } catch (e) { resolve(); } } }); } else { resolve(); } }).then(callback); } window.e9Hooks = { rewriteUploadCallApi(option) { if (window.localAppUa == 'EM7') { var formData = new FormData(); var fileName; if (option.uploadParams) { Object.keys(option.uploadParams).forEach((key) => { formData.append(key, option.uploadParams[key]); }); } if (option.blob) { formData.append('name', option.imgName || option.filename); fileName = option.imgName || option.filename; // 处理iphone6s ios低版本 外勤签到拍照上传问题 // formData.append(option.fileDataName || 'file', option.blob, option.imgName || option.filename); } else { formData.append('name', option.filename); fileName = option.filename; // formData.append(option.fileDataName || 'file', option.file); } var reader = new FileReader(); reader.onload = e => { var dataURL = e.target.result; return new Promise(function (resolve, reject) { var l = function () { var otherParams = {} u.indexOf('Android') > -1 || u.indexOf('Adr') > -1 ? otherParams = {} : otherParams = { fileData: dataURL }; window.em.invoke('uploadFile', { ...otherParams, url: window.localAppOrigin + option.uploadUrl, //仅为示例,并非真实的接口地址 method: 'POST', formData, fileName, // name: fileName, success: function (res) { var data = res.data; option.onSuccess(data, data); resolve(data); }, fail: function (res) { var data = res.data; option.onError(data); resolve(data); } }); } l(); }) }; reader.readAsDataURL(option.blob || option.file); } }, rewriteCallApi(options) { if (/\/api\/ec\/dev\/locale\/getLabelByModule/.test(options.url)) { return new Promise(function (resolve, reject) { resolve({ datas: [], language: 7, status: true }) }); } var ua = window.ua || {}; var _options$url = options.url, url = _options$url === undefined ? '' : _options$url, _options$method = options.method, method = _options$method === undefined ? 'GET' : _options$method, _options$params2 = options.params, params = _options$params2 === undefined ? {} : _options$params2, _options$type = options.type, type = _options$type === undefined ? 'json' : _options$type, _options$includeCrede = options.includeCredentials, includeCredentials = _options$includeCrede === undefined ? true : _options$includeCrede, _options$useJson = options.useJson, useJson = _options$useJson === undefined ? false : _options$useJson, _options$checkCode2 = options.checkCode, checkCode = _options$checkCode2 === undefined ? true : _options$checkCode2; var _url = url; var server = window.server || ''; params._ec_ismobile = "true"; params._ec_browser = ua.browser || ''; params._ec_browserVersion = ua.version || ''; params._ec_os = ua.os || ''; params._ec_osVersion = ua.osVersion || ''; params._ec_islocalapp = "true"; params.ismobile = 1; _url = '' + server + _url; if (/\?/.test(_url)) { var urlParams = getFrameParams(_url); _url = _url.slice(0, url.indexOf('?')); params = _extends({}, params, urlParams); } if (method.toUpperCase() === 'GET' && Object.keys(params).length > 0) { var c = '?'; if (/\?/.test(_url)) { c = '&'; } _url = '' + _url + c + getFd(params); } if (method.toUpperCase() === 'GET' && !/__random__/.test(_url)) { var _c = '?'; if (/\?/.test(_url)) { _c = '&'; } _url += _c + '__random__=' + new Date().getTime(); } return new Promise(function (resolve, reject) { if (window.localAppUa !== 'EM7') { var l = function () { var para = getFetchParams(method, params, includeCredentials, useJson); var hwh5url = window.localAppOrigin + _url; window.HWH5.fetchInternet(hwh5url, getFetchParams(method, params, includeCredentials, useJson)).then(function (t) { return t.text().then(function (data) { resolve(data); }) }).catch(function (e) { console.log("------ catch: \n", hwh5url, e); reject(e); }) }; window.HWH5.getStorage("ssoToken").then(function (e) { params.ssoToken = e || localStorage.getItem("ssoToken") || ""; params.stateless = 'y'; if (method.toUpperCase() === 'GET' && !/__random__/.test(_url)) { var _d = '?'; if (/\?/.test(_url)) { _d = '&'; } _url = '' + _url + _d + getFd(params); } l(); }).catch(function (e) { params.ssoToken = localStorage.getItem("ssoToken") || ""; params.stateless = 'y'; if (method.toUpperCase() === 'GET' && !/__random__/.test(_url)) { var _f = '?'; if (/\?/.test(_url)) { _f = '&'; } _url = '' + _url + _f + getFd(params); } l(); }) } else if (window.localAppUa == 'EM7') { var l = function () { var para = getFetchParams(method, params, includeCredentials, useJson); // if (_url.indexOf('/api/hrm/login/checkLogin') !== -1) { // params.islanguid = '7'; // } _url = _url.indexOf('http') === 0 || !window.localAppOrigin ? _url : window.localAppOrigin + _url; params = getRequestParams(method, params, includeCredentials, useJson); console.log('url:' + _url, window.localAppOrigin, params, useJson, para); window.em.invoke('request', { url: _url, //仅为示例,并非真实的接口地址 method: method.toUpperCase(), data: params, header: para.headers, success: function (res) { var data = res.data; resolve(data); } }); } if (!window.localAppOrigin && window.getLocalAppInfo) { // window.getEcAddress(() => l()); window.getLocalAppInfo.then(l) } else { l(); } } }) } } if (debugwithvconsole) { var script = document.createElement('script'); script.onload = function () { var vConsole = new window.VConsole() } document.body.appendChild(script); script.src = '../common/js/vconsole.min.js'; } })()