From 8d66ff34fae5b048a6b7923cc75d34f13a08be9d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 02 八月 2022 11:42:43 +0800 Subject: [PATCH] Merge branch 'develop' --- src/index.js | 178 +++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 112 insertions(+), 66 deletions(-) diff --git a/src/index.js b/src/index.js index c7e8665..215706f 100644 --- a/src/index.js +++ b/src/index.js @@ -2,6 +2,7 @@ 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' @@ -10,9 +11,7 @@ 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,89 +44,99 @@ ) } - -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') || '') -fetch(`./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 - + + 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.filter = config.filter || '' + GLOB.licenseKey = config.licenseKey || '' + GLOB.probation = false + GLOB.watermark = config.watermark !== false + GLOB.keepKey = config.keepPassword !== 'false' + GLOB.WXAppID = config.WXAppID || '' + GLOB.WXminiAppID = config.WXminiAppID || '' + GLOB.accessToken = {} + GLOB.mkHS = 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')) { 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 (GLOB.watermark) { + GLOB.dataFormat = true + } } else { GLOB.systemType = '' + GLOB.mainSystemApi = '' + } + + GLOB.debugger = options.sysType === 'local' && GLOB.systemType !== 'production' + + 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 = '' } 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 - - // 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 { - // systemApi = '' - // } - - // // 涓氬姟绯荤粺杩炴帴浜戠鏃讹紝鏍煎紡鍖栧鐞� - // 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]) { - // GLOB.dataFormat = true - // } - - // if (systemApi) { - // systemApi = systemApi + '/webapi/dostars' - // } - - // 涓氬姟绯荤粺涓嶅厑璁歌繛鎺ヤ簯绔紝涓氬姟绯荤粺杩炴帴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') } GLOB.mainSystemApi = systemApi @@ -154,7 +163,8 @@ GLOB.webSite = _systemMsg.webSite GLOB.style = _systemMsg.style GLOB.showline = _systemMsg.showline || '' - GLOB.navBar = _systemMsg.navBar || 'sidemenu' + GLOB.navBar = _systemMsg.navBar || '' + GLOB.appVersion = _systemMsg.app_version || '' if (GLOB.favicon) { let link = document.querySelector("link[rel*='icon']") || document.createElement('link') @@ -166,14 +176,21 @@ if (GLOB.style && styles[GLOB.style]) { document.body.className = styles[GLOB.style] + ' ' + (GLOB.showline === 'false' ? 'hidden-split-line' : '') } - } catch { + } catch (e) { console.warn('Parse Failure') } } + 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 (GLOB.filter === 'true') { + if (config.filter === 'true' || (/^20\d{2}-\d{2}-\d{2}$/.test(config.filter) && new Date(config.filter).getTime() + 86400000 >= new Date().getTime())) { let html = document.getElementsByTagName('html')[0] if (html) { @@ -182,17 +199,46 @@ } if (process.env.NODE_ENV === 'production') { // 鐢ㄤ簬鏍¢獙鏄惁瀛樺湪寮�鍙戞潈闄� - let _service = window.location.href.replace(/\/index.html(.*)|\/#(.*)/ig, '').replace(new RegExp(document.location.origin + '/?', 'ig'), '') + 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' } GLOB.service = _service ? _service + '/' : '' + GLOB.host = window.location.host + (_service ? '_' + _service : '') } else { GLOB.linkurl = '' - GLOB.location = 'http://qingqiumarket.cn' - GLOB.service = 'mkwms/' + GLOB.location = config.host + GLOB.service = config.service + GLOB.host = config.host.replace(/http(s)?:\/\//ig, '') + (config.service ? '_' + config.service.replace(/\//ig, '') : '') } + + 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 Object.defineProperty(GLOB, 'appId', { writable: false, @@ -206,6 +252,10 @@ writable: false, value: GLOB.systemType }) + Object.defineProperty(GLOB, 'debugger', { + writable: false, + value: GLOB.debugger + }) Object.defineProperty(GLOB, 'mainSystemApi', { writable: false, value: GLOB.mainSystemApi @@ -213,10 +263,6 @@ Object.defineProperty(GLOB, 'linkurl', { writable: false, value: GLOB.linkurl - }) - Object.defineProperty(GLOB, 'dataFormat', { - writable: false, - value: GLOB.dataFormat }) Object.defineProperty(window, 'GLOB', { writable: false, -- Gitblit v1.8.0