Commit 5679d8dd authored by 张博's avatar 张博

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

parents 65b85573 5b53aa58
...@@ -483,7 +483,7 @@ class View3D extends Component { ...@@ -483,7 +483,7 @@ class View3D extends Component {
onAllDone = objGroup => { onAllDone = objGroup => {
this.sceneFactory.level.change(objGroup); this.sceneFactory.level.change(objGroup);
this.cameraFactory.fitView(desigerHelperConfig.cameraEffect); this.stagePilot.rendererFactory.setupUModelSahdow();//接受阴影
this.setState({ this.setState({
startAsyncLoad: true startAsyncLoad: true
}); });
...@@ -493,6 +493,8 @@ class View3D extends Component { ...@@ -493,6 +493,8 @@ class View3D extends Component {
onAfterWorkerInit = workerObjGroup => { onAfterWorkerInit = workerObjGroup => {
// 处理跳跃 // 处理跳跃
this.lensJumpFactory.process(workerObjGroup); this.lensJumpFactory.process(workerObjGroup);
// 子线程模型加上阴影
workerObjGroup.toggleShadow(true);
}; };
onComplete = obj => { onComplete = obj => {
...@@ -546,17 +548,29 @@ class View3D extends Component { ...@@ -546,17 +548,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);
...@@ -773,7 +787,6 @@ class View3D extends Component { ...@@ -773,7 +787,6 @@ class View3D extends Component {
this.setState({ this.setState({
selectArea:'', selectArea:'',
selectPoints, selectPoints,
positionxyz:selectPoints.position3d && selectPoints.position3d.split(","),
showRightPanel: true, showRightPanel: true,
}); });
} }
...@@ -882,18 +895,14 @@ class View3D extends Component { ...@@ -882,18 +895,14 @@ class View3D extends Component {
savePointData = () => { savePointData = () => {
let { markers, pointType, isPointSave} = this.state; let { markers, pointType, isPointSave} = this.state;
this.setState({isPointSave: true}); this.setState({isPointSave: true});
console.log(markers);
let paramsArr = []; let paramsArr = [];
for ( let key in markers ){ paramsArr = markers[pointType].filter(e=> e.isEdit).map(item=>{
let item = markers[key]; return {
for (let i = 0; i < item.length; i++) { pointId: item.id,
paramsArr.push({ pointType: item.type,
pointId: item[i].id, position3d: item.position.length > 1 ? `${item.position[0]},${item.position[1]},${item.position[2]}` : null
pointType: item[i].type, };
position3d: `${item[i].position[0]},${item[i].position[1]},${item[i].position[2]}` });
});
}
}
savePointListAction(paramsArr).then( savePointListAction(paramsArr).then(
data => { data => {
getPointTreeAction(pointType).then( getPointTreeAction(pointType).then(
...@@ -1038,7 +1047,8 @@ class View3D extends Component { ...@@ -1038,7 +1047,8 @@ class View3D extends Component {
this.disabledCamera(); this.disabledCamera();
} else { } else {
getPointTreeAction(pointTypeArr[0].code || '').then(data => { getPointTreeAction(pointTypeArr[0].code || '').then(data => {
this.generateList(data) this.getPointList( pointTypeArr[0].code, data );
this.generateList(data);
this.setState({ this.setState({
pointType: pointTypeArr[0].code || '', pointType: pointTypeArr[0].code || '',
treeData: data || [], treeData: data || [],
...@@ -1058,8 +1068,8 @@ class View3D extends Component { ...@@ -1058,8 +1068,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 || []
...@@ -1095,6 +1105,7 @@ class View3D extends Component { ...@@ -1095,6 +1105,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;
...@@ -1128,11 +1139,19 @@ class View3D extends Component { ...@@ -1128,11 +1139,19 @@ class View3D extends Component {
title: dragItem.name, title: dragItem.name,
label: dragItem.name, label: dragItem.name,
level: dragItem.level, level: dragItem.level,
levelStr: dragItem.levelStr, isEdit: true,
levelStr: dragItem.levelStr
}; };
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()
}); });
} }
} }
...@@ -1151,19 +1170,19 @@ class View3D extends Component { ...@@ -1151,19 +1170,19 @@ 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.generateList(data) this.generateList(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);
}); });
} }
} }
...@@ -1515,22 +1534,30 @@ class View3D extends Component { ...@@ -1515,22 +1534,30 @@ class View3D extends Component {
// 非法元素 // 非法元素
return object; return object;
} }
addMarker=({extData,position})=>{
const {markers} =this.state addMarker=({ extData, position })=>{
let paramsArr = [{ const me = this;
pointId: extData.id, const { markers } = me;
pointType: extData.type, const isInside = me.polygonRegion && extData.parentId && me.polygonRegion[extData.parentId].pointInPolygon([position.x,position.y,position.z]);
position3d: `${position[0]},${position[1]},${position[2]}` if (isInside){
}]; markers[extData.type].forEach(e => {
console.log(paramsArr) if (e.id === extData.id){
savePointListAction(paramsArr).then(data => { e.position = `${position[0]},${position[1]},${position[2]}`;
}) e.isEdit = true;
this.setState({ }
positionxyz: position, });
showRightPanel:true, extData.position = position;
selectPoints:extData this.setState({
}) markers,
positionxyz: position,
showRightPanel: true,
selectPoints: extData
});
} else {
message.error('不能放置非所在区域');
}
} }
render() { render() {
const { const {
objs, objs,
...@@ -1685,7 +1712,7 @@ class View3D extends Component { ...@@ -1685,7 +1712,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>
......
...@@ -80,7 +80,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -80,7 +80,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
componentWillReceiveProps = nextProps => { componentWillReceiveProps = nextProps => {
if(nextProps.isEditMode){ if(nextProps.isEditMode){
this.markersCache.eachValue(obj=>{ this.markersCache.eachValue(obj=>{
this.setTopCardConf(obj, obj.extData); // this.setTopCardConf(obj, obj.extData);
if(nextProps.selectPoints.type == obj.extData.type && nextProps.selectPoints.id ==obj.extData.id ){ if(nextProps.selectPoints.type == obj.extData.type && nextProps.selectPoints.id ==obj.extData.id ){
this.setTwinkleConf(obj); this.setTwinkleConf(obj);
} }
...@@ -182,12 +182,11 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -182,12 +182,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;
} }
...@@ -226,7 +225,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -226,7 +225,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 };
...@@ -235,7 +234,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -235,7 +234,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