From 0519dcda8b6fb2914987f8d4d58e1d14bcf98dc3 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 30 六月 2023 14:33:06 +0800 Subject: [PATCH] 2023-06-30 --- src/index.js | 209 +++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 150 insertions(+), 59 deletions(-) diff --git a/src/index.js b/src/index.js index 7a16674..04c69e3 100644 --- a/src/index.js +++ b/src/index.js @@ -2,17 +2,16 @@ import ReactDOM from 'react-dom' import Route from './router' import { Provider } from 'react-redux' +import md5 from 'md5' import store from '@/store' import * as serviceWorker from './serviceWorker' import options, { styles } from '@/store/options.js' import '@/assets/css/main.scss' import '@/assets/css/action.scss' -import '@/assets/css/minkeicon.css' +// import '@/assets/css/minkeicon.css' import '@/assets/css/viewstyle.scss' -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) { // 缂栬緫椤甸潰鍒锋柊鏃讹紝璺宠浆鑷充富椤� +if (window.location.href.indexOf('#/design') > -1) { // 缂栬緫椤甸潰鍒锋柊鏃讹紝璺宠浆鑷充富椤� window.location.replace(window.location.href.replace(/design/ig, 'main')) } @@ -36,7 +35,7 @@ })()) } -const render = Component => { +const render = Component => { ReactDOM.render( <Provider store={store}> <Component/> @@ -45,17 +44,7 @@ ) } -if (sessionStorage.getItem('loginError')) { - try { - let res = JSON.parse(sessionStorage.getItem('loginError')) - console.info(res.request) - console.info(res.response) - } catch {} -} sessionStorage.removeItem('isEditState') -sessionStorage.removeItem('loginError') -sessionStorage.setItem('role_id', sessionStorage.getItem('localRole_id') || '') -sessionStorage.setItem('dataM', sessionStorage.getItem('localDataM') || '') // 鏂扮郴缁熸枃浠剁疆浜巃dmin涓� ../options.json , { cache: 'no-cache'} @@ -67,12 +56,31 @@ .then(config => { if (!config) return + if (config.defaultApp) { + 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].replace('admin/', '') + 'mob/index.html#/index') + return + } + } + let GLOB = {} GLOB.appId = config.appId || '' GLOB.lineColor = config.lineColor || '' GLOB.licenseKey = config.licenseKey || '' + GLOB.probation = false + GLOB.watermark = config.watermark + '' !== 'false' + GLOB.transfer = config.transfer + '' === 'true' + GLOB.keepKey = config.keepPassword + '' !== 'false' + GLOB.nginx = config.nginx + '' === 'true' + GLOB.WXAppID = config.WXAppID || '' + GLOB.WXminiAppID = config.WXminiAppID || '' + GLOB.WXNotice = config.WXNotice + '' === 'true' + GLOB.accessToken = {} + GLOB.mkHS = false - if (config.externalDatabase !== false && config.externalDatabase !== 'false' && config.externalDatabase !== undefined) { + if (sessionStorage.getItem('externalDatabase')) { + GLOB.externalDatabase = `[${sessionStorage.getItem('externalDatabase')}]..` + } else if (config.externalDatabase + '' !== 'false' && config.externalDatabase !== undefined) { GLOB.externalDatabase = config.externalDatabase ? `[${config.externalDatabase}]..` : '' } else { GLOB.externalDatabase = null @@ -81,35 +89,69 @@ // 鍙湁涓氬姟绯荤粺鎵嶅彲浠ヨ缃负姝e紡绯荤粺 if (options.sysType === 'local' && (config.systemType === 'official' || config.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 + } + + if (!config.mainSystemApi) { + document.getElementById('root').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh;">绯荤粺鏈缃崟鐐瑰湴鍧�锛岃鑱旂郴绠$悊鍛橈紒</div>' + return + } else if (/http(s?):\/\/sso.mk9h.cn\/cloud/ig.test(config.mainSystemApi)) { + document.getElementById('root').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh;">姝e紡绯荤粺涓嶅彲浣跨敤 http://sso.mk9h.cn/cloud 鍋氫负鍗曠偣鍦板潃锛岃鑱旂郴绠$悊鍛橈紒</div>' + return + } else if (/http(s?):\/\/cloud.mk9h.cn/ig.test(config.mainSystemApi)) { + document.getElementById('root').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh;">姝e紡绯荤粺涓嶅彲浣跨敤 http://cloud.mk9h.cn 鍋氫负鍗曠偣鍦板潃锛岃鑱旂郴绠$悊鍛橈紒</div>' + return + } + } else if (options.sysType === 'local') { + GLOB.probation = true + GLOB.systemType = '' + + // GLOB.mainSystemApi = 'https://cloud.positecgroup.com/webapi/dostars' + + GLOB.mainSystemApi = 'https://sso.mk9h.cn/cloud/webapi/dostars' + if (!/^https/.test(window.location.protocol)) { // https杞崲 + GLOB.mainSystemApi = 'http://sso.mk9h.cn/cloud/webapi/dostars' + } + + if (GLOB.watermark) { + GLOB.dataFormat = true + } } else { GLOB.systemType = '' + GLOB.mainSystemApi = '' + } + + GLOB.debugger = options.sysType === 'local' && GLOB.systemType !== 'production' + + if (/#\/hs$/.test(window.location.href)) { // hs涓嬩笉鎵撳嵃鑴氭湰 + GLOB.debugger = false + } + + if (options.sysType !== 'cloud') { + if (config.appkey === options.cakey) { + document.getElementById('root').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh;">涓嶅彲浣跨敤浜戠appkey锛岃鑱旂郴绠$悊鍛橈紒</div>' + return + } } if (options.sysType === 'cloud') { // cloud涓嶅彲璁剧疆鍗曠偣鏈嶅姟鍣ㄥ湴鍧�,浜戠appkey涓虹郴缁熻缃� GLOB.appkey = options.cakey - GLOB.mainSystemApi = '' + GLOB.WXNotice = false } else if (options.sysType === 'SSO') { // sso涓嶅彲璁剧疆鍗曠偣鏈嶅姟鍣ㄥ湴鍧� - GLOB.mainSystemApi = '' - if (config.appkey === options.cakey) { - GLOB.appkey = '' - console.warn('鍗曠偣绯荤粺appkey涓嶅彲涓庝簯绔浉鍚�') - } else { - GLOB.appkey = config.appkey - } + GLOB.appkey = config.appkey } else if (options.sysType === 'local') { // 涓氬姟绯荤粺 - if (config.appkey === options.cakey) { - GLOB.appkey = '' - console.warn('涓氬姟绯荤粺appkey涓嶅彲涓庝簯绔浉鍚�') - } else { - GLOB.appkey = config.appkey - } - if (config.mainSystemApi) { + GLOB.appkey = config.appkey + if (GLOB.systemType === 'production') { let systemApi = config.mainSystemApi - // 涓氬姟绯荤粺涓嶅厑璁歌繛鎺ヤ簯绔紝涓氬姟绯荤粺杩炴帴sso.mk9h.cn鏃讹紝鏁版嵁铏氬寲澶勭悊 - if (systemApi && systemApi.indexOf('cloud.mk9h.cn') > -1) { - systemApi = '' - } else if (systemApi && systemApi.indexOf('sso.mk9h.cn') > -1 && process.env.NODE_ENV === 'production') { - GLOB.dataFormat = true + 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 (/^https/.test(window.location.protocol) && /^http:/.test(systemApi) && !GLOB.transfer) { + systemApi = systemApi.replace(/^http:/, 'https:') } GLOB.mainSystemApi = systemApi @@ -118,11 +160,10 @@ let _href = window.location.href.split('#')[0] - if (localStorage.getItem(_href + 'lang')) { - sessionStorage.setItem('lang', localStorage.getItem(_href + 'lang')) - } - let _systemMsg = localStorage.getItem(_href + 'system') + + GLOB.navBar = 'shutter' // 榛樿涓虹櫨鍙剁獥 + let className = 'mk-blue-black' if (_systemMsg) { try { @@ -140,7 +181,8 @@ GLOB.webSite = _systemMsg.webSite GLOB.style = _systemMsg.style GLOB.showline = _systemMsg.showline || '' - GLOB.navBar = _systemMsg.navBar || '' + GLOB.navBar = _systemMsg.navBar || 'shutter' + GLOB.appVersion = _systemMsg.app_version || '' if (GLOB.favicon) { let link = document.querySelector("link[rel*='icon']") || document.createElement('link') @@ -150,34 +192,81 @@ document.getElementsByTagName('head')[0].appendChild(link) } if (GLOB.style && styles[GLOB.style]) { - document.body.className = styles[GLOB.style] + ' ' + (GLOB.showline === 'false' ? 'hidden-split-line' : '') + className = styles[GLOB.style] + ' ' + (GLOB.showline === 'false' ? 'hidden-split-line' : '') } - } catch { + } catch (e) { console.warn('Parse Failure') } } + // 涓嶄娇鐢ㄧ櫨鍙剁獥鎵撳紑鑿滃崟鏃讹紝鍘绘帀鍚堝苟鏍囪 + if (GLOB.navBar !== 'shutter') { + localStorage.removeItem('collapse') + } + + document.body.className = className + + if (/^https/.test(window.location.protocol)) { // https杞崲 + let meta = document.createElement('meta') + meta.content = 'upgrade-insecure-requests' + meta.httpEquiv = 'Content-Security-Policy' + document.getElementsByTagName('head')[0].appendChild(meta) + } + document.title = GLOB.platTitle || '' - if (config.filter === 'true') { - let html = document.getElementsByTagName('html')[0] - - if (html) { - html.style.filter = 'grayscale(100%)' - } + if (config.filter === 'true' || (/^20\d{2}-\d{2}-\d{2}$/.test(config.filter) && new Date(config.filter).getTime() + 86400000 >= new Date().getTime())) { + GLOB.filter = true } if (process.env.NODE_ENV === 'production') { // 鐢ㄤ簬鏍¢獙鏄惁瀛樺湪寮�鍙戞潈闄� - 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' - } + let _service = window.location.href.replace(/\/admin(.*)/ig, '').replace(new RegExp(document.location.origin + '/?', 'ig'), '') GLOB.service = _service ? _service + '/' : '' + GLOB.host = window.location.host + (_service ? '_' + _service : '') + GLOB.baseurl = document.location.origin + '/' + GLOB.service + GLOB.linkurl = GLOB.baseurl + 'index.html' } else { - GLOB.linkurl = '' GLOB.location = config.host GLOB.service = config.service + GLOB.host = config.host.replace(/http(s)?:\/\//ig, '') + (config.service ? '_' + config.service.replace(/\//ig, '') : '') + GLOB.baseurl = GLOB.location + '/' + GLOB.service + GLOB.linkurl = GLOB.baseurl + 'index.html' + } + + let mark = sessionStorage.getItem('system_mark') + let _mark = `sys_${GLOB.service.replace('/', '') || 'service'}` + if (mark && mark !== _mark) { + sessionStorage.clear() + } + sessionStorage.setItem('system_mark', _mark) + + 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 _level = 10 + let _Mlevel = sessionStorage.getItem('Member_Level') + + if (_Mlevel) { + if (_Mlevel === md5('mksoft' + GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 10)) { + _level = 10 + } else if (_Mlevel === md5('mksoft' + GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 20)) { + _level = 20 + } else if (_Mlevel === md5('mksoft' + GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 30)) { + _level = 30 + } + } + GLOB.memberLevel = _level + GLOB.mkThdMenus = [] // 涓夌骇鑿滃崟 + GLOB.mkActions = {} // 鎸夐挳鏉冮檺闆� + + if (sessionStorage.getItem('breakpoint')) { + window.debugger = true + GLOB.breakpoint = sessionStorage.getItem('breakpoint') + } else { + GLOB.breakpoint = false } Object.defineProperty(GLOB, 'appId', { @@ -192,6 +281,10 @@ writable: false, value: GLOB.systemType }) + Object.defineProperty(GLOB, 'debugger', { + writable: false, + value: GLOB.debugger + }) Object.defineProperty(GLOB, 'mainSystemApi', { writable: false, value: GLOB.mainSystemApi @@ -200,17 +293,15 @@ writable: false, value: GLOB.linkurl }) - Object.defineProperty(GLOB, 'dataFormat', { - writable: false, - value: GLOB.dataFormat - }) Object.defineProperty(window, 'GLOB', { writable: false, value: GLOB }) window.GLOB.CacheMap = new Map() // 缂撳瓨閰嶇疆淇℃伅 + window.GLOB.CacheVoucher = new Map() // 缂撳瓨鍑瘉淇℃伅 window.GLOB.UserCacheMap = new Map() // 缂撳瓨鐢ㄦ埛鑷畾涔夎缃� + window.GLOB.CacheData = new Map() // 瀛樺偍閫変腑鏁版嵁 render(Route) }) -- Gitblit v1.8.0