diff --git a/src/Obj/Base/FlowLine/index.js b/src/Obj/Base/FlowLine/index.js index 03e7df9..3ecd0e9 100644 --- a/src/Obj/Base/FlowLine/index.js +++ b/src/Obj/Base/FlowLine/index.js @@ -315,9 +315,9 @@ class FlowLine extends Base { this.reset() this.Dialog.resetCallBack && this.Dialog.resetCallBack() }, - // removeCallBack: () => { - // this.Dialog.removeCallBack && this.Dialog.removeCallBack() - // }, + removeCallBack: () => { + this.Dialog.removeCallBack && this.Dialog.removeCallBack() + }, closeCallBack: () => { this.reset() // this.entity.style = new Cesium.Cesium3DTileStyle({ diff --git a/src/Obj/Base/PolylineObject/index.js b/src/Obj/Base/PolylineObject/index.js index 092b41b..ac0eea8 100644 --- a/src/Obj/Base/PolylineObject/index.js +++ b/src/Obj/Base/PolylineObject/index.js @@ -441,16 +441,16 @@ class PolylineObject extends Base { this._elms.lineType.forEach(item => { item.value = lineTypeData[i].value if (2 < item.value && item.value < 13) {//贴图参数 - document.getElementById('dashTextureDom').style.display = 'flex' + document.getElementById('dashTextureDom') && (document.getElementById('dashTextureDom').style.display = 'flex') } else { - document.getElementById('dashTextureDom').style.display = 'none' + document.getElementById('dashTextureDom') && (document.getElementById('dashTextureDom').style.display = 'none') } if (2 < item.value && item.value < 5) {//尾迹参数 - document.getElementsByClassName('lineSpace')[0].style.display = 'none' - document.getElementsByClassName('lineSpace')[1].style.display = 'none' + document.getElementsByClassName('lineSpace')[0] && (document.getElementsByClassName('lineSpace')[0].style.display = 'none') + document.getElementsByClassName('lineSpace')[1] && (document.getElementsByClassName('lineSpace')[1].style.display = 'none') } else { - document.getElementsByClassName('lineSpace')[0].style.display = 'flex' - document.getElementsByClassName('lineSpace')[1].style.display = 'flex' + document.getElementsByClassName('lineSpace')[0] && (document.getElementsByClassName('lineSpace')[0].style.display = 'flex') + document.getElementsByClassName('lineSpace')[1] && (document.getElementsByClassName('lineSpace')[1].style.display = 'flex') } }) break @@ -822,6 +822,7 @@ class PolylineObject extends Base { set labelLineColor(v) { this.options.label.lineColor = v this.label.lineColor = v + let _this = this if (this._elms.labelLineColor) { this._elms.labelLineColor.forEach((item, i) => { let lineColorPicker = new YJColorPicker({ @@ -844,7 +845,7 @@ class PolylineObject extends Base { }) this._elms.labelBackgroundColorStart[ i - ] = labelBackgroundColorStartPicker + ] = _this.labelBackgroundColorStartPicker }) } } @@ -1337,12 +1338,19 @@ class PolylineObject extends Base { positions: Cesium.Cartesian3.fromDegreesArrayHeights(fromDegreesArray), width: that.options.width, clampToGround: ground, - material: that.getMaterial(that.options.color, that.options.type, that.entity, that.options), + // material: that.getMaterial(that.options.color, that.options.type, that.entity, that.options), zIndex: that.sdk._entityZIndex } }) + that.entity.polyline.oriWidth = that.options.width that.judgeLine(that.entity, that.options) + that.entity.polyline.material = that.getMaterial( + that.options.color, + that.options.type, + that.entity, + that.options + ) that.sdk._entityZIndex++ PolylineObject.createLabel(that) // that.entity.polyline.positionsLngLat = positions @@ -1549,10 +1557,20 @@ class PolylineObject extends Base { // this.attributeCamera = this.options.attribute.camera.content // this.attributeGoods = this.options.attribute.goods.content + function tabClick(e) { + if (e === '2' || e === 2) {//点击线条样式 + if (2 < _this.options.type && _this.options.type < 13) {//贴图参数 + document.getElementById('dashTextureDom') && (document.getElementById('dashTextureDom').style.display = 'flex') + } else { + document.getElementById('dashTextureDom') && (document.getElementById('dashTextureDom').style.display = 'none') + } + } + } + // 创建标签页 let tabsElm = new cy_tabs( 'polyline-object-edit-tabs', - undefined, + tabClick, this.sdk ) // 颜色组件 @@ -1612,7 +1630,7 @@ class PolylineObject extends Base { this.labelLineColor = 'rgba(255,255,255,1)' } //点击清空按钮事件回调 }) - let labelBackgroundColorStartPicker = new YJColorPicker({ + _this.labelBackgroundColorStartPicker = new YJColorPicker({ el: contentElm.getElementsByClassName('labelBackgroundColorStart')[0], size: 'mini', alpha: true, @@ -1647,7 +1665,7 @@ class PolylineObject extends Base { this._elms.labelColor = [labelColorPicker] this._elms.extendColor = [extendColorPicker] this._elms.labelLineColor = [lineColorPicker] - this._elms.labelBackgroundColorStart = [labelBackgroundColorStartPicker] + this._elms.labelBackgroundColorStart = [_this.labelBackgroundColorStartPicker] this._elms.labelBackgroundColorEnd = [labelBackgroundColorEndPicker] setTimeout(() => { @@ -1925,16 +1943,16 @@ class PolylineObject extends Base { //控制参数显隐 if (2 < this.lineType && this.lineType < 13) {//贴图参数 - document.getElementById('dashTextureDom').style.display = 'flex' + document.getElementById('dashTextureDom') && (document.getElementById('dashTextureDom').style.display = 'flex') } else { - document.getElementById('dashTextureDom').style.display = 'none' + document.getElementById('dashTextureDom') && (document.getElementById('dashTextureDom').style.display = 'none') } if (2 < this.lineType && this.lineType < 5) {//尾迹参数 - document.getElementsByClassName('lineSpace')[0].style.display = 'none' - document.getElementsByClassName('lineSpace')[1].style.display = 'none' + document.getElementsByClassName('lineSpace')[0] && (document.getElementsByClassName('lineSpace')[0].style.display = 'none') + document.getElementsByClassName('lineSpace')[1] && (document.getElementsByClassName('lineSpace')[1].style.display = 'none') } else { - document.getElementsByClassName('lineSpace')[0].style.display = 'flex' - document.getElementsByClassName('lineSpace')[1].style.display = 'flex' + document.getElementsByClassName('lineSpace')[0] && (document.getElementsByClassName('lineSpace')[0].style.display = 'flex') + document.getElementsByClassName('lineSpace')[1] && (document.getElementsByClassName('lineSpace')[1].style.display = 'flex') } break } diff --git a/src/Obj/Element/cy_html_tabs.js b/src/Obj/Element/cy_html_tabs.js index 17eeb99..1270e29 100644 --- a/src/Obj/Element/cy_html_tabs.js +++ b/src/Obj/Element/cy_html_tabs.js @@ -1,76 +1,77 @@ class cy_tabs { - constructor(id, clickTabCallBack, sdk) { - let elm = document.getElementById(id); - let pane = elm.getElementsByTagName('DIV-cy-tab-pane') + constructor(id, clickTabCallBack, sdk) { + let elm = document.getElementById(id); + let pane = elm.getElementsByTagName('DIV-cy-tab-pane') - let tabTop = `
` - let tabContent = `
` - let tabindex = 0 - for (let i = 0; i < pane.length; i++) { - let flag = false - if (sdk && sdk.tabHide && Array.isArray(sdk.tabHide)) { - for (let m = 0; m < sdk.tabHide.length; m++) { - if (pane[i].getAttribute('label') === sdk.tabHide[m]) { - flag = true - break - } - } - } - if (flag) { - continue - } - let style = 'display: none;' - let active = '' - if (tabindex == 0) { - style = '' - active = 'is-active' - } - tabTop = tabTop + ` + let tabTop = `
` + let tabContent = `
` + let tabindex = 0 + for (let i = 0; i < pane.length; i++) { + let flag = false + if (sdk && sdk.tabHide && Array.isArray(sdk.tabHide)) { + for (let m = 0; m < sdk.tabHide.length; m++) { + if (pane[i].getAttribute('label') === sdk.tabHide[m]) { + flag = true + break + } + } + } + if (flag) { + continue + } + let style = 'display: none;' + let active = '' + if (tabindex == 0) { + style = '' + active = 'is-active' + } + tabTop = tabTop + `
` + pane[i].getAttribute('label') + `
` - tabContent = tabContent + `
` + pane[i].innerHTML + `
` - tabindex++ + tabContent = tabContent + `
` + pane[i].innerHTML + `
` + tabindex++ + } + tabTop = tabTop + `
` + tabContent = tabContent + `
` + + let BoxElm = document.createElement('div'); + BoxElm.setAttribute('id', id) + BoxElm.setAttribute('class', 'DIV-cy-tabs') + BoxElm.innerHTML = tabTop + tabContent + elm.parentNode.insertBefore(BoxElm, elm); + elm.parentNode.removeChild(elm); + + // 点击事件 + let tabs = BoxElm.getElementsByClassName('DIV-cy-tab-pane-title-p') + for (let i = 0; i < tabs.length; i++) { + tabs[i].addEventListener('click', (e) => { + let tabindex = e.target.getAttribute('tabindex') + let contentElm = BoxElm.getElementsByClassName('DIV-cy-tab-content-pane') + clickTabCallBack && clickTabCallBack(tabindex) + for (let i = 0; i < contentElm.length; i++) { + if (i === parseInt(tabindex)) { + contentElm[i].style.display = '' + tabs[i].className = 'DIV-cy-tab-pane-title-p is-active' + } + else { + contentElm[i].style.display = 'none' + tabs[i].className = 'DIV-cy-tab-pane-title-p' + } } - tabTop = tabTop + `
` - tabContent = tabContent + `
` - - let BoxElm = document.createElement('div'); - BoxElm.setAttribute('id', id) - BoxElm.setAttribute('class', 'DIV-cy-tabs') - BoxElm.innerHTML = tabTop + tabContent - elm.parentNode.insertBefore(BoxElm, elm); - elm.parentNode.removeChild(elm); - - // 点击事件 - let tabs = BoxElm.getElementsByClassName('DIV-cy-tab-pane-title-p') - for (let i = 0; i < tabs.length; i++) { - tabs[i].addEventListener('click', (e) => { - let tabindex = e.target.getAttribute('tabindex') - let contentElm = BoxElm.getElementsByClassName('DIV-cy-tab-content-pane') - for (let i = 0; i < contentElm.length; i++) { - if (i === parseInt(tabindex)) { - contentElm[i].style.display = '' - tabs[i].className = 'DIV-cy-tab-pane-title-p is-active' - } - else { - contentElm[i].style.display = 'none' - tabs[i].className = 'DIV-cy-tab-pane-title-p' - } - } - contentElm[parseInt(tabindex)].style.display = '' - }) - } - - this.clickTabCallBack = clickTabCallBack + contentElm[parseInt(tabindex)].style.display = '' + }) } - clickTabCallBack() { - if (this.clickTabCallBack) { - this.clickTabCallBack() - } + this.clickTabCallBack = clickTabCallBack + } + + clickTabCallBack() { + if (this.clickTabCallBack) { + this.clickTabCallBack() } + } } -export default cy_tabs \ No newline at end of file +export default cy_tabs diff --git a/src/Tools/index.js b/src/Tools/index.js index 8fc5006..6a605ee 100644 --- a/src/Tools/index.js +++ b/src/Tools/index.js @@ -638,7 +638,7 @@ class Tools { // break case 6: //流动虚线2 let that = this - + let repeatX material = new Cesium.FlowDashedLineFlowMaterialProperty({ color: color, uType: type == 5 ? 0 : 1, @@ -660,11 +660,10 @@ class Tools { let point2 = new Cesium.Cartesian2(that.sdk.viewer.canvas.clientWidth / 2, that.sdk.viewer.canvas.clientHeight) var cartesian1 = that.sdk.viewer.scene.pickPosition(point1) var cartesian2 = that.sdk.viewer.scene.pickPosition(point2) - - var distance2 = Cesium.Cartesian3.distance(cartesian1, cartesian2); - - let repeatX = distance2 * 2 / distance - + if (cartesian1 && cartesian2) { + var distance2 = Cesium.Cartesian3.distance(cartesian1, cartesian2); + repeatX = distance2 * 2 / distance + } return repeatX; }) })