Commit ecfc7560 authored by 单奇雲's avatar 单奇雲

修改3dfactory

parent 597a66d2
......@@ -100,15 +100,6 @@ export default {
fire: require('../assets/convertor/3dview/markers/fire.png'),
fireDetection: require('../assets/convertor/3dview/markers/fireDetector.png'),
//重点设备模式
impEquipmentMode_monitorEquipment: require('../assets/convertor/3dview/markers/IeqMode-monitorEquipment.png'),
impEquipmentMode_impEquipment: require('../assets/convertor/3dview/markers/IeqMode-impEquipment.png'),
impEquipmentMode_hydrant: require('../assets/convertor/3dview/markers/IeqMode-hydrant.png'),
impEquipmentMode_pool: require('../assets/convertor/3dview/markers/IeqMode-pool.png'),//
impEquipmentMode_fireChamber: require('../assets/convertor/3dview/markers/IeqMode-fireChamber.png'),//
impEquipmentMode_fireCar: require('../assets/convertor/3dview/markers/IeqMode-fireCar.png'),
},
color: {
hydrant: {color: '#f12525'},
......@@ -196,6 +187,11 @@ impEquipmentMode_fireCar: require('../assets/convertor/3dview/markers/IeqMode-fi
},
};
export const markerTitleBgMapper = {
impEquipmentMode: require('../assets/convertor/3dview/prePlan/shapan-qipao2.svg'),
quanjing: require('../assets/convertor/3dview/prePlan/shapan-qipao2.png')
}
export const marker3DIoncMapper = {
riskSource_0: require('../assets/convertor/3dview/markers/risk-0.png'),
riskSource_1: require('../assets/convertor/3dview/markers/risk-1.png'),
......@@ -210,11 +206,10 @@ export const marker3DIoncMapper = {
risk_4: '/mods/components/3dviewConvertor/threeres/markers/risk-4.png',
risk_5: '/mods/components/3dviewConvertor/threeres/markers/risk-5.png',
patrol_1: '/mods/components/3dviewConvertor/threeres/markers/patrol-1.png',
patrol_2: '/mods/components/3dviewConvertor/threeres/markers/patrol-2.png',
patrol_3: '/mods/components/3dviewConvertor/threeres/markers/patrol-3.png',
patrol_4: '/mods/components/3dviewConvertor/threeres/markers/patrol-4.png',
patrol_5: '/mods/components/3dviewConvertor/threeres/markers/patrol-5.png',
patrol_0: require('../assets/convertor/3dview/markers/pa-0.png'),
patrol_1: require('../assets/convertor/3dview/markers/pa-1.png'),
patrol_2: require('../assets/convertor/3dview/markers/pa-2.png'),
patrol_3: require('../assets/convertor/3dview/markers/pa-3.png'),
person_0: '/mods/components/3dviewConvertor/threeres/markers/person-0.png',
......@@ -232,6 +227,15 @@ export const marker3DIoncMapper = {
impEquipmentMode_fireChamber: require('../assets/convertor/3dview/markers/IeqMode-fireChamber.png'),//
impEquipmentMode_fireCar: require('../assets/convertor/3dview/markers/IeqMode-fireCar.png'),
hydrant: require('../assets/convertor/3dview/markers/hydrant.png'),
pool: require('../assets/convertor/3dview/markers/pool.png'),
fireCar: require('../assets/convertor/3dview/markers/fireCar.png'),
fireEquipment: require('../assets/convertor/3dview/markers/fireEquip.png'),
fireFoamRoom: require('../assets/convertor/3dview/markers/fireFoam.png'),
fireChamber: require('../assets/convertor/3dview/markers/fireChamber.png'),
impEquipment: require('../assets/convertor/3dview/markers/impEquip.png'),
monitorEquipment: require('../assets/convertor/3dview/markers/monitorEquip.png'),
video: require('../assets/convertor/3dview/markers/video.png'),
};
......
......@@ -43,35 +43,6 @@
}
.sys-view-3d {
height: 100%;
.three-renderer {
.three-container {
position: absolute;
top: 0;
width: 100%;
height: 100%;
}
.css2d-label {
width: 129px;
max-width: 25rem;
margin-top: -3rem !important;
font-size: 12px;
font-weight: 700;
color: #f9f4f4;
text-align: center;
background: url('./../assets/convertor/3dview/prePlan/shapan-qipao2.svg') no-repeat;
background-size: cover;
box-shadow: none;
&::before {
display: none;
}
&::after {
display: none;
}
}
}
}
.side-control-pane,
......
......@@ -35,6 +35,7 @@
#ff0057 100%);
opacity: 0.6;
text-align: center;
padding: 4px;
.amosicon-close{
font-style: normal;
......
......@@ -51,11 +51,13 @@ class MarkerIcon extends Component {
};
onMouseOver = () => {
console.log('MarkerIcon','onMouseOver');
this.setState({ showRiskName: true, showInfo: true });
};
// display:none;
onMouseLeave = () => {
console.log('MarkerIcon','onMouseLeave');
const { title, type, nextShowInfo } = this.state;
if (type === 'risk' && (title.includes('miss') > 0 || title.includes('offGrade') > 0)) {
this.setState({ showRiskName: false });
......
......@@ -16,7 +16,7 @@ class BasicPoint extends Component {
/**
* 风险
*/
export const RiskPoint = markerFactory(BasicPoint,
export const RiskPoint = marker3DFactory(BasicPoint,
{
markerType: 'riskSource'
}
......@@ -25,9 +25,9 @@ export const RiskPoint = markerFactory(BasicPoint,
/**
* 巡检
*/
export const PatrolPoint = markerFactory(BasicPoint,
export const PatrolPoint = marker3DFactory(BasicPoint,
{
markerType: 'risk'
markerType: 'patrol'
}
);
......@@ -43,7 +43,7 @@ export const PersonPoint = markerFactory(BasicPoint,
/**
* 监控
*/
export const MonitorPoint = markerFactory(BasicPoint,
export const MonitorPoint = marker3DFactory(BasicPoint,
{
markerType: 'video'
}
......@@ -52,7 +52,7 @@ export const MonitorPoint = markerFactory(BasicPoint,
/**
* 探测点
*/
export const ProbePoint = markerFactory(BasicPoint,
export const ProbePoint = marker3DFactory(BasicPoint,
{
markerType: 'monitorEquipment'
}
......@@ -67,7 +67,7 @@ export const FireResourcePoint = markerFactory(BasicPoint,
}
);
export const EquipmentPoint = markerFactory(BasicPoint,
export const EquipmentPoint = marker3DFactory(BasicPoint,
{
markerType: 'impEquipment'
}
......
......@@ -2,14 +2,19 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { utils } from 'amos-tool';
import { Markers } from 'amos-3d/lib/designer';
import { BaseObjHelper } from 'base-r3d/lib/factory';
import { CONSTS } from './../../consts/storageConsts';
import PointDialog from './PointDialog';
import { tirggerPlanTopic } from './../dataProcessor';
import { marker3DIoncMapper } from './../../consts/imgStatic';
import { marker3DIoncMapper, markerTitleBgMapper } from './../../consts/imgStatic';
import MarkerIcon from './MarkerIcon';
const getIcon = (markerType, level) => {
// return marker3DIoncMapper[`${markerType}_${level}`];
if (markerType === 'riskSource' || markerType === 'patrol' || markerType === 'impEquipmentMode') {
return marker3DIoncMapper[`${markerType}_${level}`];
}
return marker3DIoncMapper[`${markerType}`]
};
const buildMarkerOptions = (markers, markerType, defaultParams = {}) => {
......@@ -27,7 +32,9 @@ const buildMarkerOptions = (markers, markerType, defaultParams = {}) => {
m.url = url;
m.position = utils.isArray(m.position) ? m.position : position;
m.size = 10;
m.label = createMarkerLabel(m.name);
m.name = m.name ? m.name : m.label;
m.label = null;
// m.label = createMarkerLabel(m.name);
});
}
return markers;
......@@ -57,14 +64,27 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
super(props);
this.markerEvents = {
click: this.onMarkerClick,
// dblclick: this.onMarkerDblClick,
mouseover: (marker) => {
console.log('111')
if(marker.object2DPipe){
marker.object2DPipe.pipeNode.visible = true;
marker.object2DPipe.pipeNode.elementVisible = true;
}
if(marker.extData.type === 'riskSource'){
marker.node.baseObjHelper.title = marker.extData.name;
}
},
mouseout: (marker) => {
console.log('2222')
if(marker.object2DPipe){
marker.object2DPipe.pipeNode.visible = false;
marker.object2DPipe.pipeNode.elementVisible = false;
}
if(marker.extData.type === 'riskSource'){
marker.node.baseObjHelper.title = marker.extData.title;
}
}
};
this.state = {
isClick: true
......@@ -79,18 +99,85 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
this.setState({ planStarted: nextProps.planStarted });
}
componentWillUnmount() {
this.objAnchorHelper && this.objAnchorHelper.destroy();
}
onMarkerDblClick = (marker, e) => {
console.log('marker3DFactory','onMarkerDblClick')
if (this.props.isEditMode) {
return false
}
clearTimeout(this.time);
// tirggerPlanTopic(CONSTS.plan_detail, { type: marker.extData.type, data: marker.extData });
if (marker.extData.markerType === 'fire' && void 0 !== marker.extData.show) {
tirggerTransTopic(CONSTS.forward, { details: { type: 'impEquipment', dialogId: marker.extData.equipmentId, show: marker.extData.show }, dateTime: Date.now() });
return;
}
this.pdRef.tirggerBussines(marker);
}
onMarkerClick = (marker, e) => {
const { isClick } = this.state;
if (this.props.isEditMode) {
return false
}
tirggerPlanTopic(CONSTS.plan_detail, { type: marker.extData.type, data: marker.extData });
if (isClick) {
this.setState({ isClick: false }); //将isClick 变成false,将不会执行处理事件
this.pdRef && this.pdRef.onOpenClick(marker);
// this.pdRef && this.pdRef.onOpenClick(marker);
this.time = setTimeout(() => this.pdRef && this.pdRef.onOpenClick(marker), 1000);
}else{
this.onMarkerDblClick(marker, e);
}
const that = this; // 为定时器中的setState绑定this
setTimeout(function() {
// 设置延迟事件,3秒后将执行
that.setState({ isClick: true }); // 将isClick设置为true
}, 3000);
tirggerPlanTopic(CONSTS.plan_detail, { type: marker.extData.type, data: marker.extData });
}, 1000);
}
markerCreated = ({ markersCache }) => {
this.markersCache = markersCache;
markersCache.eachValue(item=>{
const obj = item.node;
const boh = new BaseObjHelper({ obj });
obj.baseObjHelper = boh;
this.setTopCardConf(obj, item.extData);
});
}
setTopCardConf = (obj, extData )=>{
const { title, label , type, showInfo , name } = extData;
let cardTitle = null;
console.log(extData)
obj.baseObjHelper.titleConfig = {
// 顶牌平面参数
planeOptions: {
width: 30,
height: 15,
position: [0,20,0],
doubleSide: true
},
canvasOptions: {
font: '34px Microsoft YaHei',
// fillStyle: 'white',
textBaseline: 'middle',
textAlign: 'center',
textX: 128,
},
imgWidth: 256,
imgHeight: 128,
// image: markerTitleBgMapper['quanjing']
};
if(type === 'riskSource'){
cardTitle = '风险值' + title
}else{
cardTitle = title ? title : name;
}
obj.baseObjHelper.title = cardTitle;
}
render() {
......@@ -104,6 +191,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
{...rest}
markers={result}
events={this.markerEvents}
onCreated={this.markerCreated}
/>
{ !planStarted && <PointDialog style={dialogStyle} ref={node => this.pdRef = node} />}
</WrappedComponent>
......
......@@ -31,11 +31,13 @@ export default function markerFactory(WrappedComponent = 'div', options){
// marker.redraw(this.renderMarker);
// }
mouseover: (marker, evt) => {
console.log('mouseover', marker, evt);
console.log('markerFactory','mouseover');
// console.log('mouseover', marker, evt);
marker.object2DPipe && marker.object2DPipe.toggleDisplay(true);
},
mouseout: (marker, evt) => {
console.log('mouseout', marker, evt);
console.log('markerFactory','mouseout');
// console.log('mouseout', marker, evt);
marker.object2DPipe && marker.object2DPipe.toggleDisplay(false);
}
};
......@@ -54,6 +56,7 @@ export default function markerFactory(WrappedComponent = 'div', options){
}
onMarkerClick = (marker, e) => {
console.log('markerFactory','onMarkerClick');
if (this.props.isEditMode) {
return false
}
......
......@@ -241,6 +241,7 @@ class SearchPane extends Component {
// 更新视图数据
let views = new Array();
if(record.position){
record.id = record.id.replace( record.type + '-' ,'' );
views.push(record);
let args = {
target: views,
......
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