Commit 6dd63ddf authored by 邹绪超's avatar 邹绪超

chore: merge master分支

parents 2615ead3 de3bb6eb
variables: variables:
TARGET_REPO: "F:/CIV_CI/CivWebPublish2021_CIVWeb5/CivWebPublish2021/" TARGET_REPO: "G:/CIV_CI/CivWebPublish2021_CIVWeb5/CivWebPublish2021/"
GIT_STRATEGY: 'fetch'
GIT_CHECKOUT: 'false'
before_script: before_script:
- chcp 65001 - chcp 65001
- 'git config core.autocrlf false' - 'git config core.autocrlf false'
...@@ -12,12 +13,15 @@ stages: ...@@ -12,12 +13,15 @@ stages:
install: install:
stage: install stage: install
tags:
- civ_base
script: script:
- git pull origin master
- npm run init - npm run init
cache: #cache:
key: ${CI_COMMIT_REF_SLUG} # key: ${CI_COMMIT_REF_SLUG}
paths: # paths:
- node_modules/ # - node_modules/
only: only:
refs: refs:
- master - master
...@@ -27,13 +31,17 @@ install: ...@@ -27,13 +31,17 @@ install:
package: package:
stage: package stage: package
tags:
- civ_base
script: script:
- echo "${CI_PROJECT_DIR}" - echo "${CI_PROJECT_DIR}"
- git pull origin master
#- npm run init
- npm run build --releasepath=../CivWebPublish2021 - npm run build --releasepath=../CivWebPublish2021
cache: #cache:
key: ${CI_COMMIT_REF_SLUG} # key: ${CI_COMMIT_REF_SLUG}
paths: # paths:
- node_modules/ # - node_modules/
only: only:
- master - master
when: manual when: manual
...@@ -43,6 +51,8 @@ push: ...@@ -43,6 +51,8 @@ push:
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: none
stage: push stage: push
tags:
- civ_base
script: script:
- 'cd "${TARGET_REPO}"' - 'cd "${TARGET_REPO}"'
- 'git reset --hard head' - 'git reset --hard head'
...@@ -51,7 +61,7 @@ push: ...@@ -51,7 +61,7 @@ push:
- 'git pull origin map' - 'git pull origin map'
- 'git rm -rf "${TARGET_REPO}/civbase"' - 'git rm -rf "${TARGET_REPO}/civbase"'
- 'git commit -m "chore: clear folder"' - 'git commit -m "chore: clear folder"'
- 'git push origin map' #- 'git push origin map'
- 'robocopy "${CI_PROJECT_DIR}/../CivWebPublish2021/civbase" "${TARGET_REPO}/civbase" /S ; - 'robocopy "${CI_PROJECT_DIR}/../CivWebPublish2021/civbase" "${TARGET_REPO}/civbase" /S ;
IF ((${LASTEXITCODE} -le 8)) {cmd /c "exit /b 0"}' IF ((${LASTEXITCODE} -le 8)) {cmd /c "exit /b 0"}'
- 'git add . ; git reset HEAD Web.config CityInterface/Web.config CityWebFW/Web.config ; git commit -m "auto package civbase."' - 'git add . ; git reset HEAD Web.config CityInterface/Web.config CityWebFW/Web.config ; git commit -m "auto package civbase."'
......
const { join } = require('path');
const proxy = require('./proxy');
const slash = require('slash2'); const slash = require('slash2');
const proxy = require('./proxy');
const defaultSetting = require('./defaultSetting'); const defaultSetting = require('./defaultSetting');
function resolve (dir) {
return join(__dirname, '../', dir)
}
const { REACT_APP_ENV } = process.env; const { REACT_APP_ENV } = process.env;
const cesiumBuild = "../node_modules/cesium/Build/Cesium" const cesiumBuild = "../node_modules/cesium/Build/Cesium"
const pkgName = require('../package.json').name; const pkgName = require('../package.json').name;
const path = require('path'); const path = require('path');
const CESIUM_BASE_URL = `/${pkgName}` const CESIUM_BASE_URL = `/${pkgName}`
module.exports = { module.exports = {
// mfsu: {},
webpack5: {},
base: '/civbase', base: '/civbase',
title: '熊猫智慧城市监控管理解决方案', title: '熊猫智慧城市监控管理解决方案',
hash: true, hash: true,
layout: { layout: {
siderWidth: '145px', siderWidth: '145px',
locale: true, locale: true,
...defaultSetting ...defaultSetting,
}, },
fastRefresh: true, fastRefresh: true,
useHash: true,
locale: { locale: {
default: 'zh-CN', default: 'zh-CN',
antd: true, antd: true,
...@@ -33,8 +32,12 @@ module.exports = { ...@@ -33,8 +32,12 @@ module.exports = {
// }, // },
ignoreMomentLocale: true, ignoreMomentLocale: true,
nodeModulesTransform: { nodeModulesTransform: {
type: 'all', type: 'none',
exclude: ['@wisdom-map/arcgismap', '@wisdom-map/arcgismap/lib/arcgisapi'], exclude: [
'@wisdom-map/arcgismap',
'@wisdom-map/arcgismap/lib/arcgisapi',
'swagger-ui-react',
],
}, },
proxy: proxy[REACT_APP_ENV || 'dev'], proxy: proxy[REACT_APP_ENV || 'dev'],
// openAPI: { // openAPI: {
...@@ -77,9 +80,9 @@ module.exports = { ...@@ -77,9 +80,9 @@ module.exports = {
modifyVars: { modifyVars: {
// hack: `true; @import "~@/global.less";`, // hack: `true; @import "~@/global.less";`,
'@ant-prefix': 'panda-console-base', '@ant-prefix': 'panda-console-base',
'@iconPrefixCls': 'panda-console-base-icon' '@iconPrefixCls': 'panda-console-base-icon',
}, },
javascriptEnabled: true javascriptEnabled: true,
}, },
copy : [{ copy : [{
from : path.join(pkgName , cesiumBuild, './Workers'), from : path.join(pkgName , cesiumBuild, './Workers'),
...@@ -100,6 +103,7 @@ module.exports = { ...@@ -100,6 +103,7 @@ module.exports = {
}, },
alias: { alias: {
cesium : path.resolve(__dirname, cesiumBuild) cesium : path.resolve(__dirname, cesiumBuild)
} },
workerLoader: {},
// esbuild: {} // esbuild: {}
}; };
...@@ -4,23 +4,38 @@ export function genActiveRule(routerPrefix) { ...@@ -4,23 +4,38 @@ export function genActiveRule(routerPrefix) {
export default { export default {
dev: [ dev: [
// { // {
// name: 'civ_monitor', // name: 'civ_energy',
// entry: `//${window.location.hostname}:8082/civ_monitor`, // entry: `//${window.location.hostname}:8081/civ_energy`,
// container: '#micro-container', // container: '#micro-container',
// activeRule: '/civbase/civ_monitor', // activeRule: '/civbase/civ_energy',
// },
// {
// name: 'civ_water',
// entry: `//${window.location.hostname}:8081/civ_water`,
// container: '#micro-container',
// activeRule: '/civbase/civ_water',
// }, // },
{ {
name: 'civ_water', name: 'civ_pandawork',
entry: `//${window.location.hostname}:8082/civ_water`, entry: `//${window.location.hostname}:8081/civ_pandawork`,
container: '#micro-container', container: '#micro-container',
activeRule: '/civbase/civ_water', activeRule: '/civbase/civ_pandawork',
}, },
{ {
name: 'civ_webgis', name: 'report',
entry: `//${window.location.hostname}:8080/civ_webgis`, entry: `//127.0.0.1:8345/report/workplatform`,
container: '#micro-container', container: '#micro-container',
activeRule: '/civbase/civ_webgis', activeRule: '/civbase/report',
props: {
origin: `//127.0.0.1:8345`
}
}, },
// {
// name: 'civ_webgis',
// entry: `//${window.location.hostname}:8080/civ_webgis`,
// container: '#micro-container',
// activeRule: '/civbase/civ_energy',
// },
{ {
name: 'civweb4', name: 'civweb4',
entry: `//${window.location.hostname}:3020/civweb4`, entry: `//${window.location.hostname}:3020/civweb4`,
...@@ -29,7 +44,7 @@ export default { ...@@ -29,7 +44,7 @@ export default {
}, },
{ {
name: 'middleground', name: 'middleground',
entry: `//${window.location.hostname}:8081/middleground`, entry: `//${window.location.hostname}:8082/middleground`,
container: '#micro-container', container: '#micro-container',
activeRule: '/civbase/middleground', activeRule: '/civbase/middleground',
}, },
......
/* eslint-disable */ /* eslint-disable */
// const proxyURL = process.env.NODE_ENV !== 'production' ? 'http://192.168.10.150:8777' : window.location.origin; // const proxyURL = process.env.NODE_ENV !== 'production' ? 'http://192.168.10.150:8777' : window.location.origin;
const proxyURL = 'http://192.168.12.47:8081' const proxyURL = 'https://work.panda-water.cn';
//'http://61.150.107.92:8200';
module.exports = { module.exports = {
assetsRoot: process.env.NODE_ENV !== 'production' ? proxyURL : './', assetsRoot: process.env.NODE_ENV !== 'production' ? proxyURL : './',
dev: { dev: {
...@@ -79,6 +79,26 @@ module.exports = { ...@@ -79,6 +79,26 @@ module.exports = {
pathRewrite: { pathRewrite: {
'/PandaCore': '/PandaCore', '/PandaCore': '/PandaCore',
}, },
},
'/PandaInformatization': {
target: proxyURL,
changeOrigin: true,
headers: {
'Access-Control-Allow-Origin': '*',
},
pathRewrite: {
'/PandaInformatization': '/PandaInformatization',
},
},
'/PandaWorkFlow': {
target: proxyURL,
changeOrigin: true,
headers: {
'Access-Control-Allow-Origin': '*',
},
pathRewrite: {
'/PandaWorkFlow': '/PandaWorkFlow',
},
}, },
'/CityTemp': { '/CityTemp': {
// target: 'http://192.168.10.150:8777', // target: 'http://192.168.10.150:8777',
......
...@@ -23,7 +23,8 @@ module.exports = opts => { ...@@ -23,7 +23,8 @@ module.exports = opts => {
'@babel/preset-env', '@babel/preset-env',
{ {
...mergeConfig(defaultEnvConfig,{}), ...mergeConfig(defaultEnvConfig,{}),
modules: false modules: false,
...opts.env
}, },
], ],
// opts.react && ['@babel/preset-react'], // opts.react && ['@babel/preset-react'],
...@@ -56,17 +57,17 @@ module.exports = opts => { ...@@ -56,17 +57,17 @@ module.exports = opts => {
'@babel/plugin-proposal-logical-assignment-operators', '@babel/plugin-proposal-logical-assignment-operators',
'@babel/plugin-syntax-dynamic-import', '@babel/plugin-syntax-dynamic-import',
'@babel/plugin-transform-react-jsx', '@babel/plugin-transform-react-jsx',
// opts.transformRuntime && [ opts.transformRuntime && [
// '@babel/plugin-transform-runtime', '@babel/plugin-transform-runtime',
// { {
// version: require('@babel/runtime/package.json').version, version: require('@babel/runtime/package.json').version,
// absoluteRuntime: dirname( absoluteRuntime: dirname(
// require.resolve('@babel/runtime/package.json'), require.resolve('@babel/runtime/package.json'),
// ), ),
// useESModules: true, useESModules: true,
// ...toObject(opts.transformRuntime), ...toObject(opts.transformRuntime),
// }, },
// ], ],
[ [
'babel-plugin-transform-react-remove-prop-types', 'babel-plugin-transform-react-remove-prop-types',
{ {
......
...@@ -24,16 +24,19 @@ rm( ...@@ -24,16 +24,19 @@ rm(
// eslint-disable-next-line no-shadow // eslint-disable-next-line no-shadow
webpack(webpackConfig, function (err, stats) { webpack(webpackConfig, function (err, stats) {
spinner.stop() spinner.stop()
if (err) throw err if (err) {
// process.stdout.write(`${stats.toString({ console.log(err)
// colors: true, throw err
// color: true, }
// progress: true, process.stdout.write(`${stats.toString({
// modules: false, colors: true,
// children: false, color: true,
// chunks: true, progress: true,
// chunkModules: true modules: false,
// }) }\n\n`) children: false,
chunks: true,
chunkModules: true
}) }\n\n`)
printFileSizes(stats, path.relative(process.cwd(), webpackConfig.output.path)); printFileSizes(stats, path.relative(process.cwd(), webpackConfig.output.path));
if (stats.hasErrors()) { if (stats.hasErrors()) {
......
...@@ -13,9 +13,6 @@ class DevCompileDonePlugin { ...@@ -13,9 +13,6 @@ class DevCompileDonePlugin {
if (process.env.SYSTEM_BELL !== 'none') { if (process.env.SYSTEM_BELL !== 'none') {
process.stdout.write('\x07'); process.stdout.write('\x07');
} }
this.opts.onCompileFail && this.opts.onCompileFail({
stats,
});
return; return;
} }
...@@ -34,7 +31,6 @@ class DevCompileDonePlugin { ...@@ -34,7 +31,6 @@ class DevCompileDonePlugin {
copied = chalk.red(`(copy to clipboard failed)`); copied = chalk.red(`(copy to clipboard failed)`);
} }
console.log();
console.log( console.log(
[ [
` App running at:`, ` App running at:`,
...@@ -44,14 +40,18 @@ class DevCompileDonePlugin { ...@@ -44,14 +40,18 @@ class DevCompileDonePlugin {
.filter(Boolean) .filter(Boolean)
.join('\n'), .join('\n'),
); );
process.send &&
process.send({
type: 'DONE',
});
isFirstCompile = false;
} }
// this.opts.onCompileDone && this.opts.onCompileDone({
this.opts.onCompileDone && this.opts.onCompileDone({ // isFirstCompile,
isFirstCompile, // stats,
stats, // });
}); if (isFirstCompile) {
if(isFirstCompile) {
isFirstCompile = false; isFirstCompile = false;
// process.send({ // process.send({
// type: 'DONE' // type: 'DONE'
......
const { deepmerge, createDebug, winPath, resolve } = require('@umijs/utils'); const { deepmerge, createDebug, winPath, resolve } = require('@umijs/utils');
// const { ESBuildPlugin, ESBuildMinifyPlugin } = require('esbuild-loader'); // const { ESBuildPlugin, ESBuildMinifyPlugin } = require('esbuild-loader');
const terserOptions = require('./terserOptions');
const fs = require('fs'); const fs = require('fs');
const terserOptions = require('./terserOptions');
const path = require('path'); const path = require('path');
const webpack = require('webpack'); const webpack = require('webpack');
const { css, createCSSRule } = require('./css'); const { css, createCSSRule } = require('./css');
...@@ -57,6 +57,7 @@ const defaultConfig = { ...@@ -57,6 +57,7 @@ const defaultConfig = {
type: 'all', type: 'all',
exclude: [], exclude: [],
}, },
hash: true,
targets: { targets: {
node: true, node: true,
chrome: 49, chrome: 49,
...@@ -65,13 +66,13 @@ const defaultConfig = { ...@@ -65,13 +66,13 @@ const defaultConfig = {
edge: 13, edge: 13,
ios: 10, ios: 10,
ie: 11, ie: 11,
} },
}; };
module.exports = options => { module.exports = options => {
const chainConfig = new Config(); const chainConfig = new Config();
chainConfig.mode(options.mode); chainConfig.mode(options.mode);
defineConfig = Object.assign(defineConfig, defaultConfig); defineConfig = Object.assign(defineConfig, defaultConfig);
const env = process.env; const {env} = process;
const isDev = process.env.NODE_ENV === 'development'; const isDev = process.env.NODE_ENV === 'development';
const isProd = process.env.NODE_ENV === 'production'; const isProd = process.env.NODE_ENV === 'production';
const disableCompress = process.env.COMPRESS === 'none'; const disableCompress = process.env.COMPRESS === 'none';
...@@ -86,7 +87,7 @@ module.exports = options => { ...@@ -86,7 +87,7 @@ module.exports = options => {
: devtool || 'cheap-module-source-map' : devtool || 'cheap-module-source-map'
: devtool, : devtool,
); );
const mfsu = defineConfig.mfsu; const {mfsu} = defineConfig;
const useHash = defineConfig.hash && isProd; const useHash = defineConfig.hash && isProd;
const absOutputPath = process.env.npm_config_releasepath const absOutputPath = process.env.npm_config_releasepath
...@@ -99,19 +100,46 @@ module.exports = options => { ...@@ -99,19 +100,46 @@ module.exports = options => {
chainConfig.output chainConfig.output
.path(absOutputPath) .path(absOutputPath)
.filename(useHash ? `[name].[contenthash:8].js` : `[name].js`) .filename(useHash ? `[name].[contenthash:8].js` : `[name].js`)
.chunkFilename( .chunkFilename(useHash ? `[name].[contenthash:8].async.js` : `[name].js`)
useHash ? `[name].[contenthash:8].async.js` : `[name].js`,
)
.publicPath(`/${pkg.name.toLocaleLowerCase()}/`) .publicPath(`/${pkg.name.toLocaleLowerCase()}/`)
.futureEmitAssets(true) // .futureEmitAssets(true)
.crossOriginLoading('anonymous') .crossOriginLoading('anonymous')
.pathinfo(isDev || disableCompress); .pathinfo(isDev || disableCompress);
if (!isWebpack5) {
chainConfig.output.futureEmitAssets(true);
}
if (isWebpack5) {
chainConfig.cache({
type: 'filesystem',
buildDependencies: {
config: [__filename, path.join(process.cwd(), 'package.json')],
},
cacheDirectory: path.resolve(process.cwd(), 'node_modules/.cache'),
compression: 'gzip',
version: `${process.env.GIT_REV}`,
});
}
chainConfig.resolve.modules chainConfig.resolve.modules
.add('node_modules') .add('node_modules')
.add('src') .add('src')
.end() .end()
.extensions.merge(['.js', '.jsx', '.react.js']) .extensions.merge([
'.js',
'.jsx',
'.react.js',
'.web.js',
'.wasm',
'.mjs',
'.js',
'.web.jsx',
'.jsx',
'.web.ts',
'.ts',
'.web.tsx',
'.tsx',
'.json',
])
.end() .end()
.mainFields.merge(['browser', 'jsnext:main', 'main']); .mainFields.merge(['browser', 'jsnext:main', 'main']);
...@@ -148,15 +176,13 @@ module.exports = options => { ...@@ -148,15 +176,13 @@ module.exports = options => {
type: 'csr', type: 'csr',
}); });
const presetOpts = getBabelPresetOpts({
let presetOpts = getBabelPresetOpts({
config: defineConfig, config: defineConfig,
env: process.env.NODE_ENV, env: process.env.NODE_ENV,
targets: targets, targets,
}); });
let preset = require('./babel-preset'); const preset = require('./babel-preset');
const getPreset = preset({ const getPreset = preset({
...presetOpts, ...presetOpts,
env: { env: {
...@@ -172,11 +198,10 @@ module.exports = options => { ...@@ -172,11 +198,10 @@ module.exports = options => {
lockCoreJS3: {}, lockCoreJS3: {},
import: (presetOpts.import || []).concat([ import: (presetOpts.import || []).concat([
{ libraryName: 'antd', libraryDirectory: 'es', style: true }, { libraryName: 'antd', libraryDirectory: 'es', style: true },
{ libraryName: 'antd-mobile', libraryDirectory: 'es', style: true },
]), ]),
}); });
let babelOpts = { const babelOpts = {
sourceType: 'unambiguous', sourceType: 'unambiguous',
babelrc: false, babelrc: false,
presets: [...getPreset.presets, ...(defineConfig.extraBabelPresets || [])], presets: [...getPreset.presets, ...(defineConfig.extraBabelPresets || [])],
...@@ -190,13 +215,10 @@ module.exports = options => { ...@@ -190,13 +215,10 @@ module.exports = options => {
chainConfig.module chainConfig.module
.rule('js') .rule('js')
.test(/\.(js|mjs|jsx|ts|tsx)$/) .test(/\.(js|mjs|jsx|ts|tsx)$/)
.include .include.add([cwd, ...(process.env.APP_ROOT ? [process.cwd()] : [])])
.add([ .end()
cwd, .exclude.add(/node_modules/)
...(process.env.APP_ROOT ? [process.cwd()] : []) .add(/\.mfsu/)
]).end()
.exclude
.add(/node_modules/)
.end() .end()
.use('babel-loader') .use('babel-loader')
.loader(require.resolve('@umijs/deps/compiled/babel-loader')) .loader(require.resolve('@umijs/deps/compiled/babel-loader'))
...@@ -292,12 +314,12 @@ module.exports = options => { ...@@ -292,12 +314,12 @@ module.exports = options => {
.use('raw-loader') .use('raw-loader')
.loader(require.resolve('raw-loader')); .loader(require.resolve('raw-loader'));
if(defineConfig.workerLoader) { if (defineConfig.workerLoader) {
chainConfig.module chainConfig.module
.rule('worker') .rule('worker')
.test(/.*worker.(ts|js)/) .test(/.*worker.(ts|js)/)
.use('worker-loader') .use('worker-loader')
.loader(require.resolve('worker-loader')) .loader(require.resolve('@umijs/deps/compiled/worker-loader'))
.options(defineConfig.workerLoader); .options(defineConfig.workerLoader);
} }
...@@ -315,7 +337,7 @@ module.exports = options => { ...@@ -315,7 +337,7 @@ module.exports = options => {
if (defineConfig.externals) { if (defineConfig.externals) {
chainConfig.externals(defineConfig.externals); chainConfig.externals(defineConfig.externals);
} }
if (!isWebpack5) {
chainConfig.node.merge({ chainConfig.node.merge({
setImmediate: false, setImmediate: false,
module: 'empty', module: 'empty',
...@@ -329,6 +351,7 @@ module.exports = options => { ...@@ -329,6 +351,7 @@ module.exports = options => {
child_process: 'empty', child_process: 'empty',
...options.node, ...options.node,
}); });
}
if (defineConfig.ignoreMomentLocale) { if (defineConfig.ignoreMomentLocale) {
chainConfig.plugin('ignore-moment-locale').use(webpack.IgnorePlugin, [ chainConfig.plugin('ignore-moment-locale').use(webpack.IgnorePlugin, [
...@@ -400,7 +423,6 @@ module.exports = options => { ...@@ -400,7 +423,6 @@ module.exports = options => {
.plugin('replaceTheme') .plugin('replaceTheme')
.use(ThemeColorReplacer, [themePluginOption]); .use(ThemeColorReplacer, [themePluginOption]);
const copyPatterns = [ const copyPatterns = [
fs.existsSync(path.join(process.cwd(), 'public')) && { fs.existsSync(path.join(process.cwd(), 'public')) && {
from: path.join(cwd, 'public'), from: path.join(cwd, 'public'),
...@@ -500,9 +522,7 @@ module.exports = options => { ...@@ -500,9 +522,7 @@ module.exports = options => {
rule.include rule.include
.add(/node_modules/) .add(/node_modules/)
.end() .end()
.exclude.add(path => { .exclude.add(path => isMatch({ path, pkgs }))
return isMatch({ path, pkgs });
})
.end(); .end();
} else { } else {
const pkgs = { const pkgs = {
...@@ -510,12 +530,10 @@ module.exports = options => { ...@@ -510,12 +530,10 @@ module.exports = options => {
...excludeToPkgs({ exclude: nodeModulesTransform.exclude || [] }), ...excludeToPkgs({ exclude: nodeModulesTransform.exclude || [] }),
}; };
rule.include rule.include
.add(path => { .add(path => isMatch({
return isMatch({
path, path,
pkgs, pkgs,
}); }))
})
.end(); .end();
} }
...@@ -546,25 +564,29 @@ module.exports = options => { ...@@ -546,25 +564,29 @@ module.exports = options => {
if (process.env.PROGRESS !== 'none') { if (process.env.PROGRESS !== 'none') {
chainConfig.plugin('progress').use(require.resolve('webpackbar'), [ chainConfig.plugin('progress').use(require.resolve('webpackbar'), [
mfsu ? { mfsu
? {
name: 'MFSU', name: 'MFSU',
color: '#facc00' color: '#facc00',
}: defineConfig.ssr ? {
name: type === 'ssr' ? 'Server': 'Client'
}: {}
]);
} }
: defineConfig.ssr
if (process.env.FRIENDLY_ERROR !== 'none') { ? {
chainConfig name: type === 'ssr' ? 'Server' : 'Client',
.plugin('friendly-error') }
.use(require.resolve('friendly-errors-webpack-plugin'), [ : {},
{
clearConsole: false,
},
]); ]);
} }
// if (process.env.FRIENDLY_ERROR !== 'none') {
// chainConfig
// .plugin('friendly-error')
// .use(require.resolve('friendly-errors-webpack-plugin'), [
// {
// clearConsole: false,
// },
// ]);
// }
if (process.env.WEBPACK_PROFILE) { if (process.env.WEBPACK_PROFILE) {
chainConfig.profile(true); chainConfig.profile(true);
const statsInclude = ['verbose', 'normal', 'minimal']; const statsInclude = ['verbose', 'normal', 'minimal'];
...@@ -681,43 +703,38 @@ module.exports = options => { ...@@ -681,43 +703,38 @@ module.exports = options => {
ret = smp.wrap(ret); ret = smp.wrap(ret);
} }
let entry = options.entry; const {entry} = options;
if (defineConfig.runtimePublicPath) { if (defineConfig.runtimePublicPath) {
entry.push(require.resolve('./runtimePublicPathEntry')); entry.push(require.resolve('./runtimePublicPathEntry'));
} }
// const nodeLibs = require('node-libs-browser'); const nodeLibs = require('node-libs-browser');
// const ProvidePlugin = webpack.ProvidePlugin; // const ProvidePlugin = webpack.ProvidePlugin;
// if(isWebpack5) { if (isWebpack5) {
// // ret.plugins.push({ ret.plugins.push(
// // new ProvidePlugin({ new webpack.ProvidePlugin({
// // process: nodeLibs['process'] process: nodeLibs.process
// // }) }),
// // }); );
// // ret.plugins.push({ ret.resolve.fallback = {
// // new ProvidePlugin({ ...ret.resolve.fallback,
// // Buffer: ['buffer', 'Buffer'], ...Object.keys(nodeLibs).reduce((memo, key) => {
// // }) if (nodeLibs[key]) {
// // }); memo[key] = nodeLibs[key];
// ret.resolve.fallback = { } else {
// ...ret.resolve.fallback, memo[key] = false;
// ...Object.keys(nodeLibs).reduce((memo, key) => { }
// if(nodeLibs[key]) { return memo;
// memo[key] = nodeLibs[key] }, {}),
// } else { http: false,
// memo[key] = false https: false,
// }; };
// return memo }
// }, {}),
// http: false,
// https: false,
// }
// }
ret = { ret = {
...ret, ...ret,
// mode: options.mode, // mode: options.mode,
entry: entry, entry,
plugins: options.plugins.concat([...ret.plugins]), plugins: options.plugins.concat([...ret.plugins]),
optimization: { optimization: {
...options.optimization, ...options.optimization,
......
...@@ -13,8 +13,9 @@ module.exports = require('./webpack.base.babel')({ ...@@ -13,8 +13,9 @@ module.exports = require('./webpack.base.babel')({
path.join(process.cwd(), 'src/app.js'), // Start with js/app.js path.join(process.cwd(), 'src/app.js'), // Start with js/app.js
], ],
optimization: { optimization: {
namedModules: true, // namedModules: true,
namedChunks: true, // namedChunks: true,
chunkIds: "named",
runtimeChunk: { runtimeChunk: {
name: 'runtime', name: 'runtime',
}, },
...@@ -53,13 +54,13 @@ module.exports = require('./webpack.base.babel')({ ...@@ -53,13 +54,13 @@ module.exports = require('./webpack.base.babel')({
}, },
}, },
plugins: [ plugins: [
new CircularDependencyPlugin({ // new CircularDependencyPlugin({
exclude: /node_modules/, // exclude: /node_modules/,
include: /src/, // include: /src/,
failOnError: false, // failOnError: false,
allowAsyncCycles: false, // allowAsyncCycles: false,
cwd: process.cwd(), // cwd: process.cwd(),
}), // }),
], ],
devtool: 'cheap-module-source-map', devtool: 'cheap-module-source-map',
node: { node: {
......
// Important modules this config uses // Important modules this config uses
const path = require('path'); const path = require('path');
const { HashedModuleIdsPlugin } = require('webpack'); const webpack = require('webpack');
const TerserPlugin = require('terser-webpack-plugin'); const TerserPlugin = require('terser-webpack-plugin');
const CompressionPlugin = require('compression-webpack-plugin'); const CompressionPlugin = require('compression-webpack-plugin');
module.exports = require('./webpack.base.babel')({ module.exports = require('./webpack.base.babel')({
...@@ -27,6 +27,9 @@ module.exports = require('./webpack.base.babel')({ ...@@ -27,6 +27,9 @@ module.exports = require('./webpack.base.babel')({
compress: { compress: {
comparisons: false, comparisons: false,
}, },
drop_debugger: true,
drop_console: true,
pure_funcs: ['console.log'],
parse: {}, parse: {},
mangle: true, mangle: true,
output: { output: {
...@@ -40,19 +43,20 @@ module.exports = require('./webpack.base.babel')({ ...@@ -40,19 +43,20 @@ module.exports = require('./webpack.base.babel')({
}), }),
], ],
nodeEnv: 'production', nodeEnv: 'production',
chunkIds: 'deterministic',
moduleIds: 'deterministic',
usedExports: true,
sideEffects: true, sideEffects: true,
concatenateModules: true, concatenateModules: true,
runtimeChunk: 'single', runtimeChunk: 'single',
splitChunks: { splitChunks: {
// minSize: 0,
maxSize: 100 * 1024, // 控制包的最大字节数 maxSize: 100 * 1024, // 控制包的最大字节数
minSize: 10 * 1024, // 控制包的最小字节数 minSize: 10 * 1024, // 控制包的最小字节数
minChunks: 1,
cacheGroups: { cacheGroups: {
vendor: { vendor: {
chunks: 'all', chunks: 'all',
maxInitialRequests: 10,
minSize: 0, minSize: 0,
maxInitialRequests: 10,
test: /[\\/]node_modules[\\/]/, test: /[\\/]node_modules[\\/]/,
name(module) { name(module) {
const packageName = module.context.match( const packageName = module.context.match(
...@@ -68,6 +72,13 @@ module.exports = require('./webpack.base.babel')({ ...@@ -68,6 +72,13 @@ module.exports = require('./webpack.base.babel')({
test: /[\\/]src[\\/]components[\\/]/, test: /[\\/]src[\\/]components[\\/]/,
name: 'biz-component', name: 'biz-component',
}, },
react: {
chunks: 'all',
minSize: 0,
maxInitialRequests: 10,
test: /[\\/]node_modules[\\/]react-dom[\\/]/,
name: 'react-dom',
}
}, },
}, },
}, },
...@@ -80,11 +91,11 @@ module.exports = require('./webpack.base.babel')({ ...@@ -80,11 +91,11 @@ module.exports = require('./webpack.base.babel')({
minRatio: 0.8, minRatio: 0.8,
}), }),
new HashedModuleIdsPlugin({ // new webpack.ids.HashedModuleIdsPlugin({
hashFunction: 'sha256', // hashFunction: 'sha256',
hashDigest: 'hex', // hashDigest: 'hex',
hashDigestLength: 20, // hashDigestLength: 20,
}), // }),
], ],
performance: { performance: {
......
// @ts-ignore // @ts-ignore
//import { Request, Response } from 'express'; // import { Request, Response } from 'express';
module.exports = { module.exports = {
'GET /api/currentUser': (req, res) => { 'GET /api/currentUser': (req, res) => {
res res.status(200).send({
.status(200)
.send({
name: '韩磊', name: '韩磊',
avatar: '', avatar: '',
userid: 'de98FdAe-1fcA-985e-7EDe-A79E8FFA854E', userid: 'de98FdAe-1fcA-985e-7EDe-A79E8FFA854E',
...@@ -36,9 +34,7 @@ module.exports = { ...@@ -36,9 +34,7 @@ module.exports = {
}); });
}, },
'GET /api/notices': (req, res) => { 'GET /api/notices': (req, res) => {
res res.status(200).send({
.status(200)
.send({
data: [ data: [
{ {
id: '26fd5659-6818-c9Ee-CdCF-Bc69FBf157F5', id: '26fd5659-6818-c9Ee-CdCF-Bc69FBf157F5',
...@@ -57,7 +53,8 @@ module.exports = { ...@@ -57,7 +53,8 @@ module.exports = {
extra: '9uQO$Jh', extra: '9uQO$Jh',
key: 13, key: 13,
read: false, read: false,
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png', avatar:
'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
title: '往条再习价机指北很些参转派。', title: '往条再习价机指北很些参转派。',
status: 'error', status: 'error',
datetime: '1988-12-24', datetime: '1988-12-24',
...@@ -82,7 +79,8 @@ module.exports = { ...@@ -82,7 +79,8 @@ module.exports = {
extra: 'Z@Z^ij', extra: 'Z@Z^ij',
key: 15, key: 15,
read: false, read: false,
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png', avatar:
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
title: '家不发经得器形如布力到议调采引。', title: '家不发经得器形如布力到议调采引。',
status: 'processing', status: 'processing',
datetime: '1996-11-23', datetime: '1996-11-23',
...@@ -107,7 +105,8 @@ module.exports = { ...@@ -107,7 +105,8 @@ module.exports = {
extra: 't5%p', extra: 't5%p',
key: 17, key: 17,
read: true, read: true,
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png', avatar:
'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
title: '图面济习果然选打儿往并进美。', title: '图面济习果然选打儿往并进美。',
status: 'default', status: 'default',
datetime: '1981-07-21', datetime: '1981-07-21',
...@@ -119,7 +118,8 @@ module.exports = { ...@@ -119,7 +118,8 @@ module.exports = {
extra: 'GuGb5', extra: 'GuGb5',
key: 18, key: 18,
read: true, read: true,
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png', avatar:
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
title: '海准到团权题时住称即按常火制。', title: '海准到团权题时住称即按常火制。',
status: 'error', status: 'error',
datetime: '2014-09-18', datetime: '2014-09-18',
...@@ -143,7 +143,8 @@ module.exports = { ...@@ -143,7 +143,8 @@ module.exports = {
extra: '(DAIG', extra: '(DAIG',
key: 20, key: 20,
read: true, read: true,
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png', avatar:
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
title: '流较术合联风样少节打体中门八。', title: '流较术合联风样少节打体中门八。',
status: 'default', status: 'default',
datetime: '1996-01-03', datetime: '1996-01-03',
...@@ -155,7 +156,8 @@ module.exports = { ...@@ -155,7 +156,8 @@ module.exports = {
extra: 'suvQ$O', extra: 'suvQ$O',
key: 21, key: 21,
read: false, read: false,
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png', avatar:
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
title: '为公受条总此类影所提无受万南非事具。', title: '为公受条总此类影所提无受万南非事具。',
status: 'default', status: 'default',
datetime: '1975-12-08', datetime: '1975-12-08',
...@@ -167,7 +169,8 @@ module.exports = { ...@@ -167,7 +169,8 @@ module.exports = {
extra: 'HIX9@)', extra: 'HIX9@)',
key: 22, key: 22,
read: true, read: true,
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png', avatar:
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
title: '展生起而两边断指内布数点铁压具。', title: '展生起而两边断指内布数点铁压具。',
status: 'processing', status: 'processing',
datetime: '2004-11-21', datetime: '2004-11-21',
...@@ -179,7 +182,8 @@ module.exports = { ...@@ -179,7 +182,8 @@ module.exports = {
extra: 'Bwlc!Bq', extra: 'Bwlc!Bq',
key: 23, key: 23,
read: true, read: true,
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png', avatar:
'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
title: '或内局段花革器规关价快和口音安京。', title: '或内局段花革器规关价快和口音安京。',
status: 'default', status: 'default',
datetime: '1994-08-07', datetime: '1994-08-07',
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -100,15 +100,15 @@ ...@@ -100,15 +100,15 @@
"@ant-design/pro-utils": "^1.10.4", "@ant-design/pro-utils": "^1.10.4",
"@babel/polyfill": "7.4.3", "@babel/polyfill": "7.4.3",
"@babel/runtime": "^7.10.5", "@babel/runtime": "^7.10.5",
"@wisdom-cesium/cesium": "^1.0.52", "@wisdom-cesium/cesium": "^1.0.64",
"@wisdom-components/empty": "^1.4.1", "@wisdom-components/empty": "^1.4.1",
"@wisdom-map/arcgismap": "^1.0.60-0", "@wisdom-map/arcgismap": "^1.0.60-0",
"@wisdom-map/util": "^1.0.27-0", "@wisdom-map/util": "^1.0.27-0",
"@wisdom-utils/components": "0.0.14", "@wisdom-utils/components": "0.0.14",
"@wisdom-utils/runtime": "0.0.15", "@wisdom-utils/runtime": "0.0.15",
"@wisdom-utils/utils": "0.0.52", "@wisdom-utils/utils": "0.0.63",
"animate.css": "^4.1.1", "animate.css": "^4.1.1",
"antd": "^4.16.13", "antd": "^4.17.4",
"compression": "1.7.4", "compression": "1.7.4",
"connected-react-router": "6.4.0", "connected-react-router": "6.4.0",
"fontfaceobserver": "2.1.0", "fontfaceobserver": "2.1.0",
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
"immutable": "^4.0.0-rc.12", "immutable": "^4.0.0-rc.12",
"js-base64": "^3.5.2", "js-base64": "^3.5.2",
"js-cookie": "^2.2.1", "js-cookie": "^2.2.1",
"kit_global_config": "^1.0.32", "kit_global_config": "^1.0.41",
"kit_logger": "^1.0.2", "kit_logger": "^1.0.2",
"kit_utils": "^1.3.11", "kit_utils": "^1.3.11",
"lodash": "4.17.11", "lodash": "4.17.11",
...@@ -130,11 +130,13 @@ ...@@ -130,11 +130,13 @@
"prop-types": "15.7.2", "prop-types": "15.7.2",
"qiankun": "^2.4.6", "qiankun": "^2.4.6",
"qrcode.react": "^1.0.0", "qrcode.react": "^1.0.0",
"rc-cascader": "^2.3.2",
"react": "16.12.0", "react": "16.12.0",
"react-dom": "16.12.0", "react-dom": "16.12.0",
"react-draggable": "^4.4.3", "react-draggable": "^4.4.3",
"react-helmet": "6.0.0-beta", "react-helmet": "6.0.0-beta",
"react-helmet-async": "^1.0.4", "react-helmet-async": "^1.0.4",
"react-iframe": "^1.8.0",
"react-intl": "^3.12.1", "react-intl": "^3.12.1",
"react-redux": "7.0.2", "react-redux": "7.0.2",
"react-router-config": "^5.1.1", "react-router-config": "^5.1.1",
...@@ -173,9 +175,6 @@ ...@@ -173,9 +175,6 @@
"@umijs/fabric": "^2.2.0", "@umijs/fabric": "^2.2.0",
"@umijs/runtime": "3.3.7", "@umijs/runtime": "3.3.7",
"@umijs/utils": "3.3.7", "@umijs/utils": "3.3.7",
"add-asset-html-webpack-plugin": "3.1.3",
"antd-icon-reduce-loader": "^1.0.6",
"antd-icon-reduce-plugin": "^1.1.1",
"babel-core": "7.0.0-bridge.0", "babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.0.1", "babel-eslint": "10.0.1",
"babel-loader": "8.0.5", "babel-loader": "8.0.5",
...@@ -218,10 +217,9 @@ ...@@ -218,10 +217,9 @@
"express": "^4.17.1", "express": "^4.17.1",
"file-loader": "3.0.1", "file-loader": "3.0.1",
"friendly-errors-webpack-plugin": "^1.7.0", "friendly-errors-webpack-plugin": "^1.7.0",
"fs": "0.0.1-security",
"fs-extra": "^9.0.1", "fs-extra": "^9.0.1",
"html-loader": "0.5.5", "html-loader": "0.5.5",
"html-webpack-plugin": "4.4.0", "html-webpack-plugin": "5.5.0",
"http-proxy-middleware": "^1.0.5", "http-proxy-middleware": "^1.0.5",
"husky": "^2.3.0", "husky": "^2.3.0",
"imports-loader": "0.8.0", "imports-loader": "0.8.0",
...@@ -288,16 +286,15 @@ ...@@ -288,16 +286,15 @@
"traverse": "^0.6.6", "traverse": "^0.6.6",
"umi-webpack-bundle-analyzer": "3.6.0", "umi-webpack-bundle-analyzer": "3.6.0",
"url-loader": "1.1.2", "url-loader": "1.1.2",
"webpack": "4.44.1", "webpack": "^5.65.0",
"webpack-chain": "6.5.1", "webpack-chain": "6.5.1",
"webpack-cli": "3.3.0", "webpack-cli": "4.2.0",
"webpack-dev-middleware": "3.6.2", "webpack-dev-middleware": "5.3.0",
"webpack-hot-middleware": "2.24.3", "webpack-hot-middleware": "2.24.3",
"webpack-manifest-plugin": "^3.0.0", "webpack-manifest-plugin": "^3.0.0",
"webpack-theme-color-replacer": "^1.3.15", "webpack-theme-color-replacer": "^1.3.15",
"webpackbar": "5.0.0-3", "webpackbar": "5.0.0-3",
"whatwg-fetch": "3.0.0", "whatwg-fetch": "^3.0.0",
"yorkie": "^2.0.0", "yorkie": "^2.0.0"
"zlib": "^1.0.5"
} }
} }
-----BEGIN CERTIFICATE-----
MIIETDCCArSgAwIBAgIQKxt9OXlPUkkQASISMtxezDANBgkqhkiG9w0BAQsFADBh
MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExGzAZBgNVBAsMEmpjbEB5
Y2pjbDg2OC5sb2NhbDEiMCAGA1UEAwwZbWtjZXJ0IGpjbEB5Y2pjbDg2OC5sb2Nh
bDAeFw0xOTA2MDEwMDAwMDBaFw0zMDA2MDEwOTMzNTdaMEkxJzAlBgNVBAoTHm1r
Y2VydCBkZXZlbG9wbWVudCBjZXJ0aWZpY2F0ZTEeMBwGA1UECwwVamNsQHVtaWpz
LmxvY2FsICh1bWkpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvKA/
Oz9az6kEZ5zSZyufpYXt5gOAnE/f8VY2hP3g7JDRCMk6w0XgkmGDJ45nY9fVVhCy
oqg8bIkLcLbvp69/I5O8ae0TbyS95mgBflhgsqjSkydhn7bZmAe5OdZv+JtGBjd2
2YDpzseK0z1VkXxgEAKYOsxszaCj6aktAhTQvER2DYGo0XaM62SOQNL4qLn97Zrg
+g8GSjS/Cg/vb+k42tCghOm0Ks26CDBl92Dwl5modEkfzewrjC2WNletiZupsX6p
rnRDBcGYHl+S/+D/iHCSu83IkxoorsIigGlSah/nVfetsKHBTXFXnSxL86T9MA1R
5ZcXoVv1cWZNiiMMawIDAQABo4GXMIGUMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUE
DDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFFRTg3QdwqVq
CLRjdLfglrJZqTrzMD4GA1UdEQQ3MDWCCWxvY2FsaG9zdIIQbG9jYWwuYWxpcGF5
Lm5ldIcEfwAAAYcQAAAAAAAAAAAAAAAAAAAAATANBgkqhkiG9w0BAQsFAAOCAYEA
lFgca57CNAoaq8MC6bTZo10FC/LDTnUh/p20w5uCp8iSKGtVM+HvulrWXwUGRkUl
jnukYeMwl4tONzwHeUV1oVT8DATFLAFIHE4ikGDM7V+Ximxv5yQQ9hD8fzeOWdYO
SKA5eDjd+ut+HiSfItqgM+8t1RxPxsYlGeOMp65cKt1NaIdRxQHwESGba6H0sez7
p5Eu95pXp/BUy7lnvqudXgfTAUpSzxpSG+49hzMKuN/CAZyFNp52qDDHpRtuxHns
q0pjGHBOC2aYc1eXNgn2g0wMDp3+BYh9yjoWNkMKqY7hpcB9PY5zw0u8R0wG8z+n
d915bZT3FKjx5sxmDmVaDNdARwi9ExqFvIs+hje1IUrszR7pnT7EUcUOhWNbKKkf
jRH3sy+TyA+TsYm1AAcnnY/Ne/Ce4OcMGcYwjb1L/gu/PWoup4f/GIziEw8cbPti
1+Exm+AOSjcSspPPfQmpHqupNaDJSjo6xYX3wn3oIb34WvH8INL3liiVedn+LTy4
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8oD87P1rPqQRn
nNJnK5+lhe3mA4CcT9/xVjaE/eDskNEIyTrDReCSYYMnjmdj19VWELKiqDxsiQtw
tu+nr38jk7xp7RNvJL3maAF+WGCyqNKTJ2GfttmYB7k51m/4m0YGN3bZgOnOx4rT
PVWRfGAQApg6zGzNoKPpqS0CFNC8RHYNgajRdozrZI5A0viouf3tmuD6DwZKNL8K
D+9v6Tja0KCE6bQqzboIMGX3YPCXmah0SR/N7CuMLZY2V62Jm6mxfqmudEMFwZge
X5L/4P+IcJK7zciTGiiuwiKAaVJqH+dV962wocFNcVedLEvzpP0wDVHllxehW/Vx
Zk2KIwxrAgMBAAECggEAUdiitz2dVN/85kyYy2WVZ0g+2wCIDMtn25tSGtDiiSOp
YEuYsOSgNkQTmdVjrWIY0rh6GrQvS9UHXsgyIyu2WiSfq8LQHPjvYYudokoM41j3
zhxXcurvbdVkHOGcQl51uvrUGjqiuTPCXDiP6YnzUN8fWNwdFfhvR1M+EVog3J+F
RpSavm+SCOkyqCBWgQDb/p59kvlISJuDXKr3tV5HaKVKYfDBQLvuiZBweDwXjxop
z2Srs2GEmJPuKXU32deqNg7KgPvd6ADxb+GXhrGVBaj7dxi77E8nHL/aGutVE4ON
VqMwdWoRPkEPU33rF+CCxHqHJFcNS+62ozzeUYGlaQKBgQDR2mPnjthIgMkX+cw5
ROSadd5gZtQFXAzjAv685k+Xqm2IGk2Z2d5VydHO7cKwVLTB6cEJ+CbLZ1kIS6yV
GxBHaZ+LQxGkt4QD9IBSnL9Cxe7uvo+bpvV3eXbANG0tNl482RctS/u+g+OGSu05
6KIIlYag5hcMjr7ozuhv8LVytwKBgQDmGuIKFHXXqeRJNW+QvJfwQFKNQViqASlY
W4Y5guS6s85inJ3bRKwYtZsczne2uwYqQHlPw8X4TQMXApM+04mJtqwrYDpcX6Ad
VYPmo+J/k917QwlN8VP4AzlDdz8PU+zenmWgpKaG8GMtYia9qCIbWY/+hwwBk0sG
FNpguWnv7QKBgFSGT2ksSwdhAB5tGgoTKrTgNvLDWDDUc8hYI3y4k2R2W+nPFmSa
sYgCY0Si1aEqbSgR3BQE5LNW7DCAMoJYRUVOUNnJ6Ohclor1R15/DjZ5/RQioztB
k2tM/DzMoRDt7iU6F7DCAyMoglNMCKMjhWhJudFC/BOtx02EUXENFjifAoGAD966
yEcw+XbWL9Zno2vebsuA5g0juFXsLBPj5gOJEvdjvJlgqcbKt8mOsSXsS8YKXs+j
jkTKWp21INkknqioS781kKhKXiSaPmuvdTDIZlQkamPtOFr0l55hTK3kw4HeTFxQ
VgwFEDl0HaUvVtVJxOkgbUWTJmiqO/kkNpeTHuECgYEAtD4dRK3w65d9BWHqgeOV
IVSDeYjA6gNuC3tuGzk9bA70U0X/T8+EQMuKNvRZC61/JzAlzEH1oGIw8md8Ki86
aRT96Gce7Q0FA3SaQ+h+w+kgsJG/aly3IThaJh/mx6HN7Xry6BFO1vlYlgdlm/1G
iKX/ppCt7bJYqfrptWs42u4=
-----END PRIVATE KEY-----
...@@ -2,11 +2,11 @@ const { join } = require('path'); ...@@ -2,11 +2,11 @@ const { join } = require('path');
const { writeFileSync, mkdirSync, existsSync } = require('fs'); const { writeFileSync, mkdirSync, existsSync } = require('fs');
const rimraf = require('rimraf'); const rimraf = require('rimraf');
const serveStatic = require('serve-static'); const serveStatic = require('serve-static');
const { resolve } = require('path');
const { portfinder, chalk, delay } = require('@umijs/utils');
const argv = require('./argv'); const argv = require('./argv');
const setup = require('./middlewares/frontendMiddleware'); const setup = require('./middlewares/frontendMiddleware');
const pkg = require('../package.json'); const pkg = require('../package.json');
const { resolve } = require('path');
const { portfinder, chalk, delay } = require('@umijs/utils');
const config = require('../config/config'); const config = require('../config/config');
const mockMiddewares = require('./mock'); const mockMiddewares = require('./mock');
const emitter = require('./event'); const emitter = require('./event');
...@@ -30,7 +30,7 @@ const { getSchema } = require('./openapi'); ...@@ -30,7 +30,7 @@ const { getSchema } = require('./openapi');
const isHTTPS = process.env.HTTPS || (argv && argv.https); const isHTTPS = process.env.HTTPS || (argv && argv.https);
await delay(500); await delay(500);
const absNodeModulesPath = process.cwd() + '/node_modules'; const absNodeModulesPath = `${process.cwd()}/node_modules`;
const openAPIFilesPath = join(absNodeModulesPath, 'civ_open_api'); const openAPIFilesPath = join(absNodeModulesPath, 'civ_open_api');
const loadEnv = () => { const loadEnv = () => {
...@@ -58,7 +58,7 @@ const { getSchema } = require('./openapi'); ...@@ -58,7 +58,7 @@ const { getSchema } = require('./openapi');
headers: { headers: {
'access-control-allow-origin': '*', 'access-control-allow-origin': '*',
}, },
port: port, port,
beforeMiddlewares: [ beforeMiddlewares: [
(config.mock || process.env.MOCK !== 'none') && mockMiddewares, (config.mock || process.env.MOCK !== 'none') && mockMiddewares,
], ],
...@@ -67,6 +67,7 @@ const { getSchema } = require('./openapi'); ...@@ -67,6 +67,7 @@ const { getSchema } = require('./openapi');
...(config.devServer || {}), ...(config.devServer || {}),
}); });
setup( setup(
server.app, server.app,
{ {
...@@ -76,14 +77,14 @@ const { getSchema } = require('./openapi'); ...@@ -76,14 +77,14 @@ const { getSchema } = require('./openapi');
config, config,
{ {
port, port,
homename homename,
} },
); );
emitter.on('onDevCompileDone', async () => { emitter.on('onDevCompileDone', async () => {
try { try {
const openAPIConfig = config.openAPI; const openAPIConfig = config.openAPI;
if(openAPIConfig && openAPIConfig.schemaPath) { if (openAPIConfig && openAPIConfig.schemaPath) {
const openAPIJson = await getSchema(openAPIConfig.schemaPath); const openAPIJson = await getSchema(openAPIConfig.schemaPath);
writeFileSync( writeFileSync(
join(openAPIFilesPath, 'civ-plugins_openapi.json'), join(openAPIFilesPath, 'civ-plugins_openapi.json'),
......
...@@ -6,46 +6,64 @@ const DevCompileDonePlugin = require('../../internals/webpack/plugins/DevCompile ...@@ -6,46 +6,64 @@ const DevCompileDonePlugin = require('../../internals/webpack/plugins/DevCompile
const emitter = require('../event'); const emitter = require('../event');
function getIgnoredWatchRegExp() { function getIgnoredWatchRegExp() {
// const absOutputPath = winPath(path.join(process.cwd(), outputPath)); // const absOutputPath = winPath(path.join(process.cwd(), outputPath));
return process.env.WATCH_IGNORED === 'none' ? undefined: new RegExp(process.env.WATCH_IGNORED || `(node_modules)`) return process.env.WATCH_IGNORED === 'none'
? undefined
: new RegExp(process.env.WATCH_IGNORED || `(node_modules)`);
} }
function createWebpackMiddleware(compiler, output, config) { function createWebpackMiddleware(compiler, output, config) {
return webpackDevMiddleware(compiler, { return webpackDevMiddleware(compiler, {
logLevel: 'warn', // logLevel: 'warn',
publicPath: output.publicPath, publicPath: output.publicPath,
silent: true, // silent: true,
stats: 'errors-only', stats: 'errors-only',
writeToDisk: config && config.devServer && config.devServer.writeToDisk, writeToDisk: config && config.devServer && config.devServer.writeToDisk,
watchOptions: { // watchOptions: {
ignored: getIgnoredWatchRegExp() // ignored: getIgnoredWatchRegExp()
} // }
}); });
} }
module.exports = function addDevMiddlewares(app, webpackConfig, config, { port= 8080, hostname = '127.0.0.1' }) { module.exports = function addDevMiddlewares(
app,
webpackConfig,
config,
{ port = 8080, hostname = '127.0.0.1' },
) {
if (!config.mfsu) {
webpackConfig.plugins.push( webpackConfig.plugins.push(
new DevCompileDonePlugin({ new DevCompileDonePlugin({
port: (webpackConfig.devServer && webpackConfig.devServer.port) ? (webpackConfig.devServer.port || port): port, port:
hostname: (webpackConfig.devServer && webpackConfig.devServer.hostname ) ? (webpackConfig.devServer.hostname || '127.0.0.1'): hostname, webpackConfig.devServer && webpackConfig.devServer.port
? webpackConfig.devServer.port || port
: port,
hostname:
webpackConfig.devServer && webpackConfig.devServer.hostname
? webpackConfig.devServer.hostname || '127.0.0.1'
: hostname,
onCompileDone({ isFirstCompile, stats }) { onCompileDone({ isFirstCompile, stats }) {
if (isFirstCompile) {
emitter.emit('onDevCompileDone', { isFirstCompile, stats }); emitter.emit('onDevCompileDone', { isFirstCompile, stats });
}
}, },
onCompileFail(error) { onCompileFail(error) {
console.log(error); console.log(error);
}, },
}), }),
) );
}
const compiler = webpack(webpackConfig); const compiler = webpack(webpackConfig);
const middleware = createWebpackMiddleware( const middleware = createWebpackMiddleware(
compiler, compiler,
webpackConfig.output, webpackConfig.output,
config, config,
); );
// console.log(middleware.compiler.watching)
app.use(middleware); app.use(middleware);
app.use(webpackHotMiddleware(compiler)); app.use(webpackHotMiddleware(compiler));
const fs = middleware.fileSystem; const fs = middleware.context.outputFileSystem;
app.get('*', (req, res) => { app.get('*', (req, res) => {
fs.readFile(path.join(compiler.outputPath, 'index.html'), (err, file) => { fs.readFile(path.join(compiler.outputPath, 'index.html'), (err, file) => {
......
const { const { lodash, portfinder, createDebug } = require('@umijs/utils');
lodash,
portfinder,
} = require('@umijs/utils');
const express = require('express'); const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware'); const { createProxyMiddleware } = require('http-proxy-middleware');
const spdy = require('spdy'); const spdy = require('spdy');
...@@ -10,12 +7,14 @@ const url = require('url'); ...@@ -10,12 +7,14 @@ const url = require('url');
const http = require('http'); const http = require('http');
// const https = require('https'); // const https = require('https');
const sockjs = require('sockjs'); const sockjs = require('sockjs');
const debug = createDebug('umi:server:Server');
const getCredentials = (options) => {};
const defaultOpts = { const defaultOpts = {
afterMiddlewares: [], afterMiddlewares: [],
beforeMiddlewares: [], beforeMiddlewares: [],
compilerMiddleware: null, compilerMiddleware: null,
compress: true, compress: true,
https: !!process.env.HTTP2 ? true : !!process.env.HTTPS, https: process.env.HTTP2 ? true : !!process.env.HTTPS,
onListening: argv => argv, onListening: argv => argv,
onConnection: () => {}, onConnection: () => {},
onConnectionClose: () => {}, onConnectionClose: () => {},
...@@ -44,11 +43,11 @@ class Server { ...@@ -44,11 +43,11 @@ class Server {
if (this.opts.https) { if (this.opts.https) {
const credential = getCredentials(this.opts); const credential = getCredentials(this.opts);
if (typeof this.opts.https === 'object' && this.opts.https.spdy) { if (typeof this.opts.https === 'object' && this.opts.https.spdy) {
logger.warn( console.warn(
'Providing custom spdy server options is deprecated and will be removed in the next major version.', 'Providing custom spdy server options is deprecated and will be removed in the next major version.',
); );
return credential; return credential;
} else { }
return { return {
spdy: { spdy: {
protocols: ['h2', 'http/1.1'], protocols: ['h2', 'http/1.1'],
...@@ -57,8 +56,6 @@ class Server { ...@@ -57,8 +56,6 @@ class Server {
}; };
} }
} }
return;
}
setupFeatures() { setupFeatures() {
const features = { const features = {
...@@ -116,6 +113,7 @@ class Server { ...@@ -116,6 +113,7 @@ class Server {
deleteRoutes() { deleteRoutes() {
let startIndex = null; let startIndex = null;
let endIndex = null; let endIndex = null;
// eslint-disable-next-line no-underscore-dangle
this.app._router.stack.forEach((item, index) => { this.app._router.stack.forEach((item, index) => {
if (item.name === 'PROXY_START') startIndex = index; if (item.name === 'PROXY_START') startIndex = index;
if (item.name === 'PROXY_END') endIndex = index; if (item.name === 'PROXY_END') endIndex = index;
...@@ -126,6 +124,7 @@ class Server { ...@@ -126,6 +124,7 @@ class Server {
.join(', ')}`, .join(', ')}`,
); );
if (startIndex !== null && endIndex !== null) { if (startIndex !== null && endIndex !== null) {
// eslint-disable-next-line no-underscore-dangle
this.app._router.stack.splice(startIndex, endIndex - startIndex + 1); this.app._router.stack.splice(startIndex, endIndex - startIndex + 1);
} }
debug( debug(
...@@ -135,7 +134,7 @@ class Server { ...@@ -135,7 +134,7 @@ class Server {
); );
} }
setupProxy(proxyOpts, isWatch = false) { setupProxy(proxyOpts, isWatch = true) {
let proxy = proxyOpts || this.opts.proxy; let proxy = proxyOpts || this.opts.proxy;
if (!Array.isArray(proxy)) { if (!Array.isArray(proxy)) {
if (proxy && 'target' in proxy) { if (proxy && 'target' in proxy) {
...@@ -153,7 +152,7 @@ class Server { ...@@ -153,7 +152,7 @@ class Server {
}; };
} else { } else {
proxyOptions = { proxyOptions = {
...(proxy && proxy[context] || {}), ...((proxy && proxy[context]) || {}),
context: correctedContext, context: correctedContext,
}; };
} }
...@@ -177,11 +176,11 @@ class Server { ...@@ -177,11 +176,11 @@ class Server {
: proxyConfig.target; : proxyConfig.target;
const realUrl = new URL(req.url || '', target).href || ''; const realUrl = new URL(req.url || '', target).href || '';
proxyRes.headers['x-real-url'] = realUrl; proxyRes.headers['x-real-url'] = realUrl;
proxyConfig.onProxyRes && proxyConfig.onProxyRes(proxyRes, req, res); proxyConfig.onProxyRes &&
proxyConfig.onProxyRes(proxyRes, req, res);
}, },
}); });
} }
return;
}; };
let startIndex = null; let startIndex = null;
...@@ -328,4 +327,4 @@ class Server { ...@@ -328,4 +327,4 @@ class Server {
} }
} }
module.exports = Server module.exports = Server;
\ No newline at end of file
import { Modal, notification } from 'antd'; import { Modal, notification } from 'antd';
import { instanceRequest, service } from '@wisdom-utils/utils'; import { instanceRequest, service } from '@wisdom-utils/utils';
import { event } from 'microser-data';
import { actionCreators } from '../containers/App/store';
import AppService from './service/base'; import AppService from './service/base';
import notificationService from './service/notification'; import notificationService from './service/notification';
const { warning } = Modal; const { warning } = Modal;
// eslint-disable-next-line no-return-await // eslint-disable-next-line no-return-await
instanceRequest.reportCodeError = true; instanceRequest.reportCodeError = true;
instanceRequest.transformRequestURL = function(url) {
// url = url.replace(/\/GateWay/, '')
const excludeURL = ['/PandaCore/GCK/Basis/GateWayConfig', '/CityInterface/rest/services.svc/GetConfig'];
if(excludeURL.includes(url)) {
return url;
}
if (window.globalConfig && window.globalConfig.hasGateWay && /^\/(cityinterface|CityInterface|Cityinterface|CityServer|PandaInformatization)/.test(url)) {
return /\/CityInterface\/rest\/services.svc\/GetConfig/.test(url) ? url ? /^\/GateWay/.test(url) ? url : '/GateWay' + url: '/GateWay' + url: '/GateWay' + url;
}
return url;
}
const codeMessage = { const codeMessage = {
200: '服务器成功返回请求的数据。', 200: '服务器成功返回请求的数据。',
201: '新建或修改数据成功。', 201: '新建或修改数据成功。',
...@@ -40,9 +52,7 @@ instanceRequest.setErrorHandler(error => { ...@@ -40,9 +52,7 @@ instanceRequest.setErrorHandler(error => {
content: `${codeMessage[status]}`, content: `${codeMessage[status]}`,
centered: true, centered: true,
onOk(close) { onOk(close) {
window.share && event.emit('event:logout');
window.share.event &&
window.share.event.emit('triggerLoginout');
close(); close();
}, },
}); });
...@@ -62,7 +72,6 @@ instanceRequest.setErrorHandler(error => { ...@@ -62,7 +72,6 @@ instanceRequest.setErrorHandler(error => {
} }
return response; return response;
}); });
const appService = service(AppService); const appService = service(AppService);
const noticeService = service(notificationService); const noticeService = service(notificationService);
export { appService, noticeService }; export { appService, noticeService };
import { jsonp, request } from '@wisdom-utils/utils'; import { jsonp, request } from '@wisdom-utils/utils';
import * as constants from '../../constants'; import * as constants from '../../constants';
/**
* 兼容老接口
*/
const transformGateWay = (url) => {
if(!/^(cityinterface|CityInterface|CityServer)/) {
return url.replace(/GeteWay/, '')
}
}
export const API = { export const API = {
AUTHORIZATION_TOKEN: '/Publish/Identity/AuthorizationToken', AUTHORIZATION_TOKEN: '/Identity/AuthorizationToken',
GET_GATEWAY_CONFIG: '/PandaOMS/OMS/GateWayConfig', GET_GATEWAY_CONFIG: '/PandaCore/GCK/Basis/GateWayConfig',
GET_CONFIG: '/CityInterface/rest/services.svc/GetConfig', GET_CONFIG: '/CityInterface/rest/services.svc/GetConfig',
GENERATE_TOKEN: '/cityinterface/rest/services.svc/generatetoken', GENERATE_TOKEN: '/cityinterface/rest/services.svc/generatetoken',
GENERATE_GATEWAT_TOKEN: '/GCK/Basis/GenerateToken',
GENERATE_IOT_TOKEN: 'cityinterface/rest/services.svc/generateGCKToken', GENERATE_IOT_TOKEN: 'cityinterface/rest/services.svc/generateGCKToken',
GENERATE_QRCODE: 'cityinterface/rest/services.svc/generatetokenByqrcode', GENERATE_QRCODE: 'cityinterface/rest/services.svc/generatetokenByqrcode',
GENERATE_TOKEN_CHANGE: '/cityinterface/rest/services.svc/generatetokenquick', GENERATE_TOKEN_CHANGE: '/cityinterface/rest/services.svc/generatetokenquick',
GET_WEB_SITE_CONFIG: '/CityInterface/rest/services.svc/GetWebSiteConfig', GET_WEB_SITE_CONFIG: '/CityInterface/rest/services.svc/GetWebSiteConfig',
GET_WEB_SITE_CONFIG_GEWAY: '/Publish/OMS/PlatformCenter/GetWebSiteConfig', GET_WEB_SITE_CONFIG_GEWAY: '/GCK/Basis/GetWebSiteConfig',
GET_USER_INFO: '/CityInterface/rest/services.svc/getUserInfo', GET_USER_INFO: '/CityInterface/rest/services.svc/getUserInfo',
GET_GATEWAY_USER_INFO: '/GCK/Basis/GetUserInfo',
GET_OA: '/CityInterface/rest/services/OA.svc/getLoginInfo', GET_OA: '/CityInterface/rest/services/OA.svc/getLoginInfo',
GET_LOGS: '/CityInterface/rest/services/portal.svc/OMMonitor/SaveLoginInfo', GET_LOGS: '/CityInterface/rest/services/portal.svc/OMMonitor/SaveLoginInfo',
GET_CITY: GET_CITY:
process.env.NODE_ENV !== 'production' process.env.NODE_ENV !== 'production'
? '/cityjson?ie=utf-8' ? '/cityjson?ie=utf-8'
: 'https://pv.sohu.com', : 'https://pv.sohu.com',
GET_ALL_GROUPS_INFO_FORUSER: GET_ALL_GROUPS_INFO_FORUSER: '/CityInterface/rest/Services/Portal.svc/AuthorityManage/GetAllGroupsInfoForUser',
'CityInterface/rest/Services/Portal.svc/AuthorityManage/GetAllGroupsInfoForUser',
GET_WEATHER: '/CityInterface/rest/services/CountyProduct.svc/GetWeather', GET_WEATHER: '/CityInterface/rest/services/CountyProduct.svc/GetWeather',
SEND_MESSAGE_CODE: SEND_MESSAGE_CODE:
'CityInterface/rest/services/portal.svc/SendMessVerificationCode', 'CityInterface/rest/services/portal.svc/SendMessVerificationCode',
...@@ -79,7 +87,9 @@ const services = { ...@@ -79,7 +87,9 @@ const services = {
}, },
getUserInfo: { getUserInfo: {
url: API.GET_USER_INFO, url: () => {
return window.globalConfig && window.globalConfig.hasGateWay? API.GET_GATEWAY_USER_INFO: API.GET_USER_INFO
},
method: constants.REQUEST_METHOD_GET, method: constants.REQUEST_METHOD_GET,
type: constants.REQUEST_HTTP, type: constants.REQUEST_HTTP,
}, },
...@@ -208,6 +218,31 @@ export const searchAutoCity = keywords => { ...@@ -208,6 +218,31 @@ export const searchAutoCity = keywords => {
return jsonp(url, params, options); return jsonp(url, params, options);
}; };
export const getUserInfo = (params) => {
const url = window.globalConfig && window.globalConfig.hasGateWay? API.GET_GATEWAY_USER_INFO: API.GET_USER_INFO
return request({
url: url,
method: constants.REQUEST_METHOD_GET,
params: params,
// params: param.query,
});
}
export const getWebSiteConfig = (params) => {
const url = window.globalConfig &&
window.globalConfig &&
window.globalConfig.hasGateWay
? API.GET_WEB_SITE_CONFIG_GEWAY
: API.GET_WEB_SITE_CONFIG;
return request({
url: url,
method: constants.REQUEST_METHOD_GET,
params: params,
// params: param.query,
});
}
// 更新常用页 // 更新常用页
export const savePagePartInfo = param => export const savePagePartInfo = param =>
request({ request({
...@@ -217,4 +252,5 @@ export const savePagePartInfo = param => ...@@ -217,4 +252,5 @@ export const savePagePartInfo = param =>
params: param.query, params: param.query,
}); });
export default services; export default services;
import * as constants from '../../constants'; import * as constants from '../../constants';
import { request } from '@wisdom-utils/utils';
const API = { const API = {
GET_INFORMATION: GET_INFORMATION:
'/CityInterface/rest/services/CountyProduct.svc/SCADAOper/GetInformationInfo', '/CityInterface/rest/services/CountyProduct.svc/SCADAOper/GetInformationInfo',
...@@ -34,4 +34,12 @@ const notificationService = { ...@@ -34,4 +34,12 @@ const notificationService = {
}, },
}; };
export const postInformationStatus = param =>
request({
url: API.POST_INFORMATION_STATUS,
method: constants.REQUEST_METHOD_POST,
data: param.data,
params: param.query,
});
export default notificationService; export default notificationService;
import 'whatwg-fetch';
import './public-path' import './public-path'
import '!file-loader?name=[name].[ext]!./images/favicon.ico'; import '!file-loader?name=[name].[ext]!./images/favicon.ico';
import './global.less'; import './global.less';
// import '@babel/polyfill';
import 'animate.css/animate.css'; import 'animate.css/animate.css';
import 'antd/dist/antd.less'; import 'antd/dist/antd.less';
import 'file-loader?name=.htaccess!./.htaccess'; // eslint-disable-line import/extensions import 'file-loader?name=.htaccess!./.htaccess'; // eslint-disable-line import/extensions
import 'kit_utils/lib/format'; import 'kit_utils/lib/format';
import 'sanitize.css/sanitize.css'; import 'sanitize.css/sanitize.css';
// import './locales/zh-CN'; import { event } from 'microser-data';
// import './loader'; import _ from 'lodash';
// import './vm'; import { ConfigProvider} from 'antd';
import React from 'react'; import { Storeage } from 'kit_utils';
import ReactDOM from 'react-dom';
import { Button, ConfigProvider, message, notification } from 'antd';
import { ConnectedRouter } from 'connected-react-router/immutable';
import Immutable from 'immutable';
import { params, Storeage } from 'kit_utils';
import { Provider } from 'react-redux';
import { history } from '@wisdom-utils/runtime'; import { history } from '@wisdom-utils/runtime';
import ErrorBoundary from './components/ErrorBoundary';
import { useIntl } from '@/locales/localeExports';
// import { ErrorBoundary } from '@ant-design/pro-utils';
import defaultSettings from '../config/defaultSetting';
// import themePluginConfig from '../config/themePluginConfig';
import { appService } from './api';
import { updateTheme } from './common/helpers/settingColor';
import Container from './components/Container';
import configureStore from './configureStore';
import App from './containers/App';
import { actionCreators } from './containers/App/store'; import { actionCreators } from './containers/App/store';
import { LocaleContainer } from './locales/locale'; import { initGlobalConfig } from './initConfig'
import { initMicroApps } from './micro';
import Login from './pages/user/login/login';
import { getToken, isString } from './utils/utils';
import './utils/event'; import './utils/event';
import Cookies from 'js-cookie';
const isHttps = document.location.protocol === 'https:'; import store from './stores'
const { pwa } = defaultSettings;
// eslint-disable-next-line no-restricted-globals
const namespace = `__PANDA_STORE__${location.hostname}`; const namespace = `__PANDA_STORE__${location.hostname}`;
window.createStoreage = new Storeage(namespace); window.createStoreage = new Storeage(namespace);
// eslint-disable-next-line no-underscore-dangle
const initialState = Immutable.Map();
const store = configureStore(initialState, history);
const MOUNT_NODE = document.getElementById('root');
ConfigProvider.config({ ConfigProvider.config({
prefixCls: 'panda-console-base' prefixCls: 'panda-console-base'
}); });
const render = () => {
// eslint-disable-next-line react-hooks/rules-of-hooks
ReactDOM.render(
<Provider store={store}>
<ConnectedRouter history={history}>
<LocaleContainer>
<ConfigProvider prefixCls="panda-console-base">
<ErrorBoundary>
<Container>
<App />
</Container>
</ErrorBoundary>
</ConfigProvider>
</LocaleContainer>
</ConnectedRouter>
</Provider>,
MOUNT_NODE,
);
};
// updateTheme('#ff9600');
const loader = (appContent, loading) => render({ appContent, loading });
const initLocale = () => { const initLocale = () => {
localStorage.setItem('umi_locale', 'zh-CN'); localStorage.setItem('umi_locale', 'zh-CN');
}; };
const PRODUCT_NAME = ['civ_water', 'civ_monitor']; // const PRODUCT_NAME = ['civ_water', 'civ_monitor'];
const initGlobalConfig = () => {
// eslint-disable-next-line no-debugger
// eslint-disable-next-line no-undef
let config = createStoreage.get('globalConfig') || {};
store.dispatch(actionCreators.updateComplexConfig({}));
if (!getToken() || config.token == null) {
// eslint-disable-next-line no-undef
createStoreage.remove(namespace);
config = {};
}
if (!params.getParams('client', window.location.search) && config) {
// eslint-disable-next-line no-undef
createStoreage.remove(namespace);
}
// eslint-disable-next-line no-undef
if (!createStoreage.get('globalConfig')) {
window.createStoreage = new Storeage(namespace);
}
if (!getToken()) {
localStorage.removeItem('loginSite');
}
if (config.token !== null && Object.keys(config).length > 0) {
store.dispatch(actionCreators.getConfig(config));
// render({ appContent: '', loading: true });
initMicroApps(loader, store);
if (config.isNewYear) {
updateTheme('#ff9600');
}
} else {
appService.getWateWayConfig().then(res => {
const hasGateWay =
res && res.data && isString(res.data) ? JSON.parse(res.data) : res.data;
if (res.code === 0) {
store.dispatch(
actionCreators.getConfig(
Object.assign({}, window.globalConfig, {
hasGateWay,
apiGatewayDomain: `${window.location.origin}/PandaCore/GateWay`,
}),
),
);
}
});
// eslint-disable-next-line react-hooks/rules-of-hooks
appService
.queryConfig({
client: params.getParams('client') || Cookies.get('city') || 'city',
})
.then(res => {
if (res) {
const data = res;
if (!data.client) {
data.client = 'city';
}
store.dispatch(
actionCreators.getConfig(
Object.assign({}, window.globalConfig, data),
),
);
if (data.loginTemplate === '新春 - 智联.html') {
updateTheme('#ff9600');
}
// eslint-disable-next-line no-new
if (getToken()) {
// eslint-disable-next-line no-new
new Login(
{
global: Object.assign({}, data, {
token: getToken(),
}),
// eslint-disable-next-line no-shadow
updateConfig: data =>
store.dispatch(actionCreators.getConfig(data)),
isInit: false,
logout: () => store.dispatch(actionCreators.logout()),
},
() => {
(async () => {
(await (getToken() &&
window.globalConfig &&
window.globalConfig.token)) && initMicroApps(loader, store);
})();
},
true,
);
}
// eslint-disable-next-line no-shadow
}
return res;
})
// eslint-disable-next-line no-shadow
.then(res => {
// eslint-disable-next-line no-use-before-define
initSensorType();
// eslint-disable-next-line no-use-before-define
initIsMock();
render({ appContent: '', loading: true });
})
.catch(error => {
store.dispatch(actionCreators.getConfigError(error));
});
}
};
const initSensorType = () => {
let filterProduct =
(window.globalConfig && window.globalConfig.products) || [];
filterProduct = filterProduct.filter(item =>
PRODUCT_NAME.includes(item.PackageName),
);
if (filterProduct.length > 0) {
appService.getSensorType().then(res => {
store.dispatch(
actionCreators.getConfig(
Object.assign({}, window.globalConfig, {
sensorType: res.data,
}),
),
);
});
}
};
const initIsMock = () => {
appService
.sysConfiguration({
moduleName: '是否mock数据',
})
.then(res => {
store.dispatch(
actionCreators.getConfig(
Object.assign({}, window.globalConfig, {
isMock: res.data === '是',
}),
),
);
});
};
initGlobalConfig(); initGlobalConfig();
initLocale(); initLocale();
window.share && const unlisten = history.listen(location => {
window.share.event && if(location.pathname.indexOf('/civbase/user/login') > -1) {
window.share.event.on('triggerMicro', () => { initGlobalConfig();
initMicroApps(loader, store);
});
if (pwa) {
// const appPWA = window.i18n.getI18n('app');
window.addEventListener('sw.offline', () => {
message.warning(useIntl().formatMessage({ id: 'app.pwa.offline' }));
});
window.addEventListener('sw.updated', event => {
const e = event;
const reloadSW = async () => {
const worker = e.detail && e.detail.waiting;
if (!worker) {
return true;
}
await new Promise((resolve, reject) => {
const channel = new MessageChannel();
channel.port1.onmessage = msgEvent => {
if (msgEvent.data.error) {
reject(msgEvent.data.error);
} else {
resolve(msgEvent.data);
} }
}; });
worker.postMessage({ type: 'skip-waiting' }, [channel.port2]);
});
window.location.reload(true);
return true;
};
const key = `open${Date.now()}`;
const btn = (
<Button
type="primary"
onClick={() => {
notification.close(key);
reloadSW();
}}
>
{useIntl().formatMessage({ id: 'app.pwa.serviceworker.updated.ok' })}
</Button>
);
notification.open({
message: useIntl().formatMessage({ id: 'pwa.serviceworker.updated' }),
description: useIntl().formatMessage({
id: 'pwa.serviceworker.updated.hint',
}),
btn,
key,
onClose: async () => null,
});
});
} else if ('serviceWorker' in navigator && isHttps) {
const { serviceWorker } = navigator;
if (serviceWorker.getRegistrations) {
serviceWorker.getRegistrations().then(sws => {
sws.forEach(sw => {
sw.unregister();
});
});
}
serviceWorker.getRegistration().then(sw => {
if (sw) sw.unregister();
});
if (window.caches && window.caches.keys) { event.on('event:logout', () => {
caches.keys().then(keys => { store.dispatch(actionCreators.logout())
keys.forEach(key => { });
caches.delete(key);
});
});
}
}
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
This diff was suppressed by a .gitattributes entry.
...@@ -12,11 +12,7 @@ export default class Container extends React.Component { ...@@ -12,11 +12,7 @@ export default class Container extends React.Component {
} }
oms(event) { oms(event) {
const omsUrl = [ const omsUrl = `${MaintenanceHost}/${MaintenancePath}`;
`${window.location.protocol}/`,
MaintenanceHost,
MaintenancePath,
].join('/');
window.open(omsUrl, '_blank'); window.open(omsUrl, '_blank');
} }
......
...@@ -11,7 +11,7 @@ import { ...@@ -11,7 +11,7 @@ import {
Upload, Upload,
} from 'antd'; } from 'antd';
import { withRouter } from 'react-router'; import { withRouter } from 'react-router';
import Cookies from 'js-cookie';
import { import {
FormattedMessage, FormattedMessage,
useIntl, useIntl,
...@@ -21,6 +21,7 @@ import { request } from '@wisdom-utils/utils'; ...@@ -21,6 +21,7 @@ import { request } from '@wisdom-utils/utils';
import { appService } from '../../api'; import { appService } from '../../api';
// eslint-disable-next-line import/named // eslint-disable-next-line import/named
import { API } from '../../api/service/base'; import { API } from '../../api/service/base';
import globalHeader from '../../locales/zh-CN/globalHeader';
import styles from './index.less'; import styles from './index.less';
// import i18n from '../../utils/share'; // import i18n from '../../utils/share';
...@@ -70,7 +71,10 @@ class AvatarDropdown extends React.Component { ...@@ -70,7 +71,10 @@ class AvatarDropdown extends React.Component {
window.location.href = `${window.location.origin}/#login`; window.location.href = `${window.location.origin}/#login`;
return false; return false;
} }
window.location.reload(); // console.log(this.props)
// this.props.history.push('/login')
// window.location.reload();
//
}; };
getRoles = () => { getRoles = () => {
...@@ -108,7 +112,8 @@ class AvatarDropdown extends React.Component { ...@@ -108,7 +112,8 @@ class AvatarDropdown extends React.Component {
appService.changePassword(params) appService.changePassword(params)
.then(res => { .then(res => {
if (res.success) { if (res.success) {
message.success(useIntl().formatMessage({id: 'component.account.password.update.success'})); //message.success(useIntl().formatMessage({id: 'component.account.password.update.success'}));
message.success(globalHeader['component.account.password.update.success']);
setTimeout(() => { setTimeout(() => {
this.setState({ this.setState({
visible: false, visible: false,
...@@ -211,13 +216,15 @@ class AvatarDropdown extends React.Component { ...@@ -211,13 +216,15 @@ class AvatarDropdown extends React.Component {
}) })
} }
formData.append("filedata", file); formData.append("filedata", file);
request.post(action, formData, { request(action, {
withCredentials, withCredentials,
headers: { headers: {
...headers, ...headers,
Accept: '*/*', Accept: '*/*',
'civ-site': '' 'civ-site': ''
}, },
method: 'post',
data: formData,
ignoreSite: true, ignoreSite: true,
onUploadProgress: ({ total, loaded }) => { onUploadProgress: ({ total, loaded }) => {
onProgress({ percent: Math.round((loaded / total) * 100).toFixed(2) }, file); onProgress({ percent: Math.round((loaded / total) * 100).toFixed(2) }, file);
...@@ -270,7 +277,8 @@ class AvatarDropdown extends React.Component { ...@@ -270,7 +277,8 @@ class AvatarDropdown extends React.Component {
appService.updateAvatar(params).then(res => { appService.updateAvatar(params).then(res => {
if(res.success) { if(res.success) {
message.success(useIntl().formatMessage({id: 'component.avatar.update.success'})); // message.success(useIntl().formatMessage({id: 'component.avatar.update.success'}));
message.success(globalHeader['component.avatar.update.success']);
self.setState({ self.setState({
currentUser: { currentUser: {
name: self.state.currentUser.name, name: self.state.currentUser.name,
...@@ -300,7 +308,7 @@ class AvatarDropdown extends React.Component { ...@@ -300,7 +308,7 @@ class AvatarDropdown extends React.Component {
const menuHeaderDropdown = ( const menuHeaderDropdown = (
<div className={styles.userInfo}> <div className={styles.userInfo}>
<div className={styles.header}> <div className={styles.header}>
<Upload className="avatar-uploader" {...uploadProps}> <Upload className="avatar-uploader" {...uploadProps} maxCount={1} itemRender={()=>(<></>)}>
<div <div
className={styles.avatar} className={styles.avatar}
style={{ backgroundImage: `url(${currentUser.avatar})` }} style={{ backgroundImage: `url(${currentUser.avatar})` }}
......
...@@ -3,10 +3,10 @@ import { message } from 'antd'; ...@@ -3,10 +3,10 @@ import { message } from 'antd';
import _, { words } from 'lodash'; import _, { words } from 'lodash';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { withRouter } from 'react-router'; import { withRouter } from 'react-router';
import { loadMicroApp } from 'qiankun';
import { useIntl } from '@/locales/localeExports'; import { useIntl } from '@/locales/localeExports';
import Icon from '@ant-design/icons'; import Icon from '@ant-design/icons';
import { setDefaultMountApp } from 'qiankun'
import { actionCreators } from '../../containers/App/store'; import { actionCreators } from '../../containers/App/store';
import HeaderSearch from '../HeaderSearch'; import HeaderSearch from '../HeaderSearch';
import Avatar from './AvatarDropdown'; import Avatar from './AvatarDropdown';
...@@ -122,10 +122,13 @@ const GlobalHeaderRight = props => { ...@@ -122,10 +122,13 @@ const GlobalHeaderRight = props => {
const goHome = event => { const goHome = event => {
event.stopPropagation(); event.stopPropagation();
const url = _.isString(props.global.get('homepage')) let url = _.isString(props.global.get('homepage'))
? props.global.get('homepage') ? props.global.get('homepage')
: props.global.get('homepage.url'); : props.global.get('homepage.url');
window.share.event.emit('goHome', `/civbase/civweb4/${url}`); if(!props.global.get('home')) {
url = `civweb4/${url}`
}
window.share.event.emit('goHome', `/${url}`);
url ? ( url ? (
window.share.event.emit('listenerMointer', { window.share.event.emit('listenerMointer', {
label: '首页', label: '首页',
...@@ -277,4 +280,4 @@ const mapDispatchToProps = dispatch => ({ ...@@ -277,4 +280,4 @@ const mapDispatchToProps = dispatch => ({
export default connect( export default connect(
mapStateToProps, mapStateToProps,
mapDispatchToProps, mapDispatchToProps,
)(withRouter(GlobalHeaderRight)); )(GlobalHeaderRight);
...@@ -236,4 +236,4 @@ const mapDispatchToProps = dispatch => ({ ...@@ -236,4 +236,4 @@ const mapDispatchToProps = dispatch => ({
export default connect( export default connect(
mapStateToProps, mapStateToProps,
mapDispatchToProps, mapDispatchToProps,
)(withRouter(GlobalHeaderRight)); )(GlobalHeaderRight);
...@@ -105,7 +105,7 @@ const SearchPanel = props => { ...@@ -105,7 +105,7 @@ const SearchPanel = props => {
} }
const goFeature = (path, rect, value) => { const goFeature = (path, rect, value) => {
// eslint-disable-next-line no-param-reassign // eslint-disable-next-line no-param-reassign
debugger
value = value || props.value; value = value || props.value;
const findKeywordIndex = const findKeywordIndex =
recentKeywords.length > 0 recentKeywords.length > 0
......
import React from 'react'; import React from 'react';
import _ from 'lodash';
import classNames from 'classnames'; import classNames from 'classnames';
import { findPathByWidget, isJSON } from '../../../../utils/utils'; import { findPathByWidget, isJSON } from '../../../../utils/utils';
import commonStyles from '../common.less'; import commonStyles from '../common.less';
...@@ -70,7 +70,7 @@ const Alarm = ({ message, confirmRead, config }) => { ...@@ -70,7 +70,7 @@ const Alarm = ({ message, confirmRead, config }) => {
<p style={{color: '#888'}} > <p style={{color: '#888'}} >
{ {
alarmContent && alarmContent.content.split(",")[1] alarmContent && _.isString(alarmContent.content) && alarmContent.content.split(",")[1]
} }
</p> </p>
<p className={commonStyles.messageTime}>{message.time}</p> <p className={commonStyles.messageTime}>{message.time}</p>
......
...@@ -4,6 +4,7 @@ import _ from 'lodash'; ...@@ -4,6 +4,7 @@ import _ from 'lodash';
import MqttClient from 'mqtt-client'; import MqttClient from 'mqtt-client';
import { noticeService } from '../../api'; import { noticeService } from '../../api';
import { postInformationStatus } from '../../api/service/notification';
import { isJSON } from '../../utils/utils'; import { isJSON } from '../../utils/utils';
import { import {
DEFAULT_KEEPLIVE, DEFAULT_KEEPLIVE,
...@@ -133,8 +134,9 @@ class Notifier { ...@@ -133,8 +134,9 @@ class Notifier {
if (isAll) hisIDs = this.messageCache.messages.map(item => item.id); if (isAll) hisIDs = this.messageCache.messages.map(item => item.id);
const self = this; const self = this;
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
noticeService.postInformationStatus({
userID: this.userInfo.OID, postInformationStatus({
userID: this.userInfo.OID || window.globalConfig.userInfo.OID,
hisID: hisIDs.join(','), hisID: hisIDs.join(','),
isAll: isAll ? 1 : '', isAll: isAll ? 1 : '',
}) })
......
...@@ -7,6 +7,7 @@ import styles from './min.less'; ...@@ -7,6 +7,7 @@ import styles from './min.less';
const Categories = props => { const Categories = props => {
const [currentIndex, setCurrentIndex] = useState(props.currentMenuIndex); const [currentIndex, setCurrentIndex] = useState(props.currentMenuIndex);
const selectCategories = (event, index) => { const selectCategories = (event, index) => {
debugger
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
event.nativeEvent.stopImmediatePropagation(); event.nativeEvent.stopImmediatePropagation();
...@@ -18,7 +19,7 @@ const Categories = props => { ...@@ -18,7 +19,7 @@ const Categories = props => {
<div className={classNames(styles['menu-categories'], { <div className={classNames(styles['menu-categories'], {
[styles['min-cateorites']]: props.mode [styles['min-cateorites']]: props.mode
})}> })}>
{(props.data || []).map((item, index) => { {(props.data || []).filter(item => !item.hideInMenu).map((item, index) => {
const categorieCls = classNames( const categorieCls = classNames(
styles['categorie-name'], styles['categorie-name'],
styles.btn, styles.btn,
...@@ -35,7 +36,8 @@ const Categories = props => { ...@@ -35,7 +36,8 @@ const Categories = props => {
<span>{item.extData.label}</span> <span>{item.extData.label}</span>
</div> </div>
); );
})} })
}
</div> </div>
); );
}; };
......
...@@ -3,10 +3,10 @@ import 'swagger-ui-react/swagger-ui.css'; ...@@ -3,10 +3,10 @@ import 'swagger-ui-react/swagger-ui.css';
import React from 'react'; import React from 'react';
import { Card } from 'antd'; import { Card } from 'antd';
import SwaggerUI from 'swagger-ui-react'; // import SwaggerUI from 'swagger-ui-react';
export default () => ( export default () => (
<Card> <Card>
<SwaggerUI url={`${window.location.origin}/civ-plugins_openapi.json`} /> {/* <SwaggerUI url={`${window.location.origin}/civ-plugins_openapi.json`} /> */}
</Card> </Card>
); );
...@@ -3,14 +3,9 @@ import React, { Suspense } from 'react'; ...@@ -3,14 +3,9 @@ import React, { Suspense } from 'react';
import { Helmet } from 'react-helmet'; import { Helmet } from 'react-helmet';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
// import { renderRoutes } from 'react-router-config'; // import { renderRoutes } from 'react-router-config';
import { renderRoutes } from '../../utils/routes' import { Router, Switch, Route, Redirect } from '@wisdom-utils/runtime';
import { renderRoutes } from '../../utils/routes';
// import BootPage from '../../pages/bootpage'; // import BootPage from '../../pages/bootpage';
import {
Router,
Switch,
Route,
Redirect
} from '@wisdom-utils/runtime';
import { dyRoutes } from '../../routes/config'; import { dyRoutes } from '../../routes/config';
// import routeContext from '@ant-design/pro-layout/lib/RouteContext'; // import routeContext from '@ant-design/pro-layout/lib/RouteContext';
...@@ -20,10 +15,14 @@ const pkg = require('../../../package.json'); ...@@ -20,10 +15,14 @@ const pkg = require('../../../package.json');
const config = require('../../../config/config'); const config = require('../../../config/config');
const defaultSetting = config.layout; const defaultSetting = config.layout;
function App(props) { function App(props) {
const { routes } = dyRoutes(props.menu); //
console.log("routes", routes) const metaSecurity = /https/.test(window.location.protocol) ? (
<meta
httpEquiv="Content-Security-Policy"
content="upgrade-insecure-requests"
/>
) : null;
return ( return (
<> <>
<Helmet <Helmet
...@@ -37,6 +36,7 @@ function App(props) { ...@@ -37,6 +36,7 @@ function App(props) {
href={`https://panda-water.cn/web4/${props.global && href={`https://panda-water.cn/web4/${props.global &&
props.global.shortcutIcon}`} props.global.shortcutIcon}`}
/> />
{metaSecurity}
<meta <meta
name="description" name="description"
content={`${props.global && props.global.title}`} content={`${props.global && props.global.title}`}
...@@ -44,7 +44,7 @@ function App(props) { ...@@ -44,7 +44,7 @@ function App(props) {
</Helmet> </Helmet>
<Router basename={config.base || pkg.name.toLocaleLowerCase() || ''}> <Router basename={config.base || pkg.name.toLocaleLowerCase() || ''}>
<Switch> <Switch>
{renderRoutes(dyRoutes(props.menu || []).routes)} {renderRoutes(dyRoutes(props.menu || [], props.global.layout).routes)}
</Switch> </Switch>
</Router> </Router>
</> </>
......
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
import { event } from 'microser-data';
import { import {
CLEAR_RCENT_KEYWORD, CLEAR_RCENT_KEYWORD,
COMPLEX_CONFIG, COMPLEX_CONFIG,
...@@ -185,8 +185,16 @@ export function logout(data) { ...@@ -185,8 +185,16 @@ export function logout(data) {
Cookies.set(window.globalConfig.client, '', { Cookies.set(window.globalConfig.client, '', {
path: '/', path: '/',
}); });
window.globalConfig.token = null;
window.globalConfig.access_token = null;
window.globalConfig.apiGatewayDomain = window.location.origin;
window.globalConfig.baseURI = window.location.origin;
window.globalConfig.hasGateWay = false;
window.globalConfig.userInfo = null;
// window.globalConfig.hasGateWay = ;
} }
Cookies.set('token', '', { Cookies.set('token', '', {
path: '/', path: '/',
}); });
...@@ -204,11 +212,14 @@ export function logout(data) { ...@@ -204,11 +212,14 @@ export function logout(data) {
localStorage.removeItem('access_token'); localStorage.removeItem('access_token');
// eslint-disable-next-line no-undef,no-restricted-globals // eslint-disable-next-line no-undef,no-restricted-globals
createStoreage.remove(`__PANDA_STORE__${location.hostname}`); createStoreage.remove(`__PANDA_STORE__${location.hostname}`);
createStoreage.remove(`__PANDA_STORE__MICRO_${location.hostname}`);
localStorage.removeItem('JmReport-Access-Token');
return { return {
type: LOGINOUT, type: LOGINOUT,
data: { data: {
currentMenuIndex: 0, currentMenuIndex: 0,
complexConfig: {}, complexConfig: {},
globalConfig: window.globalConfig
}, },
}; };
} }
...@@ -2,11 +2,12 @@ import { fromJS } from 'immutable'; ...@@ -2,11 +2,12 @@ import { fromJS } from 'immutable';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
import AppConfig from 'kit_global_config'; import AppConfig from 'kit_global_config';
import { Storeage as Store } from 'kit_utils'; import { Storeage as Store } from 'kit_utils';
import { store } from 'microser-data'; import { store, event } from 'microser-data';
import { Storage } from '@wisdom-utils/utils'; import { Storage } from '@wisdom-utils/utils';
import pkg from '../../../../package.json'; import pkg from '../../../../package.json';
import defaultSetting from '../../../../config/defaultSetting'; import defaultSetting from '../../../../config/defaultSetting';
import generRoutes, { generFlatRoutes } from '../../../utils/routes'; import generRoutes, { generFlatRoutes } from '../../../utils/routes';
import { transformWidgets } from '../../../utils/routes';
import { import {
CLEAR_RCENT_KEYWORD, CLEAR_RCENT_KEYWORD,
COMPLEX_CONFIG, COMPLEX_CONFIG,
...@@ -78,6 +79,7 @@ export const initialState = fromJS({ ...@@ -78,6 +79,7 @@ export const initialState = fromJS({
const appReducer = (state = initialState, action) => { const appReducer = (state = initialState, action) => {
switch (action.type) { switch (action.type) {
case GET_CONFIG: case GET_CONFIG:
// eslint-disable-next-line no-debugger // eslint-disable-next-line no-debugger
// eslint-disable-next-line no-underscore-dangle // eslint-disable-next-line no-underscore-dangle
window.__INITIAL_STATE__ = Object.assign( window.__INITIAL_STATE__ = Object.assign(
...@@ -95,30 +97,59 @@ const appReducer = (state = initialState, action) => { ...@@ -95,30 +97,59 @@ const appReducer = (state = initialState, action) => {
window.__INITIAL_STATE__.mdi = 'SDI'; window.__INITIAL_STATE__.mdi = 'SDI';
window.__INITIAL_STATE__.menu = 'banner-left'; window.__INITIAL_STATE__.menu = 'banner-left';
window.globalConfig = AppConfig(window.__INITIAL_STATE__); window.globalConfig = AppConfig(window.__INITIAL_STATE__);
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
createStoreage.set('globalConfig', window.globalConfig); createStoreage.set('globalConfig', window.globalConfig);
// eslint-disable-next-line no-undef,no-case-declarations // eslint-disable-next-line no-undef,no-case-declarations
const config = window.globalConfig; const config = window.globalConfig;
// config.access_token = ""; // config.access_token = "";
// eslint-disable-next-line no-case-declarations // eslint-disable-next-line no-case-declarations
const generMenu = generRoutes(config.widgets || []);
// eslint-disable-next-line no-case-declarations
const { homepage } = window.globalConfig; const { homepage } = window.globalConfig;
if (homepage !== '') { const modulePkg = {};
// const index = generMenu.findIndex(item => item.level === -1); window.globalConfig && window.globalConfig.products && Array.isArray(window.globalConfig.products) && window.globalConfig.products.map(item => {
// if (index > -1) { modulePkg[item.PackageName] = item;
// generMenu = generMenu.reverse(); });
// } config.widgets = transformWidgets(config.widgets);
const generMenu = generRoutes(config.widgets || [], null, 0, modulePkg);
let flatMenu = [];
if(generMenu) {
flatMenu = generFlatRoutes(generMenu || [], null, null, modulePkg);
}
const home = flatMenu.find(item => {
let path = decodeURI(item.path).split("|");
let currentPath = path[0];
if(/^\//.test(currentPath)) {
currentPath = currentPath.replace(/^\//, '');
}
return currentPath === decodeURI(homepage)
});
let currentMenuIndex = 0;
if(home) {
const parent = home.level >= 2 ? home.parent.parent: home.level >= 3 ? home.parent.parent.parent: home.parent;
if(parent) {
currentMenuIndex = generMenu.findIndex(item => item.name === parent.label);
currentProduct.set('currentMenuIndex', currentMenuIndex);
store.set('updateMenuIndex', currentMenuIndex)
}
} }
// eslint-disable-next-line no-case-declarations // eslint-disable-next-line no-case-declarations
const flatMenu = generFlatRoutes(generMenu || []);
// eslint-disable-next-line no-case-declarations
window.globalConfig.home = home;
Cookies.set('city', Cookies.get('city') || window.globalConfig.client); Cookies.set('city', Cookies.get('city') || window.globalConfig.client);
window.globalConfig = config;
return state.merge({ return state.merge({
globalConfig: config, globalConfig: config,
menu: generMenu, menu: generMenu || [],
flatMenu, flatMenu,
currentMenu: generMenu[state.currentMenuIndex], currentMenu: generMenu && generMenu[state.currentMenuIndex],
}); });
case GET_ERROR_CONFIG: case GET_ERROR_CONFIG:
return state.merge({ return state.merge({
...@@ -204,9 +235,11 @@ const appReducer = (state = initialState, action) => { ...@@ -204,9 +235,11 @@ const appReducer = (state = initialState, action) => {
microMounted: action.data, microMounted: action.data,
}); });
case LOGINOUT: case LOGINOUT:
event.emit('event: application-logout', action.data);
return state.merge({ return state.merge({
complexConfig: action.data.complexConfig, complexConfig: action.data.complexConfig,
currentMenuIndex: action.data.currentMenuIndex, currentMenuIndex: action.data.currentMenuIndex,
globalConfig: action.data.globalConfig
}); });
case MAP_VIEW: case MAP_VIEW:
store.set('view', action.data); store.set('view', action.data);
......
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> -->
<!-- The first thing in any HTML file should be the charset --> <!-- The first thing in any HTML file should be the charset -->
<meta charset="utf-8" /> <meta charset="utf-8" />
<!-- Make the page mobile compatible --> <!-- Make the page mobile compatible -->
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
event: new EventEmitter(), event: new EventEmitter(),
}; };
window.share.event.setMaxListeners(1000); window.share.event.setMaxListeners(50000);
window.umi_plugin_ant_themeVar = [ window.umi_plugin_ant_themeVar = [
{ key: 'dark', fileName: 'dark.css', theme: 'dark' }, { key: 'dark', fileName: 'dark.css', theme: 'dark' },
......
import { appService } from './api';
import { initMicroApps } from './micro';
import { params, Storeage } from 'kit_utils';
import Cookies from 'js-cookie';
import { actionCreators } from './containers/App/store';
import { getToken, isString } from './utils/utils';
import loader, { render } from './render';
import store from './stores';
import Login from './pages/user/login/login';
const namespace = `__PANDA_STORE__${location.hostname}`;
window.createStoreage = new Storeage(namespace);
export const initGlobalConfig = () => {
// eslint-disable-next-line no-debugger
// eslint-disable-next-line no-undef
createStoreage.remove(`__PANDA_STORE__${location.hostname}`);
window.globalConfig = {};
window.__INITIAL_STATE__ = {};
let config = window.globalConfig || {};
//createStoreage.get('globalConfig') || {};
store.dispatch(actionCreators.updateComplexConfig({}));
if (!getToken() || config.token == null) {
// eslint-disable-next-line no-undef
createStoreage.remove(namespace);
config = {};
}
if (!params.getParams('client', window.location.search) && config) {
// eslint-disable-next-line no-undef
createStoreage.remove(namespace);
}
// eslint-disable-next-line no-undef
if (!createStoreage.get('globalConfig')) {
window.createStoreage = new Storeage(namespace);
}
if (!getToken()) {
localStorage.removeItem('loginSite');
}
if (window.globalConfig.token !== null && Object.keys(window.globalConfig).length > 0) {
store.dispatch(actionCreators.getConfig(window.globalConfig));
// render({ appContent: '', loading: true });
initMicroApps(loader, store);
if (config.isNewYear) {
updateTheme('#ff9600');
}
} else {
appService.getWateWayConfig().then(res => {
const hasGateWay =
res && res.data && isString(res.data) ? JSON.parse(res.data) : res.data;
if (res.code === 0 && res.data === 'true') {
store.dispatch(
actionCreators.getConfig(
Object.assign({}, window.globalConfig, {
hasGateWay,
apiGatewayDomain: `${window.location.origin}/PandaCore`,
}),
),
);
}
});
// eslint-disable-next-line react-hooks/rules-of-hooks
const client = params.getParams('client') || Cookies.get('city')
appService
.queryConfig({
client: client || 'city',
})
.then(res => {
if (res) {
store.dispatch(actionCreators.getConfig(Object.assign({})));
const data = res;
if (!data.client) {
data.client = params.getParams('client') || Cookies.get('city');
}
// Cookies.set('city', data.client);
store.dispatch(
actionCreators.getConfig(
Object.assign({}, data, {
token: '',
access_token: '',
userInfo: null
}),
),
);
//Cookies.set('city', params.getParams('client'))
if (data.loginTemplate === '新春 - 智联.html') {
updateTheme('#ff9600');
}
// eslint-disable-next-line no-new
if (getToken()) {
// eslint-disable-next-line no-new
new Login(
{
global: Object.assign({}, data, {
token: getToken(),
}),
// eslint-disable-next-line no-shadow
updateConfig: data =>store.dispatch(actionCreators.getConfig(data)),
isInit: false,
logout: () => store.dispatch(actionCreators.logout()),
},
() => {
(async () => {
(await (getToken() &&
window.globalConfig &&
window.globalConfig.token)) && initMicroApps(loader, store);
})();
},
true,
);
}
// eslint-disable-next-line no-shadow
}
return res;
})
// eslint-disable-next-line no-shadow
.then(res => {
// eslint-disable-next-line no-use-before-define
// initSensorType();
// eslint-disable-next-line no-use-before-define
// initIsMock();
render({ appContent: '', loading: true });
})
.catch(error => {
console.log(error);
store.dispatch(actionCreators.getConfigError(error));
});
}
};
\ No newline at end of file
...@@ -463,7 +463,10 @@ const BasicLayout = props => { ...@@ -463,7 +463,10 @@ const BasicLayout = props => {
useEffect(() => { useEffect(() => {
siteAction.setGlobalConfig(props.global); siteAction.setGlobalConfig(props.global);
if (!Cookies.get('token')) { if (!Cookies.get('token')) {
history.replace(`/user/login?client=${props.global.get('client')}`);
let client = props.global.get('client');
client = _.isNull(client) || _.isUndefined(client) || client === 'undefined' ? client: 'city';
history.replace(`/user/login?client=${client}`);
props.logout(); props.logout();
return; return;
} }
...@@ -836,7 +839,7 @@ const BasicLayout = props => { ...@@ -836,7 +839,7 @@ const BasicLayout = props => {
if (lastIndex >= 0) { if (lastIndex >= 0) {
history.push(newTabList[lastIndex].path); history.push(newTabList[lastIndex].path);
} else { } else {
history.replace(`/civweb4/${props.global.homepage}`); history.replace(`/${props.global.homepage}`);
} }
props.updateSelectedKeys(newActiveKey); props.updateSelectedKeys(newActiveKey);
props.updatePathname(newActiveKey); props.updatePathname(newActiveKey);
......
...@@ -129,12 +129,18 @@ ...@@ -129,12 +129,18 @@
} }
} }
} }
svg { // svg {
path { // path:not(.st0) {
fill: #fff!important; // fill: #fff!important;
} // }
} // path.st0 {
// fill:url(#SVGID_1_)!important;
// }
// path.st1 {
// fill:url(#SVGID_2_)!important;
// }
// }
} }
} }
&.active { &.active {
...@@ -146,7 +152,7 @@ ...@@ -146,7 +152,7 @@
.icon { .icon {
svg { svg {
path, rect, circle { path, rect, circle {
fill: #fff!important; // fill: #fff!important;
} }
} }
...@@ -226,8 +232,10 @@ ...@@ -226,8 +232,10 @@
height: 100%; height: 100%;
padding-left: 7px; padding-left: 7px;
img { img {
width: 48px; //width: 48px;
height: 25px; width: 42px;
height: auto;
//height: 25px;
} }
} }
.title { .title {
......
...@@ -34,7 +34,7 @@ import { Router, Switch } from '@wisdom-utils/runtime'; ...@@ -34,7 +34,7 @@ import { Router, Switch } from '@wisdom-utils/runtime';
import RightContent from '@/components/GlobalHeader/ExtendRightContent'; import RightContent from '@/components/GlobalHeader/ExtendRightContent';
import Panel from '@/components/SliderPanel/MinPanel'; import Panel from '@/components/SliderPanel/MinPanel';
import { actionCreators } from '@/containers/App/store'; import { actionCreators } from '@/containers/App/store';
import CreateBaseMap from '@/pages/map'; // import CreateBaseMap from '@/pages/map';
import CesiumMap from '@/pages/cesiumMap' import CesiumMap from '@/pages/cesiumMap'
// import Authorized from '@/utils/Authorized'; // import Authorized from '@/utils/Authorized';
import { import {
...@@ -63,7 +63,7 @@ const homeSvg = () => ( ...@@ -63,7 +63,7 @@ const homeSvg = () => (
<svg t="1631169883330" className="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2203" width="20" height="20"><path d="M423.9 487H221.7c-34.9 0-63.4-28.4-63.4-63.4V221.5c0-34.9 28.4-63.4 63.4-63.4h202.2c34.9 0 63.4 28.4 63.4 63.4v202.2c-0.1 34.9-28.5 63.3-63.4 63.3z m0-63.3v31.7-31.7zM221.7 221.5v202.2h202.1l0.1-202.2H221.7zM803.1 487H600.9c-34.9 0-63.4-28.4-63.4-63.4V221.5c0-34.9 28.4-63.4 63.4-63.4h202.2c34.9 0 63.4 28.4 63.4 63.4v202.2c0 34.9-28.5 63.3-63.4 63.3z m0-63.3v31.7-31.7zM600.9 221.5v202.2H803l0.1-202.2H600.9zM423.9 865.8H221.7c-34.9 0-63.4-28.4-63.4-63.4V600.3c0-34.9 28.4-63.4 63.4-63.4h202.2c34.9 0 63.4 28.4 63.4 63.4v202.2c-0.1 34.9-28.5 63.3-63.4 63.3z m0-63.3v31.7-31.7zM221.7 600.3v202.2h202.1l0.1-202.2H221.7zM736.9 865.8h-69.7c-71.4 0-129.6-58.1-129.6-129.6v-69.7c0-71.4 58.1-129.6 129.6-129.6h69.7c71.4 0 129.6 58.1 129.6 129.6v69.7c0 71.5-58.2 129.6-129.6 129.6z m-69.8-265.5c-36.5 0-66.2 29.7-66.2 66.2v69.7c0 36.5 29.7 66.2 66.2 66.2h69.7c36.5 0 66.2-29.7 66.2-66.2v-69.7c0-36.5-29.7-66.2-66.2-66.2h-69.7z" fill="#B2B2B2" p-id="2204"></path></svg> <svg t="1631169883330" className="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2203" width="20" height="20"><path d="M423.9 487H221.7c-34.9 0-63.4-28.4-63.4-63.4V221.5c0-34.9 28.4-63.4 63.4-63.4h202.2c34.9 0 63.4 28.4 63.4 63.4v202.2c-0.1 34.9-28.5 63.3-63.4 63.3z m0-63.3v31.7-31.7zM221.7 221.5v202.2h202.1l0.1-202.2H221.7zM803.1 487H600.9c-34.9 0-63.4-28.4-63.4-63.4V221.5c0-34.9 28.4-63.4 63.4-63.4h202.2c34.9 0 63.4 28.4 63.4 63.4v202.2c0 34.9-28.5 63.3-63.4 63.3z m0-63.3v31.7-31.7zM600.9 221.5v202.2H803l0.1-202.2H600.9zM423.9 865.8H221.7c-34.9 0-63.4-28.4-63.4-63.4V600.3c0-34.9 28.4-63.4 63.4-63.4h202.2c34.9 0 63.4 28.4 63.4 63.4v202.2c-0.1 34.9-28.5 63.3-63.4 63.3z m0-63.3v31.7-31.7zM221.7 600.3v202.2h202.1l0.1-202.2H221.7zM736.9 865.8h-69.7c-71.4 0-129.6-58.1-129.6-129.6v-69.7c0-71.4 58.1-129.6 129.6-129.6h69.7c71.4 0 129.6 58.1 129.6 129.6v69.7c0 71.5-58.2 129.6-129.6 129.6z m-69.8-265.5c-36.5 0-66.2 29.7-66.2 66.2v69.7c0 36.5 29.7 66.2 66.2 66.2h69.7c36.5 0 66.2-29.7 66.2-66.2v-69.7c0-36.5-29.7-66.2-66.2-66.2h-69.7z" fill="#B2B2B2" p-id="2204"></path></svg>
); );
const arrowSvg = ({fillColor = '#fff'}) => ( const arrowSvg = ({ fillColor = '#fff' }) => (
<svg t="1543324489942" <svg t="1543324489942"
className="icon" viewBox="0 0 1024 1024" className="icon" viewBox="0 0 1024 1024"
version="1.1" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns="http://www.w3.org/2000/svg"
...@@ -72,7 +72,7 @@ const arrowSvg = ({fillColor = '#fff'}) => ( ...@@ -72,7 +72,7 @@ const arrowSvg = ({fillColor = '#fff'}) => (
<path d="M511.700683 639.423111 191.917496 319.596945 319.830771 319.596945 511.700683 511.715521 703.570595 319.596945 831.48387 319.596945Z" p-id="8626" fill={fillColor}></path> <path d="M511.700683 639.423111 191.917496 319.596945 319.830771 319.596945 511.700683 511.715521 703.570595 319.596945 831.48387 319.596945Z" p-id="8626" fill={fillColor}></path>
</svg> </svg>
); );
const HomeIcon = props => <Icon component={homeSvg} {...props} style={{marginRight: '0px'}}/>; const HomeIcon = props => <Icon component={homeSvg} {...props} style={{ marginRight: '0px' }} />;
const ArrowIcon = props => <Icon component={arrowSvg} {...props} />; const ArrowIcon = props => <Icon component={arrowSvg} {...props} />;
// const { TabPane } = Tabs; // const { TabPane } = Tabs;
...@@ -185,7 +185,7 @@ const Stations = props => { ...@@ -185,7 +185,7 @@ const Stations = props => {
); );
}; };
const renderSite = ({data, config, loading, setLoading, action}) => { const renderSite = ({ data, config, loading, setLoading, action }) => {
const [visible, setVisible] = useState(false); const [visible, setVisible] = useState(false);
let loaded = !!((data && !data.stations) || (Array.isArray(data.weathers) && data.weathers.length === 0)); let loaded = !!((data && !data.stations) || (Array.isArray(data.weathers) && data.weathers.length === 0));
if (config && config.userInfo && config.userInfo.site === '') { if (config && config.userInfo && config.userInfo.site === '') {
...@@ -217,9 +217,9 @@ const renderSite = ({data, config, loading, setLoading, action}) => { ...@@ -217,9 +217,9 @@ const renderSite = ({data, config, loading, setLoading, action}) => {
onVisibleChange={visible => setVisible(visible)} onVisibleChange={visible => setVisible(visible)}
> >
{ {
Array.isArray(data.stations) && data.stations.length > 0 ? ( Array.isArray(data.stations) ? (
<div className={layoutStyles.toggleSite}> <div className={layoutStyles.toggleSite}>
<img src={require('../assets/basic/site.png')} className={layoutStyles.site}/> <img src={require('../assets/basic/site.png')} className={layoutStyles.site} />
<span className={layoutStyles.name}>{data.currentStationName}</span> <span className={layoutStyles.name}>{data.currentStationName}</span>
<ArrowIcon className={layoutStyles.arrow} fillColor="#fff" <ArrowIcon className={layoutStyles.arrow} fillColor="#fff"
style={{ style={{
...@@ -227,7 +227,7 @@ const renderSite = ({data, config, loading, setLoading, action}) => { ...@@ -227,7 +227,7 @@ const renderSite = ({data, config, loading, setLoading, action}) => {
}} }}
/> />
</div> </div>
): null ) : null
} }
</Popover> </Popover>
</> </>
...@@ -240,7 +240,7 @@ const renderSite = ({data, config, loading, setLoading, action}) => { ...@@ -240,7 +240,7 @@ const renderSite = ({data, config, loading, setLoading, action}) => {
data.stations.length === 0 ? '0px' : '1px solid rgba(256, 256, 256, 0.3)', data.stations.length === 0 ? '0px' : '1px solid rgba(256, 256, 256, 0.3)',
}} }}
> >
<img src={data.weathers && data.weathers.icon} className={layoutStyles.icon}/> <img src={data.weathers && data.weathers.icon} className={layoutStyles.icon} />
<span className={layoutStyles.text}>{data.weathers && data.weathers.text}</span> <span className={layoutStyles.text}>{data.weathers && data.weathers.text}</span>
</span> </span>
) : null} ) : null}
...@@ -253,7 +253,6 @@ const BasicLayout = props => { ...@@ -253,7 +253,6 @@ const BasicLayout = props => {
/* eslint-disable no-unused-vars */ /* eslint-disable no-unused-vars */
const { getPrefixCls } = useContext(ConfigProvider.ConfigContext); const { getPrefixCls } = useContext(ConfigProvider.ConfigContext);
const prefixCls = props.prefixCls || getPrefixCls(''); const prefixCls = props.prefixCls || getPrefixCls('');
console.log("prefixCls", prefixCls);
// const [currentRoutes, setCurrentRoutes] = useState([]); // const [currentRoutes, setCurrentRoutes] = useState([]);
const [collapse, setCollapse] = useState(false); const [collapse, setCollapse] = useState(false);
const [toggleSystem, setToggleSystem] = useState(false); const [toggleSystem, setToggleSystem] = useState(false);
...@@ -270,7 +269,11 @@ const BasicLayout = props => { ...@@ -270,7 +269,11 @@ const BasicLayout = props => {
const basename = getBaseName(); const basename = getBaseName();
const history = useHistory(); const history = useHistory();
let currentRoutes = props.route.routes[props.currentMenuIndex] // 处理隐藏菜单
let currentRoutes = props.route.routes.filter(item => !item.hideInMenu)[props.currentMenuIndex];
console.log(props.route)
//props.currentMenuIndex
useEffect(() => { useEffect(() => {
const initSelectRoute = findPathByLeafId( const initSelectRoute = findPathByLeafId(
`${props.location && props.location.pathname || ''}`, `${props.location && props.location.pathname || ''}`,
...@@ -281,13 +284,13 @@ const BasicLayout = props => { ...@@ -281,13 +284,13 @@ const BasicLayout = props => {
); );
const parentMenuName = initSelectRoute && initSelectRoute.parent && initSelectRoute.parent.label; const parentMenuName = initSelectRoute && initSelectRoute.parent && initSelectRoute.parent.label;
if(parentMenuName) { if (parentMenuName) {
let currentChildrenRoute = currentRoutes.routes.find(item => item.name === parentMenuName); let currentChildrenRoute = currentRoutes.routes.find(item => item.name === parentMenuName);
if(!currentChildrenRoute) { if (!currentChildrenRoute) {
currentChildrenRoute = initSelectRoute currentChildrenRoute = initSelectRoute
} }
let childrenName = currentChildrenRoute ? currentChildrenRoute.name: parentMenuName; let childrenName = currentChildrenRoute ? currentChildrenRoute.name : parentMenuName;
if(currentChildrenRoute.routes) { if (currentChildrenRoute.routes) {
const active = currentChildrenRoute.routes.find(item => item.name === initSelectRoute.name); const active = currentChildrenRoute.routes.find(item => item.name === initSelectRoute.name);
setTabActiveKey(active.path) setTabActiveKey(active.path)
} else { } else {
...@@ -295,28 +298,32 @@ const BasicLayout = props => { ...@@ -295,28 +298,32 @@ const BasicLayout = props => {
} }
const initSelectIndex = currentRoutes.routes.findIndex(item => item.name === childrenName); const initSelectIndex = currentRoutes.routes.findIndex(item => item.name === childrenName);
setSelectIndex(initSelectIndex); setSelectIndex(initSelectIndex);
currentChildrenRoute && currentChildrenRoute.routes ? setChildrenRoutes(currentChildrenRoute.routes): setChildrenRoutes([currentChildrenRoute]); currentChildrenRoute && currentChildrenRoute.routes ? setChildrenRoutes(currentChildrenRoute.routes) : setChildrenRoutes([currentChildrenRoute]);
} else { } else {
setChildrenRoutes([ setChildrenRoutes([
{ {
icon: <HomeIcon/>, icon: <HomeIcon />,
path: props.location && props.location.pathname, path: props.location && props.location.pathname,
name: '首页' name: '首页'
} }
]) ])
} }
}, []); }, []);
window.share && window.share.event && window.share.event.on('event:updateCurrentChildrenRoutes', ({currentPath, currentRoute, selectedIndex}) => {
currentRoute && currentRoute.parent && currentRoute.parent.routes ? setChildrenRoutes(currentRoute.parent.routes): !currentRoute.parent ? setChildrenRoutes(currentRoute.routes): setChildrenRoutes([currentRoute]); useEffect(() => {
console.log(props.route.routes);
}, [props.currentMenuIndex]);
window.share && window.share.event && window.share.event.on('event:updateCurrentChildrenRoutes', ({ currentPath, currentRoute, selectedIndex }) => {
currentRoute && currentRoute.parent && currentRoute.parent.routes ? setChildrenRoutes(currentRoute.parent.routes) : !currentRoute.parent ? setChildrenRoutes(currentRoute.routes) : setChildrenRoutes([currentRoute]);
setSelectIndex(selectedIndex); setSelectIndex(selectedIndex);
setTabActiveKey(currentPath) setTabActiveKey(currentPath)
}); });
window.share && window.share.event && window.share.event.on('event:favitor', ({icon, name, path}) => { window.share && window.share.event && window.share.event.on('event:favitor', ({ icon, name, path }) => {
setChildrenRoutes([ setChildrenRoutes([
{ {
icon: <HomeIcon/>, icon: <HomeIcon />,
path: path, path: path,
name: name name: name
} }
...@@ -325,7 +332,11 @@ const BasicLayout = props => { ...@@ -325,7 +332,11 @@ const BasicLayout = props => {
useEffect(() => { useEffect(() => {
siteAction.setGlobalConfig(props.global); siteAction.setGlobalConfig(props.global);
if (!Cookies.get('token')) { if (!Cookies.get('token')) {
history.replace(`/user/login?client=${props.global.get('client')}`); let client = props.global && props.global.client;
client = client !== 'undefined' && !_.isNull(client) && !_.isUndefined(client) ? client : 'city';
let generateType = props.global && props.global.hasOwnProperty('get') && props.global.get('generateType');
generateType = !_.isNull(generateType) && !_.isUndefined(generateType) && generateType !== 'undefined' ? `&generateType=${generateType}` : '';
history.replace(`/user/login?client=${client}${generateType}`);
props.logout(); props.logout();
return; return;
} }
...@@ -344,24 +355,30 @@ const BasicLayout = props => { ...@@ -344,24 +355,30 @@ const BasicLayout = props => {
// setChildrenRoutes(currentChildrenRoute) // setChildrenRoutes(currentChildrenRoute)
window.share.event.on('goHome', url => { window.share.event.on('goHome', url => {
setChildrenRoutes([ setChildrenRoutes([
{ {
icon: <HomeIcon/>, icon: <HomeIcon />,
path: url, path: url,
name: '首页' name: '首页'
} }
]) ]);
setTabActiveKey(url);
window.history.pushState(null, '', `/civbase${url}`);
}); });
/** /**
* web4全屏退出,切换三级菜单高亮 * web4全屏退出,切换三级菜单高亮
*/ */
useEffect(() => { useEffect(() => {
if(selectIndex !== -1) { if (selectIndex !== -1) {
const routes = currentRoutes.routes[selectIndex]; const routes = currentRoutes.routes[selectIndex];
if(routes) { if (routes) {
if( routes && routes.routes) { if (routes && routes.routes) {
const route = routes && routes.routes && routes.routes.find(item => item.path === decodeURI(window.location.pathname.replace('/civbase', ''))); const route = routes && routes.routes && routes.routes.find(item => item.path === decodeURI(window.location.pathname.replace('/civbase', '')));
if(route && route.path) { if (route && route.path) {
setTabActiveKey(route.path) setTabActiveKey(route.path)
} }
} }
...@@ -393,24 +410,33 @@ const BasicLayout = props => { ...@@ -393,24 +410,33 @@ const BasicLayout = props => {
}, []); }, []);
const handlerSecond = (item, index) => { const handlerSecond = (item, index) => {
let current = void 0; let current = void 0;
if(item && item.routes) { if (item && item.routes) {
setChildrenRoutes(item.routes); setChildrenRoutes(item.routes);
current = item.routes[0]; current = item.routes[0];
} else{ } else {
setChildrenRoutes([item]); setChildrenRoutes([item]);
current = item; current = item;
} }
setTabActiveKey(current.path); setTabActiveKey(current.path);
setSelectIndex(index); setSelectIndex(index);
if(current.routes) { if (current.routes) {
setSelectedKeys([current.routes[0].href]); setSelectedKeys([current.routes[0].href]);
window.history.pushState(null, '', `/civbase${current.routes[0].path}`); window.history.pushState(null, '', `/civbase${current.routes[0].path}`);
} else {
if (/iframe/.test(current.path)) {
history.push({
pathname: '/iframe',
state: current.params
})
} else { } else {
window.history.pushState(null, '', `/civbase${current.path}`); window.history.pushState(null, '', `/civbase${current.path}`);
} }
}
} }
...@@ -419,6 +445,7 @@ const BasicLayout = props => { ...@@ -419,6 +445,7 @@ const BasicLayout = props => {
} }
const handleUpdateCurrentIndex = index => { const handleUpdateCurrentIndex = index => {
setSelectIndex(-1) setSelectIndex(-1)
props.updateCurrentIndex(index); props.updateCurrentIndex(index);
window.share && window.share.event.emit('trigger:updateMenuIndex', index); window.share && window.share.event.emit('trigger:updateMenuIndex', index);
...@@ -426,13 +453,15 @@ const BasicLayout = props => { ...@@ -426,13 +453,15 @@ const BasicLayout = props => {
} }
const handleSelectMenuItem = (item) => { const handleSelectMenuItem = (item) => {
setTabActiveKey(item); setTabActiveKey(item);
if(item.indexOf('web_console') === -1) { if (item.indexOf('web_console') === -1) {
window.history.pushState(null, '', `/civbase${item}`); window.history.pushState(null, '', `/civbase${item}`);
} }
} }
const handlerSelectMenu = ({ item, key, keyPath, domEvent }) => { const handlerSelectMenu = ({ item, key, keyPath, domEvent }) => {
debugger
setSelectedKeys([key]); setSelectedKeys([key]);
window.history.pushState(null, '', `/civbase${key}`); window.history.pushState(null, '', `/civbase${key}`);
} }
...@@ -458,7 +487,7 @@ const BasicLayout = props => { ...@@ -458,7 +487,7 @@ const BasicLayout = props => {
<span>{item.name}</span> <span>{item.name}</span>
</div> </div>
</Menu.Item> </Menu.Item>
<Divider style={{width: '80%', minWidth: '80%', margin: '0 auto'}}></Divider> <Divider style={{ width: '80%', minWidth: '80%', margin: '0 auto' }}></Divider>
</> </>
) )
}) })
...@@ -470,10 +499,10 @@ const BasicLayout = props => { ...@@ -470,10 +499,10 @@ const BasicLayout = props => {
<Dropdown overlay={menu} overlayClassName={`${prefixCls}-dropdown-custom-menu`}> <Dropdown overlay={menu} overlayClassName={`${prefixCls}-dropdown-custom-menu`}>
<div > <div >
{ {
/.svg/.test(route.extData.icon) ?<ReactSVG src={route.extData.icon} style={{width: '18px', height: '18px', position: 'relative', top: '-3px'}}/>: <img src={route.extData.icon} style={{width: '18px', height: '18px'}}/> /.svg/.test(route.extData.icon) ? <ReactSVG src={route.extData.icon} style={{ width: '18px', height: '18px', position: 'relative', top: '-3px' }} /> : <img src={route.extData.icon} style={{ width: '18px', height: '18px' }} />
} }
<span style={{marginLeft: '8px'}}>{route.name} </span> <span style={{ marginLeft: '8px' }}>{route.name} </span>
<DownOutlined style={{position: 'relative', right: '-10px'}}/> <DownOutlined style={{ position: 'relative', right: '-10px' }} />
</div> </div>
</Dropdown> </Dropdown>
<Divider type="vertical" /> <Divider type="vertical" />
...@@ -489,47 +518,36 @@ const BasicLayout = props => { ...@@ -489,47 +518,36 @@ const BasicLayout = props => {
setCollapse(!collapse); setCollapse(!collapse);
} }
const logo = props.global.get('bannerLogo')? window.globalConfig.transformDevAssetsBaseURL(props.global.get('bannerLogo')): defaultSetting.logo; const logo = props.global && props.global.get('bannerLogo') ? (props.global && _.isFunction(props.global.transformDevAssetsBaseURL) && props.global.transformDevAssetsBaseURL(props.global.get('bannerLogo'))) : defaultSetting.logo;
return ( return (
<SecurityLayout loading> <SecurityLayout loading>
{collapse && props.global.loginTemplate === '新春 - 智联.html' ? null : ( {
props.global.loginTemplate === '新春 - 智联.html' && ( props.global.layout !== 'blank' ? (
<img
src={logo}
style={{
width: '120px',
position: 'absolute',
bottom: '40px',
zIndex: 500,
left: '12px',
}}
/>)
)}
<div className={classNames(layoutStyles.basicLayout)}> <div className={classNames(layoutStyles.basicLayout)}>
<div className={layoutStyles['layout-has-slider']} style={{minHeight: '100%'}}> <div className={layoutStyles['layout-has-slider']} style={{ minHeight: '100%' }}>
<div style={{ <div style={{
width: collapse ? '48px': '80px', width: collapse ? '48px' : '80px',
overflow: 'hidden', overflow: 'hidden',
flex: collapse ? '0 0 48px': '0 0 80px', flex: collapse ? '0 0 48px' : '0 0 80px',
maxWidth: collapse ? '48px':'80px', maxWidth: collapse ? '48px' : '80px',
minWidth: collapse ? '48px':'80px', minWidth: collapse ? '48px' : '80px',
transition: 'background-color 0.3s ease 0s, min-width 0.3s ease 0s, max-width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) 0s' transition: 'background-color 0.3s ease 0s, min-width 0.3s ease 0s, max-width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) 0s'
}}></div> }}></div>
<aside className={classNames(layoutStyles.layoutSlider, layoutStyles.fixed, { <aside className={classNames(layoutStyles.layoutSlider, layoutStyles.fixed, {
[layoutStyles.collapsed]: collapse [layoutStyles.collapsed]: collapse
})}> })}>
<div className={layoutStyles['layout-slider-childern']}> <div className={layoutStyles['layout-slider-childern']}>
<div className={layoutStyles.sliderMenu} style={{flex: '1 1 0%', overflow: 'hidden auto'}}> <div className={layoutStyles.sliderMenu} style={{ flex: '1 1 0%', overflow: 'hidden auto' }}>
<ul className={classNames(layoutStyles.menu)} style={{minHeight: '0px', marginBottom: '0px'}}> <ul className={classNames(layoutStyles.menu)} style={{ minHeight: '0px', marginBottom: '0px' }}>
<li className={classNames(layoutStyles['menu-item'])} onClick={handleToggleSystem}> <li className={classNames(layoutStyles['menu-item'])} onClick={handleToggleSystem}>
<Tooltip placement="right" title={collapse ? currentRoutes.name: ''}> <Tooltip placement="right" title={collapse ? currentRoutes.name : ''}>
<a> <a>
{ {
(currentRoutes && currentRoutes.extData && currentRoutes.extData.icon) && <img src={currentRoutes.extData.icon} /> (currentRoutes && currentRoutes.extData && currentRoutes.extData.icon) && <img src={currentRoutes.extData.icon} />
} }
{ {
collapse ? null: <span className={classNames(layoutStyles.text, layoutStyles.currentText)}>{currentRoutes && currentRoutes.name}</span> collapse ? null : <span className={classNames(layoutStyles.text, layoutStyles.currentText)}>{currentRoutes && currentRoutes.name}</span>
} }
</a> </a>
</Tooltip> </Tooltip>
...@@ -538,23 +556,23 @@ const BasicLayout = props => { ...@@ -538,23 +556,23 @@ const BasicLayout = props => {
<div className={layoutStyles.splitLine}></div> <div className={layoutStyles.splitLine}></div>
<ul className={classNames(layoutStyles.menu, 'menu-vertical')}> <ul className={classNames(layoutStyles.menu, 'menu-vertical')}>
{ {
currentRoutes && (currentRoutes.routes || []).map((item, index) => { currentRoutes && (currentRoutes.routes || []).filter(item => !item.hideInMenu).map((item, index) => {
return ( return (
<> <React.Fragment key={index}>
<li key={index} className={classNames(layoutStyles['menu-item'], { [layoutStyles['active']]: index === selectIndex })} onClick={() => handlerSecond(item, index)}> <li key={index} className={classNames(layoutStyles['menu-item'], { [layoutStyles['active']]: index === selectIndex })} onClick={() => handlerSecond(item, index)}>
<Tooltip placement="right" title={collapse ? item.name: ''}> <Tooltip placement="right" title={collapse ? item.name : ''}>
<a> <a>
{ {
item.icon ? item.icon: item.extData && /.svg/.test(item.extData.icon) ? <ReactSVG src={item.extData.icon} style={{width: '20px', height: '20px'}} className={layoutStyles.icon}/>: item.extData && <img src={item.extData.icon} /> item.icon ? item.icon : item.extData && /.svg/.test(item.extData.icon) ? <ReactSVG src={item.extData.icon} style={{ width: '20px', height: '20px' }} className={layoutStyles.icon} /> : item.extData && <img src={item.extData.icon} />
} }
{ {
collapse ? item.extData && <span className={classNames(layoutStyles.text)}>{(item.extData.shortName || item.name).substr(0, 2)}</span>: <span className={classNames(layoutStyles.text)}>{item.name}</span> collapse ? item.extData && <span className={classNames(layoutStyles.text)}>{(item.extData.shortName || item.name).substr(0, 2)}</span> : <span className={classNames(layoutStyles.text)}>{item.name}</span>
} }
</a> </a>
</Tooltip> </Tooltip>
</li> </li>
<Divider style={{border: '1px solid rgb(49, 53, 62, 0.3)', margin: '0 auto', minWidth: '80%', width: '80%'}}/> <Divider style={{ border: '1px solid rgb(49, 53, 62, 0.3)', margin: '0 auto', minWidth: '80%', width: '80%' }} />
</> </React.Fragment>
) )
}) })
} }
...@@ -572,15 +590,15 @@ const BasicLayout = props => { ...@@ -572,15 +590,15 @@ const BasicLayout = props => {
</span> </span>
</li> </li>
</ul> </ul>
<div aria-hidden="true" style={{display: 'none'}}></div> <div aria-hidden="true" style={{ display: 'none' }}></div>
</div> </div>
</div> </div>
</aside> </aside>
<div className={layoutStyles.layout} style={{width: 'calc(100% - 80px)'}}> <div className={layoutStyles.layout} style={{ width: 'calc(100% - 80px)' }}>
<Panel <Panel
visible={toggleSystem} visible={toggleSystem}
keyboard keyboard
onClose={ () => setToggleSystem(false)} onClose={() => setToggleSystem(false)}
currentMenuIndex={props.currentMenuIndex} currentMenuIndex={props.currentMenuIndex}
onChange={index => handleUpdateCurrentIndex(index)} onChange={index => handleUpdateCurrentIndex(index)}
data={props.route.routes || []} data={props.route.routes || []}
...@@ -594,13 +612,13 @@ const BasicLayout = props => { ...@@ -594,13 +612,13 @@ const BasicLayout = props => {
[layoutStyles['hook_web4']]: location.pathname.startsWith('/civbase/civweb4') [layoutStyles['hook_web4']]: location.pathname.startsWith('/civbase/civweb4')
})}> })}>
<div className={layoutStyles[`${props.rootPrefix}-page-container`]} style={{paddingTop: '0px'}}> <div className={layoutStyles[`${props.rootPrefix}-page-container`]} style={{ paddingTop: '0px' }}>
<div className={layoutStyles[`${props.rootPrefix}-page-container-warp`]}> <div className={layoutStyles[`${props.rootPrefix}-page-container-warp`]}>
<div className={layoutStyles[`${props.rootPrefix}-page-header`]} style={{position: 'fixed'}}> <div className={layoutStyles[`${props.rootPrefix}-page-header`]} style={{ position: 'fixed' }}>
<img src={require('../assets/basic/图层 998@2x.png')} style={{width: '100%'}}/> <img src={require('../assets/basic/图层 998@2x.png')} style={{ width: '100%' }} />
<div className={layoutStyles.header}> <div className={layoutStyles.header}>
<a className={layoutStyles.logo} onClick={handlerIndustry}> <a className={layoutStyles.logo} onClick={handlerIndustry}>
<img src="https://panda-water.com/web4/assets/images/logo/单独图案-白色.svg" alt="logo"/> <img src={`${logo}`} alt="logo" />
</a> </a>
<div className={layoutStyles.title}>{props.global.title}</div> <div className={layoutStyles.title}>{props.global.title}</div>
{ {
...@@ -612,7 +630,7 @@ const BasicLayout = props => { ...@@ -612,7 +630,7 @@ const BasicLayout = props => {
action: siteAction, action: siteAction,
}) })
} }
<RightContent/> <RightContent />
</div> </div>
</div> </div>
...@@ -629,11 +647,11 @@ const BasicLayout = props => { ...@@ -629,11 +647,11 @@ const BasicLayout = props => {
item.routes ? renderChildrenMenu(item) : ( item.routes ? renderChildrenMenu(item) : (
<> <>
{ {
item.icon ? item.icon: item.extData && /.svg/.test(item.extData.icon) ? <ReactSVG src={item.extData.icon} beforeInjection={svg => console.log(svg)} style={{width: '18px', height: '18px'}}/>:item.extData && <img src={item.extData.icon} style={{width: '18px', height: '18px'}}/> item.icon ? item.icon : item.extData && /.svg/.test(item.extData.icon) ? <ReactSVG src={item.extData.icon} style={{ width: '18px', height: '18px' }} /> : item.extData && <img src={item.extData.icon} style={{ width: '18px', height: '18px' }} />
} }
<span className={layoutStyles['menu-item-name']}>{item.name}</span> <span className={layoutStyles['menu-item-name']}>{item.name}</span>
{ {
childrenRoutes.length === 1 ? null: <Divider type="vertical" /> childrenRoutes.length === 1 ? null : <Divider type="vertical" />
} }
</> </>
...@@ -648,26 +666,44 @@ const BasicLayout = props => { ...@@ -648,26 +666,44 @@ const BasicLayout = props => {
))} ))}
</Tabs> </Tabs>
</div> </div>
<PageContainer style={{paddingTop: '0px', height: '100%'}}> <PageContainer style={{ paddingTop: '0px', height: '100%' }}>
{ {
renderRoutes(props.route.routes) renderRoutes(props.route.routes)
} }
{ {
!window.location.pathname.startsWith('/civbase/civweb4') ? (window.location.pathname.startsWith('/civbase/civ_3d') ? <CesiumMap /> : <CreateBaseMap options={{type: 'ArcgisMap'}}/>) : null window.location.pathname.startsWith('/civbase/civ_3d') ? <CesiumMap /> : null
} }
<div id="micro-container" className="subapp-container"> <div id="micro-container" className="subapp-container">
{/*<CreateBaseMap/>*/} {/*<CreateBaseMap/>*/}
{props.children} {props.children}
</div> </div>
{props.children}
</PageContainer> </PageContainer>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div>) : (
<PageContainer style={{ paddingTop: '0px', height: '100%' }}>
{
renderRoutes(props.route.routes)
}
{
window.location.pathname.startsWith('/civbase/civ_3d') ? <CesiumMap /> : null
}
<div id="micro-container" className="subapp-container">
{/*<CreateBaseMap/>*/}
{props.children}
</div> </div>
</PageContainer>
)
}
</SecurityLayout>); </SecurityLayout>);
}; };
const mapStateToProps = state => ({ const mapStateToProps = state => ({
global: state.getIn(['global', 'globalConfig']), global: state.getIn(['global', 'globalConfig']),
settings: state.getIn(['global', 'defaultSetting']), settings: state.getIn(['global', 'defaultSetting']),
......
import React from 'react'; import React from 'react';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom'; import { Redirect } from '@wisdom-utils/runtime';
import { PageLoading } from '@ant-design/pro-layout'; import { PageLoading } from '@ant-design/pro-layout';
import { event } from 'microser-data';
import { stringify } from 'querystring'; import { stringify } from 'querystring';
import { getBaseName } from '../utils/utils'; import { getBaseName } from '../utils/utils';
import _ from 'lodash';
class SecurityLayout extends React.Component { class SecurityLayout extends React.Component {
state = { state = {
...@@ -22,22 +24,34 @@ class SecurityLayout extends React.Component { ...@@ -22,22 +24,34 @@ class SecurityLayout extends React.Component {
const { isReady } = this.state; const { isReady } = this.state;
const { children, global, loading } = this.props; const { children, global, loading } = this.props;
const isLogin = Cookies.get('token') !== null && global.token !== null; const isLogin = Cookies.get('token') !== null && global.token !== null;
const queryString = stringify({ // const queryString = stringify({
redirect: window.location.href, // redirect: window.location.href,
}); // });
if(_.isNull(global.token) || (global.hasGateWay && _.isNull(global.access_token))) {
if ((!isLogin && loading) || !isReady) {
return <PageLoading />;
}
if (
!isLogin &&
window.location.pathname !== `/${getBaseName()}/user/login`
) {
this.props.updateCurrentIndex && this.props.updateCurrentIndex(0); this.props.updateCurrentIndex && this.props.updateCurrentIndex(0);
let client = global.client || Cookies.get('city');
client = client !== 'undefined' && !_.isNull(client) && !_.isUndefined(client) ? client: 'city';
// event.emit(?'event:initConfig');
let generateType = global.generateType;
generateType = !_.isNull(generateType) && !_.isUndefined(generateType) && generateType !== 'undefined' ? `&generateType=${generateType}` : '';
return ( return (
<Redirect to={`/user/login?client=${global.client}&${queryString}`} /> <Redirect to={`/user/login?client=${client}${generateType}`} render={() => window.location.reload()}/>
); );
} }
if ((!isLogin && loading) || !isReady) {
return <PageLoading />;
}
// if (
// !isLogin &&
// window.location.pathname !== `/${getBaseName()}/user/login`
// ) {
// this.props.updateCurrentIndex && this.props.updateCurrentIndex(0);
// return (
// <Redirect to={`/user/login?client=${global.client}&${queryString}`} />
// );
// }
return children; return children;
} }
} }
......
...@@ -345,7 +345,7 @@ class Site { ...@@ -345,7 +345,7 @@ class Site {
window.history.replaceState( window.history.replaceState(
'', '',
'', '',
`/civbase/civweb4/${self.globalConfig.homepage}`, `/${self.globalConfig.homepage}`,
); );
self.getCityStationsForUser().then(res => { self.getCityStationsForUser().then(res => {
window.share.event.emit('updateSite', res); window.share.event.emit('updateSite', res);
...@@ -382,6 +382,7 @@ class Site { ...@@ -382,6 +382,7 @@ class Site {
} }
}) })
.catch(error => { .catch(error => {
this.setLoading(false);
message.warning('切换企业失败'); message.warning('切换企业失败');
}); });
} }
...@@ -400,10 +401,12 @@ class Site { ...@@ -400,10 +401,12 @@ class Site {
this.writeCookie(token, site); this.writeCookie(token, site);
} else { } else {
message.warning('企业切换失败,请联系管理员排查问题!'); message.warning('企业切换失败,请联系管理员排查问题!');
this.setLoading(false);
} }
}) })
.catch(e => { .catch(e => {
message.warning('企业切换失败,请联系管理员排查问题!'); message.warning('企业切换失败,请联系管理员排查问题!');
this.setLoading(false);
}); });
} }
......
import { objectPattern } from '@babel/types'; // import { objectPattern } from '@babel/types';
import 'kit_logger'; import 'kit_logger';
import _ from 'lodash'; import _ from 'lodash';
import { import {
...@@ -9,11 +9,14 @@ import { ...@@ -9,11 +9,14 @@ import {
setDefaultMountApp, setDefaultMountApp,
start, start,
} from 'qiankun'; } from 'qiankun';
import { store as microStore } from 'microser-data';
import micorConfig, { genActiveRule } from '../config/micor'; import micorConfig, { genActiveRule } from '../config/micor';
import pkg from '../package.json'; import pkg from '../package.json';
import { actionCreators } from './containers/App/store'; import { actionCreators } from './containers/App/store';
import { FILTER_FOLER_REG } from './utils/constants'; import { FILTER_FOLER_REG } from './utils/constants';
import loader from './render';
import store from './stores';
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
const Logger = logger('micro'); const Logger = logger('micro');
...@@ -32,16 +35,19 @@ const MICRO_STATUS = { ...@@ -32,16 +35,19 @@ const MICRO_STATUS = {
LOAD_ERROR: 'LOAD_ERROR', LOAD_ERROR: 'LOAD_ERROR',
}; };
export const initMicroApps = (loader, store) => { export const initMicroApps = () => {
/* eslint-disable */ /* eslint-disable */
const config = window.globalConfig || {};
const config = createStoreage.get('globalConfig'); //createStoreage.get('globalConfig');
const application = config.products || []; const application = config && config.products || [];
let products = []; let products = [];
application && Array.isArray(application) && application.length > 0 && application.map(item => { application && Array.isArray(application) && application.length > 0 && application.map(item => {
if(item.PackageName === 'report') {
products.push({ products.push({
name: item.PackageName, name: item.PackageName,
entry: "//" + window.location.host + (`/${item.PackageName}`), entry: item.RouteUrl,
container: '#micro-container', container: '#micro-container',
activeRule: genActiveRule(`/civbase/${item.PackageName}`), activeRule: genActiveRule(`/civbase/${item.PackageName}`),
props: { props: {
...@@ -49,6 +55,19 @@ export const initMicroApps = (loader, store) => { ...@@ -49,6 +55,19 @@ export const initMicroApps = (loader, store) => {
routerBase: item.PackageName routerBase: item.PackageName
} }
}) })
} else {
products.push({
name: item.PackageName,
entry: window.location.protocol + "//" + window.location.host + (`/${item.PackageName}`),
container: '#micro-container',
activeRule: genActiveRule(`/civbase/${item.PackageName}`),
props: {
...item.DefaultSetting,
routerBase: item.PackageName
}
})
}
}); });
const entrys = const entrys =
process.env.NODE_ENV !== 'production' ? process.env.NODE_ENV !== 'production' ?
...@@ -63,7 +82,10 @@ export const initMicroApps = (loader, store) => { ...@@ -63,7 +82,10 @@ export const initMicroApps = (loader, store) => {
baseRoot: item.name, baseRoot: item.name,
// eslint- // eslint-
// disable-next-line no-undef // disable-next-line no-undef
globalConfig: createStoreage.get('globalConfig'), globalConfig: /civweb4/.test(item.name) ? Object.assign({}, config, {
homepage: config.homepage ? config.homepage.replace(/civweb\//, ''): config.homepage
}): config,
//createStoreage.get('globalConfig'),
XMLHttpRequest: window.XMLHttpRequest, XMLHttpRequest: window.XMLHttpRequest,
}; };
return item; return item;
...@@ -89,28 +111,39 @@ export const initMicroApps = (loader, store) => { ...@@ -89,28 +111,39 @@ export const initMicroApps = (loader, store) => {
app => { app => {
window.share.event.removeAllListeners('changeRoute'); window.share.event.removeAllListeners('changeRoute');
Logger.info(`[LifeCycle] after unmount %c%s ${app.name}`); Logger.info(`[LifeCycle] after unmount %c%s ${app.name}`);
window.globalConfig = {}
createStoreage.remove(`__PANDA_STORE__${location.hostname}`)
}, },
], ],
afterUnmount: [app => {}], afterUnmount: [app => {}],
}, },
); );
const globalStore = store.getState().toJS(); const globalStore = store.getState().toJS();
console.log("globalStore", globalStore)
const { setGlobalState } = initGlobalState({ const { setGlobalState } = initGlobalState({
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
globalConfig: createStoreage.get('globalConfig'), globalConfig: window.globalConfig,
//createStoreage.get('globalConfig'),
global: globalStore.global global: globalStore.global
}); });
const globalConfig = window.globalConfig;
globalConfig.homepage = globalConfig.homepage && /civweb4/.test(globalConfig.homepage) ? config.homepage.replace(/civweb4\//, ''): globalConfig.homepage;
console.log(globalConfig);
setGlobalState({ setGlobalState({
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
globalConfig: createStoreage.get('globalConfig'), globalConfig: globalConfig,
//createStoreage.get('globalConfig'),
});
microStore.set("props:globalConfig", {
globalConfig: globalConfig,
global: globalStore.global
}); });
start({ start({
sandbox: { sandbox: {
experimentalStyleIsolation: false, experimentalStyleIsolation: false,
loose: true, loose: true,
}, },
singular: true, singular: false,
scopedCSS: true, scopedCSS: true,
prefetch: 'all', prefetch: 'all',
// eslint-disable-next-line no-underscore-dangle // eslint-disable-next-line no-underscore-dangle
...@@ -118,23 +151,27 @@ export const initMicroApps = (loader, store) => { ...@@ -118,23 +151,27 @@ export const initMicroApps = (loader, store) => {
excludeAssetFilter: url => excludeAssetFilter: url =>
url.indexOf('framework/highcharts') !== -1 || url.indexOf('framework/highcharts') !== -1 ||
// url.indexOf('framework/amap/AMap.UI') !== -1 || // url.indexOf('framework/amap/AMap.UI') !== -1 ||
url.indexOf('framework/amap/init.js') !== -1 || // url.indexOf('framework/amap/init.js') !== -1 ||
url.indexOf('jquery') !== -1 ||
url.indexOf('managers/MapManager.js') !== -1 ||
url.indexOf('jquery.mCustomScrollbar.js') !== -1 ||
url.indexOf('QIAN_KUN_Platform.js') !== -1 ||
url.indexOf('configuration/js') !== -1 || url.indexOf('configuration/js') !== -1 ||
url.indexOf('framework/three.js') !== -1 || url.indexOf('framework/three.js') !== -1 ||
url.indexOf('threedimensional/frameworkthree') !== -1 || url.indexOf('threedimensional/frameworkthree') !== -1 ||
url.indexOf('threedimensional/iframe') !== -1 ||
url.indexOf('iframe/Civ3DLLab/js') !== -1 || url.indexOf('iframe/Civ3DLLab/js') !== -1 ||
url.indexOf('framework/jquery/gridify-min.js') !== -1 || url.indexOf('framework/jquery/gridify-min.js') !== -1 ||
url.indexOf('framework/jquery/gridify.qrcode.js') !== -1 || url.indexOf('framework/jquery/gridify.qrcode.js') !== -1 ||
url.indexOf('framework/application/Platform.js') !== -1 || url.indexOf('framework/application/Platform.js') !== -1 ||
url.indexOf('echarts') !== -1 ||
url.indexOf('webgisPanda/AMapTool') !== -1 || url.indexOf('webgisPanda/AMapTool') !== -1 ||
url.indexOf('framework/underscore') !== -1 || url.indexOf('framework/underscore') !== -1 ||
// url.indexOf('lbs.amap.com') !== -1 || url.indexOf('echarts') !== -1 ||
// url.indexOf('restapi.amap.com') !== -1 || url.indexOf('lbs.amap.com') !== -1 ||
// url.indexOf('webapi.amap.com') !== -1 || url.indexOf('restapi.amap.com') !== -1 ||
// url.indexOf('webapi.amap.com/count') !== -1 || url.indexOf('webapi.amap.com') !== -1 ||
// url.indexOf('restapi.amap.com/v3') !== -1 || url.indexOf('webapi.amap.com/count') !== -1 ||
url.indexOf('webapi.amap.com/maps') !== -1 ||
url.indexOf('restapi.amap.com/v3') !== -1 ||
url.indexOf('api.map.baidu.com') !== -1 || url.indexOf('api.map.baidu.com') !== -1 ||
url.indexOf('map.baidu.com') !== -1 || url.indexOf('map.baidu.com') !== -1 ||
url.indexOf('pv.sohu.com') !== -1 || url.indexOf('pv.sohu.com') !== -1 ||
...@@ -167,7 +204,7 @@ export const initMicroApps = (loader, store) => { ...@@ -167,7 +204,7 @@ export const initMicroApps = (loader, store) => {
// ) { // ) {
// // window.history.pushState({message: '应用服务请求异常,请检查应用配置'}, null, '/civbase/500') // // window.history.pushState({message: '应用服务请求异常,请检查应用配置'}, null, '/civbase/500')
// } // }
console.log("microApp", event); console.log(event);
// if(event.type === 'error') { // if(event.type === 'error') {
// // window.history.pushState({message: '应用服务请求异常,请检查应用配置'}, null, '/civbase/404') // // window.history.pushState({message: '应用服务请求异常,请检查应用配置'}, null, '/civbase/404')
// window.share && window.share.event.emit('event:microError'); // window.share && window.share.event.emit('event:microError');
...@@ -177,20 +214,23 @@ export const initMicroApps = (loader, store) => { ...@@ -177,20 +214,23 @@ export const initMicroApps = (loader, store) => {
export const defaultApp = () => { export const defaultApp = () => {
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
const config = createStoreage.get('globalConfig'); const config = window.globalConfig;
if (config && config.token) { if (config && config.token) {
const startWith = config.homepage ? config.homepage.split('/') : []; // const basePath =config.homepage !== '' && FILTER_FOLER_REG.test(config.homepage) ?'civweb4' :'civweb4';
// console.log(findPathByLeafId(config.homepage, '', 'url')) // if(config && config.home) {
const basePath = // setDefaultMountApp(`/civbase/${config.home.path.replace(/^\//, '')}`);
config.homepage !== '' && FILTER_FOLER_REG.test(config.homepage) ? // } else {
'civweb4' :
'civweb4'; // const homepage = _.isNull(config.homepage) ? '/index': '/' + config.homepage;
const defaultURL = // setDefaultMountApp(`/${pkg.name.toLocaleLowerCase()}/${basePath}${homepage}`);
config.homepage === '' ? // createStoreage.set('init_web4', true)
`/${pkg.name.toLocaleLowerCase()}/${basePath}?client=${config.client}` : // }
`/${pkg.name.toLocaleLowerCase()}/${basePath}/${config.homepage}`; // let homepage = config.homepage.replace('civweb4/', '');
setDefaultMountApp(defaultURL); const url = !config.home ? `/civbase/civweb4/${config.homepage.replace(/^\//, '')}`: `/civbase/${config.homepage.replace(/^\//, '')}`;
setDefaultMountApp(url);
// if(config.homepage.indexOf('civweb4') > -1) createStoreage.set('init_web4', true);
} }
}; };
...@@ -213,7 +253,7 @@ window.app = { ...@@ -213,7 +253,7 @@ window.app = {
if(request === '.') { if(request === '.') {
return return
} }
return this.modules[request](); return _.isFunction(this.modules[request]) && this.modules[request]();
}, },
define: function(name, context, index) { define: function(name, context, index) {
let keys = context.keys(); let keys = context.keys();
...@@ -266,188 +306,187 @@ window.app.define('@wisdom-utils/components', require.context('../node_modules/@ ...@@ -266,188 +306,187 @@ window.app.define('@wisdom-utils/components', require.context('../node_modules/@
/** /**
* arcgismap * arcgismap
// */ */
// window.app.define('@wisdom-map/arcgismap', require.context('../node_modules/@wisdom-map/arcgismap/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
window.app.define('@wisdom-map/arcgismap', require.context('../node_modules/@wisdom-map/arcgismap/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js'); // // window.app.define('@wisdom-map/arcgismap/lib/widgets', require.context('../node_modules/@wisdom-map/arcgismap/lib/widgets', true, /^.\/(lib\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/widgets', require.context('../node_modules/@wisdom-map/arcgismap/lib/widgets', true, /^.\/(lib\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/chunks', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/chunks', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/chunks', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/chunks', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/accessorSupport', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/accessorSupport', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/accessorSupport', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/accessorSupport', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/accessorSupport/decorators', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/accessorSupport/decorators', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/accessorSupport/decorators', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/accessorSupport/decorators', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/sql', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/sql', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/sql', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/sql', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/workers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/workers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/workers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/core/workers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/form', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/form', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/geometry', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/geometry', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/geometry/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/geometry/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/identity', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/identity', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/buildingSublayers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/buildingSublayers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/ogc', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/ogc', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/pointCloudFilters', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/pointCloudFilters', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/networks', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/networks', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/form', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/form', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/networks/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/networks/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/geometry', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/geometry', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/geometry/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/geometry/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/identity', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/identity', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/buildingSublayers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/buildingSublayers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/ogc', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/ogc', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/content', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/content', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/pointCloudFilters', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/pointCloudFilters', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/content/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/content/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/layers/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/portal', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/portal', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/networks', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/networks', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/networks/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/networks/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/visualVariables', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/visualVariables', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/content', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/content', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/visualVariables/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/visualVariables/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/content/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/popup/content/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/portal', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/portal', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/geoprocessor', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/geoprocessor', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/networks', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/networks', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/visualVariables', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/visualVariables', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/networks/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/networks/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/visualVariables/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/renderers/visualVariables/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/query/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/query/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/heuristics', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/heuristics', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/labels', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/labels', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/popup', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/popup', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster/renderers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster/renderers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/geoprocessor', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/geoprocessor', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/networks', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/networks', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/renderers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/renderers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/networks/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/networks/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/query/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/query/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/rest/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/statistics', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/statistics', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/heuristics', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/heuristics', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/statistics/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/statistics/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/labels', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/labels', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/popup', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/popup', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/symbology', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/symbology', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/symbology/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/symbology/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster/renderers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster/renderers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/raster/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/renderers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/renderers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/statistics', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/statistics', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/statistics/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/statistics/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/symbology', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/symbology', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/symbology/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/smartMapping/symbology/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/support/actions', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/support/actions', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/callouts', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/callouts', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/edges', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/edges', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/patterns', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/patterns', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/tasks', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/tasks', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/tasks/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/tasks/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/2d', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/2d', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/2d/layers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/2d/layers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/3d', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/3d', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/3d/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/3d/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/draw', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/draw', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/input', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/input', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/input/gamepad', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/input/gamepad', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/interactive/snapping', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/interactive/snapping', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/support/actions', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/support/actions', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/callouts', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/callouts', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/edges', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/edges', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/patterns', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/patterns', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/symbols/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/tasks', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/tasks', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/tasks/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/tasks/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/2d', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/2d', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/2d/layers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/2d/layers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/3d', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/3d', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/3d/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/3d/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/draw', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/draw', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/input', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/input', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/input/gamepad', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/input/gamepad', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
// window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/interactive/snapping', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/interactive/snapping', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/layers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/layers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/layers', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/layers', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/layers/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/layers/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/layers/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/layers/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/navigation', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/navigation', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/navigation', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/navigation', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/navigation/gamepad', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/navigation/gamepad', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/navigation/gamepad', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/navigation/gamepad', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/ui', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/ui', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/ui', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/views/ui', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webdoc/applicationProperties', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webdoc/applicationProperties', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webdoc/applicationProperties', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webdoc/applicationProperties', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webmap', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webmap', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webmap', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webmap', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webmap/background', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webmap/background', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webmap/background', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webmap/background', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webscene', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webscene', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webscene', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webscene', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webscene/background', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webscene/background', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webscene/background', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/webscene/background', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/AreaMeasurement2D', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/AreaMeasurement2D', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/AreaMeasurement2D', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/AreaMeasurement2D', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/AreaMeasurement3D', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/AreaMeasurement3D', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/AreaMeasurement3D', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/AreaMeasurement3D', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Attachments', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Attachments', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Attachments', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Attachments', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Attribution', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Attribution', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Attribution', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Attribution', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapGallery', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapGallery', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapGallery', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapGallery', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapGallery/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapGallery/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapGallery/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapGallery/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapLayerList', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapLayerList', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapLayerList', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapLayerList', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapToggle', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapToggle', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapToggle', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BasemapToggle', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Bookmarks', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Bookmarks', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Bookmarks', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Bookmarks', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BuildingExplorer', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BuildingExplorer', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BuildingExplorer', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/BuildingExplorer', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Compass', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Compass', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Compass', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Compass', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/CoordinateConversion', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/CoordinateConversion', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/CoordinateConversion', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/CoordinateConversion', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/CoordinateConversion/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/CoordinateConversion/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/CoordinateConversion/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/CoordinateConversion/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Daylight', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Daylight', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Daylight', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Daylight', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Directions', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Directions', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Directions', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Directions', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/DirectLineMeasurement3D', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/DirectLineMeasurement3D', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/DirectLineMeasurement3D', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/DirectLineMeasurement3D', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/DistanceMeasurement2D', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/DistanceMeasurement2D', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/DistanceMeasurement2D', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/DistanceMeasurement2D', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Editor', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Editor', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Editor', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Editor', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ElevationProfile', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ElevationProfile', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ElevationProfile', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ElevationProfile', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Expand', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Expand', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Expand', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Expand', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Feature', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Feature', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Feature', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Feature', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureForm', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureForm', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureForm', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureForm', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTable', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTable', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTable', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTable', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTable/Grid/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTable/Grid/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTable/Grid/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTable/Grid/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTemplates', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTemplates', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTemplates', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FeatureTemplates', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FloorFilter', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FloorFilter', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FloorFilter', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/FloorFilter', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Fullscreen', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Fullscreen', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Fullscreen', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Fullscreen', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Histogram', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Histogram', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Histogram', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Histogram', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/HistogramRangeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/HistogramRangeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/HistogramRangeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/HistogramRangeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Home', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Home', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Home', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Home', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/LayerList', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/LayerList', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/LayerList', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/LayerList', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Legend', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Legend', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Legend', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Legend', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Legend/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Legend/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Legend/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Legend/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/LineOfSight', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/LineOfSight', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/LineOfSight', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/LineOfSight', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Locate', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Locate', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Locate', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Locate', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Measurement', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Measurement', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Measurement', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Measurement', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/NavigationToggle', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/NavigationToggle', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/NavigationToggle', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/NavigationToggle', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Popup', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Popup', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Popup', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Popup', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Print', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Print', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Print', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Print', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ScaleBar', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ScaleBar', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ScaleBar', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ScaleBar', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ScaleRangeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ScaleRangeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ScaleRangeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ScaleRangeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Search', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Search', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Search', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Search', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ShadowAccumulation', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ShadowAccumulation', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ShadowAccumulation', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/ShadowAccumulation', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Sketch', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Sketch', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Sketch', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Sketch', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Slice', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Slice', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Slice', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Slice', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Slider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Slider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Slider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Slider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Spinner', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Spinner', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Spinner', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Spinner', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Swipe', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Swipe', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Swipe', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Swipe', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/TableList', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/TableList', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/TableList', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/TableList', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/TimeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/TimeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/TimeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/TimeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Track', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Track', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Track', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Track', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Zoom', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Zoom', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Zoom', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/Zoom', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ClassedColorSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ClassedColorSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ClassedColorSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ClassedColorSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ClassedSizeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ClassedSizeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ClassedSizeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ClassedSizeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ColorSizeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ColorSizeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ColorSizeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ColorSizeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ColorSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ColorSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ColorSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/ColorSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/HeatmapSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/HeatmapSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/HeatmapSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/HeatmapSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/OpacitySlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/OpacitySlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/OpacitySlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/OpacitySlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/SizeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/SizeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/SizeSlider', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/SizeSlider', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/)); // window.app.define('@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/support', require.context('../node_modules/@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/widgets/smartMapping/support', true, /^.\/(arcgisapi\/)?[^\/]+\.js$/));
...@@ -458,9 +497,7 @@ window.app.define('@ant-design/pro-utils', require.context('../node_modules/@ant ...@@ -458,9 +497,7 @@ window.app.define('@ant-design/pro-utils', require.context('../node_modules/@ant
window.app.define('@ant-design/pro-layout', require.context('../node_modules/@ant-design/pro-layout/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js'); window.app.define('@ant-design/pro-layout', require.context('../node_modules/@ant-design/pro-layout/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
window.app.define('@ant-design/pro-table', require.context('../node_modules/@ant-design/pro-table/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js'); window.app.define('@ant-design/pro-table', require.context('../node_modules/@ant-design/pro-table/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
window.app.define('@ant-design/pro-provider', require.context('../node_modules/@ant-design/pro-provider/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js'); window.app.define('@ant-design/pro-provider', require.context('../node_modules/@ant-design/pro-provider/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
window.app.define('@ant-design/pro-form', require.context('../node_modules/@ant-design/pro-form/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js'); // window.app.define('pinyin-match', require.context('../node_modules/pinyin-match/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'main.js');
//
window.app.define('pinyin-match', require.context('../node_modules/pinyin-match/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'main.js');
window.app.define('react-intl', require.context('../node_modules/react-intl/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js'); window.app.define('react-intl', require.context('../node_modules/react-intl/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
window.app.define('moment', require.context('moment', true, /^.\/moment\.js$/), 'moment.js'); window.app.define('moment', require.context('moment', true, /^.\/moment\.js$/), 'moment.js');
window.app.define('rc-align', require.context('../node_modules/rc-align/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js'); window.app.define('rc-align', require.context('../node_modules/rc-align/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
......
...@@ -18,7 +18,8 @@ const industries = [ ...@@ -18,7 +18,8 @@ const industries = [
{ name: '农饮水', type: '农饮水', subTitle: 'RURAL POTABLE WATER' }, { name: '农饮水', type: '农饮水', subTitle: 'RURAL POTABLE WATER' },
{ name: '排水', type: '排水', subTitle: 'DRAINAGE' }, { name: '排水', type: '排水', subTitle: 'DRAINAGE' },
{ name: '能源', type: '能源', subTitle: 'ENERGY SOURCES' }, { name: '能源', type: '能源', subTitle: 'ENERGY SOURCES' },
{ name: '水资源', type: '水资源', subTitle: 'WATER RESOURCES' }, { name: '直饮水', type: '直饮水', subTitle: 'DRINGKING WATER' },
// { name: '水资源', type: '水资源', subTitle: 'WATER RESOURCES' },
{ name: '熊猫智能实验室', type: '实验室', subTitle: 'PANDA AI. LAB' }, { name: '熊猫智能实验室', type: '实验室', subTitle: 'PANDA AI. LAB' },
{ name: '大数据', type: '大数据', subTitle: 'BIG DATA' }, { name: '大数据', type: '大数据', subTitle: 'BIG DATA' },
{ name: '项目案例', type: '项目案例', subTitle: 'PROJECT CASE' }, { name: '项目案例', type: '项目案例', subTitle: 'PROJECT CASE' },
......
...@@ -19,9 +19,9 @@ import starIcon from '../../assets/images/commonMenu/矢量智能对象 拷贝 3 ...@@ -19,9 +19,9 @@ import starIcon from '../../assets/images/commonMenu/矢量智能对象 拷贝 3
// 是否是灰色的图标(灰色图标在白色背景中看不见,添加滤镜变色) // 是否是灰色的图标(灰色图标在白色背景中看不见,添加滤镜变色)
const isNeedFilterIcon = (icon = '') => const isNeedFilterIcon = (icon = '') =>
icon && !icon.includes('一级') && !icon.includes('ios/'); icon && !icon.includes('一级') && !icon.includes('ios/');
Modal.config({ // Modal.config({
rootPrefixCls: 'panda-console-base' // rootPrefixCls: 'panda-console-base'
}); // });
const CommonMenu = props => { const CommonMenu = props => {
const history = useHistory(); const history = useHistory();
const { menus } = props; const { menus } = props;
......
import React from 'react';
import Iframe from 'react-iframe';
import { connect } from 'react-redux';
const ShareFrame = props => {
const state = props.location.state || {};
debugger
if (!state.linkUrl) {
return null;
}
const { token, userInfo } = props.global;
return (
<Iframe
url={`${state.linkUrl}?token=${token}&loginName=${userInfo.loginName}`}
width="100%"
height="100%"
id="myId"
frameBorder="0"
className="myClassname"
display="initial"
position="relative"
/>
);
};
const mapStateToProps = state => ({
global: state.getIn(['global', 'globalConfig']),
});
export default connect(mapStateToProps)(ShareFrame);
...@@ -4,11 +4,11 @@ import { connect } from 'react-redux'; ...@@ -4,11 +4,11 @@ import { connect } from 'react-redux';
import { actionCreators } from '@/containers/App/store'; import { actionCreators } from '@/containers/App/store';
import _ from 'lodash'; import _ from 'lodash';
// import { AMapScene } from '@wisdom-map/Amap'; // import { AMapScene } from '@wisdom-map/Amap';
import { ArcGISMap } from '@wisdom-map/arcgismap'; // import { ArcGISMap } from '@wisdom-map/arcgismap';
import arcgisConfig from '@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/config'; // import arcgisConfig from '@wisdom-map/arcgismap/lib/arcgisapi/4.20/@arcgis/core/config';
import pkg from '../../../package.json'; // import pkg from '../../../package.json';
arcgisConfig.assetsPath = `${window.location.origin}/${pkg.name.toLocaleLowerCase()}/assets`; // arcgisConfig.assetsPath = `${window.location.origin}/${pkg.name.toLocaleLowerCase()}/assets`;
window.arcgisAssetsPath = arcgisConfig.assetsPath; // window.arcgisAssetsPath = arcgisConfig.assetsPath;
class Map extends React.PureComponent { class Map extends React.PureComponent {
constructor(props) { constructor(props) {
super(props); super(props);
...@@ -22,50 +22,50 @@ class Map extends React.PureComponent { ...@@ -22,50 +22,50 @@ class Map extends React.PureComponent {
} }
transformMapsetting(mapsettings) { transformMapsetting(mapsettings) {
let layers = mapsettings.layers; // let layers = mapsettings.layers;
layers = layers.map(item => { // layers = layers.map(item => {
item.url = /^\//.test(item.url) ? `/${item.url}`: item.url; // item.url = /^\//.test(item.url) ? `/${item.url}`: item.url;
return item; // return item;
}) // })
return Object.assign({}, mapsettings, { // return Object.assign({}, mapsettings, {
layers: layers // layers: layers
}); // });
} }
destroyAMap() { destroyAMap() {
const mapKey = [ // const mapKey = [
'_AMap_AMap.MapType', // '_AMap_AMap.MapType',
'_AMap_labelcanvas', // '_AMap_labelcanvas',
'_AMap_imagelayer', // '_AMap_imagelayer',
'_AMap_anole', // '_AMap_anole',
'_AMap_AMap.Scale', // '_AMap_AMap.Scale',
'_AMap_rbush', // '_AMap_rbush',
'_AMap_AMap.IndoorMap', // '_AMap_AMap.IndoorMap',
'_AMap_AMap.CustomLayer', // '_AMap_AMap.CustomLayer',
'_AMap_AMap.MarkerClusterer', // '_AMap_AMap.MarkerClusterer',
'_AMap_vectorlayer', // '_AMap_vectorlayer',
'_AMap_AMap.OverView', // '_AMap_AMap.OverView',
'_AMap_sync', // '_AMap_sync',
'_AMap_AMap.PlaceSearch', // '_AMap_AMap.PlaceSearch',
'_AMap_AMap.DistrictSearch', // '_AMap_AMap.DistrictSearch',
'_AMap_Map3D', // '_AMap_Map3D',
'_AMap_AMap.Autocomplete', // '_AMap_AMap.Autocomplete',
'_AMap_AMap.Heatmap', // '_AMap_AMap.Heatmap',
'_AMap_wgl', // '_AMap_wgl',
'_AMap_overlay', // '_AMap_overlay',
'_AMap_cvector', // '_AMap_cvector',
'_AMap_AMap.ToolBar', // '_AMap_AMap.ToolBar',
'_AMap_mouse', // '_AMap_mouse',
'_AMap_AMap.RangingTool', // '_AMap_AMap.RangingTool',
'_AMap_data.tileKeys' // '_AMap_data.tileKeys'
]; // ];
// eslint-disable-next-line no-plusplus // // eslint-disable-next-line no-plusplus
for (let i = 0; i < mapKey.length; i++) { // for (let i = 0; i < mapKey.length; i++) {
localStorage.removeItem(mapKey[i]); // localStorage.removeItem(mapKey[i]);
} // }
delete window.AMap; // delete window.AMap;
delete window.AMapUI; // delete window.AMapUI;
delete window.AMapUI_DEBUG; // delete window.AMapUI_DEBUG;
} }
componentWillMount() { componentWillMount() {
...@@ -73,14 +73,14 @@ class Map extends React.PureComponent { ...@@ -73,14 +73,14 @@ class Map extends React.PureComponent {
} }
getAMap(AMapObj, AMap) { getAMap(AMapObj, AMap) {
this.props.updageMapView({ // this.props.updageMapView({
AMapObj, // AMapObj,
AMap // AMap
}); // });
} }
getArcGISMap(map) { getArcGISMap(map) {
this.props.updageMapView(map); // this.props.updageMapView(map);
} }
show() { show() {
...@@ -96,17 +96,17 @@ class Map extends React.PureComponent { ...@@ -96,17 +96,17 @@ class Map extends React.PureComponent {
} }
render() { render() {
return ( // return (
<> // <>
{ // {
this.state.type === 'AMap' ? ( // this.state.type === 'AMap' ? (
<div {...this.state} getMapInfo={this.getAMap.bind(this)}/> // <div {...this.state} getMapInfo={this.getAMap.bind(this)}/>
) : ( // ) : (
<ArcGISMap config={this.state.options} getMapInfo={this.getArcGISMap.bind(this)}/> // <ArcGISMap config={this.state.options} getMapInfo={this.getArcGISMap.bind(this)}/>
) // )
} // }
</> // </>
) // )
} }
} }
const mapStateToProps = state => ({}); const mapStateToProps = state => ({});
......
...@@ -3,8 +3,10 @@ import React from 'react'; ...@@ -3,8 +3,10 @@ import React from 'react';
import BaseLogin from './template/baseLogin'; import BaseLogin from './template/baseLogin';
import NewYear from './template/newYear'; import NewYear from './template/newYear';
import InfoLogin from './template/infoLogin'; import InfoLogin from './template/infoLogin';
import Yulin from './template/yulin';
/* eslint-disable */ /* eslint-disable */
export default () => { export default () => {
const loginTemplate = window.globalConfig && window.globalConfig.loginTemplate; const loginTemplate = window.globalConfig && window.globalConfig.loginTemplate;
switch(loginTemplate) { switch(loginTemplate) {
case '新春 - 智联.html': case '新春 - 智联.html':
...@@ -14,6 +16,8 @@ export default () => { ...@@ -14,6 +16,8 @@ export default () => {
return <BaseLogin/> return <BaseLogin/>
case '信息化.html': case '信息化.html':
return <InfoLogin /> return <InfoLogin />
case '项目 - 榆林.html':
return <Yulin />
default: default:
return <BaseLogin/>; return <BaseLogin/>;
} }
......
import 'kit_logger'; import 'kit_logger';
import { params } from 'kit_utils';
import { message } from 'antd'; import { message } from 'antd';
import { decode, encode } from 'js-base64'; import { decode, encode } from 'js-base64';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
import sha1 from 'sha1'; import sha1 from 'sha1';
import { appService } from '@/api'; import { appService } from '@/api';
import { getUserInfo, getWebSiteConfig } from '@/api/service/base'
import { import {
SERVICE_APP_LOGIN_MODE, SERVICE_APP_LOGIN_MODE,
SERVICE_INTERFACE_SUCCESS_CODE, SERVICE_INTERFACE_SUCCESS_CODE,
...@@ -32,16 +33,29 @@ class Login { ...@@ -32,16 +33,29 @@ class Login {
} }
init() { init() {
const self = this;
this.loginFailed = false; this.loginFailed = false;
this.guid = Math.round(Math.random() * 10000 + Date.now()).toString(16); this.guid = Math.round(Math.random() * 10000 + Date.now()).toString(16);
this.redirect_state = Cookies.get('redirect_state'); this.redirect_state = Cookies.get('redirect_state');
const token = this.globalConfig.initToken || Cookies.get('token'); const token = this.globalConfig.initToken || Cookies.get('token');
let { ddCode } = this.globalConfig; let { ddCode } = this.globalConfig;
const { loginName } = this.globalConfig; let { loginName } = this.globalConfig;
const { password } = this.globalConfig; let { password } = this.globalConfig;
loginName = params.getParams('loginName') ? params.getParams('loginName'): loginName;
const redirect = params.getParams('redirect');
const generateType = params.getParams('generateType');
if(redirect) {
this.globalConfig.homepage = redirect;
// this.globalConfig.layout = 'blank';
}
if(generateType) {
this.globalConfig.generateType = generateType;
}
self.updateConfig && self.updateConfig(self.globalConfig);
password = params.getParams('password') ? params.getParams('password'): password;
const loginMode = Cookies.get('loginMode') || null; const loginMode = Cookies.get('loginMode') || null;
if (loginMode && loginMode === 'iotWechat') ddCode = null; if (loginMode && loginMode === 'iotWechat') ddCode = null;
const self = this;
// self.qrcodeLogin(self.globalConfig.qrcodeData.code); // self.qrcodeLogin(self.globalConfig.qrcodeData.code);
if (token) { if (token) {
self.getToweb(token); self.getToweb(token);
...@@ -51,6 +65,7 @@ class Login { ...@@ -51,6 +65,7 @@ class Login {
} else if (ddCode && loginMode === 'qywx') { } else if (ddCode && loginMode === 'qywx') {
self.qywxLoginIn(ddCode); self.qywxLoginIn(ddCode);
} else if (!!loginName && !!password) { } else if (!!loginName && !!password) {
self.otherLoginIn(loginName, password); self.otherLoginIn(loginName, password);
} else if ( } else if (
self.globalConfig.qrcodeData && self.globalConfig.qrcodeData &&
...@@ -74,8 +89,7 @@ class Login { ...@@ -74,8 +89,7 @@ class Login {
const self = this; const self = this;
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
appService getUserInfo({
.getUserInfo({
token: this.globalConfig.token, token: this.globalConfig.token,
subOID: 'subOID', subOID: 'subOID',
site: this.getLocalSiteBytoken(token), site: this.getLocalSiteBytoken(token),
...@@ -192,13 +206,14 @@ class Login { ...@@ -192,13 +206,14 @@ class Login {
getWebConfig(token, getIndustry) { getWebConfig(token, getIndustry) {
const self = this; const self = this;
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
appService
.getWebSiteConfig({ getWebSiteConfig({
client: self.globalConfig.client, client: self.globalConfig.client,
token, token,
'request.preventCache': Date.now(), 'request.preventCache': Date.now(),
}) })
.then(response => { .then(response => {
const result = const result =
response && response.code === SERVICE_INTERFACE_SUCCESS_CODE response && response.code === SERVICE_INTERFACE_SUCCESS_CODE
? Array.isArray(response.data) ? Array.isArray(response.data)
...@@ -206,14 +221,24 @@ class Login { ...@@ -206,14 +221,24 @@ class Login {
: [] : []
: response; : response;
if (result && result.length > 0) { if (result && result.length > 0) {
self.globalConfig = Object.assign(self.globalConfig, result.shift(), { const config = result.shift();
const homeType = config.productType || 'civweb4';
self.globalConfig = Object.assign(self.globalConfig, config, {
theme: self.globalConfig.theme, theme: self.globalConfig.theme,
menu: self.globalConfig.menu, menu: self.globalConfig.menu,
style: self.globalConfig.style, style: self.globalConfig.style,
homepage: homeType + '/' + (params.getParams('redirect') || self.globalConfig.homepage || config.homepage),
}); });
self.updateConfig && self.updateConfig(self.globalConfig); if(self.globalConfig.hasOwnProperty('webConfig')) {
self.globalConfig = {
// ...self.globalConfig,
...self.globalConfig.webConfig.basicConfig,
...self.globalConfig.webConfig.optionalConfig
}
}
self.updateConfig && self.updateConfig(self.globalConfig);
self.getProjectItems().then(() => { self.getProjectItems().then(() => {
window.subSysCfg = {}; window.subSysCfg = {};
result.forEach(item => { result.forEach(item => {
...@@ -234,8 +259,8 @@ class Login { ...@@ -234,8 +259,8 @@ class Login {
self.globalConfig.userInfo.site.length > 0 self.globalConfig.userInfo.site.length > 0
) { ) {
// eslint-disable-next-line no-undef,no-underscore-dangle // eslint-disable-next-line no-undef,no-underscore-dangle
appService
.getWebSiteConfig( getWebSiteConfig(
{ {
client: self.globalConfig.client, client: self.globalConfig.client,
token, token,
...@@ -246,6 +271,7 @@ class Login { ...@@ -246,6 +271,7 @@ class Login {
) )
// eslint-disable-next-line no-shadow // eslint-disable-next-line no-shadow
.then(response => { .then(response => {
const resultData = const resultData =
response && response.code === SERVICE_INTERFACE_SUCCESS_CODE response && response.code === SERVICE_INTERFACE_SUCCESS_CODE
? Array.isArray(response.data) ? Array.isArray(response.data)
...@@ -254,8 +280,9 @@ class Login { ...@@ -254,8 +280,9 @@ class Login {
: response; : response;
if (resultData && resultData.length > 0) { if (resultData && resultData.length > 0) {
const mainConf = resultData.shift(); const mainConf = resultData.shift();
const mainType = mainConf.productType || 'civweb4';
if (mainConf.homepage) if (mainConf.homepage)
self.globalConfig.homepage = mainConf.homepage; self.globalConfig.homepage = `${mainType}/${mainConf.homepage}`;
if (mainConf.bannerLogo) if (mainConf.bannerLogo)
self.globalConfig.bannerLogo = mainConf.bannerLogo; self.globalConfig.bannerLogo = mainConf.bannerLogo;
if (mainConf.logo) self.globalConfig.logo = mainConf.logo; if (mainConf.logo) self.globalConfig.logo = mainConf.logo;
...@@ -263,6 +290,8 @@ class Login { ...@@ -263,6 +290,8 @@ class Login {
if (mainConf.menu) self.globalConfig.menu = mainConf.menu; if (mainConf.menu) self.globalConfig.menu = mainConf.menu;
if (mainConf.shortcutIcon) if (mainConf.shortcutIcon)
self.globalConfig.shortcutIcon = mainConf.shortcutIcon; self.globalConfig.shortcutIcon = mainConf.shortcutIcon;
// if (mainConf.productType)
// self.globalConfig.productType = mainConf.productType;
} }
self.updateConfig && self.updateConfig(self.globalConfig); self.updateConfig && self.updateConfig(self.globalConfig);
// console.log("===loginSuccess===") // console.log("===loginSuccess===")
...@@ -292,6 +321,7 @@ class Login { ...@@ -292,6 +321,7 @@ class Login {
} }
}) })
.catch(error => { .catch(error => {
console.log(error);
// Logger.log(error); // Logger.log(error);
this.handleLoginError(); this.handleLoginError();
// Logger.log('获取网络配置失败'); // Logger.log('获取网络配置失败');
...@@ -385,6 +415,7 @@ class Login { ...@@ -385,6 +415,7 @@ class Login {
} }
goLogin() { goLogin() {
if ( if (
this.globalConfig.style === 'ios' && this.globalConfig.style === 'ios' &&
this.globalConfig.loginTemplate === 'IOSCloud.html' this.globalConfig.loginTemplate === 'IOSCloud.html'
...@@ -561,8 +592,8 @@ class Login { ...@@ -561,8 +592,8 @@ class Login {
} }
otherLoginIn(usr, pwd) { otherLoginIn(usr, pwd) {
const uesrName = decode(usr.substring(0, usr.length - 3)); // const uesrName = decode(usr.substring(0, usr.length - 3));
const password = decode(pwd.substring(0, pwd.length - 3)); // const password = decode(pwd.substring(0, pwd.length - 3));
const self = this; const self = this;
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
appService appService
...@@ -570,18 +601,22 @@ class Login { ...@@ -570,18 +601,22 @@ class Login {
f: 'json', f: 'json',
expiration: this.globalConfig.expiration, // token过期时间(单位:秒) expiration: this.globalConfig.expiration, // token过期时间(单位:秒)
client: 'referer', client: 'referer',
username: uesrName, username: usr,
password: sha1(password).toUpperCase(), password: params.getParams('generateType') ? pwd : sha1(pwd).toUpperCase(),
referer: this.globalConfig.client, referer: this.globalConfig.client,
skipMenuTest: 1, skipMenuTest: 1,
generateType: params.getParams('generateType') || ''
}) })
.then(response => { .then(response => {
// self.globalConfig.layout = 'blank';
if (response && response.token) { if (response && response.token) {
const tk = response.token; const tk = response.token;
this.globalConfig.token = tk; self.globalConfig.token = tk;
// eslint-disable-next-line no-undef,no-debugger // eslint-disable-next-line no-undef,no-debugger
appService
.getUserInfo( getUserInfo(
{ {
token: tk, token: tk,
subOID: 'subOID', subOID: 'subOID',
...@@ -592,17 +627,55 @@ class Login { ...@@ -592,17 +627,55 @@ class Login {
) )
// eslint-disable-next-line no-shadow // eslint-disable-next-line no-shadow
.then(response => { .then(response => {
if (response && response.errMsg) {
this.globalConfig.userInfo = {}; try {
if ( if (response && !response.errMsg) {
response.data.Groups && self.globalConfig.userInfo = Object.assign(
response.data.Groups instanceof Array && {},
response.data.Groups.length response,
) { );
this.globalConfig.userInfo.Groups = response.data.Groups; if(response.hasOwnProperty('data')) {
self.globalConfig.userInfo = {
// ... self.globalConfig.userInfo,
...response.data
}
} }
const date = new Date();
date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
// date = date.toGMTString();
const encodeSite = encode(encodeURIComponent(response.site));
Cookies.set('site', encodeSite, {
expires: date,
path: '/',
});
Cookies.set('token', tk, {
expires: date,
path: '/',
})
// self.globalConfig.Industry = industry;
self.isSignIn = true;
self.updateConfig && self.updateConfig(self.globalConfig); self.updateConfig && self.updateConfig(self.globalConfig);
self.getUserInfoAndConfig(); const loginSite = {};
loginSite[tk] = response.site;
// Cookie.set()
localStorage.setItem('loginSite', JSON.stringify(loginSite));
self.writeLogs();
self.getIndustry(false, tk);
} else {
message.error(response.errMsg);
if (self.goLogin()) {
return false;
}
// self.handleLoginError(failCallback);
}
self.updateConfig && self.updateConfig(self.globalConfig);
} catch (error) {
console.log(error);
if (self.goLogin()) {
return false;
}
// self.handleLoginError(failCallback);
} }
}); });
} else { } else {
...@@ -626,6 +699,7 @@ class Login { ...@@ -626,6 +699,7 @@ class Login {
/* eslint-disable */ /* eslint-disable */
let _industrySite = null; let _industrySite = null;
if (industry) { if (industry) {
const userInfo = const userInfo =
self.globalConfig.userInfo && self.globalConfig.userInfo &&
self.globalConfig.userInfo.Groups && self.globalConfig.userInfo.Groups &&
...@@ -659,7 +733,7 @@ class Login { ...@@ -659,7 +733,7 @@ class Login {
if (self.isSignIn || !!industry) { if (self.isSignIn || !!industry) {
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
appService.getUserInfo( getUserInfo(
{ {
token, token,
subOID: 'subOID', subOID: 'subOID',
...@@ -677,8 +751,14 @@ class Login { ...@@ -677,8 +751,14 @@ class Login {
self.globalConfig.userInfo = Object.assign( self.globalConfig.userInfo = Object.assign(
{}, {},
response, response,
self.globalConfig.userInfo, // self.globalConfig.userInfo,
); );
if(response.hasOwnProperty('data')) {
self.globalConfig.userInfo = {
// ... self.globalConfig.userInfo,
...response.data
}
}
const date = new Date(); const date = new Date();
date.setTime(date.getTime() + 24 * 60 * 60 * 1000); date.setTime(date.getTime() + 24 * 60 * 60 * 1000);
// date = date.toGMTString(); // date = date.toGMTString();
...@@ -739,9 +819,13 @@ class Login { ...@@ -739,9 +819,13 @@ class Login {
if(response.access_token!== "") { if(response.access_token!== "") {
self.globalConfig.access_token = response.access_token; self.globalConfig.access_token = response.access_token;
localStorage.setItem('access_token', response.access_token); localStorage.setItem('access_token', response.access_token);
Cookies.set('city', self.globalConfig.client, {
expires: exp / (24 * 60 * 60 * 1000),
path: '/',
})
} }
if (isRememberPWD) { if (isRememberPWD) {
Cookies.set(self.globalConfig.client, token, { Cookies.set('city', self.globalConfig.client, {
expires: exp / (24 * 60 * 60 * 1000), expires: exp / (24 * 60 * 60 * 1000),
path: '/', path: '/',
}); });
...@@ -769,9 +853,11 @@ class Login { ...@@ -769,9 +853,11 @@ class Login {
usr = userPhone ? userPhone: usr; usr = userPhone ? userPhone: usr;
appService.authorizationToken({ appService.authorizationToken({
loginName: usr, loginName: usr,
password: pwd ? sha1(pwd).toUpperCase(): '', password: pwd ? (params.getParams('generateType') ? pwd : sha1(pwd).toUpperCase()) : '',
type: mode type: mode,
generateType: params.getParams('generateType') || ''
}).then(res => { }).then(res => {
if(res.code === 0) { if(res.code === 0) {
const data = res.data; const data = res.data;
self.updateConfig && self.updateConfig(Object.assign({}, self.globalConfig, { self.updateConfig && self.updateConfig(Object.assign({}, self.globalConfig, {
...@@ -781,7 +867,7 @@ class Login { ...@@ -781,7 +867,7 @@ class Login {
return data return data
} else { } else {
message.error({ message.error({
duration: 300, duration: 3,
content: `授权失败:${res.msg}` content: `授权失败:${res.msg}`
}); });
self.events.emit('loginError', res.msg); self.events.emit('loginError', res.msg);
...@@ -797,18 +883,21 @@ class Login { ...@@ -797,18 +883,21 @@ class Login {
expiration: this.globalConfig.expiration, // token过期时间(单位:秒) expiration: this.globalConfig.expiration, // token过期时间(单位:秒)
client: 'referer', client: 'referer',
username: usr, username: usr,
password: pwd ? sha1(pwd).toUpperCase() : '', password: pwd ? (params.getParams('generateType') ? pwd : sha1(pwd).toUpperCase()) : '',
referer: this.globalConfig.client, referer: this.globalConfig.client,
skipMenuTest: 1, skipMenuTest: 1,
userPhone, userPhone,
'request.preventCache': Date.now(), 'request.preventCache': Date.now(),
ignoreSite: true, ignoreSite: true,
loginName: usr,
generateType: params.getParams('generateType') || ''
}, },
) )
.then(response => { .then(response => {
self.transformLoginHander(response, isRememberPWD) self.transformLoginHander(response, isRememberPWD)
}) })
.catch(error => { .catch(error => {
self.hasTry = true; self.hasTry = true;
self.handleLoginError(); self.handleLoginError();
self.events.emit('loginError', error.message); self.events.emit('loginError', error.message);
......
import 'kit_utils/lib/format';
import React, { forwardRef, useEffect, useRef, useState } from 'react';
import { params } from 'kit_utils';
import { connect } from 'react-redux';
import { useHistory, withRouter } from '@wisdom-utils/runtime';
import { actionCreators } from '@/containers/App/store';
import LoginAction from './login';
import { initMicroApps } from '../../../micro';
const Login = forwardRef((props, _ref) => {
const history = useHistory();
const [action, setAction] = useState(
() => new LoginAction(Object.assign({}, props, {history}), () => {}, true),
);
useEffect(() => {
action.globalConfig = props.global;
}, [props.global]);
useEffect(() => {
action &&
action.events.on('loginSuccess', event => {
//http://127.0.0.1:8080/civbase/civweb4/
// props.updateConfig(Object.assign({}, props.global, {
// homepage: params.getParams('redirect')
// }));
// props.history.push('/' + params.getParams('redirect'))
props.history.push(`/?client=${props.global.client}&generateType=${props.global.generateType}`);
// window.share.event.emit('triggerMicro', props.global);
initMicroApps();
});
}, [props.globalConfig && props.globalConfig.userInfo])
return <div>{props.children}</div>;
});
const mapStateToProps = state => ({
global: state.getIn(['global', 'globalConfig']),
loginMode: state.getIn(['global', 'loginMode']),
});
const mapDispatchToProps = dispatch => ({
updateConfig(config) {
dispatch(actionCreators.getConfig(config));
},
createContext(data) {
dispatch(actionCreators.createContext(data));
},
updateLoginMode(mode) {
dispatch(actionCreators.changeLoginMode(mode));
},
updateCurrentIndex(index) {
dispatch(actionCreators.updateCurrentIndex(index));
},
});
export default connect(
mapStateToProps,
mapDispatchToProps,
)(Login);
...@@ -17,6 +17,7 @@ import styles from '../style.less'; ...@@ -17,6 +17,7 @@ import styles from '../style.less';
import useRenderQcode from '../js/useRenderQcode'; import useRenderQcode from '../js/useRenderQcode';
import Account from '../js/useAccount'; import Account from '../js/useAccount';
import IotComponent from '../js/useIOTComponent'; import IotComponent from '../js/useIOTComponent';
import { initMicroApps } from '../../../../micro';
const Login = forwardRef((props, _ref) => { const Login = forwardRef((props, _ref) => {
const videoRef = useRef(); const videoRef = useRef();
const loginRef = useRef(); const loginRef = useRef();
...@@ -61,8 +62,10 @@ const Login = forwardRef((props, _ref) => { ...@@ -61,8 +62,10 @@ const Login = forwardRef((props, _ref) => {
action && action.events.on('loginSuccess', event => { action && action.events.on('loginSuccess', event => {
setSubmitting(false); setSubmitting(false);
props.updateCurrentIndex && props.updateCurrentIndex(0); props.updateCurrentIndex && props.updateCurrentIndex(0);
props.history.push(`/?client=${props.global.client}`); props.history.push(`/`);
window.share.event.emit('triggerMicro', props.global); // debugger
// window.share.event.emit('triggerMicro', props.global);
initMicroApps();
}); });
action && action.events.on('loginError', event => { action && action.events.on('loginError', event => {
setVisible(false); setVisible(false);
...@@ -78,7 +81,8 @@ const Login = forwardRef((props, _ref) => { ...@@ -78,7 +81,8 @@ const Login = forwardRef((props, _ref) => {
action && action &&
action.events.on('loginSuccess', event => { action.events.on('loginSuccess', event => {
props.history.push(`/?client=${props.global.client}`); props.history.push(`/?client=${props.global.client}`);
window.share.event.emit('triggerMicro', props.global); // window.share.event.emit('triggerMicro', props.global);
initMicroApps();
}); });
action && action &&
action.events.on('loginError', event => { action.events.on('loginError', event => {
......
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
import React from 'react'; import React from 'react';
import styles from './style/infoLogin.less' import styles from './style/infoLogin.less'
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { withRouter } from 'react-router-dom'; // import { withRouter } from 'react-router-dom';
import { withRouter } from '@wisdom-utils/runtime';
import Logo from '@/assets/oa/login/信息化logo.png' import Logo from '@/assets/oa/login/信息化logo.png'
import Code from '@/assets/oa/login/扫码.png' import Code from '@/assets/oa/login/扫码.png'
import Web from '@/assets/oa/login/电脑.png' import Web from '@/assets/oa/login/电脑.png'
...@@ -23,6 +24,7 @@ import UnSelected from '@/assets/oa/login/unselected.jpg' ...@@ -23,6 +24,7 @@ import UnSelected from '@/assets/oa/login/unselected.jpg'
import LoginAction from '../login'; import LoginAction from '../login';
import { actionCreators } from '@/containers/App/store'; import { actionCreators } from '@/containers/App/store';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
import { initMicroApps } from '../../../../micro';
const Logger = logger('login'); const Logger = logger('login');
// 、登录页 // 、登录页
class InfoLogin extends React.Component{ class InfoLogin extends React.Component{
...@@ -107,7 +109,8 @@ changeQrCode=(item)=>{ ...@@ -107,7 +109,8 @@ changeQrCode=(item)=>{
action && action.events.on('loginSuccess', event => { action && action.events.on('loginSuccess', event => {
this.props.updateCurrentIndex && this.props.updateCurrentIndex(0); this.props.updateCurrentIndex && this.props.updateCurrentIndex(0);
this.props.history.push(`/?client=${this.props.global.client}`); this.props.history.push(`/?client=${this.props.global.client}`);
window.share.event.emit('triggerMicro', this.props.global); // window.share.event.emit('triggerMicro', this.props.global);
initMicroApps();
}); });
action && action.events.on('loginError', event => { action && action.events.on('loginError', event => {
......
.InfoBg{
width: 100%;
height: 100%;
background-image: url('../../../../../assets/images/login/榆林/背景.jpg');
background-size: cover;
background-repeat: no-repeat;
position: relative;
.loginBg{
position: absolute;
top: 50%;
left: 50%;
margin-left: -385px;
margin-top: -226px;
width: 770px;
height: 452px;
.IBcenter{
width: 100%;
height: 89.5%;
.IBCleft{
width: 50%;
height: 100%;
background-image: url('../../../../../assets/images/login/榆林/左图.png');
background-size: 100% 100%;
background-repeat: no-repeat;
float: left;
}
.IBCright{
width: 50%;
height: 100%;
float: left;
background: rgba(255,255,255,0.8);
}
}
.IBtitle{
width: 100%;
height: 10.5%;
text-align: center;
img{
width: 70%;
height: 100%;
}
}
.title{
font-family: SourceHanSansCN-Medium;
font-weight: bold;
color: #43484D;
position: absolute;
top: 21px;
right: 50%;
margin-right: -285px;
line-height: 1;
width: 570px;
text-align: center;
overflow-wrap: break-word;
font-size: 24px;
img{
margin-right: 14px;
}
}
.ddCode{
position: absolute;
top: 50px;
right: -9px;
cursor: pointer;
}
.titleImg {
position: absolute;
top: 132px;
right: 133px;
}
.loginForm{
width: 280px;
margin: 9% auto 25%;
.formgroup{
position: relative;
line-height: 1;
display: flex;
align-items: center;
.IBCRimg{
top: 33px;
}
img{
position: absolute;
left: 10px;
top: 50%;
}
.eyes{
left: 89%;
margin-top: 10px;
cursor: pointer;
}
input[type="checkbox"] {
width: 12px;
height: 12px;
}
input {
font-size: 16px;
outline: 0;
}
span {
position: relative;
top: 0px;
}
.formControl{
display: block;
width: 100%;
}
.inputLg{
padding-left: 42px;
color: #2D3033;
border: none;
box-shadow: none;
border-radius: 0;
padding: 10px 50px;
line-height: 1.3333333;
margin-top: 21px;
}
}
.submitBtn {
width: 100%;
background-color: #0599F4 !important;
border: none !important;
color: #fff !important;
outline: none !important;
border-color: transparent !important;
height: 40px;
line-height: 40px;
font-size: 18px;
text-align: center;
margin-top: 25px;
cursor: pointer;
}
}
.login_container {
position: absolute;
top: 59%;
left: 52%;
margin-left: 150px;
margin-top: -219px;
width: 400px;
height: 500px;
}
.wxlogin_container{
position: absolute;
top: 60%;
left: 55%;
margin-left: 150px;
margin-top: -219px;
width: 300px;
height: 300px;
background: #fff;
}
.changeCode {
position: absolute;
top: 80%;
left: 75%;
align-items: center;
font-size: 14px;
display: flex;
}
}
.IBCRnamec{
margin-top: 15%;
height: 22px;
font-size: 22px;
letter-spacing: 1px;
font-family: PingFang SC;
font-weight: bold;
color: #0599F4;
line-height: 37px;
text-align: center;
margin-bottom: 0;
}
.IBCRnameE{
height: 9px;
font-size: 1px;
color: #0599F4;
line-height: 32px;
text-align: center;
}
.rmpwdInput{
display: inline-block;
width: 20px;
height: 20px;
border-radius: 10px;
border: 1px solid #0599F4;
position: relative;
cursor: pointer;
span{
font-size: 12px;
color: #fff;
visibility: hidden;
position: absolute;
top: 3px;
left: -7px;
}
}
.active{
display: inline-block;
width: 20px;
height: 20px;
border-radius: 10px;
border: 1px solid #0599F4;
position: relative;
cursor: pointer;
background-color: #0599F4;
span{
visibility: visible;
color: #fff;
font-size: 15px;
color: #fff;
position: absolute;
top: 3px;
left: 1px;
font-weight: bold;
}
}
.codeBox{
width: 34px;
height: 34px;
position: absolute;
right: -34px;
bottom: 0px;
background: rgba(255, 255, 255, 0.7);
padding: 6px;
border-radius: 0 3px 3px 0;
cursor: pointer;
}
.codeImg{
width: 23px;
}
.codeBig{
width: 128px;
height: 150px;
position: absolute;
bottom: 0;
left: 0px;
background: rgba(255, 255, 255, 0.7);
padding: 6px;
display: none;
justify-content: space-around;
span{
font-size: 12px;
font-weight: 100;
}
}
.codeBox:hover .codeBig{
display: block;
}
.codeBox:hover .codeImg{
display: none;
}
.codeText{
font-size: 14px;
font-family: PingFang SC;
font-weight: bold;
color: #121F2B;
text-align: center;
line-height: 24px;
}
.codeBox:hover .codeBig {
display: flex;
}
.IBtimeBox{
}
.IBTtime{
position: absolute;
width: 88px;
height: 26px;
font-size: 32px;
font-family: Microsoft YaHei UI;
font-weight: 400;
color: #FFFFFF;
line-height: 34px;
top: 34px;
right: 130px;
}
.IBTweek{
position: absolute;
top: 25px;
right: 69px;
height: 15px;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 200;
color: #FFFFFF;
line-height: 30px;
}
.IBTdate{
position: absolute;
top: 46px;
right: 36px;
width: 80px;
height: 13px;
font-size: 14px;
font-family: Microsoft YaHei UI;
font-weight: 300;
color: #FFFFFF;
line-height: 30px;
}
}
\ No newline at end of file
/* eslint-disable */
/*
* @Author: xule;
* @Date: 2021-11-22
* @Description:榆林登录页;
*/
import React from 'react';
import styles from './style/yulin.less'
import classNames from 'classnames';
import { connect } from 'react-redux';
import { CheckOutlined } from '@ant-design/icons';
import { withRouter } from '@wisdom-utils/runtime';
import Logo from '@/assets/images/login/榆林/标题.png'
import Code from '@/assets/images/login/榆林/小程序@2x.png'
import MyHead from '@/assets/images/login/榆林/d-我的.png'
import PassWord from '@/assets/images/login/榆林/密码.png'
import Close from '@/assets/oa/login/close.png'
import Open from '@/assets/oa/login/open.png'
import LoginAction from '../login';
import { actionCreators } from '@/containers/App/store';
import Cookies from 'js-cookie';
import QRCode from 'qrcode.react';
import { initMicroApps } from '../../../../micro';
const Logger = logger('login');
// 、登录页
class InfoLogin extends React.Component {
state = {
loginStyle: false, //true 账号密码登录 false 扫码登录
isOpen: false, //查看密码
isRember: false, //记住密码
ddOrWeixin: '',
qrcode: '',//二维码
codeLenth: 1,
time: '',
week: '',
date: ''
}
componentDidMount() {
let action = new LoginAction(this.props, false, true)
this.loginEvent(action);
this.renderQRcode();
this.renderTime();
}
renderQRcode() {
var me = this;
var list = globalConfig.qrcode ? globalConfig.qrcode.split("|") : [];
let str = [];
if (list.length) {
list.forEach(function (val, index) {
if (val && val.replace(/ /g, "").length > 0) {
str.push(me.creatCodeHtml(val, index));
}
})
} else {
str.push(<span>手持APP下载未配置</span>);
}
this.setState({
qrcode: str,
codeLenth: list.length
})
}
renderTime() {
let me = this;
setInterval(() => {
const date = new Date();
const weekday = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
const time = `${date.getHours() < 10 ? `0${date.getHours()}` : date.getHours()
}:${date.getMinutes() < 10 ? `0${date.getMinutes()}` : date.getMinutes()}`;
me.setState({
time,
week: weekday[date.getDay()],
date: date.pattern('yyyy/MM/dd'),
})
}, 1000);
}
creatCodeHtml(val, index) {
return (
<div className={('codeCase codeCase' + index)}>
<QRCode value={val.replace(/{ip}/ig, globalConfig.ip).split('=')[0]} />
<div className={styles.codeText}>{val.replace(/{ip}/ig, globalConfig.ip).split('=')[0]}</div>
</div>);
}
// 切换登录方式
changeloginStyle = () => {
const { ddOrWeixin } = this.state
this.setState({
loginStyle: !this.state.loginStyle,
ddOrWeixin: ddOrWeixin ? '' : 'dingding'
}, () => {
Cookies.set('loginMode', `${this.state.ddOrWeixin ? 'dingding' : 'pdw'}`, {
path: '/',
});
if (this.state.ddOrWeixin === 'dingding') {
let action = new LoginAction(this.props, false, true)
action.loginByDD()
}
})
}
// 查看密码
seePassWord = (e) => {
this.setState({
isOpen: !this.state.isOpen
})
}
// 记住密码
remberWord = () => {
this.setState({
isRember: !this.state.isRember
})
}
// 输入框变化
handleForm = (e) => {
const target = e.target
// 判断事件类型,如果是checkbox返回checked值,不是返回文本框的value值
const value = target.type == 'checkbox' ? target.checked : target.value;
// 获取文本框的name值
const name = target.name
this.setState({
[name]: value
})
}
onKeyDownchange(e){
if(e.keyCode == 13){
this.loginToWeb5();
}
}
// 登录
loginToWeb5 = () => {
const { loginName, passWord, isRember } = this.state
let action = new LoginAction(this.props, false, true)
action.loginHandler(loginName, passWord, null, isRember, false)
this.loginEvent(action)
}
// 登录成功事件
loginEvent(action) {
action.globalConfig = this.props.global;
this.props.updateCurrentIndex && this.props.updateCurrentIndex(-1);
action && action.events.on('loginSuccess', event => {
this.props.updateCurrentIndex && this.props.updateCurrentIndex(0);
this.props.history.push(`/?client=${this.props.global.client}`);
// window.share.event.emit('triggerMicro', this.props.global);
initMicroApps();
});
action && action.events.on('loginError', event => {
});
action && action.events.on('loginVisible', status => {
});
}
render() {
const { loginStyle, isOpen, isRember, loginName, passWord, qrcode, codeLenth, time, week, date } = this.state
return (
<div className={styles.InfoBg}>
<div className={styles.IBtimeBox}>
<span className={styles.IBTtime}>{time}</span>
<span className={styles.IBTweek}>{week}</span>
<span className={styles.IBTdate}>{date}</span>
</div>
<div className={styles.loginBg}>
{/* 标题 */}
<div className={styles.IBtitle}>
<img src={Logo} alt="" />
</div>
<div className={styles.IBcenter}>
<div className={styles.IBCleft}></div>
<div className={styles.IBCright}>
<p className={styles.IBCRnamec}>榆林清水工业园智慧水务平台</p>
<p className={styles.IBCRnameE}>Smart Water Platform of Yulin Qingshui Industrial Park</p>
{/* 登录主题 */}
<form className={styles.loginForm} style={{ display: loginStyle ? 'none' : '' }}>
<div className={styles.formgroup}>
<img className={styles.IBCRimg} src={MyHead} alt="" />
<input type="text" className={styles.inputLg} id='loginName' name='loginName' value={loginName} onChange={this.handleForm} placeholder="请输入你的用户名" />
</div>
<div className={styles.formgroup}>
<img className={styles.IBCRimg} src={PassWord} alt="" />
<input type={isOpen ? 'text' : "password"} className={styles.inputLg} onKeyDown={e=> this.onKeyDownchange(e)} id='passWord' name='passWord' value={passWord} onChange={this.handleForm} placeholder="请输入你的密码" />
<img className={styles.eyes} src={isOpen ? Open : Close} alt="" onMouseDown={(e) => this.seePassWord(e)} onMouseUp={(e) => this.seePassWord(e)} />
</div>
<div className={styles.formgroup} style={{ position: 'relative', marginTop: '20px' }}>
<label className={classNames(isRember ? (styles.rmpwdInput, styles.active) : styles.rmpwdInput)} onClick={() => this.remberWord()}>
<CheckOutlined style={{ display: isRember ? '' : 'none' }} />
</label>
<span style={{ color: '#9FA8B3', marginLeft: '10px', fontSize: '14px' }}>记住密码</span>
</div>
<div className={styles.submitBtn} onClick={this.loginToWeb5}>登录</div>
</form>
</div>
<div className={styles.codeBox}>
<img className={styles.codeImg} src={Code} alt="" />
<div className={styles.codeBig} style={{ width: codeLenth * 148 + 'px' }}>
{qrcode}
</div>
</div>
</div>
</div>
</div>
)
}
}
const mapStateToProps = state => ({
global: state.getIn(['global', 'globalConfig']),
loginMode: state.getIn(['global', 'loginMode']),
});
const mapDispatchToProps = dispatch => ({
updateConfig(config) {
dispatch(actionCreators.getConfig(config));
},
createContext(data) {
dispatch(actionCreators.createContext(data));
},
updateLoginMode(mode) {
dispatch(actionCreators.changeLoginMode(mode));
},
updateCurrentIndex(index) {
dispatch(actionCreators.updateCurrentIndex(index));
},
});
export default connect(
mapStateToProps,
mapDispatchToProps,
)(withRouter(InfoLogin));
import React from 'react';
import ReactDOM from 'react-dom';
import store from './stores'
import { history } from '@wisdom-utils/runtime';
import { Provider } from 'react-redux';
import { ConfigProvider } from 'antd';
import { ConnectedRouter } from 'connected-react-router/immutable';
import ErrorBoundary from './components/ErrorBoundary';
import Container from './components/Container';
import { LocaleContainer } from './locales/locale';
import App from './containers/App';
const MOUNT_NODE = document.getElementById('root');
export const render = () => {
// eslint-disable-next-line react-hooks/rules-of-hooks
ReactDOM.render(
<Provider store={store}>
<ConnectedRouter history={history}>
<LocaleContainer>
<ConfigProvider prefixCls="panda-console-base">
<ErrorBoundary>
<Container>
<App />
</Container>
</ErrorBoundary>
</ConfigProvider>
</LocaleContainer>
</ConnectedRouter>
</Provider>,
MOUNT_NODE,
);
};
// updateTheme('#ff9600');
const loader = (appContent, loading) => render({ appContent, loading });
export default loader;
\ No newline at end of file
...@@ -4,10 +4,12 @@ import { dynamic } from '@wisdom-utils/runtime'; ...@@ -4,10 +4,12 @@ import { dynamic } from '@wisdom-utils/runtime';
import BasicLayout from '../layouts/BasicLayout1'; import BasicLayout from '../layouts/BasicLayout1';
import UserLayout from '../layouts/UserLayout'; import UserLayout from '../layouts/UserLayout';
import BootPage from '../pages/bootpage'; import BootPage from '../pages/bootpage';
import Iframe from '../pages/iframe';
import Login from '../pages/user/login'; import Login from '../pages/user/login';
import CommonMenu from '../pages/commonMenu'; import CommonMenu from '../pages/commonMenu';
import NoSecret from '../pages/user/login/noSecret';
export const dyRoutes = routes => { export const dyRoutes = (routes, layout) => {
// eslint-disable-next-line no-shadow // eslint-disable-next-line no-shadow
const dyRoutes = routes || []; const dyRoutes = routes || [];
return { return {
...@@ -21,6 +23,11 @@ export const dyRoutes = routes => { ...@@ -21,6 +23,11 @@ export const dyRoutes = routes => {
path: '/user/login', path: '/user/login',
component: Login, component: Login,
}, },
{
name: 'noscret',
path: '/user/noscret',
component: NoSecret
}
], ],
}, },
{ {
...@@ -35,7 +42,11 @@ export const dyRoutes = routes => { ...@@ -35,7 +42,11 @@ export const dyRoutes = routes => {
{ {
path: '/commonmenu', path: '/commonmenu',
component: CommonMenu, component: CommonMenu,
name: 'commonmenu' name: '菜单收藏'
},
{
path: '/iframe',
component: Iframe
}, },
{ {
path: '/404', path: '/404',
......
import { history } from '@wisdom-utils/runtime';
import Immutable from 'immutable';
const initialState = Immutable.Map();
import configureStore from './configureStore';
const store = configureStore(initialState, history);
export default store;
...@@ -6,4 +6,9 @@ store.on('event:route', (url) => { ...@@ -6,4 +6,9 @@ store.on('event:route', (url) => {
window.share && window.share.event && window.share.event.on('event:logs', params => { window.share && window.share.event && window.share.event.on('event:logs', params => {
delete params.site; delete params.site;
appService.pvLogs(params); appService.pvLogs(params);
}) });
// store.on('event:logout', () => {
// window.globalConfig = {};
// })
import { transformURL } from './utils'; import { transformURL } from './utils';
import LoadingComponent from '@ant-design/pro-layout/es/PageLoading';
import {
dynamic
} from '@wisdom-utils/runtime';
import { matchPath, Route, Switch} from 'react-router'; import { matchPath, Route, Switch} from 'react-router';
import React, { Suspense, Fragment } from 'react'; import React, { Suspense, Fragment } from 'react';
export const isURL = function(url) { export const isURL = function(url) {
...@@ -24,6 +27,19 @@ export const guid = function(prefix) { ...@@ -24,6 +27,19 @@ export const guid = function(prefix) {
return prefix + uuid.replace(/-/g, '.') + new Date().getTime(); return prefix + uuid.replace(/-/g, '.') + new Date().getTime();
}; };
function getParams(pathname) {
let ret = {};
const url = pathname ? pathname : decodeURIComponent(window.location.pathname);
if (url.indexOf('|') > -1) {
const params = url.split('|')[1];
params.split('&').map(item => ret[item.split("=")[0]] = item.split("=")[1])
return ret;
}
return ret;
}
function isAbsoluteURL(url) { function isAbsoluteURL(url) {
return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url);
}; };
...@@ -36,8 +52,9 @@ const getURL = url => { ...@@ -36,8 +52,9 @@ const getURL = url => {
}; };
const generRotes = (widgets, parent, level = 0) => { const generRotes = (widgets, parent, level = 0) => {
const ret = []; const ret = [];
if(!widgets) { if(!widgets || widgets.length === 0){
return return
} }
(widgets).forEach((item, index) => { (widgets).forEach((item, index) => {
...@@ -64,6 +81,7 @@ const generRotes = (widgets, parent, level = 0) => { ...@@ -64,6 +81,7 @@ const generRotes = (widgets, parent, level = 0) => {
item.widgets, item.widgets,
Object.assign({}, item, { path, key: subKey }), Object.assign({}, item, { path, key: subKey }),
_level_, _level_,
item.label
), ),
extData: { extData: {
...item, ...item,
...@@ -86,14 +104,15 @@ const generRotes = (widgets, parent, level = 0) => { ...@@ -86,14 +104,15 @@ const generRotes = (widgets, parent, level = 0) => {
url = item.url url = item.url
} }
url = transformURL(url); url = transformURL(url);
const convertURL = transformURL(item.icon.replace(/\s*/g, '')); //url = url.replace(/[(\\|)|(&)]widget=[0-9]*/, '')
const convertURL = item.icon && transformURL(item.icon.replace(/\s*/g, ''));
const icon = (item && item.icon && item.icon !== null && const icon = (item && item.icon && item.icon !== null &&
isAbsoluteURL(convertURL) ? convertURL: /(\\|\/)/.test(convertURL) ? isAbsoluteURL(convertURL) ? convertURL: /(\\|\/)/.test(convertURL) ?
window.globalConfig.transformDevAssetsBaseURL(transformURL(item.icon.replace(/\s*/g, ''))): item.icon window.globalConfig.transformDevAssetsBaseURL(transformURL(item.icon.replace(/\s*/g, ''))): item.icon
) || ''; ) || '';
const l = level ? level + 1 : -1; const l = level ? level + 1 : -1;
const common = { let common = {
name: item.label, name: item.label,
level: l, level: l,
component: 'BasicLayout', component: 'BasicLayout',
...@@ -101,7 +120,8 @@ const generRotes = (widgets, parent, level = 0) => { ...@@ -101,7 +120,8 @@ const generRotes = (widgets, parent, level = 0) => {
href: url, href: url,
target: isURL(url) ? '_blank' : '', target: isURL(url) ? '_blank' : '',
key: guid('panda'), key: guid('panda'),
hideInMenu: l > 3 ? true: item.hideInMenu || false, hideInMenu: item.label === '系统菜单组' ? true: item.hideInMenu,
//l > 3 ? true: item.hideInMenu || false,
alias: item.product || DEFAULT_APPLICATION, alias: item.product || DEFAULT_APPLICATION,
extData: { extData: {
...item, ...item,
...@@ -109,11 +129,61 @@ const generRotes = (widgets, parent, level = 0) => { ...@@ -109,11 +129,61 @@ const generRotes = (widgets, parent, level = 0) => {
}, },
parent, parent,
}; };
if(/iframe/.test(url)) {
url = url.replace(/\/report/, '');
common = {
name: item.label,
level: l,
component: dynamic({ loader: () =>
import ( /* webpackChunkName: "p__[request]" */ `@/pages/${component}.js`), loading: LoadingComponent }),
path: baseURL !== '' ? transformURL(url) : '',
href: url,
target: isURL(url) ? '_blank' : '',
key: guid('panda'),
hideInMenu: item.label === '系统菜单组' ? true: item.hideInMenu,
//l > 3 ? true: item.hideInMenu || false,
alias: item.product || DEFAULT_APPLICATION,
extData: {
...item,
icon,
},
params: getParams(url),
parent,
}
}
ret.push(common); ret.push(common);
} }
}); });
return ret; return ret;
}; };
export const transformWidgets = (widgets) => {
if(!widgets || widgets.length === 0) {
return []
}
return widgets.map(item => {
const widgets = item.widgets;
const homepage = window.globalConfig.homepage;
const homePageConvertArray = homepage.split("/");
const findIndex = widgets && widgets.findIndex(item => item.label === '系统菜单组');
if(findIndex === -1 && homePageConvertArray[0] !== 'civweb4') {
const index = widgets.findIndex(item => item.label === '首页');
if(index === -1) {
widgets.push({
label: "首页",
icon: '',
product: homePageConvertArray[0],
shortName: "首页",
hideInMenu: true,
url: homePageConvertArray.slice(1, homePageConvertArray.length).join("/")
});
}
item.widgets = Array.from(new Set(widgets));
}
return item;
});
}
export function simpleNormalizeChildren(children) { export function simpleNormalizeChildren(children) {
for (let i = 0; i < children.length; i++) { for (let i = 0; i < children.length; i++) {
if (Array.isArray(children[i])) { if (Array.isArray(children[i])) {
...@@ -123,16 +193,21 @@ export function simpleNormalizeChildren(children) { ...@@ -123,16 +193,21 @@ export function simpleNormalizeChildren(children) {
return children; return children;
} }
export const generFlatRoutes = (widgets, parent, subSystem) => { export const generFlatRoutes = (widgets, parent, subSystem, modulePkg) => {
const treeKeys = []; const treeKeys = [];
const flatMenu = []; const flatMenu = [];
if(!widgets || Array.isArray(widgets) && widgets.length === 0) {
return [];
}
(widgets || []).forEach(item => { (widgets || []).forEach(item => {
if (item.hasOwnProperty('routes')) { if (item.hasOwnProperty('routes')) {
const route = generFlatRoutes(item.routes, item, item.name); const route = generFlatRoutes(item.routes, item, item.name, modulePkg);
flatMenu.push(simpleNormalizeChildren(route)); flatMenu.push(simpleNormalizeChildren(route));
} else { } else {
flatMenu.push({ flatMenu.push({
...item, ...item,
origin: item,
moduleName: modulePkg[item.alias],
treeKeys, treeKeys,
subSystem, subSystem,
parent, parent,
......
...@@ -87,6 +87,8 @@ export function findPathByLeafId(leafId, nodes, path, key, clear) { ...@@ -87,6 +87,8 @@ export function findPathByLeafId(leafId, nodes, path, key, clear) {
} }
export function transformURL(path) { export function transformURL(path) {
//civweb4/
// path = path.replace(/[(\\|)|(&)]widget=[0-9]*/, '');
const el = document.createElement('input'); const el = document.createElement('input');
el.value = path; el.value = path;
String.fromCharCode(92); String.fromCharCode(92);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment