Commit a20b98b8 authored by suhuiguang's avatar suhuiguang

全局监控360模式,下方按钮增加权限控制,非管理员无编辑功能

parent 1a4d9ff1
import React from 'react';
import PropTypes from 'prop-types';
import { Connect, Modal } from 'amos-framework';
import { Modal } from 'amos-framework';
import Basic from 'amos-designer/lib/pages/sketchs';
import * as endConf from 'amos-processor/lib/config/endconf';
import PilotController from 'amos-viz/lib/board/PilotController';
......@@ -11,18 +11,17 @@ import Statistical from './../view/panoramic/statistical';
// 引入换流站3dview模块主体样式文件
import './../styles';
const eventConnect = Connect.eventConnect;
const AmosConfig = endConf.AmosConfig;
const enableScreenSaver = AmosConfig.sysConf.convertor.screenSaverConf.enable;
const delayTime = AmosConfig.sysConf.convertor.screenSaverConf.delayTime;
const timeOutTime = 1000;
/**
* 换流站3dview
*
* @class ConvertorView3DRoot
* @extends {Basic}
*/
@eventConnect
class ConvertorView3DRoot extends Basic {
constructor(props) {
super(props);
......@@ -31,7 +30,6 @@ class ConvertorView3DRoot extends Basic {
isEdit: false
};
this.pushTimeOutId = null;
}
componentDidMount() {}
......@@ -44,16 +42,12 @@ class ConvertorView3DRoot extends Basic {
}
editModelChange = (status) => {
this.setState({
isEdit: status
});
this.setState({ isEdit: status });
}
onLoadCompleted = () => {
console.log('3d resources load completed');
this.setState({
showScreenSaver: true
});
this.setState({ showScreenSaver: true });
};
getScreenSaverContext = () => {
......@@ -86,17 +80,20 @@ class ConvertorView3DRoot extends Basic {
this.setState({
showScreenSaver: true
});
}, 1000);
}, timeOutTime);
}
}
render() {
const { isEdit } = this.state;
const { isPermissionControl = false, bizPerActionBars = {} } = this.props;
return (
<div style={{ height: '100%' }}>
{ isEdit ? '' : <Statistical /> }
<div className="sys-view-3d">
<View3D
isPermissionControl={isPermissionControl}
bizPerActionBars={bizPerActionBars}
ref={node => this.view3d = node}
onLoadCompleted={this.onLoadCompleted}
hiddenScreenSaver={this.hiddenScreenSaver}
......@@ -111,7 +108,8 @@ class ConvertorView3DRoot extends Basic {
ConvertorView3DRoot.propTypes = {
subscribe: PropTypes.func,
trigger: PropTypes.func
trigger: PropTypes.func,
isPermissionControl: PropTypes.bool,
bizPerActionBars: PropTypes.arrays
};
export default ConvertorView3DRoot;
......@@ -88,7 +88,9 @@ class MaskContent extends Component {
isShowActionBar,
headerName,
errorAreaId,
focusPosition
focusPosition,
isPermissionControl,
bizPerActionBars
} = this.props;
alarmStarted && this.props.editModelChange(true);
const wsURL = completeToken(SysWsURL.rulews);
......@@ -117,7 +119,15 @@ class MaskContent extends Component {
{ !alarmStarted && isShowActionBar && <SearchPane visible={searchPaneVisible} focusPosition={focusPosition} changeSearchPaneVisible={this.changeSearchPaneVisible} />}
<TopMsg alarmStart={alarmStart} />
{ !alarmStarted && !isShowActionBar && <ModelHeader animationProps={controlAnimation} headerName={headerName} handleExceptModel={this.handleExceptModel} />}
{ !alarmStarted && isShowActionBar && <ActionBar activeAction={activeAction} onActionItemClick={(e) => this.actionBarClick(e)} animationProps={controlAnimation} /> }
{ !alarmStarted && isShowActionBar &&
<ActionBar
isPermissionControl={isPermissionControl}
bizPerActionBars={bizPerActionBars}
PeractiveAction={activeAction}
onActionItemClick={(e) => this.actionBarClick(e)}
animationProps={controlAnimation}
/>
}
{alarmStarted && <LayerPool animationProps={layerPoolAnimation} planStart={planStart} planQuit={planQuit} planStarted={planStarted} />}
</div>
);
......@@ -147,7 +157,9 @@ MaskContent.propTypes = {
handleExceptModel: PropTypes.func,
errorAreaId: PropTypes.number,
editModelChange: PropTypes.func,
focusPosition: PropTypes.func
focusPosition: PropTypes.func,
isPermissionControl: PropTypes.bool,
bizPerActionBars: PropTypes.arrays
};
MaskContent.defaultProps = {
......
......@@ -1719,7 +1719,7 @@ class View3D extends Component {
isOutterView,
routePathData
} = this.state;
const { dimension, hiddenScreenSaver, editModelChange } = this.props;
const { dimension, hiddenScreenSaver, editModelChange, isPermissionControl, bizPerActionBars } = this.props;
const graphicProps = {
...dimension,
...desigerConf,
......@@ -1799,6 +1799,8 @@ class View3D extends Component {
handleExceptModel={this.handleExceptModel}
editModelChange={editModelChange}
focusPosition={this.focusPosition}
isPermissionControl={isPermissionControl}
bizPerActionBars={bizPerActionBars}
/>
}
modelContentProps={modelContentProps}
......@@ -1882,7 +1884,9 @@ View3D.propTypes = {
onLoadCompleted: PropTypes.func,
alarmStart: PropTypes.func,
planStart: PropTypes.func,
editModelChange: PropTypes.func
editModelChange: PropTypes.func,
isPermissionControl: PropTypes.bool,
bizPerActionBars: PropTypes.arrays
};
export default View3D;
......@@ -16,6 +16,16 @@ class ActionBar extends Component {
super(props);
}
getActionBars =()=>{
const { isPermissionControl = false, bizPerActionBars = {} } = this.props;
if (isPermissionControl){
return actionBars.filter(bar => bizPerActionBars[bar.key] && bizPerActionBars[bar.key].hasPermission);
} else {
return actionBars;
}
}
itemClick = (item) => {
this.props.onActionItemClick && this.props.onActionItemClick(item);
this.props.trigger(eventTopics.innate_operater, {
......@@ -26,11 +36,12 @@ class ActionBar extends Component {
render() {
const { animationProps, activeAction = 'panoramic' } = this.props;
const permissionBars = this.getActionBars();
return (
<SidePane className="action-pane-data" left={false} top={false} {...animationProps}>
<div className="action-list">
{
actionBars.map( a => {
permissionBars.map( a => {
const cls = classNames({
'action-item': true,
'action-active': activeAction === a.type && !a.singleClick
......@@ -57,7 +68,9 @@ ActionBar.propTypes = {
animationProps: PropTypes.object,
onActionItemClick: PropTypes.func,
trigger: PropTypes.func,
activeAction: PropTypes
activeAction: PropTypes,
isPermissionControl: PropTypes.bool,
bizPerActionBars: PropTypes.arrays
};
export default ActionBar;
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