From 24bba05db141f358bf1a8bb7213a2432c9de355e Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 08 十月 2021 19:14:22 +0800 Subject: [PATCH] 2021-10-08 --- src/index.js | 202 ++++++++++++++++++++++++++++++-------------------- 1 files changed, 121 insertions(+), 81 deletions(-) diff --git a/src/index.js b/src/index.js index f9dd9e5..3f455ef 100644 --- a/src/index.js +++ b/src/index.js @@ -1,10 +1,10 @@ import React from 'react' import ReactDOM from 'react-dom' import Route from './router' -import {Provider} from 'react-redux' +import { Provider } from 'react-redux' import store from '@/store' import * as serviceWorker from './serviceWorker' -import options from '@/store/options.js' +import options, { styles } from '@/store/options.js' import '@/assets/css/main.scss' import '@/assets/css/action.scss' import '@/assets/css/minkeicon.css' @@ -12,6 +12,8 @@ if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) { window.location.replace(window.location.href.split(/(index.html)+/ig)[0] + 'mob/index.html') +} else if (window.location.href.indexOf('#/design') > -1) { // 缂栬緫椤甸潰鍒锋柊鏃讹紝璺宠浆鑷充富椤� + window.location.replace(window.location.href.replace(/design/ig, 'main')) } options.sysType = window.atob(options.sysType.replace('$mk', '')) @@ -43,103 +45,133 @@ ) } +if (sessionStorage.getItem('loginError')) { + try { + let res = JSON.parse(sessionStorage.getItem('loginError')) + console.info(res.request) + console.info(res.response) + } catch (e) {} +} sessionStorage.removeItem('isEditState') +sessionStorage.removeItem('loginError') +sessionStorage.setItem('role_id', sessionStorage.getItem('localRole_id') || '') +sessionStorage.setItem('dataM', sessionStorage.getItem('localDataM') || '') -fetch(`./${process.env.NODE_ENV === 'production' ? 'build/' : ''}options.json`) +// 鏂扮郴缁熸枃浠剁疆浜巃dmin涓� ../options.json , { cache: 'no-cache'} + +fetch('../options.json') .then(response => response.json()) .catch(() => { - console.warn('绯荤粺閰嶇疆淇℃伅鑾峰彇澶辫触锛岃鑱旂郴绠$悊鍛橈紒') + document.getElementById('root').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh;">绯荤粺閰嶇疆淇℃伅鑾峰彇澶辫触锛岃鑱旂郴绠$悊鍛橈紒</div>' }) .then(config => { if (!config) return - - window.GLOB = {} - window.GLOB.appId = config.appId || '' - window.GLOB.lineColor = config.lineColor || '' - window.GLOB.filter = config.filter || '' + + let GLOB = {} + GLOB.appId = config.appId || '' + GLOB.lineColor = config.lineColor || '' + GLOB.licenseKey = config.licenseKey || '' + GLOB.probation = false + + if (config.externalDatabase !== false && config.externalDatabase !== 'false' && config.externalDatabase !== undefined) { + GLOB.externalDatabase = config.externalDatabase ? `[${config.externalDatabase}]..` : '' + } else { + GLOB.externalDatabase = null + } // 鍙湁涓氬姟绯荤粺鎵嶅彲浠ヨ缃负姝e紡绯荤粺 if (options.sysType === 'local' && (config.systemType === 'official' || config.systemType === 'production')) { - window.GLOB.systemType = 'production' + GLOB.systemType = 'production' + if (config.probation && /^20\d{2}-\d{2}-\d{2}$/.test(config.probation) && new Date(config.probation).getTime() > new Date().getTime()) { + GLOB.probation = true + } } else { - window.GLOB.systemType = '' + GLOB.systemType = '' } if (options.sysType === 'cloud') { // cloud涓嶅彲璁剧疆鍗曠偣鏈嶅姟鍣ㄥ湴鍧�,浜戠appkey涓虹郴缁熻缃� - window.GLOB.appkey = options.cakey - window.GLOB.mainSystemApi = '' + GLOB.appkey = options.cakey + GLOB.mainSystemApi = '' } else if (options.sysType === 'SSO') { // sso涓嶅彲璁剧疆鍗曠偣鏈嶅姟鍣ㄥ湴鍧� - window.GLOB.mainSystemApi = '' + GLOB.mainSystemApi = '' if (config.appkey === options.cakey) { - window.GLOB.appkey = '' + GLOB.appkey = '' console.warn('鍗曠偣绯荤粺appkey涓嶅彲涓庝簯绔浉鍚�') } else { - window.GLOB.appkey = config.appkey + GLOB.appkey = config.appkey } } else if (options.sysType === 'local') { // 涓氬姟绯荤粺 if (config.appkey === options.cakey) { - window.GLOB.appkey = '' + GLOB.appkey = '' console.warn('涓氬姟绯荤粺appkey涓嶅彲涓庝簯绔浉鍚�') } else { - window.GLOB.appkey = config.appkey + GLOB.appkey = config.appkey } if (config.mainSystemApi) { let systemApi = config.mainSystemApi - - if (/^(http|https):\/\//ig.test(systemApi)) { - let _systemApi = /^(http|https):\/\/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62}|(:[0-9]{1,4}))+\.?/ig.exec(systemApi) - - systemApi = _systemApi ? _systemApi[0] : '' - } else { + // 涓氬姟绯荤粺涓嶅厑璁歌繛鎺ヤ簯绔紝涓氬姟绯荤粺杩炴帴sso.mk9h.cn鏃讹紝鏁版嵁铏氬寲澶勭悊 + if (systemApi.indexOf('cloud.mk9h.cn') > -1) { systemApi = '' + } else if (/index.html/ig.test(systemApi)) { + systemApi = systemApi.replace(/index.html.*/ig, 'webapi/dostars') + } else if (!/webapi\/dostars$/ig.test(systemApi)) { + systemApi = systemApi.replace(/\/?$/, '/webapi/dostars') + } + + if (systemApi.indexOf('sso.mk9h.cn') > -1 && process.env.NODE_ENV === 'production') { + GLOB.dataFormat = true } - // 涓氬姟绯荤粺杩炴帴浜戠鏃讹紝鏍煎紡鍖栧鐞� - if (systemApi && systemApi === /^(http|https):\/\/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62}|(:[0-9]{1,4}))+\.?/ig.exec(options.cloudServiceApi)[0]) { - window.GLOB.dataFormat = true - } - - if (systemApi) { - systemApi = systemApi + '/webapi/dostars' - } - - window.GLOB.mainSystemApi = systemApi + GLOB.mainSystemApi = systemApi } } - let _systemMsg = localStorage.getItem(window.location.href.split('#')[0] + 'system') + let _href = window.location.href.split('#')[0] + + if (localStorage.getItem(_href + 'lang')) { + sessionStorage.setItem('lang', localStorage.getItem(_href + 'lang')) + } else { + sessionStorage.setItem('lang', config.defaultLang !== 'en-US' ? 'zh-CN' : 'en-US') + } + + let _systemMsg = localStorage.getItem(_href + 'system') if (_systemMsg) { try { _systemMsg = JSON.parse(window.decodeURIComponent(window.atob(_systemMsg))) - window.GLOB.platTitle = _systemMsg.platTitle - window.GLOB.platName = _systemMsg.platName - window.GLOB.favicon = _systemMsg.favicon - window.GLOB.loginlogo = _systemMsg.loginlogo - window.GLOB.copyRight = _systemMsg.copyRight - window.GLOB.ICP = _systemMsg.ICP - window.GLOB.bgImage = _systemMsg.bgImage - window.GLOB.mainlogo = _systemMsg.mainlogo - window.GLOB.doclogo = _systemMsg.doclogo - window.GLOB.webSite = _systemMsg.webSite - window.GLOB.style = _systemMsg.style + GLOB.platTitle = _systemMsg.platTitle + GLOB.platName = _systemMsg.platName + GLOB.favicon = _systemMsg.favicon + GLOB.loginlogo = _systemMsg.loginlogo + GLOB.copyRight = _systemMsg.copyRight + GLOB.ICP = _systemMsg.ICP + GLOB.bgImage = _systemMsg.bgImage + GLOB.mainlogo = _systemMsg.mainlogo + GLOB.doclogo = _systemMsg.doclogo + GLOB.webSite = _systemMsg.webSite + GLOB.style = _systemMsg.style + GLOB.showline = _systemMsg.showline || '' + GLOB.navBar = _systemMsg.navBar || '' - if (window.GLOB.favicon) { + if (GLOB.favicon) { let link = document.querySelector("link[rel*='icon']") || document.createElement('link') link.type = 'image/x-icon' link.rel = 'shortcut icon' - link.href = window.GLOB.favicon + link.href = GLOB.favicon document.getElementsByTagName('head')[0].appendChild(link) } - } catch { + if (GLOB.style && styles[GLOB.style]) { + document.body.className = styles[GLOB.style] + ' ' + (GLOB.showline === 'false' ? 'hidden-split-line' : '') + } + } catch (e) { console.warn('Parse Failure') } } - document.title = window.GLOB.platTitle || '' + document.title = GLOB.platTitle || '' - if (window.GLOB.filter === 'true') { + if (config.filter === 'true') { let html = document.getElementsByTagName('html')[0] if (html) { @@ -148,41 +180,49 @@ } if (process.env.NODE_ENV === 'production') { // 鐢ㄤ簬鏍¢獙鏄惁瀛樺湪寮�鍙戞潈闄� - let _service = window.location.href.replace(/\/index.html(.*)|\/#(.*)/ig, '').replace(new RegExp(document.location.origin + '/?', 'ig'), '') - window.GLOB.linkurl = window.location.href.split('#')[0] - if (!/index.html/ig.test(window.GLOB.linkurl)) { - window.GLOB.linkurl = window.GLOB.linkurl + 'index.html' + let _service = window.location.href.replace(/(\/admin)?\/index.html(.*)|(\/admin)?\/#(.*)/ig, '').replace(new RegExp(document.location.origin + '/?', 'ig'), '') + GLOB.linkurl = _href + if (!/index.html/ig.test(GLOB.linkurl)) { + GLOB.linkurl = GLOB.linkurl + 'index.html' } - window.GLOB.service = _service ? _service + '/' : '' + GLOB.service = _service ? _service + '/' : '' } else { - window.GLOB.linkurl = '' - window.GLOB.location = 'http://qingqiumarket.cn/' - window.GLOB.service = 'mkwms/' + GLOB.linkurl = '' + GLOB.location = config.host + GLOB.service = config.service } - const option = { - white: 'mk-white' - } + Object.defineProperty(GLOB, 'appId', { + writable: false, + value: GLOB.appId + }) + Object.defineProperty(GLOB, 'appkey', { + writable: false, + value: GLOB.appkey + }) + Object.defineProperty(GLOB, 'systemType', { + writable: false, + value: GLOB.systemType + }) + Object.defineProperty(GLOB, 'mainSystemApi', { + writable: false, + value: GLOB.mainSystemApi + }) + Object.defineProperty(GLOB, 'linkurl', { + writable: false, + value: GLOB.linkurl + }) + Object.defineProperty(GLOB, 'dataFormat', { + writable: false, + value: GLOB.dataFormat + }) + Object.defineProperty(window, 'GLOB', { + writable: false, + value: GLOB + }) - if (window.GLOB.style && option[window.GLOB.style]) { - document.getElementById('root').className = option[window.GLOB.style] - } - - let mkDBUseable = false - if (process.env.NODE_ENV === 'production') { // 鏄惁浣跨敤web瀛樺偍 - mkDBUseable = options.sysType !== 'local' || window.GLOB.systemType === 'production' - } else { - mkDBUseable = true - } - - if (config.webStorage && mkDBUseable) { - let stor = config.webStorage.toLowerCase() - if (stor.indexOf('websql') > -1) { - window.GLOB.webSqlUsable = true - } else if (stor.indexOf('indexeddb') > -1) { - window.GLOB.IndexedDBUsable = true - } - } + window.GLOB.CacheMap = new Map() // 缂撳瓨閰嶇疆淇℃伅 + window.GLOB.UserCacheMap = new Map() // 缂撳瓨鐢ㄦ埛鑷畾涔夎缃� render(Route) }) -- Gitblit v1.8.0