From 9cf5fc474d2159aad973e3208fbef670f325307f Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 25 十一月 2020 17:57:41 +0800 Subject: [PATCH] 2020-11-25 --- src/index.js | 206 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 204 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index e6799be..4ca1c39 100644 --- a/src/index.js +++ b/src/index.js @@ -1,11 +1,38 @@ 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 '@/assets/css/main.scss' import '@/assets/css/action.scss' +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') +} + +options.sysType = window.atob(options.sysType.replace('$mk', '')) +options.caId = window.atob(options.caId.replace('$mk', '')) +options.cakey = window.atob(options.cakey.replace('$mk', '')) +options.cdomain = window.atob(options.cdomain.replace('$mk', '')) + +if (options.cdomain && options.sysType !== 'cloud') { + options.cloudServiceApi = options.cdomain + '/webapi/dostars' +} + +if (!localStorage.getItem('SessionUid')) { + localStorage.setItem('SessionUid', (() => { + let uuid = [] + let _options = '0123456789abcdefghigklmnopqrstuv' + for (let i = 0; i < 32; i++) { + uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1)) + } + return uuid.join('') + })()) +} const render = Component => { ReactDOM.render( @@ -16,6 +43,181 @@ ) } -render(Route) + +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') + +fetch(`./options.json`) + .then(response => response.json()) + .catch(() => { + console.warn('绯荤粺閰嶇疆淇℃伅鑾峰彇澶辫触锛岃鑱旂郴绠$悊鍛橈紒') + }) + .then(config => { + if (!config) return + + let GLOB = {} + GLOB.appId = config.appId || '' + GLOB.lineColor = config.lineColor || '' + GLOB.filter = config.filter || '' + + if (config.externalDatabase !== false && config.externalDatabase !== 'false' && config.externalDatabase !== undefined) { + GLOB.externalDatabase = config.externalDatabase || '' + } else { + GLOB.externalDatabase = null + } + + // 鍙湁涓氬姟绯荤粺鎵嶅彲浠ヨ缃负姝e紡绯荤粺 + if (options.sysType === 'local' && (config.systemType === 'official' || config.systemType === 'production')) { + GLOB.systemType = 'production' + } else { + GLOB.systemType = '' + } + + 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 + } + } else if (options.sysType === 'local') { // 涓氬姟绯荤粺 + if (config.appkey === options.cakey) { + GLOB.appkey = '' + console.warn('涓氬姟绯荤粺appkey涓嶅彲涓庝簯绔浉鍚�') + } else { + 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 { + // 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 + } + + GLOB.mainSystemApi = systemApi + } + } + + let _href = window.location.href.split('#')[0] + + let _systemMsg = localStorage.getItem(_href + 'system') + + if (_systemMsg) { + try { + _systemMsg = JSON.parse(window.decodeURIComponent(window.atob(_systemMsg))) + + 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 + + if (GLOB.favicon) { + let link = document.querySelector("link[rel*='icon']") || document.createElement('link') + link.type = 'image/x-icon' + link.rel = 'shortcut icon' + link.href = GLOB.favicon + document.getElementsByTagName('head')[0].appendChild(link) + } + } catch { + console.warn('Parse Failure') + } + } + + document.title = GLOB.platTitle || '' + + if (GLOB.filter === 'true') { + let html = document.getElementsByTagName('html')[0] + + if (html) { + html.style.filter = 'grayscale(100%)' + } + } + + if (process.env.NODE_ENV === 'production') { // 鐢ㄤ簬鏍¢獙鏄惁瀛樺湪寮�鍙戞潈闄� + let _service = window.location.href.replace(/\/index.html(.*)|\/#(.*)/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 + '/' : '' + } else { + GLOB.linkurl = '' + GLOB.location = 'http://qingqiumarket.cn/' + GLOB.service = 'mkwms/' + } + + if (GLOB.style && options.styles[GLOB.style]) { + document.getElementById('root').className = options.styles[GLOB.style] + } + + 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 + }) + + render(Route) + }) serviceWorker.unregister() -- Gitblit v1.8.0