Commit 29aac24f authored by 曾婧's avatar 曾婧

合并更改

parents 75c5134c 67d9eabc
......@@ -4,7 +4,7 @@ const defaultSetting = require('./defaultSetting');
const cesiumBuild = '../node_modules/cesium/Build/Cesium';
const pkgName = require('../package.json').name;
// eslint-disable-next-line import/order
const { REACT_APP_ENV } = process.env;
const { NODE_ENV } = process.env;
// eslint-disable-next-line import/order
const path = require('path');
const CESIUM_BASE_URL = `/${pkgName}`;
......@@ -45,7 +45,7 @@ module.exports = {
'Cesium',
],
},
proxy: proxy[REACT_APP_ENV || 'dev'],
proxy: proxy[NODE_ENV],
// openAPI: {
// requestLibPath: "import { request } from '@wisdom-utils/utils'",
// schemaPath: 'http://192.168.10.150:8777/Publish/OMS/swagger/v1/swagger.json',
......
......@@ -23,7 +23,7 @@ export default {
// },
{
name: 'civ_water',
entry: `//${window.location.hostname}:8080/civ_water`,
entry: `//${window.location.hostname}:8081/civ_water`,
container: '#micro-container',
activeRule: '/civbase/civ_water',
},
......
......@@ -4,10 +4,9 @@
// const proxyURL = 'http://192.168.12.47:8082';
const proxyURL = 'http://localhost:8086';
module.exports = {
assetsRoot: process.env.NODE_ENV !== 'production' ? proxyURL : './',
dev: {
development: {
'/PandaOMS':{
target: proxyURL,
changeOrigin: true,
......
......@@ -487,10 +487,6 @@ module.exports = options => {
.end();
}
rule
.use('babel-loader')
.loader(require.resolve('babel-loader'))
.options({});
if ((isProd && defineConfig.analyze) || process.env.ANALYZE) {
const mergeAnalyze = Object.assign(
......
{
"name": "civbase",
"version": "0.0.14",
"description": "1. Make sure that you have Node.js v8.15.1 and npm v5 or above installed.\r 2. Run `npm run setup` in order to install dependencies and clean the git repo.<br />\r _At this point you can run `npm start`",
"description": "",
"repository": {
"type": "git",
"url": "https://g.civnet.cn:8443/ReactWeb5/CivWeb.git"
"type": "git",
"url": "https://g.civnet.cn:8443/ReactWeb5/CivWeb.git"
},
"engines": {
"npm": ">=5",
"node": ">=8.15.1"
"npm": ">=5",
"node": ">=8.15.1"
},
"author": "dengxiaofeng",
"license": "MIT",
"scripts": {
"init": "npm install --registry=https://g.civnet.cn:4873",
"analyze:clean": "rimraf stats.json",
"preanalyze": "npm run analyze:clean",
"analyze": "cross-env ANALYZE=1 npm run build",
"npmcheckversion": "node ./internals/scripts/npmcheckversion.js",
"preinstall": "npm run npmcheckversion",
"build": "cross-env NODE_ENV=production node --max_old_space_size=4096 internals/webpack/build.js",
"build:clean": "rimraf ./build",
"openapi": "cross-env NODE_ENV=development node server/openapi/run.js",
"start": "cross-env REACT_APP_ENV=dev NODE_ENV=development node --max_old_space_size=4192 server --port=$port",
"start:tunnel": "cross-env NODE_ENV=development ENABLE_TUNNEL=true node server",
"start:production": "npm run test && npm run build && npm run start:prod",
"start:prod": "cross-env NODE_ENV=production node server",
"release": "np --no-cleanup --yolo --no-publish",
"cm": "git-cz",
"log": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md",
"update:deps": "yarn upgrade-interactive --latest",
"presetup": "npm i chalk shelljs",
"setup": "node ./internals/scripts/setup.js",
"clean": "shjs ./internals/scripts/clean.js",
"clean:all": "npm run analyze:clean && npm run test:clean && npm run build:clean",
"generate": "plop --plopfile internals/generators/index.js",
"lint": "npm run lint:js && npm run lint:prettier",
"lint:style": "stylelint --fix \"src/**/*.less\" --syntax less",
"lint:eslint": "eslint --ignore-path .gitignore --ignore-pattern internals/scripts",
"lint:eslint:fix": "eslint --ignore-path .gitignore --ignore-pattern internals/scripts --fix",
"lint:fix": "eslint --fix --cache --ext .js,.jsx,.ts,.tsx --format=pretty ./src",
"lint:js": "eslint --cache --ext .js,.jsx,.ts,.tsx --format=pretty ./src ",
"lint:prettier": "prettier -c ./src/**/*.js",
"lint:staged": "lint-staged",
"pretest": "npm run test:clean && npm run lint",
"prettier": "prettier --write ./src/**/*.js",
"test:clean": "rimraf ./coverage",
"test": "cross-env NODE_ENV=test jest --coverage",
"test:watch": "cross-env NODE_ENV=test jest --watchAll",
"coveralls": "cat ./coverage/lcov.info | coveralls",
"prettify": "prettier --write"
"init": "npm install --registry=https://g.civnet.cn:4873",
"analyze:clean": "rimraf stats.json",
"preanalyze": "npm run analyze:clean",
"analyze": "cross-env ANALYZE=1 npm run build",
"npmcheckversion": "node ./internals/scripts/npmcheckversion.js",
"preinstall": "npm run npmcheckversion",
"build": "cross-env NODE_ENV=production node --max_old_space_size=4096 internals/webpack/build.js",
"build:clean": "rimraf ./build",
"openapi": "cross-env NODE_ENV=development node server/openapi/run.js",
"start": "cross-env REACT_APP_ENV=dev NODE_ENV=development node --max_old_space_size=4192 server --port=$port",
"start:tunnel": "cross-env NODE_ENV=development ENABLE_TUNNEL=true node server",
"start:production": "npm run test && npm run build && npm run start:prod",
"start:prod": "cross-env NODE_ENV=production node server",
"release": "np --no-cleanup --yolo --no-publish",
"cm": "git-cz",
"log": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md",
"update:deps": "yarn upgrade-interactive --latest",
"presetup": "npm i chalk shelljs",
"setup": "node ./internals/scripts/setup.js",
"clean": "shjs ./internals/scripts/clean.js",
"clean:all": "npm run analyze:clean && npm run test:clean && npm run build:clean",
"generate": "plop --plopfile internals/generators/index.js",
"lint": "npm run lint:js && npm run lint:prettier",
"lint:style": "stylelint --fix \"src/**/*.less\" --syntax less",
"lint:eslint": "eslint --ignore-path .gitignore --ignore-pattern internals/scripts",
"lint:eslint:fix": "eslint --ignore-path .gitignore --ignore-pattern internals/scripts --fix",
"lint:fix": "eslint --fix --cache --ext .js,.jsx,.ts,.tsx --format=pretty ./src",
"lint:js": "eslint --cache --ext .js,.jsx,.ts,.tsx --format=pretty ./src ",
"lint:prettier": "prettier -c ./src/**/*.js",
"lint:staged": "lint-staged",
"pretest": "npm run test:clean && npm run lint",
"prettier": "prettier --write ./src/**/*.js",
"test:clean": "rimraf ./coverage",
"test": "cross-env NODE_ENV=test jest --coverage",
"test:watch": "cross-env NODE_ENV=test jest --watchAll",
"coveralls": "cat ./coverage/lcov.info | coveralls",
"prettify": "prettier --write"
},
"browserslist": [
"last 2 versions",
"> 1%",
"IE 10"
"last 2 versions",
"> 1%",
"IE 10"
],
"config": {
"commitizen": {
"path": "cz-conventional-changelog"
}
"commitizen": {
"path": "cz-conventional-changelog"
}
},
"husky": {
"hooks": {
"pre-commit": "lint-staged",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
"hooks": {
"pre-commit": "lint-staged",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"lint-staged": {
"*.js": [
"npm run lint:eslint:fix",
"git add --force"
],
"*.json": [
"prettier --write",
"git add --force"
]
"*.js": [
"npm run lint:eslint:fix",
"git add --force"
],
"*.json": [
"prettier --write",
"git add --force"
]
},
"pre-commit": "lint:staged",
"mock": true,
"checkFiles": [
"src/**/*.js*",
"src/**/*.ts*",
"src/**/*.less",
"config/**/*.js*",
"scripts/**/*.js"
"src/**/*.js*",
"src/**/*.ts*",
"src/**/*.less",
"config/**/*.js*",
"scripts/**/*.js"
],
"resolutions": {
"babel-core": "7.0.0-bridge.0"
"babel-core": "7.0.0-bridge.0"
},
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@ant-design/colors": "^5.0.1",
"@ant-design/icons": "^4.0.0",
"@ant-design/pro-form": "^1.42.1",
"@ant-design/pro-layout": "^6.24.1",
"@ant-design/pro-list": "^1.20.0",
"@ant-design/pro-skeleton": "^1.0.0-beta.2",
"@ant-design/pro-table": "^2.5.3",
"@ant-design/pro-utils": "^1.10.4",
"@babel/polyfill": "7.4.3",
"@babel/runtime": "^7.10.5",
"@esri/arcgis-html-sanitizer": "2.9.1",
"@esri/calcite-colors": "6.0.3",
"@wisdom-cesium/cesium": "^1.0.75",
"@wisdom-components/basictable": "^1.5.16",
"@wisdom-components/empty": "^1.4.1",
"@wisdom-map/Amap": "^1.0.49-8",
"@wisdom-map/Map": "^1.0.12-17",
"@wisdom-map/arcgismap": "^1.0.79-17",
"@wisdom-map/util": "^1.0.27-0",
"@wisdom-utils/components": "0.1.43",
"@wisdom-utils/runtime": "0.0.15",
"@wisdom-utils/utils": "0.1.83",
"animate.css": "^4.1.1",
"antd": "^4.17.4",
"compression": "1.7.4",
"connected-react-router": "6.4.0",
"echarts": "^5.3.0",
"echarts-for-react": "^3.0.2",
"fontfaceobserver": "2.1.0",
"history": "4.9.0",
"hoist-non-react-statics": "3.3.0",
"immer": "3.0.0",
"immutable": "^4.0.0-rc.12",
"js-base64": "^3.5.2",
"js-cookie": "^2.2.1",
"kit_global_config": "^1.0.46",
"kit_logger": "^1.0.2",
"kit_utils": "^1.3.11",
"lodash": "4.17.11",
"minimist": "1.2.0",
"omit.js": "^2.0.2",
"pinyin-match": "^1.1.1",
"promise.prototype.finally": "^3.1.2",
"prop-types": "15.7.2",
"qiankun": "^2.4.6",
"qrcode.react": "^1.0.0",
"rc-cascader": "^2.3.2",
"react": "16.12.0",
"react-activation": "^0.9.9",
"react-dom": "16.12.0",
"react-draggable": "^4.4.3",
"react-helmet": "6.0.0-beta",
"react-helmet-async": "^1.0.4",
"react-iframe": "^1.8.0",
"react-intl": "^3.12.1",
"react-redux": "7.0.2",
"react-router-config": "^5.1.1",
"react-router-dom": "5.3.0",
"react-svg": "^14.0.11",
"react-use": "^15.3.4",
"redux": "4.0.1",
"redux-immutable": "^4.0.0",
"redux-saga": "1.0.2",
"redux-thunk": "^2.3.0",
"reselect": "4.0.0",
"sanitize.css": "8.0.0",
"sha1": "^1.1.1",
"styled-components": "4.2.0"
"@amap/amap-jsapi-loader": "^1.0.1",
"@ant-design/colors": "^5.0.1",
"@ant-design/icons": "^4.0.0",
"@ant-design/pro-form": "^1.42.1",
"@ant-design/pro-layout": "^6.24.1",
"@ant-design/pro-list": "^1.20.0",
"@ant-design/pro-skeleton": "^1.0.0-beta.2",
"@ant-design/pro-table": "^2.5.3",
"@ant-design/pro-utils": "^1.10.4",
"@babel/polyfill": "7.4.3",
"@babel/runtime": "^7.10.5",
"@esri/arcgis-html-sanitizer": "2.9.1",
"@esri/calcite-colors": "6.0.3",
"@wisdom-cesium/cesium": "^1.0.75",
"@wisdom-components/basictable": "^1.5.16",
"@wisdom-components/empty": "^1.4.1",
"@wisdom-map/Amap": "^1.0.49-10",
"@wisdom-map/Map": "^1.0.12-19",
"@wisdom-map/arcgismap": "^1.0.79-19",
"@wisdom-map/util": "^1.0.27-0",
"@wisdom-utils/components": "0.1.58",
"@wisdom-utils/runtime": "0.0.15",
"@wisdom-utils/utils": "0.1.98",
"animate.css": "^4.1.1",
"antd": "^4.17.4",
"compression": "1.7.4",
"connected-react-router": "6.4.0",
"echarts": "^5.3.0",
"echarts-for-react": "^3.0.2",
"fontfaceobserver": "2.1.0",
"history": "4.9.0",
"hoist-non-react-statics": "3.3.0",
"immer": "3.0.0",
"immutable": "^4.0.0-rc.12",
"js-base64": "^3.5.2",
"js-cookie": "^2.2.1",
"kit_global_config": "^1.0.46",
"kit_logger": "^1.0.2",
"kit_utils": "^1.3.11",
"lodash": "4.17.11",
"minimist": "1.2.0",
"omit.js": "^2.0.2",
"pinyin-match": "^1.1.1",
"promise.prototype.finally": "^3.1.2",
"prop-types": "15.7.2",
"qiankun": "^2.4.6",
"qrcode.react": "^1.0.0",
"rc-cascader": "^2.3.2",
"react": "16.12.0",
"react-activation": "^0.9.9",
"react-dom": "16.12.0",
"react-draggable": "^4.4.3",
"react-helmet": "6.0.0-beta",
"react-helmet-async": "^1.0.4",
"react-iframe": "^1.8.0",
"react-intl": "^3.12.1",
"react-redux": "7.0.2",
"react-router-config": "^5.1.1",
"react-router-dom": "5.3.0",
"react-svg": "^14.0.11",
"react-use": "^15.3.4",
"redux": "4.0.1",
"redux-immutable": "^4.0.0",
"redux-saga": "1.0.2",
"redux-thunk": "^2.3.0",
"reselect": "4.0.0",
"sanitize.css": "8.0.0",
"sha1": "^1.1.1",
"styled-components": "4.2.0"
},
"devDependencies": {
"@babel/cli": "7.4.3",
"@babel/core": "7.4.3",
"@babel/plugin-proposal-class-properties": "7.4.0",
"@babel/plugin-syntax-dynamic-import": "7.2.0",
"@babel/plugin-transform-flow-strip-types": "^7.12.13",
"@babel/plugin-transform-modules-commonjs": "7.4.3",
"@babel/plugin-transform-react-constant-elements": "7.2.0",
"@babel/plugin-transform-react-inline-elements": "7.2.0",
"@babel/plugin-transform-react-jsx": "^7.12.16",
"@babel/preset-env": "7.4.3",
"@babel/preset-react": "7.0.0",
"@babel/register": "7.4.0",
"@commitlint/cli": "^9.1.2",
"@commitlint/config-conventional": "^9.1.2",
"@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
"@svgr/webpack": "4.3.3",
"@umijs/bundler-utils": "3.3.7",
"@umijs/deps": "^0.8.1",
"@umijs/fabric": "^2.2.0",
"@umijs/runtime": "3.3.7",
"@umijs/utils": "3.3.7",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.0.1",
"babel-loader": "8.0.5",
"babel-plugin-dynamic-import-node": "2.2.0",
"babel-plugin-import": "^1.13.0",
"babel-plugin-inline-react-svg": "^2.0.1",
"babel-plugin-lodash": "3.3.4",
"babel-plugin-react-intl": "3.0.1",
"babel-plugin-styled-components": "1.10.0",
"babel-plugin-transform-react-remove-prop-types": "0.4.24",
"bcore": "^0.0.22",
"body-parser": "^1.19.0",
"chalk": "2.4.2",
"child_process": "^1.0.2",
"circular-dependency-plugin": "5.0.2",
"classnames": "^2.2.6",
"cliui": "^7.0.4",
"compare-versions": "3.4.0",
"compression-webpack-plugin": "2.0.0",
"conventional-changelog-cli": "^2.1.0",
"copy-webpack-plugin": "^5.0.4",
"core-js": "^3.6.5",
"coveralls": "3.0.3",
"cross-env": "^5.2.1",
"css-loader": "^4.2.1",
"cz-customizable": "^6.3.0",
"dotenv": "^8.2.0",
"ejs": "^3.1.6",
"esbuild-loader": "^2.18.0",
"eslint": "^5.16.0",
"eslint-config-airbnb": "17.1.0",
"eslint-config-airbnb-base": "13.1.0",
"eslint-config-prettier": "4.1.0",
"eslint-import-resolver-webpack": "0.11.1",
"eslint-plugin-import": "^2.17.2",
"eslint-plugin-jsx-a11y": "6.2.1",
"eslint-plugin-prettier": "3.0.1",
"eslint-plugin-react": "7.12.4",
"eslint-plugin-react-hooks": "1.6.0",
"eslint-plugin-redux-saga": "1.0.0",
"express": "^4.17.1",
"file-loader": "3.0.1",
"friendly-errors-webpack-plugin": "^1.7.0",
"fs-extra": "^9.0.1",
"html-loader": "0.5.5",
"html-webpack-plugin": "5.5.0",
"http-proxy-middleware": "^1.0.5",
"husky": "^2.3.0",
"imports-loader": "0.8.0",
"invariant": "2.2.4",
"ip": "1.1.5",
"jest-cli": "24.7.1",
"jest-dom": "3.1.3",
"jest-styled-components": "6.3.1",
"jsonp": "^0.2.1",
"less": "3.12.0",
"less-loader": "5.0.0",
"lint-staged": "8.1.5",
"memoizee": "^0.4.15",
"mini-css-extract-plugin": "^0.12.0",
"mockjs": "^1.0.1-beta3",
"moment": "^2.29.1",
"multer": "^1.4.2",
"nanoid": "^3.1.16",
"node-fetch": "^2.6.1",
"node-plop": "0.18.0",
"np": "^7.0.0",
"null-loader": "0.1.1",
"nunjucks": "^3.2.2",
"optimize-css-assets-webpack-plugin": "5.0.4",
"ora": "^5.1.0",
"path-to-regexp": "^2.4.0",
"plop": "2.3.0",
"postcss": "7.0.32",
"postcss-flexbugs-fixes": "4.2.1",
"postcss-loader": "3.0.0",
"postcss-preset-env": "6.7.0",
"postcss-safe-parser": "^4.0.2",
"pre-commit": "1.2.2",
"prettier": "1.17.0",
"querystring-browser": "^1.0.4",
"raw-loader": "^4.0.2",
"react-activation": "^0.9.9",
"react-app-polyfill": "0.2.2",
"react-error-overlay": "6.0.8",
"react-inlinesvg": "^2.3.0",
"react-refresh": "^0.9.0",
"react-sticky": "^6.0.3",
"react-test-renderer": "16.8.6",
"react-testing-library": "6.1.2",
"redux-logger": "^3.0.6",
"regenerator-runtime": "^0.13.7",
"reserved-words": "^0.1.2",
"shelljs": "0.8.3",
"slash2": "^2.0.0",
"speed-measure-webpack-plugin": "1.3.3",
"spinner": "^0.3.4",
"stats-webpack-plugin": "0.7.0",
"style-loader": "^1.2.1",
"stylelint": "10.0.1",
"stylelint-config-recommended": "2.2.0",
"stylelint-config-styled-components": "0.1.1",
"stylelint-processor-styled-components": "1.6.0",
"svg-url-loader": "^2.3.2",
"swagger-ui-react": "^4.0.0-beta.4",
"swagger2openapi": "^7.0.5",
"swc-loader": "^0.1.15",
"terser-webpack-plugin": "1.2.3",
"traverse": "^0.6.6",
"umi-webpack-bundle-analyzer": "3.6.0",
"url-loader": "1.1.2",
"webpack": "^5.70.0",
"webpack-chain": "6.5.1",
"webpack-cli": "4.2.0",
"webpack-dev-middleware": "5.3.0",
"webpack-hot-middleware": "2.24.3",
"webpack-manifest-plugin": "^3.0.0",
"webpack-theme-color-replacer": "^1.3.15",
"webpackbar": "5.0.0-3",
"whatwg-fetch": "^3.0.0",
"yorkie": "^2.0.0"
},
"main": ".eslintrc.js"
"@babel/cli": "7.4.3",
"@babel/core": "7.4.3",
"@babel/plugin-proposal-class-properties": "7.4.0",
"@babel/plugin-syntax-dynamic-import": "7.2.0",
"@babel/plugin-transform-flow-strip-types": "^7.12.13",
"@babel/plugin-transform-modules-commonjs": "7.4.3",
"@babel/plugin-transform-react-constant-elements": "7.2.0",
"@babel/plugin-transform-react-inline-elements": "7.2.0",
"@babel/plugin-transform-react-jsx": "^7.12.16",
"@babel/preset-env": "7.4.3",
"@babel/preset-react": "7.0.0",
"@babel/register": "7.4.0",
"@commitlint/cli": "^9.1.2",
"@commitlint/config-conventional": "^9.1.2",
"@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
"@svgr/webpack": "4.3.3",
"@umijs/bundler-utils": "3.3.7",
"@umijs/deps": "^0.8.1",
"@umijs/fabric": "^2.2.0",
"@umijs/runtime": "3.3.7",
"@umijs/utils": "3.3.7",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.0.1",
"babel-loader": "8.0.5",
"babel-plugin-dynamic-import-node": "2.2.0",
"babel-plugin-import": "^1.13.0",
"babel-plugin-inline-react-svg": "^2.0.1",
"babel-plugin-lodash": "3.3.4",
"babel-plugin-react-intl": "3.0.1",
"babel-plugin-styled-components": "1.10.0",
"babel-plugin-transform-react-remove-prop-types": "0.4.24",
"bcore": "^0.0.22",
"body-parser": "^1.19.0",
"chalk": "2.4.2",
"child_process": "^1.0.2",
"circular-dependency-plugin": "5.0.2",
"classnames": "^2.2.6",
"cliui": "^7.0.4",
"compare-versions": "3.4.0",
"compression-webpack-plugin": "2.0.0",
"conventional-changelog-cli": "^2.1.0",
"copy-webpack-plugin": "^5.0.4",
"core-js": "^3.6.5",
"coveralls": "3.0.3",
"cross-env": "^5.2.1",
"css-loader": "^4.2.1",
"cz-customizable": "^6.3.0",
"dotenv": "^8.2.0",
"ejs": "^3.1.6",
"esbuild-loader": "^2.18.0",
"eslint": "^5.16.0",
"eslint-config-airbnb": "17.1.0",
"eslint-config-airbnb-base": "13.1.0",
"eslint-config-prettier": "4.1.0",
"eslint-import-resolver-webpack": "0.11.1",
"eslint-plugin-import": "^2.17.2",
"eslint-plugin-jsx-a11y": "6.2.1",
"eslint-plugin-prettier": "3.0.1",
"eslint-plugin-react": "7.12.4",
"eslint-plugin-react-hooks": "1.6.0",
"eslint-plugin-redux-saga": "1.0.0",
"express": "^4.17.1",
"file-loader": "3.0.1",
"friendly-errors-webpack-plugin": "^1.7.0",
"fs-extra": "^9.0.1",
"html-loader": "0.5.5",
"html-webpack-plugin": "5.5.0",
"http-proxy-middleware": "^1.0.5",
"husky": "^2.3.0",
"imports-loader": "0.8.0",
"invariant": "2.2.4",
"ip": "1.1.5",
"jest-cli": "24.7.1",
"jest-dom": "3.1.3",
"jest-styled-components": "6.3.1",
"jsonp": "^0.2.1",
"less": "3.12.0",
"less-loader": "5.0.0",
"lint-staged": "8.1.5",
"memoizee": "^0.4.15",
"mini-css-extract-plugin": "^0.12.0",
"mockjs": "^1.0.1-beta3",
"moment": "^2.29.1",
"multer": "^1.4.2",
"nanoid": "^3.1.16",
"node-fetch": "^2.6.1",
"node-plop": "0.18.0",
"np": "^7.0.0",
"null-loader": "0.1.1",
"nunjucks": "^3.2.2",
"optimize-css-assets-webpack-plugin": "5.0.4",
"ora": "^5.1.0",
"path-to-regexp": "^2.4.0",
"plop": "2.3.0",
"postcss": "7.0.32",
"postcss-flexbugs-fixes": "4.2.1",
"postcss-loader": "3.0.0",
"postcss-preset-env": "6.7.0",
"postcss-safe-parser": "^4.0.2",
"pre-commit": "1.2.2",
"prettier": "1.17.0",
"querystring-browser": "^1.0.4",
"raw-loader": "^4.0.2",
"react-activation": "^0.9.9",
"react-app-polyfill": "0.2.2",
"react-error-overlay": "6.0.8",
"react-inlinesvg": "^2.3.0",
"react-refresh": "^0.9.0",
"react-sticky": "^6.0.3",
"react-test-renderer": "16.8.6",
"react-testing-library": "6.1.2",
"redux-logger": "^3.0.6",
"regenerator-runtime": "^0.13.7",
"reserved-words": "^0.1.2",
"shelljs": "0.8.3",
"slash2": "^2.0.0",
"speed-measure-webpack-plugin": "1.3.3",
"spinner": "^0.3.4",
"stats-webpack-plugin": "0.7.0",
"style-loader": "^1.2.1",
"stylelint": "10.0.1",
"stylelint-config-recommended": "2.2.0",
"stylelint-config-styled-components": "0.1.1",
"stylelint-processor-styled-components": "1.6.0",
"svg-url-loader": "^2.3.2",
"swagger-ui-react": "^4.0.0-beta.4",
"swagger2openapi": "^7.0.5",
"swc-loader": "^0.1.15",
"terser-webpack-plugin": "1.2.3",
"traverse": "^0.6.6",
"umi-webpack-bundle-analyzer": "3.6.0",
"url-loader": "1.1.2",
"webpack": "^5.70.0",
"webpack-chain": "6.5.1",
"webpack-cli": "4.2.0",
"webpack-dev-middleware": "5.3.0",
"webpack-hot-middleware": "2.24.3",
"webpack-manifest-plugin": "^3.0.0",
"webpack-theme-color-replacer": "^1.3.15",
"webpackbar": "5.0.0-3",
"whatwg-fetch": "^3.0.0",
"yorkie": "^2.0.0"
}
}
......@@ -3,7 +3,7 @@ const { writeFileSync, mkdirSync, existsSync } = require('fs');
const rimraf = require('rimraf');
const serveStatic = require('serve-static');
const { resolve } = require('path');
const { portfinder, chalk, delay } = require('@umijs/utils');
const { portfinder, chalk, delay, createDebug, chokidar, signale, glob } = require('@umijs/utils');
const argv = require('./argv');
const setup = require('./middlewares/frontendMiddleware');
const pkg = require('../package.json');
......@@ -11,20 +11,19 @@ const config = require('../config/config');
const mockMiddewares = require('./mock');
const emitter = require('./event');
const Server = require('./server');
const debug = createDebug('preset-build-in:proxy:createMiddleware');
// const proxyConfig = require('../config/proxy');
const loadDotEnv = require('./utils/loadDotEnv');
const { getSchema } = require('./openapi');
const cleanRequireCache = require('./utils/cleanRequireCache');
(async () => {
const defaultPort =
process.env.PORT ||
argv.port ||
(config && config.devServer && config.devServer.port);
const defaultPort = process.env.PORT || argv.port || (config && config.devServer && config.devServer.port);
const port = await portfinder.getPortPromise({
port: defaultPort ? parseInt(String(defaultPort), 10) : 8080,
});
const homename =
process.env.HOST ||
(config && config.devServer && config.devServer.host) ||
'127.0.0.1';
const homename = process.env.HOST || (config && config.devServer && config.devServer.host) || '127.0.0.1';
console.log(chalk.cyan('Starting the development server...'));
// process.send && process.send({ type: 'UPDATE_PORT', port });
const isHTTPS = process.env.HTTPS || (argv && argv.https);
......@@ -81,6 +80,54 @@ const { getSchema } = require('./openapi');
},
);
// proxy config 热更新
const ignore = [
// ignore mock files under node_modules
'node_modules/**'
];
const cwd = process.cwd();
const proxyWatcherPaths = [
...(glob.sync('config/proxy.js', {
cwd,
ignore,
}) || []),
...(glob.sync('**/proxy.js', {
cwd,
ignore,
}) || []),
...(glob.sync('.env', {
cwd,
ignore,
}) || []),
...(glob.sync('.env.local', {
cwd,
ignore,
}) || [])
];
const watcher = chokidar.watch(proxyWatcherPaths, {
ignoreInitial: true,
});
const errors = [];
watcher.on('ready', () => debug('Initial scan complete. Ready for changes')).on('all', async (event, file) => {
debug(`[${event}] ${file}, reload proxy config`);``
errors.splice(0, errors.length);
cleanRequireCache(Array.from(new Set(proxyWatcherPaths)));
if (!errors.length) {
const hotProxy = require('../config/proxy');
server.setupProxy && server.setupProxy(hotProxy[process.env.NODE_ENV], true);
signale.success(`Proxy config parse success`);
}
});
process.once('SIGINT', async () => {
await watcher.close();
});
emitter.on('onDevCompileDone', async () => {
try {
const openAPIConfig = config.openAPI;
......@@ -96,6 +143,7 @@ const { getSchema } = require('./openapi');
}
});
await server.listen({
port,
homename,
......
......@@ -4,6 +4,7 @@ const webpackDevMiddleware = require('webpack-dev-middleware');
const webpackHotMiddleware = require('webpack-hot-middleware');
const DevCompileDonePlugin = require('../../internals/webpack/plugins/DevCompileDonePlugin');
const emitter = require('../event');
function getIgnoredWatchRegExp() {
// const absOutputPath = winPath(path.join(process.cwd(), outputPath));
return process.env.WATCH_IGNORED === 'none'
......@@ -29,6 +30,7 @@ module.exports = function addDevMiddlewares(
config,
{ port = 8080, hostname = '127.0.0.1' },
) {
if (!config.mfsu) {
webpackConfig.plugins.push(
new DevCompileDonePlugin({
......@@ -63,8 +65,15 @@ module.exports = function addDevMiddlewares(
app.use(middleware);
app.use(webpackHotMiddleware(compiler));
const fs = middleware.context.outputFileSystem;
app.get('*', (req, res) => {
fs.readFile(path.join(compiler.outputPath, 'index.html'), (err, file) => {
if (err) {
......
......@@ -134,7 +134,7 @@ class Server {
);
}
setupProxy(proxyOpts, isWatch = true) {
setupProxy(proxyOpts, isWatch = false) {
let proxy = proxyOpts || this.opts.proxy;
if (!Array.isArray(proxy)) {
if (proxy && 'target' in proxy) {
......@@ -181,6 +181,7 @@ class Server {
},
});
}
return;
};
let startIndex = null;
......
const { winPath } = require('@umijs/utils')
function cleanRequireCache(paths) {
Object.keys(require.cache).forEach(file => {
if (paths.some(p => winPath(file).indexOf(p) > -1)) {
delete require.cache[file];
}
});
};
module.exports = cleanRequireCache;
\ No newline at end of file
import 'whatwg-fetch';
// import 'whatwg-fetch';
import './public-path';
import '!file-loader?name=[name].[ext]!./images/favicon.ico';
import './global.less';
......@@ -7,11 +7,7 @@ import 'antd/dist/antd.less';
import 'file-loader?name=.htaccess!./.htaccess'; // eslint-disable-line import/extensions
import '@wisdom-utils/utils/lib/helpers/format';
import 'sanitize.css/sanitize.css';
// import { event } from '@wisdom-utils/utils';
import { ConfigProvider } from 'antd';
import { Storeage } from '@wisdom-utils/utils/lib/helpers';
// import { history } from '@wisdom-utils/runtime';
// import { actionCreators } from './containers/App/store';
import { initGlobalConfig } from './initConfig';
import './utils/event';
......@@ -19,9 +15,7 @@ import './utils/event';
// eslint-disable-next-line no-restricted-globals
const namespace = `__PANDA_STORE__${location.hostname}`;
window.createStoreage = new Storeage(namespace);
ConfigProvider.config({
prefixCls: 'panda-console-base',
});
const initLocale = () => {
localStorage.setItem('umi_locale', 'zh-CN');
};
......@@ -29,15 +23,6 @@ const initLocale = () => {
initGlobalConfig();
initLocale();
// const unlisten = (function() {
// let prePathname = '';
// return history.listen(location => {
// if (location.pathname.indexOf('/civbase/user/login') > -1 && location.pathname !== prePathname) {
// initGlobalConfig();
// }
// prePathname = location.pathname;
// });
// })();
// event.on('event:logout', () => {
// store.dispatch(actionCreators.logout());
......
......@@ -11,7 +11,6 @@ const pkg = require('../../../package.json');
const { renderRoutes } = helpers;
const config = require('../../../config/config');
function App(props) {
//
const metaSecurity = /https/.test(window.location.protocol) ? (
<meta httpEquiv="Content-Security-Policy" content="upgrade-insecure-requests" />
) : null;
......
......@@ -25,7 +25,7 @@ import {
AMAP_VIEW,
PD_VIEW,
} from './constants';
import { store } from '@wisdom-utils/utils';
export function getConfig(data) {
return {
type: GET_CONFIG,
......@@ -222,6 +222,17 @@ export function logout(data) {
// eslint-disable-next-line no-undef,no-restricted-globals
createStoreage.remove(`__PANDA_STORE__MICRO_${location.hostname}`);
localStorage.removeItem('JmReport-Access-Token');
const products = (window.globalConfig.products || []).map(item => {
if (item.PackageName === 'civweb4') {
return 'web4_console'
}
return `${item.PackageName}-main`;
});
Object.keys(products).forEach(item => {
window[products[item]] && window[products[item]] && window[products[item]].unmount && window[products[item]].unmount({ store: store });
});
return {
type: LOGINOUT,
data: {
......
......@@ -36,16 +36,18 @@ export const initGlobalConfig = () => {
localStorage.removeItem('loginSite');
}
/* eslint-disable */
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 {
// eslint-disable-next-line react-hooks/rules-of-hooks
let client = params.getParams('client') || Cookies.get('city');
// 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 {
// // eslint-disable-next-line react-hooks/rules-of-hooks
// }
let client = params.getParams('client') || Cookies.get('city');
client = client && client !== 'undefined' ? client : 'city';
appService
.getWateWayConfig({
......@@ -97,12 +99,14 @@ export const initGlobalConfig = () => {
// eslint-disable-next-line no-new
new Login(
{
global: Object.assign({}, data, {
token: getToken(),
}),
global: Object.assign({}, data,
{
token: getToken(),
},
gateWayConfig,
),
// eslint-disable-next-line no-shadow
updateConfig: data =>
store.dispatch(actionCreators.getConfig(data)),
updateConfig: data => store.dispatch(actionCreators.getConfig(data)),
isInit: false,
logout: () => store.dispatch(actionCreators.logout()),
},
......@@ -117,23 +121,14 @@ export const initGlobalConfig = () => {
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));
});
});
}
};
......@@ -223,6 +223,10 @@ const Layout = props => {
props.logout();
return;
}
}, [props.global]);
useEffect(() => {
if (
props.global &&
props.global.userInfo &&
......@@ -234,7 +238,7 @@ const Layout = props => {
setCityData(res);
});
}
}, [props.global]);
}, [props.global.userInfo])
const handlerPageChange = () => {
......@@ -252,7 +256,11 @@ const Layout = props => {
useEffect(() => {
window.share.event.on('updateSite', res => setCityData(res));
window.share.event.on('updateSite', res => {
debugger
setCityData(res)
});
return () => {
window.share.event.removeAllListeners('updateSite');
};
......
import React from 'react';
import Cookies from 'js-cookie';
import { connect } from 'react-redux';
import { Redirect } from '@wisdom-utils/runtime';
import { Redirect, history } from '@wisdom-utils/runtime';
import { PageLoading } from '@ant-design/pro-layout';
import _ from 'lodash';
import { stringify } from 'querystring';
import { store, helpers } from '@wisdom-utils/utils';
class SecurityLayout extends React.Component {
state = {
......@@ -19,7 +20,7 @@ class SecurityLayout extends React.Component {
componentWillReceiveProps(nextProps) {
const products = (this.props.global.products || []).map(item => {
if(item.PackageName === 'civweb4') {
if (item.PackageName === 'civweb4') {
return 'web4_console'
}
return `${item.PackageName}-main`;
......@@ -30,35 +31,36 @@ class SecurityLayout extends React.Component {
const nextPathname = nextProps.location.pathname;
const nextArgv = nextPathname.split('/');
if(argv[1] !== nextArgv[1]) {
if (argv[2] !== nextArgv[2]) {
Object.keys(products).forEach(item => {
window[products[item]] && window[products[item]] && window[products[item]].unmount && window[products[item]].unmount({store: store});
window[products[item]] && window[products[item]] && window[products[item]].unmount && window[products[item]].unmount({ store: store });
});
}
if(this.props.location.pathname !== nextProps.location.pathname) {
store.set('event:globalConfig', {globalConfig: nextProps.global});
if (this.props.location.pathname !== nextProps.location.pathname) {
store.set('event:globalConfig', { globalConfig: nextProps.global });
}
}
render() {
const { isReady } = this.state;
const { children, global, loading } = this.props;
const isLogin = Cookies.get('token') !== null && global.token !== null;
// const queryString = stringify({
// redirect: window.location.href,
// });
if (!Cookies.get('token')) {
if (!isLogin && window.location.pathname !== '/civbase/user/login') {
const { query = {}, search, pathname } = history.location;
const { redirect } = query;
const queryString = stringify({
redirect: pathname + search,
});
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 = !_.isNull(generateType) && !_.isUndefined(generateType) && generateType !== 'undefined' ? `&generateType=${generateType}` : '';
generateType = !_.isNull(generateType) && !_.isUndefined(generateType) && generateType !== 'undefined' ? `&generateType=${generateType}` : '';
return (
<Redirect
to={`/user/login?client=${client}${generateType}`}
to={`/user/login?client=${client}${generateType}&${queryString}`}
/>
);
}
......
......@@ -337,13 +337,13 @@ class Site {
self.props.updateCurrentIndex && self.props.updateCurrentIndex(-1);
const login = new Login(this.props, () => {
self.setLoading(false);
self.getCityStationsForUser().then(res => {
window.share.event.emit('updateSite', res);
});
// eslint-disable-next-line no-unused-expressions
self.props.updateCurrentIndex && self.props.updateCurrentIndex(0);
// debugger
// initMicroApps();
// 切换站点后,重置掉三级菜单
const homeType = self.globalConfig.homeType || 'civweb4';
const homePath = self.globalConfig.homepage ? self.globalConfig.homepage.startsWith(homeType) ? self.globalConfig.homepage: `/${homeType}/${self.globalConfig.homepage}`: `/${homeType}`;
......@@ -355,17 +355,10 @@ class Site {
// 重新加载订阅消息铃铛
window.share && window.share.event && window.share.event.emit('reloadNotice');
const config = self.globalConfig;
let url = !config.home ? ((config.homepage === '' || _.isNull(config.homepage)) ? `/civweb4`: `/civweb4/${config.homepage.replace(/^\//, '').replace(/^civweb4\//, '')}`) : `/${config.homepage.replace(/^\//, '')}`;
self.props.history && self.props.history.push(url)
self.getCityStationsForUser().then(res => {
window.share.event.emit('updateSite', res);
});
self.props &&
self.props.updateCollapsed &&
self.props.updateCollapsed(false);
const config = self.globalConfig;
let url = !config.home ? ((config.homepage === '' || _.isNull(config.homepage)) ? `/civweb4`: `/civweb4/${config.homepage.replace(/^\//, '').replace(/^civweb4\//, '')}`) : `/${config.homepage.replace(/^\//, '')}`;
self.props.history && self.props.history.push(url);
self.props && self.props.updateCollapsed && self.props.updateCollapsed(false);
window.share.event.emit('triggerMicro', this.props.global);
onChangeVisible && onChangeVisible(false);
});
......
......@@ -106,7 +106,7 @@ export const initMicroApps = () => {
// createStoreage.remove(`__PANDA_STORE__${location.hostname}`)
},
],
afterUnmount: [app => {
afterUnmount: [app => {
actions.offGlobalStateChange();
Logger.info(`[LifeCycle] after unmount %c%s ${app.name}`, app);
}],
......@@ -174,7 +174,10 @@ export const initMicroApps = () => {
url.indexOf('https://maponline1.bdimg.com') !== -1 ||
url.indexOf('https://maponline2.bdimg.com') !== -1 ||
url.indexOf('https://maponline3.bdimg.com') !== -1 ||
url.indexOf('https://api.map.baidu.com/getscript') !== -1,
url.indexOf('https://api.map.baidu.com/getscript') !== -1 ||
url.indexOf('dlswbr.baidu.com') !== -1 ||
url.indexOf('maponline0.bdimg.com') !== -1 ||
url.indexOf('miao.baidu.com') !== -1,
});
runAfterFirstMounted(() => {
Logger.info('[MainApp] first app mounted');
......@@ -189,12 +192,13 @@ export const initMicroApps = () => {
};
export const defaultApp = () => {
// eslint-disable-next-line no-undef
const config = window.globalConfig;
if (config && config.token) {
let url = !config.home ? ((config.homepage === '' || _.isNull(config.homepage)) ? `/civbase/civweb4`: `/civbase/civweb4/${config.homepage.replace(/^\//, '').replace(/^civweb4\//, '')}`) : `/civbase/${config.homepage.replace(/^\//, '')}`;
let url = !config.home ?
((config.homepage === '' || _.isNull(config.homepage)) ? `/civbase/civweb4`: (`/civbase/${config.homepage.replace(/^\//, '')}`)) : `/civbase/${config.homepage.replace(/^\//, '')}`;
setDefaultMountApp(url);
}
};
......@@ -302,7 +306,8 @@ window.app.define('kit_global_config', require.context('../node_modules/kit_glob
window.app.define('@wisdom-utils/utils', require.context('../node_modules/@wisdom-utils/utils/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
window.app.define('@wisdom-utils/runtime', require.context('../node_modules/@wisdom-utils/runtime/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
window.app.define('@wisdom-utils/components', require.context('../node_modules/@wisdom-utils/components/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
window.app.define('axios', require.context('../node_modules/axios/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'axios.js');
window.app.define('js-base64', require.context('../node_modules/js-base64', true, /[^\/]+\.js$/), 'base64.js');
/**
* arcgismap
*/
......@@ -495,6 +500,10 @@ window.app.define('@wisdom-utils/components', require.context('../node_modules/@
window.app.define('@ant-design/pro-list', require.context('../node_modules/@ant-design/pro-list/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
window.app.define('antd', require.context('../node_modules/antd/es', true, /^.\/(es\/)?[^\/]+\.js$/), 'index.js');
// window.app.define('antd-es-button-style', require.context('../node_modules/antd/es/button/style', true, /\.js/));
// window.app.define('antd-es-input-style', require.context('../node_modules/antd/es/input/style', true, /\.js/));
// window.app.define('style-button', require.context('../node_modules/antd/es/button/style', /^.\/(style\/)?[^\/]+\.js$/), 'index.js');
window.app.define('classnames', require.context('classnames', true, /^.\/index\.js$/), 'index.js');
window.app.define('@ant-design/icons', require.context('../node_modules/@ant-design/icons/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
window.app.define('@ant-design/pro-utils', require.context('../node_modules/@ant-design/pro-utils/lib', true, /^.\/(lib\/)?[^\/]+\.js$/), 'index.js');
......
import React from 'react';
import React, { useEffect } from 'react';
import BaseLogin from './template/baseLogin';
import NewYear from './template/newYear';
import InfoLogin from './template/infoLogin';
import Yulin from './template/yulin';
import { getParams } from '@wisdom-utils/utils/lib/helpers/params';
// import { useParams } from '@wisdom-utils/runtime';
import { initGlobalConfig } from '../../../initConfig';
const LoginTemplate = {
'新春 - 智联.html': NewYear,
'Dark - IOTMultiLogin.html': BaseLogin,
'Dark.html': BaseLogin,
'DarkCloud.html': BaseLogin,
'信息化.html': InfoLogin,
'项目 - 榆林.html': Yulin,
'default': BaseLogin
};
/* eslint-disable */
export default () => {
React.useEffect(() => {
export default (props) => {
const redirect = getParams('redirect');
useEffect(() => {
if(getParams('loginName') && getParams('password')) return
initGlobalConfig();
}, []);
const loginTemplate = window.globalConfig && window.globalConfig.loginTemplate;
switch(loginTemplate) {
case '新春 - 智联.html':
return <NewYear/>
case 'Dark - IOTMultiLogin.html':
case 'Dark.html':
return <BaseLogin/>
case '信息化.html':
return <InfoLogin />
case '项目 - 榆林.html':
return <Yulin />
default:
return <BaseLogin/>;
}
}, [redirect]);
const template = window.globalConfig && window.globalConfig.loginTemplate;
const RenderComponent = LoginTemplate[template] ? LoginTemplate[template]: LoginTemplate['default'];
return <RenderComponent {...props}/>
};
......@@ -114,18 +114,27 @@ class Login {
}).then(response => {
if (response && !response.errMsg) {
self.globalConfig.userInfo = {};
if (
response.Groups &&
response.Groups instanceof Array &&
response.Groups.length
) {
self.globalConfig.userInfo.Groups = response.Groups;
if(response.hasOwnProperty('data')) {
self.globalConfig.userInfo = {
// ... self.globalConfig.userInfo,
...response.data
}
} else {
if (
response.Groups &&
response.Groups instanceof Array &&
response.Groups.length
) {
self.globalConfig.userInfo.Groups = response.Groups;
}
self.globalConfig.userInfo = Object.assign(
{},
response,
self.globalConfig.userInfo,
);
}
self.globalConfig.userInfo = Object.assign(
{},
response,
self.globalConfig.userInfo,
);
self.updateConfig && self.updateConfig(self.globalConfig);
self.getUserInfoAndConfig();
} else {
......
......@@ -2,20 +2,34 @@ import React from 'react';
import ReactDOM from 'react-dom';
import { history } from '@wisdom-utils/runtime';
import { Provider } from 'react-redux';
import { ConfigProvider } from 'antd';
import { ConfigProvider, message, Modal, notification } from 'antd';
import { ConnectedRouter } from 'connected-react-router/immutable';
import { ErrorBoundary, LocaleContainer } from '@wisdom-utils/components';
import store from './stores';
import Container from './components/Container';
import App from './containers/App';
const MOUNT_NODE = document.getElementById('root');
const customPrefixCls = 'panda-console-base';
Modal.config({
rootPrefixCls: customPrefixCls
});
message.config({
rootPrefixCls: customPrefixCls
});
notification.config({
rootPrefixCls: customPrefixCls
});
ConfigProvider.config({
prefixCls: customPrefixCls,
});
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">
<ConfigProvider prefixCls={customPrefixCls}>
<ErrorBoundary>
<Container>
<App />
......
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