ecology9-src4js-tools
Version:
src4js-tools
259 lines (253 loc) • 9.94 kB
JavaScript
(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;
var u = window.navigator.userAgent;
var isEM = (/.*E-Mobile7.*/.test(u) || /.*E-Mobile\/7.*/.test(u));
if (isEM) {
window.localAppUa = 'EM7';
window.localAppOrigin = 'http://10.10.10.40';
window.em.getItem({
key: 'localAppInfo',
success: function (result) {
console.log('------', result);
// try {
// var localAppInfoObj = JSON.parse(result.value);
// if (localAppInfoObj) {
// window.localAppOrigin = localAppInfoObj.origin;
// }
// } catch() {}
}
});
} else {
window.localAppUa = 'WeLink';
window.localAppOrigin = 'http://cloudstore.e-cology.cn';
}
// window.isLocalApp = true;
window.localAppIds = {};
window.debugwithvconsole = window.location.href.indexOf('debugwithvconsole=true') > 0;
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;
};
window.e9Hooks = {
rewriteUploadCallApi(option) {
if (window.localAppUa == 'EM7') {
// console.log('upload', option)
var formData = new FormData();
var fileName;
if (option.uploadParams) {
Object.keys(option.uploadParams).forEach((key) => {
formData.append(key, option.uploadParams[key]);
});
}
// console.log('upload1')
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);
}
// console.log('upload2')
var reader = new FileReader();
reader.onload = e => {
var dataURL = e.target.result;
// console && console.log('dataurl', dataURL)
return new Promise(function (resolve, reject) {
// console.log('upload3')
var l = function () {
// console && console.log(3333, window.localAppOrigin + option.uploadUrl)
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;
// console && console.log('success', res)
option.onSuccess(data, data);
resolve(data);
},
fail: function (res) {
var data = res.data;
// console && console.log('fail', res)
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();
}
var para = getFetchParams(method, params, includeCredentials, useJson);
return new Promise(function (resolve, reject) {
if (window.localAppUa !== 'EM7') {
var l = function () {
var hwh5url = window.localAppOrigin + _url;
console && console.log(111, hwh5url)
window.HWH5.fetchInternet(hwh5url, getFetchParams(method, params, includeCredentials, useJson)).then(function (t) {
return t.text().then(function (data) {
console && console.log(222, 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 () {
// console && console.log(window.localAppOrigin + _url)
if (_url.indexOf('/api/hrm/login/checkLogin') !== -1) {
params.islanguid = '7';
}
window.em.invoke('request', {
url: window.localAppOrigin + _url, //仅为示例,并非真实的接口地址
method: method.toUpperCase(),
data: params,
header: para.headers,
success: function (res) {
var data = res.data;
resolve(data);
}
});
}
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';
}
})()