Commit 5f3c0611 authored by 单奇雲's avatar 单奇雲

点绑定

parent c1b39834
...@@ -546,17 +546,29 @@ class View3D extends Component { ...@@ -546,17 +546,29 @@ class View3D extends Component {
} }
} }
}; };
getPointList = (pointType) => {
let { markers } = this.state getPointLoop = ({ markers }, pointType, treeData) => {
this.clearMarkers(); treeData.forEach( t => {
getPointListAction().then(data => { if(t.isRegion && t.children && t.children.length > 0){
for (let i = 0; i < data.length;i++){ this.getPointLoop( { markers }, pointType, t.children)
if(pointType && data[i].type == pointType){ }else if(t.position3d){
markers[pointType].push(data[i]); t.position = t.position3d;
} t.key = `${t.type}-${t.id}`;
t.label = t.name;
markers[pointType].push(t);
} }
});
}
//编辑模式获取点
getPointList = (pointType,treeData) => {
this.clearMarkers();
if(treeData){
let markers = {};
markers[pointType] = [];
this.getPointLoop( { markers }, pointType, treeData);
this.setState({markers}) this.setState({markers})
}) }
} }
startDrow = (areaItem) => { startDrow = (areaItem) => {
// this.a3dRef.addPen(m); // this.a3dRef.addPen(m);
...@@ -774,7 +786,6 @@ class View3D extends Component { ...@@ -774,7 +786,6 @@ class View3D extends Component {
this.setState({ this.setState({
selectArea:'', selectArea:'',
selectPoints, selectPoints,
positionxyz:selectPoints.position3d && selectPoints.position3d.split(","),
showRightPanel: true, showRightPanel: true,
}); });
} }
...@@ -888,14 +899,17 @@ class View3D extends Component { ...@@ -888,14 +899,17 @@ class View3D extends Component {
for ( let key in markers ){ for ( let key in markers ){
let item = markers[key]; let item = markers[key];
for (let i = 0; i < item.length; i++) { for (let i = 0; i < item.length; i++) {
paramsArr.push({ if(item[i].isChange){
pointId: item[i].id, paramsArr.push({
pointType: item[i].type, pointId: item[i].id,
position3d: `${item[i].position[0]},${item[i].position[1]},${item[i].position[2]}` pointType: item[i].type,
}); position3d: `${item[i].position[0]},${item[i].position[1]},${item[i].position[2]}`
});
}
} }
} }
savePointListAction(paramsArr).then(data => { savePointListAction(paramsArr).then(data => {
message.success("保存成功");
getPointTreeAction(pointType).then(data => { getPointTreeAction(pointType).then(data => {
this.setState({ this.setState({
treeData: data || [], treeData: data || [],
...@@ -961,7 +975,6 @@ class View3D extends Component { ...@@ -961,7 +975,6 @@ class View3D extends Component {
//删除区域 //删除区域
deleteAreaBind = () => { deleteAreaBind = () => {
let { selectArea,treeData } = this.state; let { selectArea,treeData } = this.state;
debugger;
if (selectArea) { if (selectArea) {
getPointsByRegionIdAction(selectArea.id).then(d => { getPointsByRegionIdAction(selectArea.id).then(d => {
if(d && d.length == 0){ if(d && d.length == 0){
...@@ -1024,6 +1037,7 @@ class View3D extends Component { ...@@ -1024,6 +1037,7 @@ class View3D extends Component {
}); });
} else { } else {
getPointTreeAction(pointTypeArr[0].code || '').then(data => { getPointTreeAction(pointTypeArr[0].code || '').then(data => {
this.getPointList( pointTypeArr[0].code, data );
this.setState({ this.setState({
pointType: pointTypeArr[0].code || '', pointType: pointTypeArr[0].code || '',
treeData: data || [], treeData: data || [],
...@@ -1042,8 +1056,8 @@ class View3D extends Component { ...@@ -1042,8 +1056,8 @@ class View3D extends Component {
pointType, pointType,
treeData:[] treeData:[]
}); });
this.getPointList(pointType);
getPointTreeAction(pointType).then(data => { getPointTreeAction(pointType).then(data => {
this.getPointList(pointType,data);
this.setState({ this.setState({
pointType, pointType,
treeData: data || [] treeData: data || []
...@@ -1079,6 +1093,7 @@ class View3D extends Component { ...@@ -1079,6 +1093,7 @@ class View3D extends Component {
} }
drop = (event) => { drop = (event) => {
console.log('drop');
event.preventDefault(); event.preventDefault();
this.setState({isPointSave:false}) this.setState({isPointSave:false})
let { dragItem,markers } = this.state; let { dragItem,markers } = this.state;
...@@ -1113,10 +1128,18 @@ class View3D extends Component { ...@@ -1113,10 +1128,18 @@ class View3D extends Component {
label: dragItem.name, label: dragItem.name,
level: dragItem.level, level: dragItem.level,
levelStr: dragItem.levelStr, levelStr: dragItem.levelStr,
isChange: true
}; };
let selectPoints = {
id: dragItem.id,
type: dragItem.type
}
markers[`${type}`].push(addPointParam); markers[`${type}`].push(addPointParam);
this.setState({ this.setState({
markers: deepCopy(markers) markers: deepCopy(markers),
selectPoints
// positionxyz: position.toArray()
}); });
} }
} }
...@@ -1135,18 +1158,18 @@ class View3D extends Component { ...@@ -1135,18 +1158,18 @@ class View3D extends Component {
isEditMode = true; isEditMode = true;
this.setState({ isEditMode }); this.setState({ isEditMode });
if (isEditMode === true) { if (isEditMode === true) {
getAreaTreeAction().then(data => { getAreaTreeAction().then(treeData => {
this.setState({ this.setState({
treeData: data || [] treeData: treeData || []
}); });
}); getPointTypeAction().then(data => {
getPointTypeAction().then(data => { console.log(data);
console.log(data); this.setState({
this.setState({ pointTypeArr: data || [],
pointTypeArr: data || [], pointType: data[0] ? data[0].code : ''
pointType: data[0] ? data[0].code : '' });
this.getPointList(data[0].code,treeData);
}); });
this.getPointList(data[0].code);
}); });
} }
} }
...@@ -1477,16 +1500,33 @@ class View3D extends Component { ...@@ -1477,16 +1500,33 @@ class View3D extends Component {
return object; return object;
} }
addMarker=({extData,position})=>{ addMarker=({extData,position})=>{
const {markers} =this.state console.log('addMarker');
let paramsArr = [{ let {markers} =this.state;
pointId: extData.id,
pointType: extData.type, for (let i = 0; i < markers[extData.type].length; i++) {
position3d: `${position[0]},${position[1]},${position[2]}` const marker = markers[extData.type][i];
}]; if(marker.id === extData.id){
console.log(paramsArr) marker.position = position;
savePointListAction(paramsArr).then(data => { marker.isChange = true;
}) break;
this.setState({positionxyz: position}) }
};
// let paramsArr = [{
// pointId: extData.id,
// pointType: extData.type,
// position3d: `${position[0]},${position[1]},${position[2]}`
// }];
// console.log(paramsArr)
let selectPoints = {
id: extData.id,
type: extData.type,
position3d: position
}
this.setState({selectPoints,markers});
// savePointListAction(paramsArr).then(data => {
// })
// this.setState({positionxyz: position})
} }
render() { render() {
const { const {
...@@ -1639,7 +1679,7 @@ class View3D extends Component { ...@@ -1639,7 +1679,7 @@ class View3D extends Component {
showRightPanel && pageType === 'region' ? <RightEditRegionPanel detailData={selectArea} rightHeight={rightHeight} closeRightPanel={()=>this.setState({showRightPanel:false})} changeRoutePath={this.changeRoutePath} routePathData={this.state.routePathData}/> : '' showRightPanel && pageType === 'region' ? <RightEditRegionPanel detailData={selectArea} rightHeight={rightHeight} closeRightPanel={()=>this.setState({showRightPanel:false})} changeRoutePath={this.changeRoutePath} routePathData={this.state.routePathData}/> : ''
} }
{ {
showRightPanel && pageType === 'point' ? <RightEditPointPanel detailData={selectPoints} positionxyz={positionxyz} closeRightPanel={()=>this.setState({showRightPanel:false})}/> : '' showRightPanel && pageType === 'point' ? <RightEditPointPanel detailData={selectPoints} showRightPanel={showRightPanel} closeRightPanel={()=>this.setState({showRightPanel:false})} markers={markers} changeMarkersData={this.changeMarkersData}/> : ''
} }
</div> </div>
</div> </div>
......
...@@ -17,42 +17,64 @@ class RightEditPointPanel extends Component { ...@@ -17,42 +17,64 @@ class RightEditPointPanel extends Component {
super(props); super(props);
this.state = { this.state = {
form: { form: {},
rules: {},
}, detailData: [],
rules:{}, positionxyz: [],
detailData:[] positionX: '',
positionY: '',
positionZ: '',
}; };
} }
componentDidMount() { componentDidMount() {
let {detailData}=this.props let { detailData, markers }=this.props
getPointTreeDetailAction(detailData.id,detailData.type).then(data => { getPointTreeDetailAction(detailData.id,detailData.type).then(data => {
console.log(data); console.log(data);
// this.mreageDetailData( data,markers );
this.setState({ this.setState({
detailData: data || [], detailData: data || [],
},err => {
console.log(err)
}); });
}); });
} }
componentWillUnmount() { componentWillUnmount() {
} }
componentWillReceiveProps(nextProps) { componentWillReceiveProps(nextProps) {
let {detailData}=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 => { getPointTreeDetailAction(detailData.id,detailData.type).then(data => {
console.log(data); if(detailData.position3d){
this.setState({ data.position = detailData.position3d;
detailData: data || [], }else if(!data.position){
},err => { const curTypeMaker = markers[data.type];
console.log(err) for (let i = 0; i < curTypeMaker.length; i++) {
}); if(data.id == curTypeMaker[i].id){
data.position = curTypeMaker[i].position;
}
}
}
this.setState({detailData: data,positionX: data.position[0], positionY: data.position[1], positionZ: data.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) => { onChange = (key, e) => {
const value = e.target.value; const value = e.target.value;
const newForm = Object.assign({}, this.state.form, { [key]: value }); const newForm = Object.assign({}, this.state.form, { [key]: value });
...@@ -66,6 +88,7 @@ class RightEditPointPanel extends Component { ...@@ -66,6 +88,7 @@ class RightEditPointPanel extends Component {
form: newForm form: newForm
}); });
} }
onHobbyChange = (value, item) => { onHobbyChange = (value, item) => {
const newForm = Object.assign({}, this.state.form, { 'level': value }); const newForm = Object.assign({}, this.state.form, { 'level': value });
this.setState({ this.setState({
...@@ -73,12 +96,6 @@ class RightEditPointPanel extends Component { ...@@ -73,12 +96,6 @@ class RightEditPointPanel extends Component {
}); });
} }
handleSubmit = (e) => { handleSubmit = (e) => {
// e.preventDefault(); // e.preventDefault();
this.form.validate((valid, dataValues, errors) => { this.form.validate((valid, dataValues, errors) => {
...@@ -92,9 +109,38 @@ class RightEditPointPanel extends Component { ...@@ -92,9 +109,38 @@ class RightEditPointPanel extends Component {
}); });
} }
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);
}
let 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);
}
}
}
render() { render() {
let { rules, form,pointTypeArr,pointType ,detailData,} = this.state; let { rules,form,pointTypeArr,pointType ,detailData,positionxyz,positionX,positionY,positionZ } = this.state;
let { pageType,positionxyz } = this.props; let { pageType } = this.props;
let radio = detailData.isIndoor ? "prop1":"prop2" let radio = detailData.isIndoor ? "prop1":"prop2"
let position = (detailData.position3d) && detailData.position3d.split(",") let position = (detailData.position3d) && detailData.position3d.split(",")
const formItemLayout = { const formItemLayout = {
...@@ -164,17 +210,26 @@ class RightEditPointPanel extends Component { ...@@ -164,17 +210,26 @@ class RightEditPointPanel extends Component {
<div className='position'> <div className='position'>
<div className='positionItem'> <div className='positionItem'>
<FormItem label="X" field="positionX" {...formItemLayout}> <FormItem label="X" field="positionX" {...formItemLayout}>
<Input value={positionxyz && positionxyz[0]} /> <Input
value={ this.state.positionX }
onChange={ (e) => this.onChangePosition('positionX',e.target.value) }
/>
</FormItem> </FormItem>
</div> </div>
<div className='positionItem'> <div className='positionItem'>
<FormItem label="Y" field="positionY" {...formItemLayout}> <FormItem label="Y" field="positionY" {...formItemLayout}>
<Input value={positionxyz && positionxyz[1]} /> <Input
value={ this.state.positionY }
onChange={ (e) => this.onChangePosition('positionY',e.target.value) }
/>
</FormItem> </FormItem>
</div> </div>
<div className='positionItem'> <div className='positionItem'>
<FormItem label="Z" field="positionZ" {...formItemLayout}> <FormItem label="Z" field="positionZ" {...formItemLayout}>
<Input value={positionxyz && positionxyz[2]} /> <Input
value={ this.state.positionZ }
onChange={ (e) => this.onChangePosition('positionZ',e.target.value) }
/>
</FormItem> </FormItem>
</div> </div>
</div> </div>
......
...@@ -188,12 +188,11 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -188,12 +188,11 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
imgHeight: 128, imgHeight: 128,
image: markerTitleBgMapper['base'] image: markerTitleBgMapper['base']
}; };
if(type === 'riskSource'){ if(type === 'riskSource' && !this.props.isEditMode){
cardTitle = '风险值' + title cardTitle = '风险值' + title
}else{ }else{
cardTitle = title ? title : name; cardTitle = name ? name : title;
} }
obj.baseObjHelper.title = cardTitle; obj.baseObjHelper.title = cardTitle;
} }
...@@ -232,7 +231,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -232,7 +231,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
}; };
render() { render() {
const { markers, ...rest } = this.props; const { markers,isEditMode, ...rest } = this.props;
const { planStarted } = this.state; const { planStarted } = this.state;
let dialogStyle = { zIndex: 1000 }; let dialogStyle = { zIndex: 1000 };
...@@ -241,7 +240,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -241,7 +240,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
<WrappedComponent> <WrappedComponent>
<Markers <Markers
{...rest} {...rest}
draggable draggable={isEditMode}
markers={result} markers={result}
events={this.markerEvents} events={this.markerEvents}
onCreated={this.markerCreated} onCreated={this.markerCreated}
......
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