Commit de6c296b authored by 张博's avatar 张博

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

parents 9ba1250d 466f347f
......@@ -11,10 +11,10 @@
objModelURI: '/a3dres',
// 根url
// baseURI: 'http://172.16.11.30:9008/',
baseURI: 'http://172.16.3.122:8083/',
baseURI: 'http://172.16.3.77:8083/',
// convertorURI: 'http://172.16.3.122:8083/',
convertorURI: 'http://172.16.3.122:8083/',
patrolURI: 'http://172.16.3.122:8082/',
convertorURI: 'http://172.16.3.77:8083/',
patrolURI: 'http://172.16.3.77:9000/',
rulesConfigURI: 'http://172.16.10.91:8080/',
// plugin URI
pluginURI: 'http://172.16.11.40:8099/',
......@@ -26,7 +26,7 @@
studioURI: 'ws://172.16.11.40:10600/',
securityBaseURI: 'ws://172.16.10.91:10600/',
convertorView3dURI: 'ws://172.16.10.91:10600/',
ruleURI: 'ws://172.16.10.91:8080/'
ruleURI: 'ws://172.16.3.77:8083/'
},
// 外部链接地址
outterURI: {
......
......@@ -366,3 +366,15 @@
}
}
}
.amos-toast{
.amos-toast-inner{
background: #5a94f5;
opacity: 0.78;
color: white;
.amos-toast-inner-title{
color: white;
}
}
}
......@@ -297,4 +297,43 @@
// }
}
.ant-calendar-picker-container{
.ant-calendar{
border: 1px solid #2b8dd4;
background-color: #2b8dd4;
.ant-calendar-date-input-wrap{
color: white;
.ant-calendar-input{
background-color: #2b8dd4;
}
.ant-calendar-input::-webkit-input-placeholder {
color: white;
}
}
.ant-calendar-header{
color: white;
div a{
color: white;
}
div span a{
color: white;
}
}
.ant-calendar-body{
color: white;
.ant-calendar-cell>.ant-calendar-date{
color: white;
}
.ant-calendar-today>.ant-calendar-date{
color: black;
}
}
.ant-calendar-footer{
color: white;
.ant-calendar-today-btn {
color: white;
}
}
}
}
\ No newline at end of file
......@@ -59,16 +59,6 @@ class PointsPool extends Component {
onMarkersCreated = (type, { markersCache }) => {
this.markerList[type] = markersCache;
let stagePilot = this.props.stagePilot;
debugger;
// if(markersCache&&stagePilot) {
// // console.log(this.markerList)
// console.log(markersCache)
// // console.log(this.props)
// markersCache.eachValue(item => {
// item.node._userData = { ...item.extData };
// stagePilot.positionCtl.objects.push(item.node); })
// }
(markersCache || []).forEach(mc => {
const extData = mc.getExtData();
if (extData.hasOwnProperty('visible')){
......
......@@ -780,23 +780,26 @@ class View3D extends Component {
}
//选中点变化
selectPointChange = (selectPoints) => {
if(selectPoints.isRegion){
this.setState({selectArea:selectPoints})
}else{
this.dragItemChange(selectPoints)
const { markers, pointType } = this.state;
if (selectPoints.isRegion){
this.setState({ selectArea: selectPoints, selectPoints });
} else {
this.dragItemChange(selectPoints);
markers[pointType].map(e => {
if (e.id === selectPoints.id){
selectPoints.position = e.position;
}
});
this.setState({
selectArea:'',
selectArea: '',
selectPoints,
showRightPanel: true,
showRightPanel: true
});
}
}
getAreas = (treeData) => {
let { dragItem ,selectArea} = this.state;
// console.log(treeData)
// let areas = [];
let { dragItem ,selectArea } = this.state;
if (treeData && treeData.length > 0) {
treeData.map((item) => {
if (item.isRegion && item.isBind) {
......@@ -903,6 +906,10 @@ class View3D extends Component {
position3d: item.position.length > 1 ? `${item.position[0]},${item.position[1]},${item.position[2]}` : null
};
});
this.savePointList(pointType,paramsArr);
}
savePointList = (pointType,paramsArr) => {
savePointListAction(paramsArr).then(
data => {
getPointTreeAction(pointType).then(
......@@ -917,54 +924,54 @@ class View3D extends Component {
message.success('保存成功');
},error => message.error('保存失败')
);
}
// 删除点绑定
deletePointBind = () => {
let { selectPoints ,pointTypeArr,pointType,markers} = this.state;
if (selectPoints) {
if (selectPoints && !selectPoints.isRegion) {
let pointParams = [];
pointParams.push({
pointId: selectPoints.id,
pointType: selectPoints.type,
position3d: ``
})
savePointListAction(pointParams).then(data => {
getPointTreeAction(pointType).then(data => {
getPointListAction().then(data => {
let newMarkers ={
riskSource:[],//风险点 - riskSource;
patrol:[],//巡检点 -
impEquipment:[],//重点设备 -
monitorEquipment:[],//探测器 -
video:[],//摄像头 -
fireEquipment:[],//消防设备 -
person:[],
pool:[],
hydrant:[],
fireChamber:[],
fireCar:[],
fire:[],
fireDetection:[]
}
for (let i = 0; i < data.length;i++){
newMarkers[data[i].type].push(data[i]);
}
this.setState( {markers: newMarkers });
})
this.setState({
});
this.savePointAndRefreshMarker(pointType,pointParams);
}else if(selectPoints && selectPoints.isRegion && selectPoints.children){
AmosAlert.confirm('提示', '是否删除该区域下所有点?', {
callback: (flag) => {
if (flag){
let pointParams = [];
pointParams = selectPoints.children.filter(e => e.position3d && e.position3d.length > 0).map(item=>{
return {
pointId: item.id,
pointType: item.type,
position3d: ''
};
});
this.savePointAndRefreshMarker(pointType,pointParams);
} else {
treeData: data || [],
pageType: 'point',
showRightPanel: false
});
});
})
}
}
});
}
}
savePointAndRefreshMarker = (pointType,pointParams) => {
savePointListAction(pointParams).then(data => {
getPointTreeAction(pointType).then(data => {
this.getPointList(pointType,data);
this.setState({
treeData: data || [],
pageType: 'point',
showRightPanel: false
});
});
});
}
//删除区域
deleteAreaBind = () => {
let { selectArea,treeData } = this.state;
......@@ -1034,10 +1041,11 @@ class View3D extends Component {
*/
changeAreaPoint = (type) => {
let { pointTypeArr } = this.state;
this.setState({treeDataList:[]})
this.setState({ treeDataList: [] });
this.stagePilot.positionCtl.clearDrag();//清除已有选中
if (type === 'region') {
getAreaTreeAction().then(data => {
this.generateList(data)
this.generateList(data);
this.setState({
treeData: data || [],
pageType: 'region',
......@@ -1105,7 +1113,7 @@ class View3D extends Component {
}
drop = (event) => {
console.log('drop');
this.stagePilot.positionCtl.clearDrag();
event.preventDefault();
this.setState({ isPointSave: false });
let { dragItem,markers } = this.state;
......@@ -1146,7 +1154,8 @@ class View3D extends Component {
let selectPoints = {
id: dragItem.id,
type: dragItem.type
}
};
markers[`${type}`] = markers[`${type}`].filter(e => e.id != dragItem.id );
markers[`${type}`].push(addPointParam);
this.setState({
markers: deepCopy(markers),
......@@ -1254,29 +1263,22 @@ class View3D extends Component {
});
};
/**
* 更新 markers data
* 批量更新
* @params {Object} markersData {markerType<String>: markers<Array>}
*/
changeMarkersData = markersData => {
if (!utils.isEmpty(markersData)) {
const { markers } = this.state;
const newMarkers = Object.assign({}, markers, markersData);
this.setState({
markers: newMarkers
changeMarkersData = (position,type,id) => {
const me = this;
const { markers, selectPoints } = me.state;
const index = markers[type].findIndex(e=>e.id === id);
if (index >= 0){
markers[type][index].position = position;
markers[type][index].isEdit = true;
selectPoints.position = position;
me.setState({
markers,
selectPoints
});
}
};
createInfowindow = text => {
const div = document.createElement('div');
div.style.position = 'absolute';
div.className = 'three-ui-infowindow';
div.innerText = text;
return div;
};
afterRender = () => {
// this.infoHelper && this.infoHelper.update();
};
......@@ -1470,6 +1472,7 @@ class View3D extends Component {
errorAreaId: areaId
});
} else if (type === 'out_except_model'){
this.stagePilot.positionCtl.clearDrag();
if (!isPointSave){
AmosAlert.confirm('提示', '有未保存数据,是否保存?', {
callback: (flag) => {
......@@ -1537,25 +1540,25 @@ class View3D extends Component {
addMarker=({ extData, position })=>{
const me = this;
const { markers } = me;
const { markers } = me.state;
const isInside = me.polygonRegion && extData.parentId && me.polygonRegion[extData.parentId].pointInPolygon([position.x,position.y,position.z]);
if (isInside){
markers[extData.type].forEach(e => {
if (e.id === extData.id){
e.position = `${position[0]},${position[1]},${position[2]}`;
e.isEdit = true;
}
});
extData.position = position;
this.setState({
markers,
positionxyz: position,
showRightPanel: true,
selectPoints: extData
});
} else {
message.error('不能放置非所在区域');
}
// if (isInside){
markers[extData.type].forEach(e => {
if (e.id === extData.id){
e.position = position;
e.isEdit = true;
}
});
extData.position = position;
this.setState({
markers,
positionxyz: position,
showRightPanel: true,
selectPoints: extData
});
// } else {
// message.error('不能放置非所在区域');
// }
}
render() {
......@@ -1664,7 +1667,7 @@ class View3D extends Component {
>
{startAsyncLoad && <WorkerObjContent objs={asyncModels} onWorkerMessage={this.onWorkerLoading} enableLoading afterInit={this.onAfterWorkerInit} />}
{isEditMode && pageType === 'region' ? '' :
<PointsPool markers={markers} isEditMode={isEditMode} selectPoints={selectPoints} updateMarker={this.updateMarker} planStarted={alarmStarted} stagePilot={this.stagePilot} positionCtl={this.positionCtl} addMarker={this.addMarker}/>}
<PointsPool markers={markers} isEditMode={isEditMode} selectPoints={selectPoints} updateMarker={this.updateMarker} planStarted={alarmStarted} stagePilot={this.stagePilot} positionCtl={this.positionCtl} addMarker={this.addMarker} ref={node => this.pointsPool = node} />}
{fireTruckRoute && <FatLine {...lineData.fatLineConf} linePath={JSON.parse(fireTruckRoute)} visible={showFireTruckRoute} />}
<FlameFire position={firePosition} width={10} height={20} depth={8} sliceSpacing={1} visible={planStarted} />
{isEditMode && this.renderAreas()}
......
......@@ -181,7 +181,7 @@ class PointLeftTree extends Component {
console.log('onSelect', info);
let selectItem = info.node.props.dataRef;
this.setState({ selectedKeys });
this.props.selectPointChange(selectItem)
this.props.selectPointChange(selectItem);
}
render() {
let { treeData, checkedPointsKeys,pointTypeArr,pointType } = this.state;
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Connect, Modal, Tree, Select, Search, Button, Input,InputNumber, Form, Radio } from 'amos-framework';
import * as endConf from 'amos-processor/lib/config/endconf';
import { getAreaTreeAction,saveAreaDataAction,getPointTreeDetailAction } from '../../services/moduleEditServices'
import { Connect, Button, Input, Form, Radio } from 'amos-framework';
import { getPointTreeDetailAction } from '../../services/moduleEditServices';
const eventConnect = Connect.eventConnect;
const TreeNode = Tree.TreeNode;
const Option = Select.Option;
const FormItem = Form.Item;
const RadioGroup = Radio.Group;
......@@ -15,7 +12,6 @@ const RadioGroup = Radio.Group;
class RightEditPointPanel extends Component {
constructor(props) {
super(props);
this.state = {
form: {},
rules: {},
......@@ -23,58 +19,38 @@ class RightEditPointPanel extends Component {
positionxyz: [],
positionX: '',
positionY: '',
positionZ: '',
positionZ: ''
};
}
componentDidMount() {
let { detailData, markers }=this.props
getPointTreeDetailAction(detailData.id,detailData.type).then(data => {
console.log(data);
// this.mreageDetailData( data,markers );
const { detailData } = this.props;
getPointTreeDetailAction(detailData.id, detailData.type).then(data => {
this.setState({
detailData: data || [],
positionX: detailData.position.length > 0 ? detailData.position[0] : '',
positionY: detailData.position.length > 1 ? detailData.position[1] : '',
positionZ: detailData.position.length > 2 ? detailData.position[2] : ''
});
});
}
componentWillUnmount() {
}
componentWillReceiveProps(nextProps) {
let { detailData, markers, showRightPanel } = nextProps;
console.log('componentWillReceivePropscomponentWillReceiveProps');
// positionxyz && this.setState({ positionxyz, positionX: positionxyz[0], positionY: positionxyz[1], positionZ: positionxyz[2] });
getPointTreeDetailAction(detailData.id,detailData.type).then(data => {
if(detailData.position3d){
data.position = detailData.position3d;
}else if(!data.position){
const curTypeMaker = markers[data.type];
for (let i = 0; i < curTypeMaker.length; i++) {
if(data.id == curTypeMaker[i].id){
data.position = curTypeMaker[i].position;
}
}
const { detailData } = nextProps;
getPointTreeDetailAction(detailData.id, detailData.type).then(data => {
if (detailData.position){
data.position = detailData.position;
}
this.setState({detailData: data,positionX: data.position[0], positionY: data.position[1], positionZ: data.position[2]});
this.setState({
detailData: data,
positionX: detailData.position.length > 0 ? detailData.position[0] : '',
positionY: detailData.position.length > 1 ? detailData.position[1] : '',
positionZ: detailData.position.length > 2 ? detailData.position[2] : ''
});
});
}
mreageDetailData = (detailData,markers) => {
const curTypeMaker = markers[detailData.type];
for (let i = 0; i < curTypeMaker.length; i++) {
if(detailData.id == curTypeMaker[i].id){
const position = curTypeMaker[i].position;
// detailData.position3d =
position && this.setState({ positionX: position[0], positionY: position[1], positionZ: position[2] });
}
}
this.setState({detailData});
}
onChange = (key, e) => {
const value = e.target.value;
const newForm = Object.assign({}, this.state.form, { [key]: value });
......@@ -82,6 +58,7 @@ class RightEditPointPanel extends Component {
form: newForm
});
}
onRadioChange = (value) => {
const newForm = Object.assign({}, this.state.form, { 'isIndoor': value });
this.setState({
......@@ -96,53 +73,27 @@ class RightEditPointPanel extends Component {
});
}
handleSubmit = (e) => {
// e.preventDefault();
this.form.validate((valid, dataValues, errors) => {
console.log('返回内容:', dataValues, valid, errors);
if (valid) {
// AmosAlert.success('结果', JSON.stringify(dataValues));
} else {
console.log('error submit!!');
return false;
}
});
}
onChangePosition = ( inputType , value ) => {
let { positionX, positionY, positionZ } = this.state;
if(inputType === 'positionX'){
this.state.positionX = Number(value);
}else if(inputType === 'positionY'){
this.state.positionY = Number(value);
}else{
this.state.positionZ = Number(value);
if (inputType === 'positionX'){
positionX = value;
} else if (inputType === 'positionY'){
positionY = value;
} else {
positionZ = value;
}
let position = [positionX,positionY,positionZ];
const position = [positionX,positionY,positionZ];
this.mreageMarkerPosition(position);
}
mreageMarkerPosition = ( position ) => {
let { markers } = this.props;
const { detailData } = this.state;
const curTypeMaker = markers[detailData.type] || [];
for (let index = 0; index < curTypeMaker.length; index++) {
const marker = curTypeMaker[index];
if(marker.id === detailData.id){
marker.position = position;
marker.isChange = true;
this.props.changeMarkersData(markers);
}
}
this.props.changeMarkersData(position,detailData.type,detailData.id);
}
render() {
let { rules,form,pointTypeArr,pointType ,detailData,positionxyz,positionX,positionY,positionZ } = this.state;
let { pageType } = this.props;
let radio = detailData.isIndoor ? "prop1":"prop2"
let position = (detailData.position3d) && detailData.position3d.split(",")
let { rules,form,detailData } = this.state;
let radio = detailData.isIndoor ? 'prop1' : 'prop2';
const formItemLayout = {
labelCol: {
xs: { span: 28 },
......@@ -170,7 +121,6 @@ class RightEditPointPanel extends Component {
<FormItem field="name" >
<Input value={detailData.name} disabled/>
</FormItem>
</div>
<div className='msgItem'>
<div className='itemLabel'>参考编号</div>
......@@ -186,14 +136,7 @@ class RightEditPointPanel extends Component {
<div className='msgItem'>
<div className='itemLabel'>风险等级</div>
<FormItem field="level" >
{/* <Select value={form.level} onChange={this.onHobbyChange}>
<Option value="1">一级</Option>
<Option value="2">二级</Option>
<Option value="3">三级</Option>
<Option value="4">四级</Option>
<Option value="5">五级</Option>
</Select> */}
<Input value={detailData.level} disabled/>
<Input value={detailData.level} disabled />
</FormItem>
</div>
......@@ -210,7 +153,7 @@ class RightEditPointPanel extends Component {
<div className='position'>
<div className='positionItem'>
<FormItem label="X" field="positionX" {...formItemLayout}>
<Input
<Input
value={ this.state.positionX }
onChange={ (e) => this.onChangePosition('positionX',e.target.value) }
/>
......@@ -218,7 +161,7 @@ class RightEditPointPanel extends Component {
</div>
<div className='positionItem'>
<FormItem label="Y" field="positionY" {...formItemLayout}>
<Input
<Input
value={ this.state.positionY }
onChange={ (e) => this.onChangePosition('positionY',e.target.value) }
/>
......@@ -226,9 +169,9 @@ class RightEditPointPanel extends Component {
</div>
<div className='positionItem'>
<FormItem label="Z" field="positionZ" {...formItemLayout}>
<Input
<Input
value={ this.state.positionZ }
onChange={ (e) => this.onChangePosition('positionZ',e.target.value) }
onChange={ (e) => this.onChangePosition('positionZ',e.target.value) }
/>
</FormItem>
</div>
......@@ -237,7 +180,7 @@ class RightEditPointPanel extends Component {
<div className='msgItem'>
<div className='itemLabel'>楼层位置</div>
<FormItem field="floorNum" >
<Input value={detailData.floor3d} disabled/>
<Input value={detailData.floor3d} disabled />
</FormItem>
</div>
......@@ -260,7 +203,7 @@ class RightEditPointPanel extends Component {
<Button
className='sureBtn'
onClick={() => {
this.handleSubmit()
this.props.closeRightPanel()
}} ></Button>
<Button
className='cancelBtn'
......@@ -276,8 +219,9 @@ class RightEditPointPanel extends Component {
}
RightEditPointPanel.propTypes = {
subscribe: PropTypes.func,
trigger: PropTypes.func
closeRightPanel: PropTypes.func,
detailData: PropTypes.object,
changeMarkersData: PropTypes.func
};
export default RightEditPointPanel;
......@@ -134,7 +134,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
}
}
markerCreated = ({ markersCache }) => {
let {isEditMode,selectKey} =this.props
let { isEditMode,selectKey } =this.props;
this.markersCache = markersCache;
this.stagePilot = this.props.stagePilot;
this.outlineHelper = this.stagePilot ? this.stagePilot.outlineHelper : undefined;
......
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