Commit 8a13e303 authored by 邓晓峰's avatar 邓晓峰

fix: app.js initConfig bug

parent 0fe6ceae
Pipeline #22935 skipped with stages
......@@ -7177,9 +7177,9 @@
}
},
"@wisdom-utils/utils": {
"version": "0.0.28",
"resolved": "https://g.civnet.cn:4873/@wisdom-utils%2futils/-/utils-0.0.28.tgz",
"integrity": "sha512-Jbyqu8D4XGW1o3QbRw63K+EvATLElR+GDjyLh4eSxMwScw6YLfS3XoFnupExoaGir9DjEyFkxAuDcyRRM2pSxA==",
"version": "0.0.29",
"resolved": "https://g.civnet.cn:4873/@wisdom-utils%2futils/-/utils-0.0.29.tgz",
"integrity": "sha512-djsx6KVrpslN8/lJiMNz1zriNDiRJQfXZxH1jaxe+zQZ2+LxIJhO5ZvbjkGQM1CnQdn0BtoX1XuK/R5RI5FqYg==",
"requires": {
"axios": "^0.21.1",
"cookie": "^0.4.1",
......@@ -14046,7 +14046,7 @@
"micromatch": {
"version": "4.0.2",
"resolved": "https://g.civnet.cn:4873/micromatch/-/micromatch-4.0.2.tgz",
"integrity": "sha1-T8sJmb+fvC/L3SEvbWKbmlbDklk=",
"integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
"dev": true,
"requires": {
"braces": "^3.0.1",
......@@ -16099,7 +16099,7 @@
"micromatch": {
"version": "4.0.2",
"resolved": "https://g.civnet.cn:4873/micromatch/-/micromatch-4.0.2.tgz",
"integrity": "sha1-T8sJmb+fvC/L3SEvbWKbmlbDklk=",
"integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
"dev": true,
"requires": {
"braces": "^3.0.1",
......@@ -20380,7 +20380,7 @@
"micromatch": {
"version": "3.1.10",
"resolved": "https://g.civnet.cn:4873/micromatch/-/micromatch-3.1.10.tgz",
"integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"dev": true,
"requires": {
"arr-diff": "^4.0.0",
......@@ -28512,7 +28512,7 @@
"micromatch": {
"version": "3.1.10",
"resolved": "https://g.civnet.cn:4873/micromatch/-/micromatch-3.1.10.tgz",
"integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"dev": true,
"requires": {
"arr-diff": "^4.0.0",
......@@ -28737,7 +28737,7 @@
"micromatch": {
"version": "4.0.2",
"resolved": "https://g.civnet.cn:4873/micromatch/-/micromatch-4.0.2.tgz",
"integrity": "sha1-T8sJmb+fvC/L3SEvbWKbmlbDklk=",
"integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
"dev": true,
"requires": {
"braces": "^3.0.1",
......@@ -88,7 +88,7 @@
"@babel/runtime": "^7.10.5",
"promise.prototype.finally": "^3.1.2",
"@wisdom-utils/components": "0.0.6",
"@wisdom-utils/utils": "0.0.28",
"@wisdom-utils/utils": "0.0.29",
"@wisdom-utils/vapp-browser-vm": "^0.0.11",
"@wisdom-utils/vapp-browser-vm-plugins": "^0.0.13",
"animate.css": "^4.1.1",
......@@ -106,7 +106,7 @@
"ip": "1.1.5",
"js-base64": "^3.5.2",
"js-cookie": "^2.2.1",
"kit_global_config": "^1.0.21",
"kit_global_config": "^1.0.22",
"kit_logger": "^1.0.2",
"kit_utils": "^1.3.8",
"lodash": "4.17.11",
......
......@@ -7,6 +7,7 @@ import 'file-loader?name=.htaccess!./.htaccess'; // eslint-disable-line import/e
import 'kit_utils/lib/format';
import 'sanitize.css/sanitize.css';
import './locales/zh-CN';
import Cookies from 'js-cookie';
import React from 'react';
import ReactDOM from 'react-dom';
import { ErrorBoundary } from '@ant-design/pro-utils';
......@@ -27,6 +28,7 @@ import history from './utils/history';
import { isString } from './utils/utils';
import i18n from './utils/share';
import { appService } from './api';
import Login from './pages/user/login/login';
const isHttps = document.location.protocol === 'https:';
const { pwa } = defaultSettings;
// eslint-disable-next-line no-restricted-globals
......@@ -63,9 +65,10 @@ const initLocale = () => {
};
const initGlobalConfig = () => {
debugger
// eslint-disable-next-line no-undef
const config = createStoreage.get('globalConfig') || {};
if (config.title == null) {
if (!Cookies.get('token') || config.token == null) {
// eslint-disable-next-line no-undef
createStoreage.remove(namespace);
}
......@@ -78,6 +81,9 @@ const initGlobalConfig = () => {
if (!createStoreage.get('globalConfig')) {
window.createStoreage = new Storeage(namespace);
}
if(!Cookies.get('token')) {
localStorage.removeItem('loginSite');
}
if (params.getParams('client')) {
appService
.queryConfig({ client: params.getParams('client') || 'city' })
......@@ -104,7 +110,16 @@ const initGlobalConfig = () => {
store.dispatch(actionCreators.getConfigError(error));
});
}
if (config.title !== null && Object.keys(config).length > 0) {
if (config.token !== null && Object.keys(config).length > 0) {
// eslint-disable-next-line no-new
new Login(
{
global: config,
updateConfig: data => store.dispatch(actionCreators.getConfig(data)),
},
() => {},
true,
);
store.dispatch(actionCreators.getConfig(config));
render({ appContent: '', loading: true });
} else {
......@@ -135,6 +150,17 @@ const initGlobalConfig = () => {
Object.assign({}, window.globalConfig, data),
),
);
// eslint-disable-next-line no-new
new Login(
{
global: Object.assign({}, window.globalConfig, data),
// eslint-disable-next-line no-shadow
updateConfig: data =>
store.dispatch(actionCreators.getConfig(data)),
},
() => {},
true,
);
// eslint-disable-next-line no-shadow
}
return res;
......
......@@ -81,7 +81,6 @@ class AvatarDropdown extends React.Component {
}
this.props.updateCurrentIndex && this.props.updateCurrentIndex(0);
debugger
this.props.history.push(
`/user/login/?client=${window.globalConfig.client}`,
);
......
import { fromJS } from 'immutable';
import Cookies from 'js-cookie';
import { Storeage as Store } from 'kit_utils';
import AppConfig from 'kit_global_config';
import defaultSetting from '../../../../config/defaultSetting';
import generRoutes, { generFlatRoutes } from '../../../utils/routes';
import Storage from '../../../utils/storage';
......@@ -78,15 +78,8 @@ const appReducer = (state = initialState, action) => {
env: process.env.NODE_ENV === 'development' ? 'daily' : 'prod',
},
);
// eslint-disable-next-line global-require
if (!window.globalConfig) {
// eslint-disable-next-line global-require
window.globalConfig = require('kit_global_config').default;
} else {
// eslint-disable-next-line no-underscore-dangle
window.globalConfig = window.__INITIAL_STATE__;
}
// eslint-disable-next-line global-require,no-underscore-dangle
window.globalConfig = AppConfig(window.__INITIAL_STATE__);
// eslint-disable-next-line no-undef
createStoreage.set('globalConfig', window.globalConfig);
// eslint-disable-next-line no-undef,no-case-declarations
......
......@@ -5,8 +5,9 @@ import React, {
useRef,
useState,
} from 'react';
import Cookies from 'js-cookie';
import { Anchor, Button, Popover, Radio, Result, Spin } from 'antd';
import classNames from 'classnames';
import { dom } from 'kit_utils';
import { connect } from 'react-redux';
......@@ -14,7 +15,7 @@ import { renderRoutes } from 'react-router-config';
import { useHistory } from 'react-router-dom';
import { useMountedState } from 'react-use';
import { LeftOutlined, MenuFoldOutlined } from '@ant-design/icons';
import { LeftOutlined, MenuFoldOutlined, LoadingOutlined } from '@ant-design/icons';
import ProLayout, { getPageTitle } from '@ant-design/pro-layout';
import { getMatchMenu } from '@umijs/route-utils';
import pkg from '../../package.json';
......@@ -28,6 +29,9 @@ import SecurityLayout from './SecurityLayout';
import Site from './Site';
import styles from './UserLayout.less';
import defaultSetting from '../../config/defaultSetting';
import Login from '../pages/user/login/login';
const antIcon = <LoadingOutlined style={{ fontSize: 12 }} spin />;
const baseURI = isProd
? window.location.origin
: `http://${window.location.hostname}:3020`;
......@@ -215,6 +219,7 @@ const renderTitle = (
setLoading,
collapsed,
fixedHeader,
config
) => {
// eslint-disable-next-line react-hooks/rules-of-hooks
const [visible, setVisible] = useState(false);
......@@ -235,12 +240,17 @@ const renderTitle = (
: `${deltWidth}px`;
}
}
let loaded = !!(data && !data.stations || (Array.isArray(data.weathers) && data.weathers.length === 0));
if(config && config.userInfo && config.userInfo.site === "") {
loaded = false;
}
return {
render: (
<>
<span className={styles['header-title']} style={{ marginLeft }}>
{title}
</span>
<Spin indicator={antIcon} spinning={loaded} size="small" style={{marginLeft: '10px'}} tip="加载中" wrapperClassName={styles.spinLoadding}>
<div className={styles.cityContent}>
<Popover
placement="bottomLeft"
......@@ -283,6 +293,8 @@ const renderTitle = (
</span>
) : null}
</div>
</Spin>
</>
),
};
......@@ -298,9 +310,7 @@ const BasicLayout = props => {
} = props;
const basename = getBaseName();
const history = useHistory();
const [currentRoutes, setCurrentRoutes] = useState(
props.route.routes[props.currentMenuIndex],
);
const [currentRoutes, setCurrentRoutes] = useState([]);
const [collapse, setCollapse] = useState(false);
const [loading, setLoading] = useState(true);
const [cityData, setCityData] = useState({});
......@@ -312,6 +322,10 @@ const BasicLayout = props => {
() => new Site(props, setSiteLoading),
);
useEffect(() => {
setCurrentRoutes(props.route.routes[props.currentMenuIndex]);
}, [props.route]);
useEffect(() => {
props.updatePathname(props.location.pathname);
}, []);
......@@ -364,14 +378,16 @@ const BasicLayout = props => {
}, [props.currentMenuIndex]);
useEffect(() => {
if (!props.global.token) {
if (!Cookies.get('token')) {
history.replace(`/user/login?client=${props.global.get('client')}`);
return;
}
if(props.global && props.global.userInfo && props.global.userInfo.token !== null && Object.keys(cityData).length === 0) {
siteAction.getCityStationsForUser().then(res => {
setCityData(res);
});
}, []);
}
}, [props.global]);
useMemo(() => {
window.share.event.on('listenerRemoveTab', () => {
......@@ -461,6 +477,7 @@ const BasicLayout = props => {
setSiteLoading,
collapse,
others.fixedHeader,
props.global,
);
const menuComplexDataRender = menuList =>
......
......@@ -151,6 +151,33 @@
letter-spacing: 2px;
}
.spinLoadding {
> div {
width: 100%;
:global {
.@{ant-prefix}-spin {
display: flex!important;
flex-direction: row;
align-items: center;
flex: 0 1;
width: 100px!important;
}
.anticon-loading {
top: 75%!important;
left: 0!important;
}
.@{ant-prefix}-spin-text {
font-size: 12px;
display: inline-block;
top: 30%!important;
color: #c3c3c3;
width: 100px;
left: 10px!important;
text-align: left;
}
}
}
}
.cityContent {
.siteName {
padding-right: 5px;
......
import React, { useCallback, useState, useEffect } from 'react';
import React, { useCallback, useState, useEffect, useMemo } from 'react';
import { Space, Spin } from 'antd';
import classNames from 'classnames';
......@@ -13,15 +13,13 @@ const pages = i18n.getI18n('app');
const industries = ['供水', '排水', '消防', '暖通', '节水', '实验室'];
const renderIndustries = (config, callback) =>
industries.map(item => {
// if (
// config &&
// config.userInfo &&
// config.userInfo.Industries &&
// config.userInfo.Industries instanceof Array &&
// config.userInfo.Industries.indexOf(item) > -1
// ) {
//
// }
if (
config &&
config.userInfo &&
config.userInfo.Industries &&
config.userInfo.Industries instanceof Array &&
config.userInfo.Industries.indexOf(item) > -1
) {
return (
<li
className={styles.bootPageLi}
......@@ -39,6 +37,7 @@ const renderIndustries = (config, callback) =>
</div>
</li>
);
}
});
const BootPage = props => {
const [loadding, setLoadding] = useState(false);
......@@ -55,7 +54,6 @@ const BootPage = props => {
props.instance && props.instance.updateConfig(config);
// props.instance && props.instance.getUserInfoAndConfig('', true, type);
loginAction.getUserInfoAndConfig('', true, type);
// eslint-disable-next-line no-shadow
loginAction.events.on('toggleIndustry', event => {
setLoadding(false);
......@@ -63,7 +61,7 @@ const BootPage = props => {
window.share.event.emit('triggerMicro', props.global);
props.updateCurrentIndex(0);
// eslint-disable-next-line no-restricted-globals
// location.reload();
location.reload();
});
}, []);
useEffect(() => {
......@@ -83,6 +81,10 @@ const BootPage = props => {
window.removeEventListener('resize', handleResize);
};
});
const renderIndustr = useMemo(
() => renderIndustries(props.global, handlePage),
[],
);
return (
<SecurityLayout>
<div className={styles.bootPage}>
......@@ -115,7 +117,7 @@ const BootPage = props => {
opacity: 1,
}}
>
{renderIndustries(props.global, handlePage)}
{renderIndustr}
</ul>
</section>
<Space className={styles.abs}>
......
......@@ -147,6 +147,7 @@ class Login {
) {
this.createContext(this);
// console.log('云平台');
this.updateConfig && this.updateConfig(this.globalConfig);
this.history.push('/industry');
return false;
}
......
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