From 20a938857909a66dd3976d19ea8d9bc44aca23be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E5=A4=A7=E8=83=86?= <1101282782@qq.com> Date: Fri, 8 Aug 2025 15:31:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BA=BF=E7=BB=98?= =?UTF-8?q?=E5=88=B6=20=E6=B5=81=E5=8A=A8=E7=AE=AD=E5=A4=B4=EF=BC=8C?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=EF=BC=8C=E7=84=B6=E5=90=8E=E5=86=8D=E6=AC=A1?= =?UTF-8?q?=E7=BC=96=E8=BE=91=EF=BC=8C=E6=9C=AA=E6=98=BE=E7=A4=BA=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E5=8F=82=E6=95=B0=E4=BB=A5=E5=8F=8A=E8=99=9A=E7=BA=BF?= =?UTF-8?q?=E8=BF=9C=E8=A7=86=E8=A7=92=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Obj/Base/PolylineObject/index.js | 21 ++++- src/Obj/Element/cy_html_tabs.js | 129 ++++++++++++++------------- src/Tools/index.js | 11 ++- 3 files changed, 89 insertions(+), 72 deletions(-) diff --git a/src/Obj/Base/PolylineObject/index.js b/src/Obj/Base/PolylineObject/index.js index 96c6f64..9a158f6 100644 --- a/src/Obj/Base/PolylineObject/index.js +++ b/src/Obj/Base/PolylineObject/index.js @@ -1317,12 +1317,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 @@ -1529,10 +1536,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').style.display = 'flex' + } else { + document.getElementById('dashTextureDom').style.display = 'none' + } + } + } + // 创建标签页 let tabsElm = new cy_tabs( 'polyline-object-edit-tabs', - undefined, + tabClick, this.sdk ) // 颜色组件 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; }) }) From d47ab3715d83f04456b9c96846255676d6dc902c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E5=A4=A7=E8=83=86?= <1101282782@qq.com> Date: Fri, 8 Aug 2025 15:52:42 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B5=81=E5=85=89?= =?UTF-8?q?=E9=A3=9E=E7=BA=BF=E5=88=A0=E9=99=A4=E6=8C=89=E9=92=AE=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8A=98=E7=BA=BF=E5=88=A0=E9=99=A4bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Obj/Base/FlowLine/index.js | 6 ++--- src/Obj/Base/PolylineObject/index.js | 35 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 20 deletions(-) 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 9a158f6..3d67234 100644 --- a/src/Obj/Base/PolylineObject/index.js +++ b/src/Obj/Base/PolylineObject/index.js @@ -437,16 +437,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 @@ -803,6 +803,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({ @@ -825,7 +826,7 @@ class PolylineObject extends Base { }) this._elms.labelBackgroundColorStart[ i - ] = labelBackgroundColorStartPicker + ] = _this.labelBackgroundColorStartPicker }) } } @@ -1539,9 +1540,9 @@ class PolylineObject extends Base { function tabClick(e) { if (e === '2' || e === 2) {//点击线条样式 if (2 < _this.options.type && _this.options.type < 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') } } } @@ -1609,7 +1610,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, @@ -1644,7 +1645,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(() => { @@ -1921,16 +1922,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 }