UNPKG

yyzone

Version:

yyzone vue components and utils

90 lines (80 loc) 2.43 kB
import './diwork-sdk' import md5 from './md5' function getNavigatorLang() { const navigatorLang = { 'zh': 'zhs', 'zh-cn': 'zhs', 'zh-tw': 'zht', 'zh-hk': 'zht', 'zh-mo': 'zht', 'zh-chs': 'zht', 'zh-sg': 'zht', 'zh-cht': 'zht', 'default': 'en' } const lang = (navigator.language || navigator.userLanguage || 'zh').toLocaleLowerCase() return navigatorLang[lang] || navigatorLang.default } function getMobileLang() { const navigatorLang = getNavigatorLang() const mobileLang = { tw: 'zht', en: 'en', zh: 'zhs', default: navigatorLang || 'zhs' } const ua = navigator.userAgent const uaLanguage = ua.match(/youZoneLanguage=(\w*)/) return mobileLang[uaLanguage && uaLanguage[1] || 'default'] || mobileLang.default } function getWebLang({ callback }) { const navigatorLang = getNavigatorLang() const webLang = { 'zh_tw': 'zht', 'zh_cn': 'zhs', 'en': 'en', 'en_us': 'en', 'default': navigatorLang || 'zhs' } if (window.jDiwork && window.jDiwork.getContext) { return window.jDiwork.getContext(function (data) { const diworkLang = (data && data.locale || '').toLocaleLowerCase() return callback && callback(webLang[diworkLang || 'default'] || webLang['default']) }) } return callback && callback(navigatorLang) } function getColor(str) { const colors = [ '#E45D58', '#35C5AF', '#19CCE8', '#FFB319', '#7465C6', ] str = str || '' let char = md5(str).charAt(0).toLowerCase() return colors['abcdefghijklmnopqrstuvwxyz0123456789'.indexOf(char) % colors.length] } function getQuery(string, name) { if (typeof string != 'string') return null String.prototype.getQuery = function (name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)") var r = this.substr(this.indexOf("\?") + 1).match(reg) if (r != null) return unescape(r[2]) return null } return string.getQuery(name) } function getCookie(name) { const cookieArray = window.document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)")) return cookieArray != null ? unescape(cookieArray[2]) : null } export { getColor, getQuery, getCookie, getNavigatorLang, getMobileLang, getWebLang }