Commit dbfb0677 authored by suhuiguang's avatar suhuiguang

Merge branch 'developer' of http://172.16.10.76/station/amos-station-module-view into developer

# Conflicts: # mods/components/3dviewConvertor/view/View3D.js
parents 029270c7 ef93eb7e
......@@ -67,7 +67,7 @@ export default {
search: require('../assets/convertor/3dview/datapanel/search.png'),
smilingFace: require('../assets/convertor/3dview/datapanel/smilingFace.png'),
user: require('../assets/convertor/3dview/datapanel/user.png'),
searchPane: require('../assets/convertor/3dview/actionbars/chaxun.png'),
searchPane: require('../assets/convertor/3dview/actionbars/chaxun.png')
},
markers: {
riskSource_0: require('../assets/convertor/3dview/markers/risk-0.png'),
......
.action-pane-data{
.action-pane-data {
position: absolute;
bottom: 5%;
left: 50%;
transform: translateX(-50%);
.action-list {
height: 40px;
padding: 0 1rem;
border-radius: 6px;
background:rgba(216,216,216,0.24);
border:1px solid rgba(146,149,151,1);
.action-list {
height: 40px;
padding: 0 1rem;
background-color: rgba(216, 216, 216, 0.24);
border: 1px solid rgba(146, 149, 151, 1);
border-radius: 6px;
.action-item{
float: left;
width: 40px;
height: 38px;
text-align: center;
cursor: pointer ;
border:1px solid rgba(146,149,151,1);
.action-item {
float: left;
width: 40px;
height: 38px;
text-align: center;
cursor: pointer;
border: 1px solid rgba(146, 149, 151, 1);
.action-item-title{
color: #e0e0e0;
position: absolute;
top: -20px;
white-space: nowrap;
width: 51px;
-webkit-transform-origin-x: 0;
-webkit-transform: scale(0.80);
text-align: center;
}
.action-item-title {
position: absolute;
top: -20px;
width: 51px;
color: #e0e0e0;
text-align: center;
white-space: nowrap;
-webkit-transform-origin-x: 0;
-webkit-transform: scale(0.8);
}
.action-item-content{
text-align: center;
position: relative;
width: 100%;
height: 100%;
.action-item-content {
position: relative;
width: 100%;
height: 100%;
text-align: center;
.action-item-icon{
margin: 8px;
width: 21px;
height: 21px;
position: relative;
}
}
.action-item-icon {
position: relative;
width: 21px;
height: 21px;
margin: 8px;
}
}
}
.action-active{
background: linear-gradient(180deg,rgba(0,96,154,0.8) 0%,rgba(0,54,105,0.5) 100%);
}
.action-active {
background: linear-gradient(180deg, rgba(0, 96, 154, 0.8) 0%, rgba(0, 54, 105, 0.5) 100%);
}
}
}
......@@ -48,7 +48,7 @@
.carousel-img {
width: 100%;
height: 100%;
padding: 5px
padding: 5px;
}
.carousel-indicators {
......@@ -138,9 +138,7 @@
float: left;
width: 131px;//9.84%;
height: 40px;
//background: $biz-table-title-color;//#333;
background: rgba(25, 86, 147, 1);
// border-left: 1px solid $core-border-color;
box-sizing: border-box;
flex: 1;
}
......
......@@ -56,7 +56,7 @@ class MaskContent extends Component {
this.setState({ activeAction: type });
}
this.props.onActionItemClick && this.props.onActionItemClick(type, label, showLabel);
if(type === "search"){
if (type === 'search'){
this.changeSearchPaneVisible();
}
}
......
......@@ -93,7 +93,7 @@ class PointsPool extends Component {
}
return (
<Shuttle>
<RiskPoint
<RiskPoint
{...rest}
markers={markers.riskSource}
onCreated={(val) => this.onMarkersCreated('riskSource', val)}
......@@ -136,12 +136,18 @@ class PointsPool extends Component {
markers={markers.pool}
onCreated={(val) => this.onMarkersCreated('pool', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.hydrant}
onCreated={(val) => this.onMarkersCreated('hydrant', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
......@@ -157,12 +163,18 @@ class PointsPool extends Component {
markers={markers.fireChamber}
onCreated={(val) => this.onMarkersCreated('fireChamber', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.fireFoamRoom}
onCreated={(val) => this.onMarkersCreated('fireFoamRoom', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
{!hideDetector ?
<FireResourcePoint
......@@ -204,6 +216,9 @@ class PointsPool extends Component {
markers={markers.fireCar}
onCreated={(val) => this.onMarkersCreated('fireCar', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<PointStatistics
{...rest}
......
import React, { Component } from 'react';
import { Modal ,Button} from 'amos-framework';
import { Modal } from 'amos-framework';
class PromptModal extends Component {
constructor(props) {
super(props);
this.state = {
};
this.state = {};
}
cancel = ()=>{
const {isback} =this.props.promptData
this.props.closePromptModal()
if(isback){
this.props.handleOutExceptModel()
cancel = () => {
const { isback } = this.props.promptData;
this.props.closePromptModal();
if (isback) {
this.props.handleOutExceptModel();
}
}
saveData=()=>{
const {isback,type} =this.props.promptData
if(isback){
this.props.handleOutExceptModel()
};
saveData = () => {
const { isback, type } = this.props.promptData;
if (isback) {
this.props.handleOutExceptModel();
}
this.props.closePromptModal()
if(type=='region')
{
this.props.saveAreaData()
}else{
this.props.savePointData()
this.props.closePromptModal();
if (type === 'region') {
this.props.saveAreaData();
} else {
this.props.savePointData();
}
}
};
render() {
const {promptData} =this.props
const { promptData } = this.props;
return (
<Modal
visible={promptData.promptvisible}
className={'pormpt-modal'}
content={<div className ='prompt-content'>
<div>{promptData.promptContent}</div>
{promptData.btnType =='isOk'?
<div className='prompt-buttons'>
<span className={'promptOk'} onClick={this.saveData} />
<span className={'promptNo'} onClick={this.cancel} />
</div>:
<div className='prompt-buttons'>
<span className={'promptSave'} onClick={this.saveData} />
<span className={'promptCancel'} onClick={this.cancel} />
</div>
}
</div>
}
noDefaultFooter
noDefaultHeader
destroyContent
onCancel={this.cancel}
closable={false}
/>
<Modal
visible={promptData.promptvisible}
className={'pormpt-modal'}
content={
<div className="prompt-content">
<div>{promptData.promptContent}</div>
{promptData.btnType == 'isOk' ? (
<div className="prompt-buttons">
<span className={'promptOk'} onClick={this.saveData} />
<span className={'promptNo'} onClick={this.cancel} />
</div>
) : (
<div className="prompt-buttons">
<span className={'promptSave'} onClick={this.saveData} />
<span className={'promptCancel'} onClick={this.cancel} />
</div>
)}
</div>
}
noDefaultFooter
noDefaultHeader
destroyContent
onCancel={this.cancel}
closable={false}
/>
);
}
}
......
......@@ -44,10 +44,13 @@ class ExceptionArea extends Component {
}
onMarkerClick = (marker) => {
console.log(marker);
const { extData } = marker;
this.props.handleExceptModel && this.props.handleExceptModel('into_except_model',extData.id);
this.props.focusPosition(this.toCameraPosition(extData.position));
}
setTopCardConf = (obj,{ safetyIndex })=>{
obj.baseObjHelper.titleConfig = {
// 顶牌平面参数
......@@ -71,6 +74,16 @@ class ExceptionArea extends Component {
obj.baseObjHelper.title = safetyIndex;
}
toCameraPosition = (item) => {
if (item && item.x){
return { x: item.x , y: item.y + 200 , z: item.z + 200 };
} else if (item && item[0]){
return { x: item[0] , y: item[1] + 200 , z: item[2] + 200 };
} else {
return;
}
}
markerCreated = ({ markersCache }) => {
this.markersCache = markersCache;
markersCache.eachValue(item=>{
......@@ -97,7 +110,8 @@ class ExceptionArea extends Component {
ExceptionArea.propTypes = {
markers: PropTypes.array,
handleExceptModel: PropTypes.func
handleExceptModel: PropTypes.func,
focusPosition: PropTypes.func
};
export default ExceptionArea;
/* eslint-disable react/prop-types */
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Connect, Tree, Select, Search, Button } from 'amos-framework';
......@@ -29,15 +30,15 @@ class PointLeftTree extends Component {
this.state = {
// showScreenSaver: false //是否打开屏保
expandedKeys: [],
autoExpandParent: true,
checkedKeys: [],
selectedKeys: [],
treeData:[],
pointTypeArr:[],
pointType:'',
treeDataList : [],
searchValue:''
expandedKeys: [],
autoExpandParent: true,
checkedKeys: [],
selectedKeys: [],
treeData: [],
pointTypeArr: [],
pointType: '',
treeDataList: [],
searchValue: ''
};
}
......@@ -53,27 +54,22 @@ class PointLeftTree extends Component {
// console.log(this.props)
}
componentWillUnmount() {
}
componentWillReceiveProps(nextProps) {
console.log(nextProps)
let {treeData,pointTypeArr,treeDataList} = nextProps;
this.setState({
treeData,
treeDataList,
//pointTypeArr,
//pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
console.log(nextProps);
let { treeData,treeDataList } = nextProps;
this.setState({
treeData,
treeDataList
});
}
onSelectChange = (value, item) =>{
console.log(value, item);
this.setState({pointType:value})
this.setState({ pointType: value });
this.props.pointTypeChange(value);
}
onSearchChange = e => {
const {treeDataList,treeData} = this.state
const { treeDataList,treeData } = this.state;
const value = e.target.value;
const expandedKeys = treeDataList
.map(item => {
......@@ -84,16 +80,13 @@ class PointLeftTree extends Component {
})
.filter((item, i, self) => item && self.indexOf(item) === i);
this.setState({
expandedKeys,
searchValue: value,
autoExpandParent: true
});
}
expandedKeys,
searchValue: value,
autoExpandParent: true
});
}
onExpand = (expandedKeys) => {
//console.log('onExpand', arguments);
// if not set autoExpandParent to false, if children expanded, parent can not collapse.
// or, you can remove all expanded children keys.
this.setState({
expandedKeys,
autoExpandParent: false
......@@ -107,10 +100,11 @@ class PointLeftTree extends Component {
}
// eslint-disable-next-line react/sort-comp
renderTreeNodes = (data) => {
let {searchValue} =this.state
let { searchValue } = this.state;
// console.log(data);
if (data.length>0) {
if (data.length > 0) {
return data.map((item) => {
const index = item.name.indexOf(searchValue);
const beforeStr = item.name.substr(0, index);
......@@ -162,11 +156,12 @@ class PointLeftTree extends Component {
</span>}
</div>
}
key={item.id}
dataRef={item}
onDragStart={() => {
this.props.dragItemChange(item)
}}>
key={item.id}
dataRef={item}
onDragStart={() => {
this.props.dragItemChange(item);
}}
>
{this.renderTreeNodes(item.children)}
</TreeNode>
);
......@@ -184,55 +179,52 @@ class PointLeftTree extends Component {
this.props.selectPointChange(selectItem);
}
render() {
let { treeData, checkedPointsKeys,pointTypeArr,pointType } = this.state;
let { pageType } = this.props;
return (
let { treeData,pointTypeArr,pointType } = this.state;
return (
<div className="leftTree">
<div className='leftContainer'>
<div className='topForm'>
{(pointType!='') &&
<Select onChange={this.onSelectChange} defaultValue={pointType} value={pointType} className='leftSelect'>
{
pointTypeArr.map(item => {
return (<Option className='selectOption' value={item.code} >{item.name}</Option>)
<div className='leftContainer'>
<div className='topForm'>
{(pointType !== '') &&
<Select onChange={this.onSelectChange} defaultValue={pointType} value={pointType} className='leftSelect'>
{
pointTypeArr.map((item )=> {
return (<Option key={item} className='selectOption' value={item.code} >{item.name}</Option>);
})
}
</Select>
</Select>
}
<Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</div>
<div className='treeBox'>
<Tree
// checkable
// checkStrictly
selectable={true}
onExpand={this.onExpand}
expandedKeys={this.state.expandedKeys}
autoExpandParent={this.state.autoExpandParent}
// onCheck={this.onCheck}
// checkedKeys={checkedPointsKeys}
onSelect={this.onTreeSelect}
selectedKeys={this.state.selectedKeys}
blockNode
>
{this.renderTreeNodes(treeData)}
</Tree>
</div>
<div className='bottomBtns'>
<Button
className='sureBtn'
onClick={() => {
this.props.savePointData()
}} ></Button>
<Button
className='deleteBtn'
onClick={() => {
this.props.deletePointBind()
}} ></Button>
</div>
<Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</div>
<div className='treeBox'>
<Tree
selectable
onExpand={this.onExpand}
expandedKeys={this.state.expandedKeys}
autoExpandParent={this.state.autoExpandParent}
onSelect={this.onTreeSelect}
selectedKeys={this.state.selectedKeys}
blockNode
>
{this.renderTreeNodes(treeData)}
</Tree>
</div>
<div className='bottomBtns'>
<Button
className='sureBtn'
onClick={() => {
this.props.savePointData();
}}
/>
<Button
className='deleteBtn'
onClick={() => {
this.props.deletePointBind();
}}
/>
</div>
</div>
</div>
);
......
......@@ -89,7 +89,6 @@ class RightEditRegionPanel extends Component {
this.form.validate((valid, dataValues, errors) => {
console.log('返回内容:', dataValues, valid, errors);
if (valid) {
let routePathData=[ {
riskSourceId: detailData.id,
routePath: JSON.stringify({
......@@ -106,8 +105,10 @@ class RightEditRegionPanel extends Component {
})
}
this.props.changeRoutePath(routePathDataNode);
this.props.closeRightPanel()
} else {
console.log('error submit!!');
this.props.closeRightPanel()
return false;
}
});
......
......@@ -4,7 +4,7 @@ import { Button, Input, Select, Group } from 'amos-framework';
import { SingleQueryEnum } from 'amos-processor/lib/config/queryEnum';
import { trim } from 'amos-tool';
import { DatePicker } from 'amos-antd';
import moment from "moment";
import moment from 'moment';
import imgStatic from './../../consts/imgStatic';
import {
getImpEquipmentAction,
......@@ -16,9 +16,9 @@ const Option = Select.Option;
const MsgTypeEnum = [{ id: 'protal', name: '巡检' }, { id: 'equiment', name: '设备' }, { id: 'risk', name: '风险' }];
const groupStyle = { display: 'unset', width: '100%' };
const selectStyle = { width: '25%', minWidth: '20%', marginRight:'14px' };
const inputStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight:'14px' };
const datePickerStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight:'14px' };
const selectStyle = { width: '25%', minWidth: '20%', marginRight: '14px' };
const inputStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight: '14px' };
const datePickerStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight: '14px' };
const enterkey = 13;
/**
*
......@@ -45,7 +45,7 @@ class paramsHeader extends Component {
impEquiList: [],
filter: [],
recordFilter: [],
statusList: [],
statusList: []
};
}
......@@ -61,10 +61,10 @@ class paramsHeader extends Component {
msgTextValue: undefined,
recordTextValue: undefined,
filter: [],
recordFilter: [],
})
recordFilter: []
});
}
}
}
onChange = (e) => {
this.setState({ value: e.target.value });
......@@ -74,9 +74,9 @@ class paramsHeader extends Component {
let showRiskLevel = false;
let showImpEquiList = false;
if(value === 'riskSource'){
if (value === 'riskSource'){
showRiskLevel = true;
}else if(value === 'monitorEquipment'){
} else if (value === 'monitorEquipment'){
showImpEquiList = true;
}
this.setState({ showRiskLevel, showImpEquiList });
......@@ -85,8 +85,8 @@ class paramsHeader extends Component {
onPamarmsChange = (name,value) => {
let { filter } = this.state;
if(name === 'time'){
value = value == null ? '' : moment(value).format("YYYY-MM-DD");
if (name === 'time'){
value = value == null ? '' : moment(value).format('YYYY-MM-DD');
}
if (value) {
const flag = filter.some(e => {
......@@ -99,19 +99,19 @@ class paramsHeader extends Component {
} else {
filter = filter.filter(e => e.name !== name);
}
if(name === 'inputText'){
if (name === 'inputText'){
this.setState({ textValue: value,filter });
}else if(name === 'title'){
} else if (name === 'title'){
this.setState({ msgTextValue: value,filter });
}else{
} else {
this.setState({ filter }, this.props.paramsOnChange(filter));
}
}
paramsTypeonChange = (name,value,type,key) => {
let {recordFilter} = this.state;
if(name === 'checkTime'){
value = value == null ? '' : moment(value).format("YYYY-MM-DD");
let { recordFilter } = this.state;
if (name === 'checkTime'){
value = value == null ? '' : moment(value).format('YYYY-MM-DD');
}
if (value) {
const flag = recordFilter.some(e => {
......@@ -125,16 +125,15 @@ class paramsHeader extends Component {
} else {
recordFilter = recordFilter.filter(e => e.name !== name);
}
debugger;
if(name === 'contingencyName'){
this.setState({recordTextValue:value,recordFilter})
}else if(name === 'pointName'){
if(key === 'record'){
this.setState({ recordTextValue:value,recordFilter });
}else{
if (name === 'contingencyName'){
this.setState({ recordTextValue: value,recordFilter });
} else if (name === 'pointName'){
if (key === 'record'){
this.setState({ recordTextValue: value,recordFilter });
} else {
this.setState({ trajectoryTextValue: value,recordFilter });
}
}else{//不为input时直接查询
} else {//不为input时直接查询
this.setState({ recordFilter }, this.props.paramsOnChange(recordFilter));
}
}
......@@ -142,8 +141,8 @@ class paramsHeader extends Component {
//检索
getSearchContent = () => {
const { showRiskLevel, showImpEquiList, impEquiList,filter } = this.state;
let levelStyle = { width: '20%', minWidth: '15%', height: '28px', marginRight:'14px' };
let implStyle = { width: '35%', minWidth: '20%', height: '28px', marginRight:'14px' };
let levelStyle = { width: '20%', minWidth: '15%', height: '28px', marginRight: '14px' };
let implStyle = { width: '35%', minWidth: '20%', height: '28px', marginRight: '14px' };
return (<Group style={groupStyle}>
<Select
key="searchType"
......@@ -160,7 +159,7 @@ class paramsHeader extends Component {
onChange={(e) => this.onPamarmsChange('inputText',e.target.value)}
placeholder="输入关键字"
/>
<img className="params-input-img" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)}/>
<img className="params-input-img" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)} />
</div>
{
showRiskLevel &&
......@@ -171,7 +170,7 @@ class paramsHeader extends Component {
renderOption={item => <Option className='modalSelectOption' key={item.key} value={item.key}>{item.label}</Option>}
defaultOption={<Option className='modalSelectOption'>全部</Option>}
onChange={(v) => this.onPamarmsChange('dataLevel',v)}
/>
/>
}
{
showImpEquiList &&
......@@ -182,7 +181,7 @@ class paramsHeader extends Component {
renderOption={item => <Option className='modalSelectOption' key={item.name} value={item.name}>{item.name}</Option>}
defaultOption={<Option className='modalSelectOption'>全部</Option>}
onChange={(v) => this.onPamarmsChange('impEquipment',v)}
/>
/>
}
</Group>);
......@@ -207,7 +206,7 @@ class paramsHeader extends Component {
onChange={(e) => this.onPamarmsChange('title',e.target.value)}
placeholder="输入关键字"
/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)}/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)} />
</div>
<DatePicker
key="time"
......@@ -216,7 +215,7 @@ class paramsHeader extends Component {
placeholder="时间"
format="YYYY/MM/DD"
onChange={(v) => this.onPamarmsChange('time',v)}
/>
/>
</Group>);
......@@ -230,7 +229,7 @@ class paramsHeader extends Component {
key="recordImpl"
style={selectStyle}
data={impEquiList}
renderOption={item => <Option key={item.id+item.name} value={item.id}>{item.name}</Option>}
renderOption={item => <Option key={item.id + item.name} value={item.id}>{item.name}</Option>}
defaultOption={<Option>重点设备</Option>}
onChange={(v) => this.paramsTypeonChange('equipmentId', v , SingleQueryEnum.EQUAL)}
/>
......@@ -241,7 +240,7 @@ class paramsHeader extends Component {
onChange={(e) => this.paramsTypeonChange('contingencyName', e.target.value, SingleQueryEnum.LIKE,'record')}
placeholder="输入关键字"
/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=> this.props.paramsOnChange(recordFilter)}/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=> this.props.paramsOnChange(recordFilter)} />
</div>
<DatePicker
key="createTime"
......@@ -250,7 +249,7 @@ class paramsHeader extends Component {
placeholder="时间"
format="YYYY/MM/DD"
onChange={(v) => this.paramsTypeonChange('createTime', v, SingleQueryEnum.EQUAL)}
/>
/>
</Group>);
}
......@@ -273,7 +272,7 @@ class paramsHeader extends Component {
onChange={(e) => this.paramsTypeonChange('pointName', e.target.value, SingleQueryEnum.LIKE)}
placeholder="输入关键字"
/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=>this.props.paramsOnChange(recordFilter)}/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=>this.props.paramsOnChange(recordFilter)} />
</div>
<DatePicker
key="createTime"
......@@ -282,19 +281,19 @@ class paramsHeader extends Component {
placeholder="时间"
format="YYYY/MM/DD"
onChange={(v) => this.paramsTypeonChange('beginDate', v, SingleQueryEnum.EQUAL)}
/>
/>
</Group>);
}
getContent = () =>{
const { activeKey } = this.props;
if(activeKey === 'search'){
if (activeKey === 'search'){
return this.getSearchContent();
}else if(activeKey === 'message'){
} else if (activeKey === 'message'){
return this.getMessageContent();
}else if(activeKey === 'record'){
} else if (activeKey === 'record'){
return this.getRecordContent();
}else{
} else {
return this.getTrajectoryContent();
}
}
......
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