Commit ca994e24 authored by 邓晓峰's avatar 邓晓峰

feat: add AvatarDropdown

parent c57d778f
Pipeline #47277 skipped with stages
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
"@wisdom-map/Map": "^1.0.12-17", "@wisdom-map/Map": "^1.0.12-17",
"@wisdom-map/arcgismap": "^1.0.79-17", "@wisdom-map/arcgismap": "^1.0.79-17",
"@wisdom-map/util": "^1.0.27-0", "@wisdom-map/util": "^1.0.27-0",
"@wisdom-utils/components": "0.0.34", "@wisdom-utils/components": "0.0.37",
"@wisdom-utils/runtime": "0.0.15", "@wisdom-utils/runtime": "0.0.15",
"@wisdom-utils/utils": "0.0.77", "@wisdom-utils/utils": "0.0.77",
"animate.css": "^4.1.1", "animate.css": "^4.1.1",
...@@ -131,7 +131,6 @@ ...@@ -131,7 +131,6 @@
"kit_utils": "^1.3.11", "kit_utils": "^1.3.11",
"lodash": "4.17.11", "lodash": "4.17.11",
"minimist": "1.2.0", "minimist": "1.2.0",
"mqtt-client": "^1.0.11",
"omit.js": "^2.0.2", "omit.js": "^2.0.2",
"pinyin-match": "^1.1.1", "pinyin-match": "^1.1.1",
"promise.prototype.finally": "^3.1.2", "promise.prototype.finally": "^3.1.2",
...@@ -159,8 +158,7 @@ ...@@ -159,8 +158,7 @@
"reselect": "4.0.0", "reselect": "4.0.0",
"sanitize.css": "8.0.0", "sanitize.css": "8.0.0",
"sha1": "^1.1.1", "sha1": "^1.1.1",
"styled-components": "4.2.0", "styled-components": "4.2.0"
"use-merge-value": "^1.0.2"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "7.4.3", "@babel/cli": "7.4.3",
...@@ -243,11 +241,9 @@ ...@@ -243,11 +241,9 @@
"less-loader": "5.0.0", "less-loader": "5.0.0",
"lint-staged": "8.1.5", "lint-staged": "8.1.5",
"memoizee": "^0.4.15", "memoizee": "^0.4.15",
"microser-data": "^2.1.3",
"mini-css-extract-plugin": "^0.12.0", "mini-css-extract-plugin": "^0.12.0",
"mockjs": "^1.0.1-beta3", "mockjs": "^1.0.1-beta3",
"moment": "^2.29.1", "moment": "^2.29.1",
"mousetrap": "^1.6.5",
"multer": "^1.4.2", "multer": "^1.4.2",
"nanoid": "^3.1.16", "nanoid": "^3.1.16",
"node-fetch": "^2.6.1", "node-fetch": "^2.6.1",
......
import React from 'react';
import { BaseComponent } from '@wisdom-utils/components';
import mousetrap from 'mousetrap';
import propTypes from 'prop-types';
/* eslint-disable */
export default class HandlerMap extends BaseComponent {
componentDidMount() {
const { keyHandlerMap } = this.props;
if (keyHandlerMap) {
// eslint-disable-next-line no-multi-assign
const mouse = (this.mousetrap = mousetrap);
let c = !0;
let d = !1;
// eslint-disable-next-line no-void
const e = void 0;
try {
for (
// eslint-disable-next-line no-var,vars-on-top
var f, g = keyHandlerMap.entries()[Symbol.iterator]();
!(c = (f = g.next()).done);
c = !0
) {
const { value } = f;
mouse.bind(value[0], value[1]);
}
// eslint-disable-next-line no-shadow
} catch (e) {
d = !0;
// eslint-disable-next-line no-ex-assign
e = mouse;
} finally {
try {
// eslint-disable-next-line no-unused-expressions,block-scoped-var
!c && g.return && g.return();
} finally {
if (d) {
// eslint-disable-next-line no-unsafe-finally
throw e;
}
}
}
}
}
componentWillUnmount() {
// eslint-disable-next-line no-unused-expressions
this.mousetrap && this.mousetrap.reset() && (this.mousetrap = null);
}
render() {
return this.props.children;
}
}
HandlerMap.propTypes = {
keyHandlerMap: propTypes.object,
children: propTypes.node,
};
import React from 'react'; import React from 'react';
import HandlerMap from './HandlerMap'; import { HandlerMap } from '@wisdom-utils/components';
const MaintenanceHost = window.location.origin; const MaintenanceHost = window.location.origin;
const MaintenancePath = 'civmanage'; const MaintenancePath = 'civmanage';
......
This diff is collapsed.
...@@ -5,9 +5,12 @@ import { connect } from 'react-redux'; ...@@ -5,9 +5,12 @@ import { connect } from 'react-redux';
import Icon from '@ant-design/icons'; import Icon from '@ant-design/icons';
import classNames from 'classnames'; import classNames from 'classnames';
import { useHistory } from '@wisdom-utils/runtime'; import { useHistory } from '@wisdom-utils/runtime';
import { HeaderSearch, useIntl } from '@wisdom-utils/components'; import {
HeaderSearch,
useIntl,
AvatarDropdown as Avatar,
} from '@wisdom-utils/components';
import { actionCreators } from '../../containers/App/store'; import { actionCreators } from '../../containers/App/store';
import Avatar from './AvatarDropdown';
import styles from './index.less'; import styles from './index.less';
import NoticeIconView from './NoticeIconView'; import NoticeIconView from './NoticeIconView';
/* eslint-disable */ /* eslint-disable */
......
...@@ -2,7 +2,11 @@ import React, { Component } from 'react'; ...@@ -2,7 +2,11 @@ import React, { Component } from 'react';
import { Button, Form, Input, Modal } from 'antd'; import { Button, Form, Input, Modal } from 'antd';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { Notifier, NoticeIcon } from '@wisdom-utils/components'; import {
Notifier,
NoticeIcon,
FormattedMessage,
} from '@wisdom-utils/components';
import { import {
ERR_OK, ERR_OK,
MESSAGE_TYPE, MESSAGE_TYPE,
...@@ -12,7 +16,6 @@ import { ...@@ -12,7 +16,6 @@ import {
findPathByWidget, findPathByWidget,
isJSON, isJSON,
} from '@wisdom-utils/components/lib/AppLayout/helpers'; } from '@wisdom-utils/components/lib/AppLayout/helpers';
import { FormattedMessage } from '@wisdom-utils/components';
import service from '../../api/service/notification'; import service from '../../api/service/notification';
import { actionCreators } from '../../containers/App/store'; import { actionCreators } from '../../containers/App/store';
import isProd from '../../utils/env'; import isProd from '../../utils/env';
......
...@@ -4,10 +4,13 @@ import { message } from 'antd'; ...@@ -4,10 +4,13 @@ import { message } from 'antd';
import _ from 'lodash'; import _ from 'lodash';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import Icon from '@ant-design/icons'; import Icon from '@ant-design/icons';
import { HeaderSearch, useIntl } from '@wisdom-utils/components'; import {
HeaderSearch,
useIntl,
AvatarDropdown as Avatar,
} from '@wisdom-utils/components';
import { actionCreators } from '../../containers/App/store'; import { actionCreators } from '../../containers/App/store';
import Avatar from './AvatarDropdown';
import styles from './index.less'; import styles from './index.less';
import NoticeIconView from './NoticeIconView'; import NoticeIconView from './NoticeIconView';
......
...@@ -13,7 +13,7 @@ const UserLayout = props => { ...@@ -13,7 +13,7 @@ const UserLayout = props => {
routes: [], routes: [],
}, },
} = props; } = props;
console.log(props)
const { breadcrumb } = getMenuData(route.routes); const { breadcrumb } = getMenuData(route.routes);
const title = getPageTitle({ const title = getPageTitle({
breadcrumb, breadcrumb,
...@@ -35,8 +35,7 @@ const UserLayout = props => { ...@@ -35,8 +35,7 @@ const UserLayout = props => {
<div className={styles.container}> <div className={styles.container}>
<div className={styles.content}> <div className={styles.content}>
{renderRoutes(route.routes, props {renderRoutes(route.routes, props)}
)}
{props.children} {props.children}
</div> </div>
{/* <DefaultFooter links={[]} copyright="Copyright © 熊猫智慧水务 2020 All Rights Reserved 沪ICP备11036640-1"/> */} {/* <DefaultFooter links={[]} copyright="Copyright © 熊猫智慧水务 2020 All Rights Reserved 沪ICP备11036640-1"/> */}
......
...@@ -7,12 +7,12 @@ import { connect } from 'react-redux'; ...@@ -7,12 +7,12 @@ import { connect } from 'react-redux';
import { useIntl } from '@wisdom-utils/components'; import { useIntl } from '@wisdom-utils/components';
import { useDocumentTitle } from '@ant-design/pro-utils'; import { useDocumentTitle } from '@ant-design/pro-utils';
import { useHistory } from '@wisdom-utils/runtime';
import defaultSetting from '../../../config/defaultSetting'; import defaultSetting from '../../../config/defaultSetting';
import { actionCreators } from '../../containers/App/store'; import { actionCreators } from '../../containers/App/store';
import SecurityLayout from '../../layouts/SecurityLayout'; import SecurityLayout from '../../layouts/SecurityLayout';
import LoginAction from '../user/login/login'; import LoginAction from '../user/login/login';
import styles from './index.less'; import styles from './index.less';
import { useHistory } from '@wisdom-utils/runtime';
import { initMicroApps } from '@/micro'; import { initMicroApps } from '@/micro';
import usingIcon from '@/assets/bootPage/using-icon.png'; import usingIcon from '@/assets/bootPage/using-icon.png';
import { appService } from '@/api'; import { appService } from '@/api';
...@@ -63,27 +63,28 @@ const BootPage = props => { ...@@ -63,27 +63,28 @@ const BootPage = props => {
const [loadding, setLoadding] = useState(false); const [loadding, setLoadding] = useState(false);
const [hasRole, setHasRole] = useState(false); const [hasRole, setHasRole] = useState(false);
const [scale, setScale] = useState(1); const [scale, setScale] = useState(1);
const [loginAction, setAction] = useState( const [loginAction, setAction] = useState(() => new LoginAction(props));
() => new LoginAction(props),
);
const history = useHistory(); const history = useHistory();
useDocumentTitle( useDocumentTitle(
{ title: defaultSetting.title, id: '', pageName: '行业切换' }, { title: defaultSetting.title, id: '', pageName: '行业切换' },
props.global.title || defaultSetting.title, props.global.title || defaultSetting.title,
); );
const handlePage = useCallback((event, type) => { const handlePage = useCallback(
event.persist(); (event, type) => {
event.preventDefault(); event.persist();
setLoadding(true); event.preventDefault();
const config = props.global; setLoadding(true);
// const loginAction = new LoginAction(props); const config = props.global;
config.uiwidgets = []; // const loginAction = new LoginAction(props);
config.widgets = []; config.uiwidgets = [];
config.allWidgets = []; config.widgets = [];
props.instance && props.instance.updateConfig(config); config.allWidgets = [];
// props.instance && props.instance.getUserInfoAndConfig('', true, type); props.instance && props.instance.updateConfig(config);
loginAction && loginAction.getUserInfoAndConfig('', true, type); // props.instance && props.instance.getUserInfoAndConfig('', true, type);
}, []); loginAction && loginAction.getUserInfoAndConfig('', true, type);
},
[loginAction, props.global, props.instance],
);
useEffect(() => { useEffect(() => {
// eslint-disable-next-line no-use-before-define // eslint-disable-next-line no-use-before-define
handleResize(); handleResize();
...@@ -104,16 +105,16 @@ const BootPage = props => { ...@@ -104,16 +105,16 @@ const BootPage = props => {
initMicroApps(); initMicroApps();
window.share.event.emit('triggerMicro', props.global); window.share.event.emit('triggerMicro', props.global);
props.updateCurrentIndex(0); props.updateCurrentIndex(0);
} };
loginAction.events.on('toggleIndustry', handleToggleIndustry); loginAction.events.on('toggleIndustry', handleToggleIndustry);
return () => { return () => {
window.removeEventListener('resize', handleResize); window.removeEventListener('resize', handleResize);
loginAction.events.removeListener('toggleIndustry', handleToggleIndustry); loginAction.events.removeListener('toggleIndustry', handleToggleIndustry);
}; };
}, []); }, [loginAction.events, props]);
const renderIndustr = useMemo( const renderIndustr = useMemo(
() => renderIndustries(props.global, handlePage), () => renderIndustries(props.global, handlePage),
[], [handlePage, props.global],
); );
const intl = useIntl(); const intl = useIntl();
...@@ -123,20 +124,22 @@ const BootPage = props => { ...@@ -123,20 +124,22 @@ const BootPage = props => {
}; };
useEffect(() => { useEffect(() => {
appService.getUserInfo({ appService
token: props.global.token, .getUserInfo({
subOID: 'subOID', token: props.global.token,
site: 'cloud', subOID: 'subOID',
ignoreSite: true, site: 'cloud',
}) ignoreSite: true,
.then(res => { })
const roles = res && !res.errMsg ? res.roles : null; .then(res => {
const _hasRole = roles && Array.isArray(roles) && roles.filter(r => { const roles = res && !res.errMsg ? res.roles : null;
return r.name == '客户运维管理员'; const _hasRole =
}).length; roles &&
setHasRole(!!_hasRole); Array.isArray(roles) &&
}); roles.filter(r => r.name == '客户运维管理员').length;
}, []); setHasRole(!!_hasRole);
});
}, [props.global.token]);
return ( return (
<SecurityLayout> <SecurityLayout>
...@@ -180,7 +183,10 @@ const BootPage = props => { ...@@ -180,7 +183,10 @@ const BootPage = props => {
</div> </div>
{hasRole ? ( {hasRole ? (
<div className={styles.cloudMonitorBtns}> <div className={styles.cloudMonitorBtns}>
<div className="cloud-using-anaylysis-btn" onClick={toOMSUsingAnalysis}> <div
className="cloud-using-anaylysis-btn"
onClick={toOMSUsingAnalysis}
>
<img src={usingIcon} alt="" title="点击查看平台使用监控" /> <img src={usingIcon} alt="" title="点击查看平台使用监控" />
<span>平台使用分析</span> <span>平台使用分析</span>
</div> </div>
......
...@@ -4,7 +4,7 @@ import { connect } from 'react-redux'; ...@@ -4,7 +4,7 @@ import { connect } from 'react-redux';
import AMapLoader from '@amap/amap-jsapi-loader'; import AMapLoader from '@amap/amap-jsapi-loader';
import { store } from '@wisdom-utils/utils'; import { store } from '@wisdom-utils/utils';
import { actionCreators } from '@/containers/App/store'; import { actionCreators } from '@/containers/App/store';
import MapComponent from '@/components/mapView'; import MapComponent from '@/components/MapView';
class CreateMap extends React.Component { class CreateMap extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);
......
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