UNPKG

mtl-js-sdk

Version:

ynf-fw-mtl-api

117 lines (102 loc) 2.76 kB
import { v4 as uuid } from 'uuid'; function getQuery() { let res = {}; let serach = location.search; if (!serach) { serach = location.href.split("?").pop(); } let str = "" try { str = decodeURIComponent(serach); } catch (error) { str = unescape(serach) } str = str.trim().replace(/^[?#&]/, ""); if (!str) { return res; } str.split("&").forEach(strItem => { if (strItem) { let parts = strItem.split("="); let partKey = parts[0], partValue = parts[1] || ""; res[partKey] = partValue; } }); return res; } function getOrigin() { return location.origin; } function isObject(obj) { return Object.prototype.toString.call(obj) === "[object Object]"; } function getTime() { return new Date().getTime(); } function getDeviceId(code) { // let key = "deviceID-" + code; let key = 'MtlNccDevceid' let deviceId = localStorage.getItem(key); if (deviceId) { } else { deviceId = uuid(); // localStorage.setItem("deviceID-" + code, deviceId); localStorage.setItem(key, deviceId); } return deviceId; } function getLangCode() { const reg = /youZoneLanguage=(\S*)/; const userAgent = window.navigator.userAgent; const langCodeMapData = { zh: 'simpchn', tw: 'tradchn', en: 'english', }; const currentLangCode = userAgent.match(reg) && userAgent.match(reg)[1] || 'zh'; return langCodeMapData[currentLangCode]; } const USER_INFO_KEY = "ncc_userinfo"; function getSTORKEY(appcode) { return `${USER_INFO_KEY}_${appcode}`; } function setLoginInfo(appcode, info) { info.expiretime = getTime() + 2 * 60 * 60 * 1000; localStorage.setItem(getSTORKEY(appcode), JSON.stringify(info || null)); } function getLoginInfo(clear = false, appcode) { let loginInfo = localStorage.getItem(`${USER_INFO_KEY}_${appcode}`) || null; loginInfo = JSON.parse(loginInfo); if (clear && loginInfo) { let { expiretime, appcode: _appcode } = loginInfo; let nowTime = getTime(); if ((appcode && appcode !== _appcode) || nowTime > expiretime) { localStorage.removeItem(getSTORKEY(appcode)); loginInfo = null; } } if (typeof loginInfo !== 'object' || loginInfo === null) { return {} } else { return loginInfo } } const config = { failCode: "fail" }; function clearLoginStorage(appcode) { localStorage.removeItem(getSTORKEY(appcode)); } export default { getQuery, isObject, getOrigin, getTime, getLangCode, setLoginInfo, clearLoginStorage, getLoginInfo, getDeviceId, config };