/* 右键点击菜单 */ import MouseEvent from '../../Event/index' import Tools from '../../Tools' import { rotateAround } from '../../Global/global' import { getSdk } from '../SplitScreen' let eventListener = {} function MouseRightMenu(sdk, status, callBack) { if (!sdk || !sdk.div_id) { return } let sdkD = getSdk().sdkD let _element = document.getElementById(sdk.div_id).getElementsByClassName('cesium-viewer')[0] let tools = new Tools() if (!eventListener[sdk.div_id]) { eventListener[sdk.div_id] = {} } if (eventListener[sdk.div_id].mousedown) { document.removeEventListener( 'mousedown', eventListener[sdk.div_id].mousedown ) } if (eventListener[sdk.div_id].click) { document.removeEventListener('click', eventListener[sdk.div_id].click) } if (!eventListener[sdk.div_id].callBack) { eventListener[sdk.div_id].callBack = callBack } if (sdk !== sdkD) { eventListener[sdk.div_id].mouseRightMenuEvent && eventListener[sdk.div_id].mouseRightMenuEvent.destroy() } let menuElm = document.getElementById('custom-menu') if (menuElm) { _element.removeChild(menuElm) } eventListener[sdk.div_id].status = status if (status) { eventListener[sdk.div_id].mousedown = e => { if ( (e.target.parentNode && e.target.parentNode.id == 'custom-menu') || (e.target.parentNode && e.target.parentNode.parentNode && e.target.parentNode.parentNode.id == 'custom-menu') ) { return } let menuElm = document.getElementById('custom-menu') if (menuElm) { _element.removeChild(menuElm) } } document.addEventListener('mousedown', eventListener[sdk.div_id].mousedown) eventListener[sdk.div_id].click = e => { if ( (e.target.parentNode && e.target.parentNode.id == 'custom-menu') || (e.target.parentNode && e.target.parentNode.parentNode && e.target.parentNode.parentNode.id == 'custom-menu') ) { return } let menuElm = document.getElementById('custom-menu') if (menuElm) { _element.removeChild(menuElm) } } document.addEventListener('click', eventListener[sdk.div_id].click) eventListener[sdk.div_id].mouseRightMenuEvent = new MouseEvent(sdk) eventListener[sdk.div_id].mouseRightMenuEvent.mouse_right( (movement, cartesian) => { if (YJ.Measure.GetMeasureStatus() || sdk.viewer.trackedEntity) { return } let entity = sdk.viewer.entities.getById('svg-control-points_0') if (entity && entity.show) { return } let menuElm = document.getElementById('custom-menu') if (menuElm) { _element.removeChild(menuElm) } let entityId = getEntityId(movement) let targetId if (Object.prototype.toString.call(entityId) === '[object Object]') { targetId = entityId.id entityId = entityId.parentId } let addedMenu = '' let that = sdk.entityMap.get(entityId) if (!that && entityId) { let array = entityId.split('-') array.splice(array.length - 1, 1) entityId = array.join('-') that = sdk.entityMap.get(entityId) } if (that && that.picking) { addedMenu = `