mixdashboards 1.1.21 → 1.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AgActionsRenderer-3HKXKUJY.js → AgActionsRenderer-BF0qU0IF.js} +1 -1
- package/dist/{AgActionsRenderer-DnPvuT_-.cjs → AgActionsRenderer-C2e7hPs-.cjs} +1 -1
- package/dist/{AgGridTable-BQvI6jpO.cjs → AgGridTable-Be9G2z25.cjs} +1 -1
- package/dist/{AgGridTable-BQ8M3fDj.js → AgGridTable-Bg4WW51q.js} +1 -1
- package/dist/{BaseComponent-Dn65PXTp.js → BaseComponent-Cs11e0k6.js} +3 -3
- package/dist/{BaseComponent-DKuQG62G.cjs → BaseComponent-eihedT_8.cjs} +1 -1
- package/dist/{EChartComponentBase-8GSbyY5P.cjs → EChartComponentBase-Cc-8Dgc8.cjs} +1 -1
- package/dist/{EChartComponentBase-skupRYzl.js → EChartComponentBase-cxF_cDzz.js} +2 -2
- package/dist/{EmergencyPlanPanel-C4OsnsPP.js → EmergencyPlanPanel-BuGZ7d8M.js} +1 -1
- package/dist/{EmergencyPlanPanel-DLvOrE5U.cjs → EmergencyPlanPanel-jmXa0Opr.cjs} +1 -1
- package/dist/{HistoryPlanDialog-DI0H_vgZ.js → HistoryPlanDialog-DYGneEmU.js} +1 -1
- package/dist/{HistoryPlanDialog--99rPq54.cjs → HistoryPlanDialog-cY2eD_dA.cjs} +1 -1
- package/dist/{MixiotAppDetailPage-4mYR4gHm.cjs → MixiotAppDetailPage-C8VNYOYE.cjs} +1 -1
- package/dist/{MixiotAppDetailPage-C_NrtqJU.js → MixiotAppDetailPage-OtSBNmRD.js} +1 -1
- package/dist/{MonitoringMap-Gxy8ldt1.js → MonitoringMap-BLGMNLxr.js} +2 -2
- package/dist/{MonitoringMap-CstXoU8n.cjs → MonitoringMap-BVktgEhQ.cjs} +1 -1
- package/dist/{UniverSheet-phDDfwXk.cjs → UniverSheet-7UilEsKS.cjs} +1 -1
- package/dist/{UniverSheet-DGNOHAEJ.js → UniverSheet-DPxaiamh.js} +2 -2
- package/dist/{accelerationChart-B_y_8Y4q.cjs → accelerationChart-B6GlAZdU.cjs} +1 -1
- package/dist/{accelerationChart-C4JTCc65.js → accelerationChart-BkJPOAHR.js} +2 -2
- package/dist/{actionItem-CGOgCPJR.js → actionItem-0NlNM4tP.js} +2 -2
- package/dist/{actionItem-Bdw3MAAf.cjs → actionItem-CrOePh-6.cjs} +1 -1
- package/dist/{alarmLevelChart-BQF-4a0s.js → alarmLevelChart-C7VQNQRF.js} +2 -2
- package/dist/{alarmLevelChart-CY4GqDio.cjs → alarmLevelChart-CHr8jJJa.cjs} +1 -1
- package/dist/{alertTable-D3riLPwz.cjs → alertTable-CQ89x4o7.cjs} +1 -1
- package/dist/{alertTable-DgiRdm5f.js → alertTable-D0oO6-08.js} +2 -2
- package/dist/{aliasObjectSelectorDemo-DXFCCnvj.cjs → aliasObjectSelectorDemo-C46x1iSz.cjs} +1 -1
- package/dist/{aliasObjectSelectorDemo-C7gQUdGu.js → aliasObjectSelectorDemo-DeBGofRu.js} +1 -1
- package/dist/{annualRainfallChart-D3oUahrK.cjs → annualRainfallChart-DuFmdpFY.cjs} +1 -1
- package/dist/{annualRainfallChart-C1yG42iq.js → annualRainfallChart-GWI-j30g.js} +2 -2
- package/dist/{aqi-B3g_go92.cjs → aqi-31ZY5m6u.cjs} +1 -1
- package/dist/{aqi-DLqM9gGc.js → aqi-CXSCIapf.js} +2 -2
- package/dist/{aqiIndass-DRYU-FAs.cjs → aqiIndass-M6kT5TrH.cjs} +1 -1
- package/dist/{aqiIndass-DDtB5_wf.js → aqiIndass-h6rZb2ug.js} +2 -2
- package/dist/{areaDeformCurve-DaLtFoJT.js → areaDeformCurve-CD9gHojO.js} +2 -2
- package/dist/{areaDeformCurve-CnvUJY_x.cjs → areaDeformCurve-Df06Ho63.cjs} +1 -1
- package/dist/{arrayCard-9p0Bkc_e.cjs → arrayCard-0UdDswRy.cjs} +1 -1
- package/dist/{arrayCard-FYb8TmUw.js → arrayCard-CJv8ZNIy.js} +2 -2
- package/dist/{audio-BBXpJP54.js → audio-Isovh2wB.js} +2 -2
- package/dist/{audio-DGxXcB0a.cjs → audio-JJlpYSZ9.cjs} +1 -1
- package/dist/{bar-D26zndUl.js → bar-CPG4795d.js} +2 -2
- package/dist/{bar-btY9Pwkk.cjs → bar-DyikAHhn.cjs} +1 -1
- package/dist/{basicShapeToolbox-Y6mXTA8o.js → basicShapeToolbox-BFqJ2Yvj.js} +2 -2
- package/dist/{basicShapeToolbox-XR_NHK87.cjs → basicShapeToolbox-BNfKHwaS.cjs} +1 -1
- package/dist/{bmp-DlSoc3Rw.cjs → bmp-B16PcEaF.cjs} +1 -1
- package/dist/{bmp-C7tYeLi0.js → bmp-Bfm_GnnU.js} +2 -2
- package/dist/{box-DyIX9weX.cjs → box-24TwJlhv.cjs} +1 -1
- package/dist/{box-DroQaZjH.js → box-7yPFxZ8G.js} +2 -2
- package/dist/{chartConfigPanel-D4dbsVKj.js → chartConfigPanel-BnzsIVJv.js} +1 -1
- package/dist/{chartConfigPanel-DvTKL5EZ.cjs → chartConfigPanel-CCEHVtoH.cjs} +1 -1
- package/dist/{circleBar-DCnx8wNj.js → circleBar-BUNXZF3o.js} +2 -2
- package/dist/{circleBar-DulXgWd8.cjs → circleBar-BtWy2gO0.cjs} +1 -1
- package/dist/{clock-B1X6vX22.js → clock-Ca_x3Rfn.js} +2 -2
- package/dist/{clock-CeM6LdAl.cjs → clock-D5K96XuH.cjs} +1 -1
- package/dist/{clt-IAzRVgiu.js → clt-Bv0ZxLhn.js} +2 -2
- package/dist/{clt-CcpO8rrD.cjs → clt-ByBnZmB0.cjs} +1 -1
- package/dist/{cmc-B4xRwSti.cjs → cmc-C5W99UnV.cjs} +1 -1
- package/dist/{cmc-Swd4NfxE.js → cmc-DEGZYlCK.js} +2 -2
- package/dist/{cmp-B9Aip3T2.cjs → cmp-BjSq7C2o.cjs} +1 -1
- package/dist/{cmp--gCtei5x.js → cmp-v9rt2Qlk.js} +2 -2
- package/dist/{conclusionCard-CRif9GmS.cjs → conclusionCard-BrIr0xV3.cjs} +1 -1
- package/dist/{conclusionCard-DQ0HTHsg.js → conclusionCard-DAAFxscz.js} +2 -2
- package/dist/{controlList-CwLNEkAi.cjs → controlList-4oN-BSjy.cjs} +1 -1
- package/dist/{controlList-4TidO_XJ.js → controlList-DMnGSedg.js} +4 -4
- package/dist/{controlRecordList-CuvV65TE.cjs → controlRecordList-DW3BiNX6.cjs} +1 -1
- package/dist/{controlRecordList-dPW6e4FN.js → controlRecordList-f0TZW0Yw.js} +3 -3
- package/dist/{controlRecordListAPP-DCzTOeXr.cjs → controlRecordListAPP-Bp0zHviF.cjs} +1 -1
- package/dist/{controlRecordListAPP-CObVdW3l.js → controlRecordListAPP-CjPH0xD9.js} +2 -2
- package/dist/{crd-CEWC005o.js → crd-5sv7w_uf.js} +2 -2
- package/dist/{crd-AH_sGivo.cjs → crd-C6QPdLTL.cjs} +1 -1
- package/dist/{ctrBtn-nYp9T0n0.cjs → ctrBtn-D-t0FAud.cjs} +1 -1
- package/dist/{ctrBtn-8xev-mny.js → ctrBtn-Dej6ubGR.js} +3 -3
- package/dist/{ctrSet-3Q4eJSfK.js → ctrSet-Cd1r8tJ5.js} +3 -3
- package/dist/{ctrSet-z_9ztVyG.cjs → ctrSet-J009sZiI.cjs} +1 -1
- package/dist/{ctrSwitch-BhqYXTMZ.js → ctrSwitch-BzvIEi0Z.js} +3 -3
- package/dist/{ctrSwitch-DacpvyBJ.cjs → ctrSwitch-DoRNlMrr.cjs} +1 -1
- package/dist/{dataManagement-DP1Chfo2.cjs → dataManagement-Biip4XFh.cjs} +1 -1
- package/dist/{dataManagement-BiPhJbF1.js → dataManagement-D9f7dNuW.js} +2 -2
- package/dist/{dataReport-CQaL-d_q.js → dataReport-4nDZkfIT.js} +2 -2
- package/dist/{dataReport-C_8TF5Dz.cjs → dataReport-Dnn2f0R8.cjs} +1 -1
- package/dist/{dataTable-Bbx5XgV-.js → dataTable-CXEslFD_.js} +1 -1
- package/dist/{dataTable-D6-325qb.cjs → dataTable-D_I_5ElY.cjs} +1 -1
- package/dist/{datetime-CmXZdgkW.js → datetime-CXrlS-Fn.js} +2 -2
- package/dist/{datetime-DBrUO7wD.cjs → datetime-R_MfQNEw.cjs} +1 -1
- package/dist/{deepClusterSlipSurface-Ch8i2ql5.cjs → deepClusterSlipSurface-BQhcJYNb.cjs} +1 -1
- package/dist/{deepClusterSlipSurface-D7o7mgg7.js → deepClusterSlipSurface-Bvcjjagk.js} +2 -2
- package/dist/{deepDataMatrix-DoM8KUHn.cjs → deepDataMatrix-Bdqwu1Ae.cjs} +1 -1
- package/dist/{deepDataMatrix-D9GCg496.js → deepDataMatrix-Bpa3PeEY.js} +2 -2
- package/dist/{deepDisplacement3D-C8ZRCP-R.cjs → deepDisplacement3D-BdvAwJNS.cjs} +1 -1
- package/dist/{deepDisplacement3D-Cjx11pre.js → deepDisplacement3D-DTthQrmv.js} +2 -2
- package/dist/{deepDisplacementChart-BHe83IoB.js → deepDisplacementChart-B39_4-5G.js} +3 -3
- package/dist/{deepDisplacementChart-r3GIC8hq.cjs → deepDisplacementChart-BK2B5ni5.cjs} +1 -1
- package/dist/{deepDisplacementChart-HuWab3pz.js → deepDisplacementChart-BlFW846d.js} +2 -2
- package/dist/{deepDisplacementChart-BlcS3DVl.cjs → deepDisplacementChart-DGK-ytLL.cjs} +1 -1
- package/dist/{deepDisplacementView-B4RBH8Ie.js → deepDisplacementView-CEzyslgi.js} +1 -1
- package/dist/{deepDisplacementView-BHZQ4s3K.cjs → deepDisplacementView-D0k8ixeZ.cjs} +1 -1
- package/dist/{deepNodeTemperatureChart-BswYkP9V.cjs → deepNodeTemperatureChart-CRshTNQb.cjs} +1 -1
- package/dist/{deepNodeTemperatureChart-D9maVN-M.js → deepNodeTemperatureChart-jFr4HEhl.js} +2 -2
- package/dist/{deepTangentAngleChart-DQxOv4Vz.cjs → deepTangentAngleChart-DN93Za_F.cjs} +1 -1
- package/dist/{deepTangentAngleChart-DIWKa8r3.js → deepTangentAngleChart-qlt_i28X.js} +2 -2
- package/dist/{deepTemperatureField-2GBzigs_.cjs → deepTemperatureField-BSSfpaM1.cjs} +1 -1
- package/dist/{deepTemperatureField-DlLLcuFb.js → deepTemperatureField-DqFGBnor.js} +3 -3
- package/dist/{deepTrendChart-CdX41nqe.js → deepTrendChart-ByEnbGBj.js} +2 -2
- package/dist/{deepTrendChart-CbYdfjcX.cjs → deepTrendChart-DHK9tGSS.cjs} +1 -1
- package/dist/{deviceOnlineStatus-BdOeLbLy.js → deviceOnlineStatus-CpIQZh0M.js} +2 -2
- package/dist/{deviceOnlineStatus-BMfNv4fX.cjs → deviceOnlineStatus-DitvFXO0.cjs} +1 -1
- package/dist/{deviceStatus-B8Ijgoyf.js → deviceStatus-BMnvPaCe.js} +2 -2
- package/dist/{deviceStatus-CbYBmGvy.cjs → deviceStatus-D2zwkfv8.cjs} +1 -1
- package/dist/{displacementDataTable-BI8cE-vY.cjs → displacementDataTable-BNFgHcpm.cjs} +1 -1
- package/dist/{displacementDataTable-Cqi5Ql6a.js → displacementDataTable-DV98or0V.js} +2 -2
- package/dist/{displacementTrajectoryChart-DJM_B-gL.cjs → displacementTrajectoryChart-D0JeDw83.cjs} +1 -1
- package/dist/{displacementTrajectoryChart-D1UPR4dt.js → displacementTrajectoryChart-DOlT71OH.js} +2 -2
- package/dist/{displacementTrendChart-C4jvpdRY.cjs → displacementTrendChart-B75DMlL9.cjs} +1 -1
- package/dist/{displacementTrendChart-Dii90QjN.js → displacementTrendChart-Bf4dWRhF.js} +2 -2
- package/dist/{dxf-DsJIwOOJ.cjs → dxf-CF9JCrJV.cjs} +1 -1
- package/dist/{dxf-DAAwQlgQ.js → dxf-yWp505VQ.js} +2 -2
- package/dist/{dzc-CpML7WAZ.cjs → dzc-CJ813oEs.cjs} +1 -1
- package/dist/{dzc-BjOYTnIF.js → dzc-xaygWqOQ.js} +2 -2
- package/dist/{emergencyPlan-DWpGIszu.cjs → emergencyPlan-CYC8WV5d.cjs} +1 -1
- package/dist/{emergencyPlan-DeL1roPL.js → emergencyPlan-CdM9diRp.js} +3 -3
- package/dist/{evn-CUajXlYc.js → evn-Bm1yVYiV.js} +2 -2
- package/dist/{evn-D0ROeiQD.cjs → evn-DlqIQc2z.cjs} +1 -1
- package/dist/{evolutionChart-D23ALmPJ.cjs → evolutionChart-C5HEvSaz.cjs} +1 -1
- package/dist/{evolutionChart-B-2W9qVE.js → evolutionChart-qvx9fo_v.js} +3 -3
- package/dist/{fileViewer-DHDmo6px.cjs → fileViewer-DurCR5a4.cjs} +1 -1
- package/dist/{fileViewer-D6-jyRWy.js → fileViewer-WbsL26cJ.js} +2 -2
- package/dist/{filterBar-Bx0qkR7L.cjs → filterBar-BU7f-lAL.cjs} +1 -1
- package/dist/{filterBar-Cw-wbtF1.js → filterBar-V4nVpuvO.js} +2 -2
- package/dist/{fireCombustionCurve-wPPE55j_.js → fireCombustionCurve-BjwJ-Buh.js} +3 -3
- package/dist/{fireCombustionCurve-Dj2o6qcy.cjs → fireCombustionCurve-CWtYLNcG.cjs} +1 -1
- package/dist/{fireFilterBar-t-aUk0FZ.cjs → fireFilterBar-C2UtCT2L.cjs} +1 -1
- package/dist/{fireFilterBar-COgdZt2b.js → fireFilterBar-DvPHVtM5.js} +2 -2
- package/dist/{fireHistoryTable-Em_cwZSy.js → fireHistoryTable-B0H-NLbF.js} +2 -2
- package/dist/{fireHistoryTable-BgzroLVi.cjs → fireHistoryTable-BDIjWygB.cjs} +1 -1
- package/dist/{gag-C5gOltT8.cjs → gag-6rfLUaEW.cjs} +1 -1
- package/dist/{gag-Dd-osrR9.js → gag-DiTpLnBt.js} +2 -2
- package/dist/{gasStationList-CKe02Teb.cjs → gasStationList-CwGl2iVF.cjs} +1 -1
- package/dist/{gasStationList-CepcJ9BG.js → gasStationList-DvQMtR5w.js} +3 -3
- package/dist/{geo3dViewer-yHqVv2BH.js → geo3dViewer-BFW4ohFB.js} +3 -3
- package/dist/{geo3dViewer-CSq4-kE-.cjs → geo3dViewer-DVqrkN_a.cjs} +1 -1
- package/dist/{glbModel-DFDIJi5z.js → glbModel-D_qGC582.js} +2 -2
- package/dist/{glbModel-CBM7-1vZ.cjs → glbModel-QU90FqIC.cjs} +1 -1
- package/dist/{globalObjectSelector-BvK0QxXk.cjs → globalObjectSelector-UHy_RRW-.cjs} +1 -1
- package/dist/{globalObjectSelector-BoBf_njv.js → globalObjectSelector-ueGOvmC6.js} +1 -1
- package/dist/{gnssFilterBar-BabiLlIC.cjs → gnssFilterBar-B6cISQlJ.cjs} +1 -1
- package/dist/{gnssFilterBar-C4Ozsjee.js → gnssFilterBar-oq0assIP.js} +2 -2
- package/dist/{gnssHistoryTable-DWICO-OK.js → gnssHistoryTable-M7oEkZH2.js} +2 -2
- package/dist/{gnssHistoryTable-CEtxui4z.cjs → gnssHistoryTable-pma2i5b1.cjs} +1 -1
- package/dist/{gnssMapView-CgLO6fng.js → gnssMapView-CTjFS1uJ.js} +4 -4
- package/dist/{gnssMapView-C5IzKoTF.cjs → gnssMapView-_O2G4Jtp.cjs} +2 -2
- package/dist/{gnssSectionProfile-BcS3AU5H.cjs → gnssSectionProfile-C1I_Yvgd.cjs} +1 -1
- package/dist/{gnssSectionProfile-BFU5_iQa.js → gnssSectionProfile-DjI84Sxx.js} +2 -2
- package/dist/{gnssTimeSeriesChart-2AOe01nY.cjs → gnssTimeSeriesChart-CPkAGzdO.cjs} +1 -1
- package/dist/{gnssTimeSeriesChart-Cyc9JVmX.js → gnssTimeSeriesChart-N_jA0aIT.js} +2 -2
- package/dist/{gnssXYTrajectory-B3HDdORI.cjs → gnssXYTrajectory-D3BH7ifI.cjs} +1 -1
- package/dist/{gnssXYTrajectory-DAjqaaOt.js → gnssXYTrajectory-E1HbhlrN.js} +2 -2
- package/dist/{grd-jisN3fY_.cjs → grd-B39w-pcK.cjs} +1 -1
- package/dist/{grd-BdraSTc0.js → grd-DF4NGl0g.js} +2 -2
- package/dist/{grdIndass-BuEWpm2p.js → grdIndass-ByU7_r1j.js} +2 -2
- package/dist/{grdIndass-BxJWHgbc.cjs → grdIndass-S10dVOnv.cjs} +1 -1
- package/dist/{grg-BiUyteXn.js → grg-6qUcdyJ0.js} +2 -2
- package/dist/{grg-DHDNZzvS.cjs → grg-Bt8GpGs6.cjs} +1 -1
- package/dist/{gridview-DsDgxIu-.js → gridview-Br8vBlWF.js} +2 -2
- package/dist/{gridview-C2eGcIgv.cjs → gridview-DB8r6V6s.cjs} +1 -1
- package/dist/{groundwaterFilterBar-CwNVHLoq.js → groundwaterFilterBar-CKn5JGwA.js} +2 -2
- package/dist/{groundwaterFilterBar-Dwoyvzll.cjs → groundwaterFilterBar-D3cc9_Z4.cjs} +1 -1
- package/dist/{groundwaterProfileChart-xVZS96Bs.cjs → groundwaterProfileChart-BBWQpFeh.cjs} +2 -2
- package/dist/{groundwaterProfileChart-pYkKSQRV.js → groundwaterProfileChart-DHcxYcwJ.js} +3 -3
- package/dist/{groundwaterTimeCurve-CCP0yOcn.cjs → groundwaterTimeCurve-BLwFOs0m.cjs} +1 -1
- package/dist/{groundwaterTimeCurve-CRic1FkR.js → groundwaterTimeCurve-ChPGxmCZ.js} +3 -3
- package/dist/{groupCard-9mvfU5Qi.cjs → groupCard-D3KjzWp3.cjs} +1 -1
- package/dist/{groupCard-DyiQzmSU.js → groupCard-DmsCmsav.js} +2 -2
- package/dist/{headerBar-CT2WWLFX.js → headerBar-By8g89TV.js} +2 -2
- package/dist/{headerBar-BnZZrxdl.cjs → headerBar-DP3kNK9P.cjs} +1 -1
- package/dist/{history-Dm7563t_.cjs → history-CndXrm20.cjs} +1 -1
- package/dist/{history-CY_TCu9h.js → history-D17_Q_UO.js} +1 -1
- package/dist/{index-CPTJIw32.js → index-B5OsYU5s.js} +3 -3
- package/dist/{index-DoEyCVDU.cjs → index-CikO6qmH.cjs} +3 -3
- package/dist/{insarDeformChart-Bf6Q1Kll.js → insarDeformChart-B5UD9MPV.js} +2 -2
- package/dist/{insarDeformChart-D7r5dP7T.cjs → insarDeformChart-YnBHEDeL.cjs} +1 -1
- package/dist/{insarImageViewer-Cj6ywbUG.cjs → insarImageViewer-BAzpSNjI.cjs} +1 -1
- package/dist/{insarImageViewer-CupmlYkz.js → insarImageViewer-DHbqYaU1.js} +2 -2
- package/dist/{kds-vKrvUAFM.js → kds-B5UMZQs-.js} +2 -2
- package/dist/{kds-BXJfeT1L.cjs → kds-BL282Puq.cjs} +1 -1
- package/dist/{kpiCard-SXeIckZe.cjs → kpiCard-B3k_seHL.cjs} +1 -1
- package/dist/{kpiCard-DxJnC2K1.js → kpiCard-CpvQfETu.js} +2 -2
- package/dist/{landslideMap-g1sW7hGk.js → landslideMap-DbM9H0q9.js} +3 -3
- package/dist/{landslideMap-Byzuh2uI.cjs → landslideMap-l7DnsDC8.cjs} +1 -1
- package/dist/{landslideWarning-DBYw20My.cjs → landslideWarning-CMCHR70P.cjs} +1 -1
- package/dist/{landslideWarning-K2gltHjy.js → landslideWarning-D5A6L7LG.js} +5 -5
- package/dist/{layerTabs-pQHCSR8d.cjs → layerTabs-CQskqdBq.cjs} +1 -1
- package/dist/{layerTabs-DhKwbCdm.js → layerTabs-CxYVujmX.js} +2 -2
- package/dist/{leaflet-src-BNvMLv27.cjs → leaflet-src-BhiA8QMC.cjs} +1 -1
- package/dist/{leaflet-src-CLsvhZ1a.js → leaflet-src-DMp0hWTx.js} +1 -1
- package/dist/{lerc-7GSCiwa9.cjs → lerc-COfo7-9B.cjs} +1 -1
- package/dist/{lerc-CqUbnv8h.js → lerc-DLEZ-RWX.js} +2 -2
- package/dist/{lin-D0itRkyl.cjs → lin-VWl0uE1Q.cjs} +1 -1
- package/dist/{lin-Bq35ycag.js → lin-_gblmsy6.js} +2 -2
- package/dist/{linIndass-DYq4eFAR.js → linIndass-BdMcKrDf.js} +2 -2
- package/dist/{linIndass-DWiz2vOV.cjs → linIndass-DBZAh2IO.cjs} +1 -1
- package/dist/{lst-qvTez4v1.js → lst-cMhY9mq0.js} +2 -2
- package/dist/{lst-DdajeugL.cjs → lst-yN1wZAG-.cjs} +1 -1
- package/dist/{manualEntry-D33u42uH.js → manualEntry-BYEHpkCy.js} +2 -2
- package/dist/{manualEntry-s4RAoEru.cjs → manualEntry-BuOtkc3R.cjs} +1 -1
- package/dist/{mapBackground-DM72oEn2.js → mapBackground-CL9bIt_K.js} +3 -3
- package/dist/{mapBackground-YtkaIPHY.cjs → mapBackground-Dd19gRWw.cjs} +1 -1
- package/dist/{mappingList-Ch1HZwNc.cjs → mappingList-DZCfo59j.cjs} +1 -1
- package/dist/{mappingList-Dy_UeCUf.js → mappingList-OcmUvu4z.js} +4 -4
- package/dist/{markdownViewer-ZlwNlmLZ.js → markdownViewer-B-q2x-yF.js} +2 -2
- package/dist/{markdownViewer-DUjEXMVH.cjs → markdownViewer-DlOl2sDX.cjs} +1 -1
- package/dist/{mix-control-modal-B3FrB7Jt.cjs → mix-control-modal-BpwQm9Uj.cjs} +1 -1
- package/dist/{mix-control-modal-tXOouBPe.js → mix-control-modal-PfkgF6_6.js} +1 -1
- package/dist/{mixGrid-CogLsRzO.js → mixGrid-A8NAMgMF.js} +2 -2
- package/dist/{mixGrid-BU9U3aHI.cjs → mixGrid-CpUkERr8.cjs} +1 -1
- package/dist/mixdashboards.cjs +1 -1
- package/dist/mixdashboards.css +1 -1
- package/dist/mixdashboards.js +1 -1
- package/dist/{mjpegCamera-xUmmLzM-.js → mjpegCamera-3MVMHUb0.js} +2 -2
- package/dist/{mjpegCamera-g6FXbrP3.cjs → mjpegCamera-Boc7t5WO.cjs} +1 -1
- package/dist/{monitorAlert-DhE_HvpR.js → monitorAlert-CIDFzdYR.js} +2 -2
- package/dist/{monitorAlert-DZd5lJOJ.cjs → monitorAlert-Nh8BMTAf.cjs} +1 -1
- package/dist/{monitorData-BnEkcdiN.js → monitorData-By0rGKZW.js} +2 -2
- package/dist/{monitorData-CpWVhINV.cjs → monitorData-D7E_TggC.cjs} +1 -1
- package/dist/{monitorSpeedChart-DwsoytUF.cjs → monitorSpeedChart-BYgwtwHy.cjs} +1 -1
- package/dist/{monitorSpeedChart-CeW-Kk03.js → monitorSpeedChart-DEerOcaT.js} +1 -1
- package/dist/{mxa-0DZWI1xK.cjs → mxa-CNLjP0-O.cjs} +1 -1
- package/dist/{mxa-C58deh1I.js → mxa-DneShp8a.js} +2 -2
- package/dist/{myValue-B4ADQTTG.js → myValue-DYyDzY52.js} +2 -2
- package/dist/{myValue-DQLm9XLI.cjs → myValue-DuCfPC-s.cjs} +1 -1
- package/dist/{myValueList-baXd51uR.js → myValueList-BBbTpmI7.js} +2 -2
- package/dist/{myValueList-DZA9_HEh.cjs → myValueList-C4XFOG9D.cjs} +1 -1
- package/dist/{objectList-5m0NKALq.js → objectList-C4uitv-T.js} +4 -4
- package/dist/{objectList-BHmAruDg.cjs → objectList-D3qVPCGA.cjs} +1 -1
- package/dist/{objectListAPP-COZlfKyw.js → objectListAPP-BDvQQv8l.js} +3 -3
- package/dist/{objectListAPP-Cs7Wu_86.cjs → objectListAPP-Cz2k8DDi.cjs} +1 -1
- package/dist/{percentBar-CPfJrspp.cjs → percentBar-C30q-ZFp.cjs} +1 -1
- package/dist/{percentBar-BV6nG2iK.js → percentBar-D7y5Qff_.js} +2 -2
- package/dist/{photo-DK4Z23e3.js → photo-D73uWSPh.js} +2 -2
- package/dist/{photo-C4739K_A.cjs → photo-DEIHnhwN.cjs} +1 -1
- package/dist/{pie-kb79hzax.cjs → pie-DHEXhVE2.cjs} +1 -1
- package/dist/{pie-Lx2zjyZY.js → pie-pW2Ur97V.js} +2 -2
- package/dist/{placeholder-Cv_i5j6V.js → placeholder-7qgMTQHB.js} +1 -1
- package/dist/{placeholder-CAWJju9d.cjs → placeholder-DuK50h5L.cjs} +1 -1
- package/dist/{pressBtn-DwN7ExMn.js → pressBtn-CdhxCL39.js} +3 -3
- package/dist/{pressBtn-DPp2yGFb.cjs → pressBtn-CfZSJV5c.cjs} +1 -1
- package/dist/{processTable-kGjdZ2SC.cjs → processTable-B59AANcq.cjs} +1 -1
- package/dist/{processTable-DRzy2-fX.js → processTable-BjgyRljh.js} +2 -2
- package/dist/{progressBar-D5GyaH8h.js → progressBar-EFuwU42e.js} +2 -2
- package/dist/{progressBar-89gQ5oSf.cjs → progressBar-ikmr9kXy.cjs} +1 -1
- package/dist/{progressCircle-C0qoN2X2.js → progressCircle-C3DGo5e3.js} +2 -2
- package/dist/{progressCircle-D6jGTviS.cjs → progressCircle-D5bdj4w9.cjs} +1 -1
- package/dist/{qrcode-DutO28qr.cjs → qrcode-C-VOYPZk.cjs} +1 -1
- package/dist/{qrcode-B7wIdO7u.js → qrcode-DHnrDkCD.js} +2 -2
- package/dist/{raceBar-Kb4Ok0_0.cjs → raceBar-CA8_Y3Mv.cjs} +1 -1
- package/dist/{raceBar-JrtM5isa.js → raceBar-bbLpplPq.js} +2 -2
- package/dist/{rad-BKh0I2W8.cjs → rad-BZ4sHh7a.cjs} +1 -1
- package/dist/{rad-NhNcdAlO.js → rad-Do_dx25V.js} +2 -2
- package/dist/{radarMapViewer-BrGy_wsI.js → radarMapViewer-CbiTQyI9.js} +2 -2
- package/dist/{radarMapViewer-a-NY9MyR.cjs → radarMapViewer-D7JVC5-_.cjs} +1 -1
- package/dist/{rainfallFilterBar-CiVPGG1P.js → rainfallFilterBar-BKocUeHH.js} +2 -2
- package/dist/{rainfallFilterBar-DlJryHw0.cjs → rainfallFilterBar-CCrabYOP.cjs} +1 -1
- package/dist/{rainfallTimeCurve-cYcKHYUj.cjs → rainfallTimeCurve-Cue_NKXc.cjs} +1 -1
- package/dist/{rainfallTimeCurve-BwrlePpg.js → rainfallTimeCurve-CzCqVDWm.js} +3 -3
- package/dist/{rangeLin-CPKLO87X.js → rangeLin-D4QfCJWM.js} +2 -2
- package/dist/{rangeLin-B24wJK2h.cjs → rangeLin-J7gdxUw7.cjs} +1 -1
- package/dist/{realtimeEvolutionMap-ZFozACoZ.js → realtimeEvolutionMap-Bt5vm0T5.js} +2 -2
- package/dist/{realtimeEvolutionMap-CHQ7-WE1.cjs → realtimeEvolutionMap-DLLPopCu.cjs} +1 -1
- package/dist/{regionBar-Dgv2JYSM.cjs → regionBar-Biw0IAzs.cjs} +1 -1
- package/dist/{regionBar-Cz4GtJuo.js → regionBar-CTVZj2m-.js} +2 -2
- package/dist/{request-Dm2cf1Aw.cjs → request-D0THUthG.cjs} +1 -1
- package/dist/{request-aXSa-Jdv.js → request-l9UtZ26j.js} +1 -1
- package/dist/{retainer1-B6byWkE5.cjs → retainer1-C4mnu34_.cjs} +1 -1
- package/dist/{retainer1-B4KyW6bw.js → retainer1-Dl0Dl90y.js} +3 -3
- package/dist/{retainer2-X6vRW_D5.js → retainer2-B51XJALx.js} +3 -3
- package/dist/{retainer2-B06eGTYw.cjs → retainer2-C0-vgWgh.cjs} +1 -1
- package/dist/{retainerRecordList-C8wYAf_v.cjs → retainerRecordList-DppEmqHX.cjs} +1 -1
- package/dist/{retainerRecordList-DDZSYpCF.js → retainerRecordList-nuHnnnSu.js} +4 -4
- package/dist/{retainerRecordListAPP-B2Lp-jHM.js → retainerRecordListAPP-CND2yvR2.js} +3 -3
- package/dist/{retainerRecordListAPP-BHu691JS.cjs → retainerRecordListAPP-CsheK2LA.cjs} +1 -1
- package/dist/{ringTopN-DX7OzPp7.js → ringTopN-BdWU69U_.js} +2 -2
- package/dist/{ringTopN-BpJZOE13.cjs → ringTopN-LLeoVGUF.cjs} +1 -1
- package/dist/{riskRegionTable-D7blgvMi.js → riskRegionTable-BWLWgefn.js} +2 -2
- package/dist/{riskRegionTable-DziKMS_2.cjs → riskRegionTable-DxVIUBko.cjs} +1 -1
- package/dist/{sankey-CmgfktZj.js → sankey-DCOje10Y.js} +2 -2
- package/dist/{sankey-DjC4IYit.cjs → sankey-DQdC0YsD.cjs} +1 -1
- package/dist/{scd-zUFKqN8p.js → scd-C0-QtvYb.js} +4 -4
- package/dist/{scd-QV9whYOR.cjs → scd-akoB4WhJ.cjs} +1 -1
- package/dist/{sideMenu-POQpSa8C.cjs → sideMenu-BX4Pow5u.cjs} +1 -1
- package/dist/{sideMenu-CI23QNpx.js → sideMenu-BiKV8uvM.js} +2 -2
- package/dist/{slopeStability-Da70drIy.cjs → slopeStability-D9Zk5s9S.cjs} +1 -1
- package/dist/{slopeStability-E55huDws.js → slopeStability-DaKewAxU.js} +2 -2
- package/dist/{speedCurve-DSX1UJeW.cjs → speedCurve-CmqtOzHF.cjs} +1 -1
- package/dist/{speedCurve-BhhUH79z.js → speedCurve-D80AxmqS.js} +2 -2
- package/dist/{stackedBar-B0kr6QB7.cjs → stackedBar-DFWt2OWZ.cjs} +1 -1
- package/dist/{stackedBar-bgd2Ls04.js → stackedBar-DWD0z8Cv.js} +2 -2
- package/dist/{stationList-D7k3Lot6.js → stationList-B6Vd2W0z.js} +3 -3
- package/dist/{stationList-BSPTM0iI.cjs → stationList-CFBley3U.cjs} +1 -1
- package/dist/{stressFilterBar-Beupo7Zb.js → stressFilterBar-B8VTI2Z1.js} +2 -2
- package/dist/{stressFilterBar-B3gk67B_.cjs → stressFilterBar-DDmIAJa-.cjs} +1 -1
- package/dist/{stressTimeCurve-DGBhkdbV.js → stressTimeCurve-BdWsw9jv.js} +3 -3
- package/dist/{stressTimeCurve-CbhFLXzA.cjs → stressTimeCurve-Bjkc9_Nt.cjs} +1 -1
- package/dist/{swiper-BEau8Ehu.js → swiper-CKP6xnt-.js} +2 -2
- package/dist/{swiper-UlVDFht8.cjs → swiper-D_Rwb16u.cjs} +1 -1
- package/dist/{tablemanCreate-WnNbHft8.js → tablemanCreate-BKYDKpPr.js} +3 -3
- package/dist/{tablemanCreate-CF_D5gYW.cjs → tablemanCreate-DZ55EzLE.cjs} +1 -1
- package/dist/{tablemanDetail-_SNevfWv.cjs → tablemanDetail-3CbnNwA2.cjs} +1 -1
- package/dist/{tablemanDetail-yz3zQnFP.js → tablemanDetail-B6NGCXI0.js} +4 -4
- package/dist/{tablemanList-CDJWp9Pu.cjs → tablemanList-DowQNRR6.cjs} +1 -1
- package/dist/{tablemanList-CzcVRDtI.js → tablemanList-M7a3ZQO8.js} +4 -4
- package/dist/{tablemanTableList-Bm2fU0EX.js → tablemanTableList-BgsG8978.js} +4 -4
- package/dist/{tablemanTableList-DX76_Wzv.cjs → tablemanTableList-ZdYwUy1L.cjs} +1 -1
- package/dist/{tablemanUpdate-wdF6NUSW.cjs → tablemanUpdate-CJKEffXq.cjs} +1 -1
- package/dist/{tablemanUpdate-zmDu6tfj.js → tablemanUpdate-CTT5GBXY.js} +3 -3
- package/dist/{terminalConfigList-CCTkfKIn.js → terminalConfigList-dRPkprKy.js} +4 -4
- package/dist/{terminalConfigList-Dpktm7uo.cjs → terminalConfigList-wQ1UajwP.cjs} +1 -1
- package/dist/{terminalList-DTG1Cd-P.js → terminalList-BaP9hoss.js} +4 -4
- package/dist/{terminalList-DlnAYr5c.cjs → terminalList-Ctn_mkX8.cjs} +1 -1
- package/dist/{terminalListAPP-BXX0YEmN.js → terminalListAPP-_mKDTtbD.js} +3 -3
- package/dist/{terminalListAPP-DcG5Iu89.cjs → terminalListAPP-oF4_oz-3.cjs} +1 -1
- package/dist/{textbox-DyFcEXBF.js → textbox-DqEYrG4r.js} +2 -2
- package/dist/{textbox-C5DmbaFz.cjs → textbox-mVL51ZBg.cjs} +1 -1
- package/dist/{timeQueryBar-OqKVqlTl.cjs → timeQueryBar-CkGX0RN9.cjs} +1 -1
- package/dist/{timeQueryBar-BbWq3QkA.js → timeQueryBar-DXDqs4Se.js} +1 -1
- package/dist/{timeSeries-BDp-gfRT.cjs → timeSeries-DobViPA5.cjs} +1 -1
- package/dist/{timeSeries-D_-6XcY8.js → timeSeries-_uT3GRkl.js} +3 -3
- package/dist/{timeSeriesCurve-DgSGvMqB.js → timeSeriesCurve-DDKEPO9y.js} +3 -3
- package/dist/{timeSeriesCurve-KPYndFEq.cjs → timeSeriesCurve-Jx1N_p9K.cjs} +1 -1
- package/dist/{toggleBtn-D0JJAMZR.js → toggleBtn-BlChIxij.js} +2 -2
- package/dist/{toggleBtn-DtS2UoB4.cjs → toggleBtn-iFKonDLZ.cjs} +1 -1
- package/dist/{trajectoryConfigPanel-Bth1LMLN.cjs → trajectoryConfigPanel-Drod-hB7.cjs} +1 -1
- package/dist/{trajectoryConfigPanel-DxBIMfEx.js → trajectoryConfigPanel-DvPy4CPV.js} +1 -1
- package/dist/{trajectoryScatter-GkbJne40.cjs → trajectoryScatter-B16r_sIy.cjs} +1 -1
- package/dist/{trajectoryScatter-DqgFAVSz.js → trajectoryScatter-DZzTHDXJ.js} +2 -2
- package/dist/{universalConfigPanel-C4Teu_Op.cjs → universalConfigPanel-CDP9bqgM.cjs} +1 -1
- package/dist/{universalConfigPanel-BjyXE23U.js → universalConfigPanel-CjaUJ5jc.js} +1 -1
- package/dist/{universalTable-D_rkyBG2.cjs → universalTable-BQYFY1kN.cjs} +1 -1
- package/dist/{universalTable-BVwrJKq8.js → universalTable-D_xD2TfG.js} +2 -2
- package/dist/{useMixiotPanelPopperClass-C6Y6iPSp.js → useMixiotPanelPopperClass-CRHX4oub.js} +1 -1
- package/dist/{useMixiotPanelPopperClass-DmA-0R1V.cjs → useMixiotPanelPopperClass-CWf5lsSJ.cjs} +1 -1
- package/dist/{useTablemanApi-Big2Hfsi.cjs → useTablemanApi-BZTHA0JB.cjs} +1 -1
- package/dist/{useTablemanApi-CJh5jpVJ.js → useTablemanApi-CRyW9NF0.js} +1 -1
- package/dist/{useTablemanFormPanel-prjUDI9m.cjs → useTablemanFormPanel-BELiURD0.cjs} +1 -1
- package/dist/{useTablemanFormPanel-CvrN_jY3.js → useTablemanFormPanel-_kdtT958.js} +2 -2
- package/dist/{useTablemanListActions-B9SrCZRt.cjs → useTablemanListActions-BV55yWuR.cjs} +1 -1
- package/dist/{useTablemanListActions-DVQL1pwu.js → useTablemanListActions-DO6iYTzf.js} +5 -5
- package/dist/{video-CdMEjVoF.cjs → video-C1qOZBBQ.cjs} +1 -1
- package/dist/{video-DDHDy4Eq.js → video-n5FkGOgh.js} +2 -2
- package/dist/{videoMonitor-JQ4tj-qi.js → videoMonitor-CHrp1kvx.js} +2 -2
- package/dist/{videoMonitor-BZcjaMPX.cjs → videoMonitor-zxJRyMln.cjs} +1 -1
- package/dist/{vlu-Bmqrgnj8.js → vlu--l3zazKR.js} +2 -2
- package/dist/{vlu-39EqfkCs.cjs → vlu-k1DHCJlH.cjs} +1 -1
- package/dist/{warningOverview-Ctab9k92.js → warningOverview-DAqzQwIP.js} +3 -3
- package/dist/{warningOverview-DOsI-iKt.cjs → warningOverview-R5urE54q.cjs} +1 -1
- package/dist/{weather-BfV-w4FG.cjs → weather-BFCW1KGv.cjs} +1 -1
- package/dist/{weather-BwTT4bPM.js → weather-CAwG9FtK.js} +2 -2
- package/dist/{windLin-Dfz6aBio.cjs → windLin-BQpQCxgw.cjs} +1 -1
- package/dist/{windLin-DgZctBal.js → windLin-BvhTAl-C.js} +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var an=Object.defineProperty,sn=Object.defineProperties;var ln=Object.getOwnPropertyDescriptors;var ht=Object.getOwnPropertySymbols;var cn=Object.prototype.hasOwnProperty,dn=Object.prototype.propertyIsEnumerable;var Ie=Math.pow,yt=(l,o,t)=>o in l?an(l,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[o]=t,Ke=(l,o)=>{for(var t in o||(o={}))cn.call(o,t)&&yt(l,t,o[t]);if(ht)for(var t of ht(o))dn.call(o,t)&&yt(l,t,o[t]);return l},Qe=(l,o)=>sn(l,ln(o));var _e=(l,o,t)=>new Promise((a,s)=>{var d=y=>{try{p(t.next(y))}catch(E){s(E)}},c=y=>{try{p(t.throw(y))}catch(E){s(E)}},p=y=>y.done?a(y.value):Promise.resolve(y.value).then(d,c);p((t=t.apply(l,o)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const et=require("element-plus/es");require("element-plus/es/components/base/style/css");require("element-plus/es/components/date-picker/style/css");require("element-plus/es/components/select/style/css");require("element-plus/es/components/option/style/css");const e=require("vue"),k=require("./three.module-CjayKmiG.cjs"),un=require("./OrbitControls-uuLGjaqy.cjs"),bt=require("./CSS2DRenderer-nQ2DN9Uc.cjs"),nt=require("./ExtensionUtilities-ClTuwtC-.cjs"),we=require("./index-DoEyCVDU.cjs"),mn=require("./BaseComponent-DKuQG62G.cjs"),pn=require("./titleStyle-NSnz6cUg.cjs"),xe=require("./leaflet-src-BNvMLv27.cjs");;/* empty css */const kt=require("./ele-glbModel-icon-ByACDCrv.cjs");function Et(l){const t=JSON.parse(l).properties,a=vn(t.materials||[]),s=new Map;a.forEach(p=>s.set(p.id,p));const d=t.nodes,c=fn(d,s);return{name:t.name||"Untitled",id:t.id||"",version:t.version||"",materials:a,rootNode:c}}function vn(l){return l.map(o=>{var t,a,s;return{id:((t=o.properties)==null?void 0:t.id)||"",name:((a=o.properties)==null?void 0:a.name)||"",color:typeof((s=o.properties)==null?void 0:s.color)=="number"?o.properties.color:8947848}})}function fn(l,o){var s;if(!l||l.length===0)return wt("root");const t=new Map,a=[];for(const d of l){const c=gn(d,o);t.set(c.id,c),a.push({node:c,parentId:d.parentId})}for(const{node:d,parentId:c}of a)c&&t.has(c)&&t.get(c).children.push(d);return((s=a[0])==null?void 0:s.node)||wt("root")}function wt(l){return{id:"empty",name:l,classKey:"EmptyNode",visible:!0,color:8947848,children:[],raw:{}}}function gn(l,o){const t=l.properties||{},a=l.classKey||"";let s=8947848,d;if(t.materialId){d=t.materialId;const y=o.get(d);y&&(s=y.color)}else typeof t.color=="number"&&(s=t.color);const c={id:t.id||Math.random().toString(36).slice(2),name:t.name||a,classKey:a,visible:t.visible!==void 0?!!t.visible:!0,color:s,materialId:d,children:[],raw:t},p=hn(a,t);return p&&(c.mesh=p),c}function hn(l,o){if(l==="TriMeshNode"&&o.savedData)return yn(o.savedData);if(l==="ShapeNode"||l==="MultiShapeNode")return bn(o);if((l==="GeoPlineNode"||l==="PlineNode")&&o.points)return kn(o)}function yn(l){try{const o=typeof l=="string"?JSON.parse(l):l;if(!o.pos||!o.idx)return;const t=new Float32Array(o.pos),a=new Uint32Array(o.idx),s=o.uv?new Float32Array(o.uv):new Float32Array(0),d=o.edgePos?new Float32Array(o.edgePos):new Float32Array(0),c=Mt(t,a);return{positions:t,indices:a,normals:c,uvs:s,edgePositions:d}}catch(o){return}}function bn(l){const o=l.shape;if(!o)return;const t=o.properties||o,a=t.mesh||t._mesh;if(!a)return;const s=a.properties||a,d=s.faces||s._faces;if(!d)return;const c=d.properties||d;if(!c.position)return;const p=Ye(c.position),y=En(c.index),E=c.normal?Ye(c.normal):Mt(p,y),C=c.uv?Ye(c.uv):new Float32Array(0),g=s.edges||s._lines,b=(g==null?void 0:g.properties)||g,N=b!=null&&b.position?Ye(b.position):new Float32Array(0);if(p.length!==0)return{positions:p,indices:y,normals:E,uvs:C,edgePositions:N}}function kn(l){const o=l.points;if(!o||!Array.isArray(o))return;const t=o.map(s=>s.properties?{x:s.properties.x||0,y:s.properties.y||0,z:s.properties.z||0}:{x:s.x||0,y:s.y||0,z:s.z||0});if(t.length<2)return;const a=[];for(let s=0;s<t.length-1;s++)a.push(t[s].x,t[s].y,t[s].z),a.push(t[s+1].x,t[s+1].y,t[s+1].z);return{positions:new Float32Array(0),indices:new Uint32Array(0),normals:new Float32Array(0),uvs:new Float32Array(0),edgePositions:new Float32Array(a)}}function Ye(l){var o;return l instanceof Float32Array?l:(o=l==null?void 0:l.properties)!=null&&o.buffer?new Float32Array(l.properties.buffer):Array.isArray(l)?new Float32Array(l):new Float32Array(0)}function En(l){var o;return l instanceof Uint32Array?l:(o=l==null?void 0:l.properties)!=null&&o.buffer?new Uint32Array(l.properties.buffer):Array.isArray(l)?new Uint32Array(l):new Uint32Array(0)}function Mt(l,o){if(l.length===0||o.length===0)return new Float32Array(0);const t=new Float32Array(l.length);for(let a=0;a<o.length;a+=3){const s=o[a],d=o[a+1],c=o[a+2],p=l[s*3],y=l[s*3+1],E=l[s*3+2],C=l[d*3],g=l[d*3+1],b=l[d*3+2],N=l[c*3],w=l[c*3+1],x=l[c*3+2],G=C-p,I=g-y,U=b-E,X=N-p,me=w-y,pe=x-E,ve=I*pe-U*me,oe=U*X-G*pe,H=G*me-I*X,fe=Math.sqrt(ve*ve+oe*oe+H*H)||1;for(const m of[s,d,c])t[m*3]+=ve/fe,t[m*3+1]+=oe/fe,t[m*3+2]+=H/fe}for(let a=0;a<t.length;a+=3){const s=Math.sqrt(Ie(t[a],2)+Ie(t[a+1],2)+Ie(t[a+2],2))||1;t[a]/=s,t[a+1]/=s,t[a+2]/=s}return t}function Vt(l,o){if(o==="cf"){const a=l.cf;return a<50?[0/255,170/255,255/255]:a<150?[255/255,230/255,0/255]:a<300?[255/255,145/255,0/255]:a<500?[240/255,70/255,40/255]:[180/255,0/255,0/255]}if(o==="av"){const a=l.av;return a<-.6?[0/255,80/255,220/255]:a<-.1?[0/255,170/255,255/255]:Math.abs(a)<.1?[0/255,220/255,120/255]:a<.6?[255/255,185/255,0/255]:[220/255,30/255,30/255]}const t=Math.abs(l.rr);return l.rr<0?t<5?[0/255,180/255,255/255]:t<20?[0/255,120/255,255/255]:t<60?[40/255,70/255,220/255]:[20/255,35/255,150/255]:t<5?[255/255,230/255,0/255]:t<20?[255/255,165/255,0/255]:t<60?[235/255,85/255,0/255]:[180/255,0/255,0/255]}function wn(l){return l?Array.isArray(l.points)?l:l.data&&Array.isArray(l.data.points)?l.data:{points:[],radar:{e:0,n:0,rl:0}}:{points:[],radar:{e:0,n:0,rl:0}}}k.Mesh.prototype.raycast=nt.acceleratedRaycast;class Vn{constructor(o){this.container=o,this.raycaster=new k.Raycaster,this.animFrameId=0,this.needsUpdate=!0,this.nodeEntries=new Map,this.resizeObserver=null,this.deviceMarkers=new Map,this.radarLayers=new Map,this.animate=()=>{if(this.animFrameId=requestAnimationFrame(this.animate),this.controls.update(),!this.needsUpdate)return;const a=this.camera.position.clone().sub(this.controls.target);this.dynamicLight.position.copy(a),this.renderer.render(this.scene,this.camera),this.labelRenderer.render(this.scene,this.camera),this.needsUpdate=!1},k.Object3D.DEFAULT_UP.set(0,0,1),this.scene=new k.Scene,this.camera=new k.PerspectiveCamera(50,o.clientWidth/Math.max(o.clientHeight,1),.1,1e5),this.camera.position.set(500,-500,500),this.camera.up.set(0,0,1),this.renderer=new k.WebGLRenderer({antialias:!0,alpha:!0}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(o.clientWidth,o.clientHeight),o.appendChild(this.renderer.domElement),this.labelRenderer=new bt.CSS2DRenderer,this.labelRenderer.setSize(o.clientWidth,o.clientHeight),this.labelRenderer.domElement.style.position="absolute",this.labelRenderer.domElement.style.top="0",this.labelRenderer.domElement.style.left="0",this.labelRenderer.domElement.style.pointerEvents="none",this.labelRenderer.domElement.style.overflow="visible",o.appendChild(this.labelRenderer.domElement),this.controls=new un.OrbitControls(this.camera,this.renderer.domElement),this.controls.enableDamping=!1,this.controls.mouseButtons={LEFT:k.MOUSE.ROTATE,MIDDLE:k.MOUSE.PAN,RIGHT:k.MOUSE.PAN},this.controls.addEventListener("change",()=>{this.updateCameraNearFar(),this.needsUpdate=!0});const t=new k.AmbientLight(8947848,4);this.dynamicLight=new k.DirectionalLight(16777215,2),this.scene.add(t,this.dynamicLight),this.scene.add(new k.AxesHelper(250)),this.resizeObserver=new ResizeObserver(()=>this.resize()),this.resizeObserver.observe(o),this.animate()}loadDocument(o,t){return _e(this,null,function*(){this.clearModel();const a=this.flattenNodes(o.rootNode),s=a.filter(c=>c.mesh&&c.mesh.positions.length>0);t==null||t(`构建场景树 (${a.length} 节点)...`),this.buildGroupTree(o.rootNode,this.scene);let d=0;for(const c of s)this.createMeshForNode(c),d++,d%5===0&&(t==null||t(`创建网格 ${d}/${s.length}...`),yield new Promise(p=>setTimeout(p,0)));this.fitContent(),this.needsUpdate=!0})}flattenNodes(o){const t=[o];for(const a of o.children)t.push(...this.flattenNodes(a));return t}buildGroupTree(o,t){const a=new k.Group;a.name=o.name,a.visible=o.visible,t.add(a);const s={node:o,group:a};this.nodeEntries.set(o.id,s);for(const d of o.children)this.buildGroupTree(d,a)}createMeshForNode(o){var p,y;const t=this.nodeEntries.get(o.id);if(!t||!o.mesh)return;const{positions:a,indices:s,edgePositions:d}=o.mesh;if(a.length>0&&s.length>0){const E=new k.BufferGeometry;E.setAttribute("position",new k.BufferAttribute(a,3)),E.setIndex(new k.BufferAttribute(s,1)),E.computeVertexNormals(),E.computeBoundingBox(),E.boundsTree=new nt.MeshBVH(E);const C=new k.MeshLambertMaterial({color:new k.Color(o.color),side:k.DoubleSide,flatShading:!0}),g=new k.Mesh(E,C);g.name=o.name+"_mesh",t.group.add(g),t.meshObj=g}const c=(y=(p=o.raw)==null?void 0:p.displayMode)!=null?y:0;if(d.length>0&&c>0){const E=new k.BufferGeometry;E.setAttribute("position",new k.BufferAttribute(d,3)),E.computeBoundingBox();const C=new k.LineBasicMaterial({color:0,linewidth:1}),g=new k.LineSegments(E,C);g.name=o.name+"_edges",t.group.add(g),t.edgeObj=g}}setNodeVisible(o,t){const a=this.nodeEntries.get(o);a&&(this.setNodeVisibleRecursive(a.node,t),this.needsUpdate=!0)}setNodeVisibleRecursive(o,t){o.visible=t;const a=this.nodeEntries.get(o.id);a&&(a.group.visible=t);for(const s of o.children)this.setNodeVisibleRecursive(s,t)}fitContent(){try{this.scene.updateMatrixWorld(!0);const o=new k.Box3;if(this.scene.traverse(d=>{if(!(d instanceof k.AxesHelper)&&(d instanceof k.Mesh||d instanceof k.LineSegments)){const c=d.geometry;if(c&&c.attributes.position&&(c.computeBoundingBox(),c.boundingBox&&!c.boundingBox.isEmpty())){const p=c.boundingBox.clone();p.applyMatrix4(d.matrixWorld),o.union(p)}}}),o.isEmpty())return;const t=o.getCenter(new k.Vector3),a=o.getSize(new k.Vector3),s=Math.max(a.x,a.y,a.z);this.controls.target.copy(t),this.camera.position.set(t.x+s*.8,t.y-s*.8,t.z+s*.6),this.updateCameraNearFar(),this.controls.update(),this.needsUpdate=!0}catch(o){console.warn("[fitContent] error:",o)}}getVisibleMeshEntries(){const o=[];return this.nodeEntries.forEach(t=>{t.meshObj&&t.group.visible&&t.node.mesh&&o.push(t)}),o}addSectionLines(o,t){const a=new k.BufferGeometry;a.setAttribute("position",new k.BufferAttribute(o,3));const s=new k.LineBasicMaterial({color:t,linewidth:2,depthTest:!1}),d=new k.LineSegments(a,s);return d.renderOrder=999,d.name="__section_result__",this.scene.add(d),this.needsUpdate=!0,d}addSectionPath(o,t=16776960){const a=[];for(let p=0;p<o.length-1;p++)a.push(o[p].x,o[p].y,o[p].z),a.push(o[p+1].x,o[p+1].y,o[p+1].z);const s=new k.BufferGeometry;s.setAttribute("position",new k.BufferAttribute(new Float32Array(a),3));const d=new k.LineBasicMaterial({color:t,linewidth:3,depthTest:!1}),c=new k.LineSegments(s,d);return c.renderOrder=1e3,c.name="__section_path__",this.scene.add(c),this.needsUpdate=!0,c}clearSectionResults(){const o=[];this.scene.traverse(t=>{(t.name==="__section_result__"||t.name==="__section_path__")&&o.push(t)}),o.forEach(t=>{t.removeFromParent(),t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}),this.needsUpdate=!0}setTransparency(o){this.nodeEntries.forEach(t=>{if(t.meshObj){const a=t.meshObj.material;a.transparent=o,a.opacity=o?.4:1,a.depthWrite=!o,a.needsUpdate=!0}}),this.needsUpdate=!0}pickPoint(o){const t=this.renderer.domElement.getBoundingClientRect(),a=new k.Vector2((o.clientX-t.left)/t.width*2-1,-((o.clientY-t.top)/t.height)*2+1);this.raycaster.setFromCamera(a,this.camera);const s=[];this.scene.traverse(c=>{c instanceof k.Mesh&&c.name.endsWith("_mesh")&&c.visible&&s.push(c)});const d=this.raycaster.intersectObjects(s,!1);return d.length>0?d[0].point.clone():null}addPickMarker(o,t=16711680){const a=new k.SphereGeometry(1,16,16),s=new k.MeshBasicMaterial({color:t,depthTest:!1}),d=new k.Mesh(a,s);d.position.copy(o),d.renderOrder=998,d.name="__pick_marker__";const c=this.camera.position.distanceTo(this.controls.target);return d.scale.setScalar(c*.008),this.scene.add(d),this.needsUpdate=!0,d}addPickLine(o,t){const a=new k.BufferGeometry;a.setAttribute("position",new k.BufferAttribute(new Float32Array([o.x,o.y,o.z,t.x,t.y,t.z]),3));const s=new k.LineBasicMaterial({color:16776960,linewidth:2,depthTest:!1}),d=new k.LineSegments(a,s);return d.renderOrder=998,d.name="__pick_line__",this.scene.add(d),this.needsUpdate=!0,d}clearPickMarkers(){const o=[];this.scene.traverse(t=>{(t.name==="__pick_marker__"||t.name==="__pick_line__")&&o.push(t)}),o.forEach(t=>{t.removeFromParent(),t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}),this.needsUpdate=!0}addRadarLayer(o,t,a){if(this.removeRadarLayer(o),t.length===0)return;const s=new Float32Array(t.length*3),d=new Float32Array(t.length*3);for(let E=0;E<t.length;E++){const C=t[E],g=E*3;s[g]=C.e,s[g+1]=C.n,s[g+2]=C.rl;const b=Vt(C,a);d[g]=b[0],d[g+1]=b[1],d[g+2]=b[2]}const c=new k.BufferGeometry;c.setAttribute("position",new k.BufferAttribute(s,3)),c.setAttribute("color",new k.BufferAttribute(d,3)),c.computeBoundingSphere();const p=new k.PointsMaterial({size:5,sizeAttenuation:!1,vertexColors:!0,depthWrite:!1,depthTest:!1,toneMapped:!1}),y=new k.Points(c,p);y.renderOrder=900,y.name=`__radar_layer_${o}__`,this.scene.add(y),this.radarLayers.set(o,{cloud:y,pointIndex:t}),this.needsUpdate=!0}setRadarLayerVisible(o,t){const a=this.radarLayers.get(o);a&&(a.cloud.visible=t,this.needsUpdate=!0)}updateRadarLayerColors(o,t,a){const s=this.radarLayers.get(o);if(!s)return;const d=s.cloud.geometry.getAttribute("color"),c=d.array;for(let p=0;p<t.length;p++){const y=Vt(t[p],a),E=p*3;c[E]=y[0],c[E+1]=y[1],c[E+2]=y[2]}d.needsUpdate=!0,this.needsUpdate=!0}pickRadarPoint(o){const t=this.renderer.domElement.getBoundingClientRect(),a=new k.Vector2((o.clientX-t.left)/t.width*2-1,-((o.clientY-t.top)/t.height)*2+1),s=new k.Vector3;let d=.002,c=null;for(const[p,y]of this.radarLayers){if(!y.cloud.visible)continue;const C=y.cloud.geometry.getAttribute("position").array;for(let g=0;g<C.length;g+=3){if(s.set(C[g],C[g+1],C[g+2]).project(this.camera),s.z<-1||s.z>1)continue;const b=s.x-a.x,N=s.y-a.y,w=b*b+N*N;w<d&&(d=w,c={layerId:p,point:y.pointIndex[g/3]})}}return c}removeRadarLayer(o){const t=this.radarLayers.get(o);t&&(this.scene.remove(t.cloud),t.cloud.geometry.dispose(),t.cloud.material.dispose(),this.radarLayers.delete(o),this.needsUpdate=!0)}clearAllRadarLayers(){for(const[o]of this.radarLayers)this.removeRadarLayer(o)}addDeviceMarker(o,t,a){this.removeDeviceMarker(o);const s=new bt.CSS2DObject(a);return s.position.set(t.e,t.n,t.rl),s.name=`__device_marker_${o}__`,this.scene.add(s),this.deviceMarkers.set(o,s),this.needsUpdate=!0,s}updateDeviceMarkerPosition(o,t){const a=this.deviceMarkers.get(o);a&&(a.position.set(t.e,t.n,t.rl),this.needsUpdate=!0)}removeDeviceMarker(o){const t=this.deviceMarkers.get(o);t&&(this.scene.remove(t),this.deviceMarkers.delete(o),this.needsUpdate=!0)}removeAllDeviceMarkers(){for(const[o]of this.deviceMarkers)this.removeDeviceMarker(o)}setDeviceMarkerVisible(o,t){const a=this.deviceMarkers.get(o);a&&(a.visible=t,this.needsUpdate=!0)}setDeviceMarkersVisible(o){for(const[,t]of this.deviceMarkers)t.visible=o;this.needsUpdate=!0}clearModel(){const o=[];this.scene.children.forEach(t=>{t instanceof k.Group&&o.push(t)}),o.forEach(t=>{t.traverse(a=>{if(a.geometry&&a.geometry.dispose(),a.material){const s=a.material;Array.isArray(s)?s.forEach(d=>d.dispose()):s.dispose()}}),t.removeFromParent()}),this.nodeEntries.clear(),this.clearSectionResults()}resize(){const o=this.container.clientWidth,t=this.container.clientHeight;t<1||(this.camera.aspect=o/t,this.camera.updateProjectionMatrix(),this.renderer.setSize(o,t),this.labelRenderer.setSize(o,t),this.needsUpdate=!0)}updateCameraNearFar(){const o=this.camera.position.distanceTo(this.controls.target);o<1?(this.camera.near=.001,this.camera.far=100):o<10?(this.camera.near=.01,this.camera.far=1e3):o<100?(this.camera.near=.1,this.camera.far=1e4):o<1e3?(this.camera.near=1,this.camera.far=1e5):o<1e4?(this.camera.near=10,this.camera.far=1e6):o<1e5?(this.camera.near=100,this.camera.far=1e7):(this.camera.near=1e3,this.camera.far=1e8),this.camera.updateProjectionMatrix()}requestUpdate(){this.needsUpdate=!0}dispose(){var o;cancelAnimationFrame(this.animFrameId),(o=this.resizeObserver)==null||o.disconnect(),this.clearModel(),this.clearAllRadarLayers(),this.removeAllDeviceMarkers(),this.controls.dispose(),this.renderer.dispose(),this.renderer.domElement.remove(),this.labelRenderer.domElement.remove()}}function Nn(l,o){const t=new k.Vector3().subVectors(o,l).normalize();let a=new k.Vector3().crossVectors(t,new k.Vector3(0,0,1)).normalize();return a.lengthSq()<.01&&(a=new k.Vector3().crossVectors(t,new k.Vector3(1,0,0)).normalize()),{start:l.clone(),end:o.clone(),normal:a}}function _n(l){const o=[];for(let t=0;t<l.length-1;t++)o.push(Nn(l[t],l[t+1]));return o}const Nt=new WeakMap;function Mn(l,o){if(!l.mesh||l.mesh.positions.length===0||l.mesh.indices.length===0)return new Float32Array(0);let t=Nt.get(l);t||(t=new k.BufferGeometry,t.setAttribute("position",new k.BufferAttribute(l.mesh.positions,3)),t.setIndex(new k.BufferAttribute(l.mesh.indices,1)),t.boundsTree=new nt.MeshBVH(t),Nt.set(l,t));const a=t.boundsTree,s=[],d=new k.Line3;return a.shapecast({intersectsBounds:c=>o.intersectsBox(c),intersectsTriangle:c=>(Sn(c,o,d)&&s.push(d.start.x,d.start.y,d.start.z,d.end.x,d.end.y,d.end.z),!1)}),new Float32Array(s)}function Sn(l,o,t){const a=o.distanceToPoint(l.a),s=o.distanceToPoint(l.b),d=o.distanceToPoint(l.c);if(a>0&&s>0&&d>0||a<0&&s<0&&d<0||a===0&&s===0&&d===0)return!1;const c=[];if(tt(l.a,l.b,a,s,c),tt(l.b,l.c,s,d,c),tt(l.c,l.a,d,a,c),c.length>=2){t.start.copy(c[0]);let p=0,y=1;for(let E=1;E<c.length;E++){const C=c[0].distanceToSquared(c[E]);C>p&&(p=C,y=E)}return t.end.copy(c[y]),p>=1e-10}return!1}function tt(l,o,t,a,s){if(t*a<0){const d=t/(t-a);s.push(new k.Vector3().copy(l).lerp(o,d))}else Math.abs(t)<1e-5&&(s.length===0||s[s.length-1].distanceTo(l)>1e-5)&&s.push(l.clone())}function Cn(l,o,t){const a=[],s=new k.Vector3().subVectors(t,o),d=s.lengthSq();if(d<1e-6)return[];const c=(p,y,E)=>{const C=p-o.x,g=y-o.y,b=E-o.z;return(C*s.x+g*s.y+b*s.z)/d};for(let p=0;p<l.length;p+=6){const y=l[p],E=l[p+1],C=l[p+2],g=l[p+3],b=l[p+4],N=l[p+5],w=c(y,E,C),x=c(g,b,N);if(w>=0&&w<=1&&x>=0&&x<=1){a.push(y,E,C,g,b,N);continue}if(w<0&&x<0||w>1&&x>1)continue;const G=Math.min(w,x),I=Math.max(w,x),U=w<x?{x:y,y:E,z:C}:{x:g,y:b,z:N},X=w<x?{x:g,y:b,z:N}:{x:y,y:E,z:C},me=Math.max(G,0),pe=Math.min(I,1);if(me<pe){const ve=I-G,oe=(me-G)/ve,H=(pe-G)/ve;a.push(U.x+(X.x-U.x)*oe,U.y+(X.y-U.y)*oe,U.z+(X.z-U.z)*oe,U.x+(X.x-U.x)*H,U.y+(X.y-U.y)*H,U.z+(X.z-U.z)*H)}}return a}function xn(l,o){if(o.length<2)return{results:[],allPositions:new Float32Array(0)};const t=_n(o),a=[],s=[];for(const d of l){const c=d.node;if(!c.mesh||c.mesh.positions.length===0)continue;const p=[];for(const y of t){const E=new k.Plane(y.normal.clone(),-y.normal.dot(y.start)),C=Mn(c,E);if(C.length>0){const g=Cn(C,y.start,y.end);g.length>0&&p.push(...g)}}if(p.length>0){a.push(...p);const y=[];for(let E=0;E<p.length;E+=6)y.push({start:{x:p[E],y:p[E+1],z:p[E+2]},end:{x:p[E+3],y:p[E+4],z:p[E+5]}});s.push({nodeName:c.name,nodeColor:c.color,segments:y})}}return{results:s,allPositions:new Float32Array(a)}}const Bn={class:"geo-toggle"},An=["title"],Ln=["title"],Dn=e.defineComponent({__name:"Geo3dNodeTree",props:{node:{},scene:{},depth:{default:0}},emits:["toggle-visible"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(t.depth<2);function d(){t.node.children.length>0&&(s.value=!s.value)}function c(){const p=!t.node.visible;t.node.visible=p,a("toggle-visible",t.node.id,p)}return(p,y)=>{const E=e.resolveComponent("Geo3dNodeTree",!0);return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{class:"geo-tree-item",style:e.normalizeStyle({paddingLeft:l.depth*16+8+"px"}),onClick:d},[e.createElementVNode("span",Bn,[l.node.children.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(s.value?"▼":"▶"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" ")],64))]),e.createElementVNode("div",{class:"geo-icon",style:e.normalizeStyle({background:"#"+l.node.color.toString(16).padStart(6,"0")})},null,4),e.createElementVNode("span",{class:"geo-label",title:l.node.name},e.toDisplayString(l.node.name),9,An),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!l.node.visible}]),onClick:e.withModifiers(c,["stop"]),title:l.node.visible?"隐藏":"显示"},e.toDisplayString(l.node.visible?"👁":"👁🗨"),11,Ln)],4),s.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.node.children,C=>(e.openBlock(),e.createBlock(E,{key:C.id,node:C,scene:l.scene,depth:l.depth+1,onToggleVisible:y[0]||(y[0]=(g,b)=>a("toggle-visible",g,b))},null,8,["node","scene","depth"]))),128)):e.createCommentVNode("",!0)])}}}),Fn=we._export_sfc(Dn,[["__scopeId","data-v-24fac17a"]]),Rn={class:"geo-radar-tree"},zn=["onClick"],Tn={class:"geo-toggle"},$n=["title"],Un={class:"geo-count"},Pn=["onClick"],On=["title"],Gn={class:"geo-count"},In=["onClick"],Yn=["onClick"],Hn=["title"],qn={class:"geo-count"},Wn=["onClick"],jn=["onClick"],Xn={key:0,class:"geo-radar-empty"},Zn=e.defineComponent({__name:"Geo3dRadarTree",props:{layers:{},groups:{}},emits:["toggle-layer","toggle-group","remove-layer"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(new Set(t.groups.map(b=>b.id)));function d(b){return s.value.has(b)}function c(b){const N=new Set(s.value);N.has(b)?N.delete(b):N.add(b),s.value=N}const p=e.computed(()=>t.layers.filter(b=>!b.groupId));function y(b){return b.layers.length>0&&b.layers.some(N=>N.visible)}function E(b){return b.layers.reduce((N,w)=>N+w.points.length,0).toLocaleString()}function C(b){a("toggle-group",b.id,!y(b))}function g(b){if(b.points.length===0)return"#999";const N=["#2563eb","#10b981","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#ec4899","#84cc16"];let w=0;for(let x=0;x<b.name.length;x++)w=(w<<5)-w+b.name.charCodeAt(x)|0;return N[Math.abs(w)%N.length]}return(b,N)=>(e.openBlock(),e.createElementBlock("div",Rn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.groups,w=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:"geo-radar-group"},[e.createElementVNode("div",{class:"geo-radar-item group-item",onClick:x=>c(w.id)},[e.createElementVNode("span",Tn,e.toDisplayString(d(w.id)?"▼":"▶"),1),N[0]||(N[0]=e.createElementVNode("span",{class:"geo-radar-icon"},"📡",-1)),e.createElementVNode("span",{class:"geo-label",title:w.name},e.toDisplayString(w.name),9,$n),e.createElementVNode("span",Un,e.toDisplayString(E(w)),1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!y(w)}]),onClick:e.withModifiers(x=>C(w),["stop"])},e.toDisplayString(y(w)?"👁":"👁🗨"),11,Pn)],8,zn),d(w.id)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(w.layers,x=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:"geo-radar-item layer-item"},[N[1]||(N[1]=e.createElementVNode("span",{class:"geo-toggle"}," ",-1)),e.createElementVNode("div",{class:"geo-layer-dot",style:e.normalizeStyle({background:g(x)})},null,4),e.createElementVNode("span",{class:"geo-label",title:x.name},e.toDisplayString(x.name),9,On),e.createElementVNode("span",Gn,e.toDisplayString(x.points.length.toLocaleString()),1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!x.visible}]),onClick:e.withModifiers(G=>b.$emit("toggle-layer",x.id,!x.visible),["stop"])},e.toDisplayString(x.visible?"👁":"👁🗨"),11,In),e.createElementVNode("button",{class:"geo-del-btn",onClick:e.withModifiers(G=>b.$emit("remove-layer",x.id),["stop"]),title:"删除"},"×",8,Yn)]))),128)):e.createCommentVNode("",!0)]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,w=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:"geo-radar-item layer-item"},[N[2]||(N[2]=e.createElementVNode("span",{class:"geo-toggle"}," ",-1)),e.createElementVNode("div",{class:"geo-layer-dot",style:e.normalizeStyle({background:g(w)})},null,4),e.createElementVNode("span",{class:"geo-label",title:w.name},e.toDisplayString(w.name),9,Hn),e.createElementVNode("span",qn,e.toDisplayString(w.points.length.toLocaleString()),1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!w.visible}]),onClick:e.withModifiers(x=>b.$emit("toggle-layer",w.id,!w.visible),["stop"])},e.toDisplayString(w.visible?"👁":"👁🗨"),11,Wn),e.createElementVNode("button",{class:"geo-del-btn",onClick:e.withModifiers(x=>b.$emit("remove-layer",w.id),["stop"]),title:"删除"},"×",8,jn)]))),128)),l.groups.length===0&&p.value.length===0?(e.openBlock(),e.createElementBlock("div",Xn,"暂无雷达数据")):e.createCommentVNode("",!0)]))}}),Jn=we._export_sfc(Zn,[["__scopeId","data-v-8a9239e4"]]),Kn={class:"geo-dialog-box"},Qn={class:"geo-dialog-header"},eo={key:0,class:"geo-highlight-tag"},to={class:"geo-dialog-body"},no={key:0,class:"geo-no-result"},oo=e.defineComponent({__name:"Geo3dSectionDialog",props:{visible:{type:Boolean},results:{},startPoint:{},endPoint:{}},emits:["close"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(),d=e.ref();let c=1100,p=600;const y=e.ref(!1),E=e.ref(""),C=e.ref({}),g=e.ref(null);function b(m){const S=parseInt(m.slice(1,3),16),v=parseInt(m.slice(3,5),16),D=parseInt(m.slice(5,7),16),F=.7,B=Math.round(S*F),P=Math.round(v*F),Z=Math.round(D*F);return`#${B.toString(16).padStart(2,"0")}${P.toString(16).padStart(2,"0")}${Z.toString(16).padStart(2,"0")}`}const N=["#d32f2f","#1565c0","#2e7d32","#e65100","#6a1b9a","#00838f","#c62828","#283593","#1b5e20","#bf360c"];function w(m,S){const v=parseInt(m.slice(1,3),16),D=parseInt(m.slice(3,5),16),F=parseInt(m.slice(5,7),16);return(v*299+D*587+F*114)/1e3>180?N[S%N.length]:b(m)}e.computed(()=>{const m=new Map;return t.results.forEach((S,v)=>{const D="#"+S.nodeColor.toString(16).padStart(6,"0"),F=w(D,v);m.has(S.nodeName)?m.get(S.nodeName).count+=S.segments.length:m.set(S.nodeName,{color:F,count:S.segments.length})}),Array.from(m.entries()).map(([S,v])=>({name:S,color:v.color,count:v.count}))});function x(){a("close"),g.value=null}function G(){const m=s.value;if(!m)return;const S=m.toDataURL("image/png"),v=document.createElement("a");v.download=`剖面结果_${new Date().toISOString().slice(0,10)}.png`,v.href=S,v.click()}const I=[];e.watch(()=>t.visible,m=>_e(null,null,function*(){m&&(g.value=null,yield e.nextTick(),U())}));function U(){const m=s.value,S=d.value;if(!m||!S)return;const v=m.getContext("2d");if(!v)return;const D=S.clientWidth;c=Math.max(D,600),p=Math.round(c*.5);const F=window.devicePixelRatio||1;if(m.width=c*F,m.height=p*F,m.style.width=c+"px",m.style.height=p+"px",v.scale(F,F),v.clearRect(0,0,c,p),t.results.length===0)return;const B=t.endPoint.x-t.startPoint.x,P=t.endPoint.y-t.startPoint.y,Z=Math.sqrt(B*B+P*P);if(Z<1e-6)return;const Ve=B/Z,ce=P/Z,A=[];let re=1/0,ge=-1/0,Ne=1/0,Me=-1/0;if(t.results.forEach((M,R)=>{const Q="#"+M.nodeColor.toString(16).padStart(6,"0"),ie=w(Q,R);for(const be of M.segments){const Ce=(be.start.x-t.startPoint.x)*Ve+(be.start.y-t.startPoint.y)*ce,L=be.start.z,O=(be.end.x-t.startPoint.x)*Ve+(be.end.y-t.startPoint.y)*ce,ee=be.end.z;A.push({x1:Ce,z1:L,x2:O,z2:ee,color:ie,name:M.nodeName}),re=Math.min(re,Ce,O),ge=Math.max(ge,Ce,O),Ne=Math.min(Ne,L,ee),Me=Math.max(Me,L,ee)}}),A.length===0)return;const Le=ge-re||1,Te=Me-Ne||1,ae=70,se=30,he=30,ye=50,Se=c-ae-se,Be=p-he-ye,$e=Se/Le,He=Be/Te,J=M=>ae+(M-re)*$e,q=M=>p-ye-(M-Ne)*He;v.fillStyle="#fafafa",v.fillRect(0,0,c,p),v.strokeStyle="#bbb",v.lineWidth=1,v.strokeRect(ae,he,Se,Be);const W=fe(Le),le=fe(Te);v.strokeStyle="#e8e8e8",v.lineWidth=.5;for(let M=Math.ceil(re/W)*W;M<=ge;M+=W){const R=J(M);v.beginPath(),v.moveTo(R,he),v.lineTo(R,p-ye),v.stroke()}for(let M=Math.ceil(Ne/le)*le;M<=Me;M+=le){const R=q(M);v.beginPath(),v.moveTo(ae,R),v.lineTo(c-se,R),v.stroke()}v.fillStyle="#444",v.font="11px monospace",v.textAlign="center";for(let M=Math.ceil(re/W)*W;M<=ge;M+=W)v.fillText(M.toFixed(0),J(M),p-ye+16);v.textAlign="right";for(let M=Math.ceil(Ne/le)*le;M<=Me;M+=le)v.fillText(M.toFixed(0),ae-6,q(M)+4);v.fillStyle="#222",v.font="bold 13px sans-serif",v.textAlign="center",v.fillText("水平距离 (m)",ae+Se/2,p-4),v.save(),v.translate(14,he+Be/2),v.rotate(-Math.PI/2),v.fillText("标高 Z (m)",0,0),v.restore(),v.save(),v.beginPath(),v.rect(ae,he,Se,Be),v.clip();const K=g.value;if(K){v.lineWidth=1.5,v.globalAlpha=.2;for(const M of A)M.name!==K&&(v.strokeStyle=M.color,v.beginPath(),v.moveTo(J(M.x1),q(M.z1)),v.lineTo(J(M.x2),q(M.z2)),v.stroke());v.globalAlpha=1}v.lineWidth=K?4:1.5,v.lineCap="round";for(const M of A)K&&M.name!==K||(v.strokeStyle=M.color,v.beginPath(),v.moveTo(J(M.x1),q(M.z1)),v.lineTo(J(M.x2),q(M.z2)),v.stroke());v.restore(),I.length=0;for(const M of A)I.push({sx1:J(M.x1),sy1:q(M.z1),sx2:J(M.x2),sy2:q(M.z2),name:M.name,color:M.color})}function X(m,S,v,D,F,B){const P=F-v,Z=B-D,Ve=P*P+Z*Z;if(Ve<1e-6)return Math.hypot(m-v,S-D);let ce=((m-v)*P+(S-D)*Z)/Ve;return ce=Math.max(0,Math.min(1,ce)),Math.hypot(m-(v+ce*P),S-(D+ce*Z))}function me(m){const v=s.value.getBoundingClientRect();return{mx:(m.clientX-v.left)*(c/v.width),my:(m.clientY-v.top)*(p/v.height),rect:v}}function pe(m,S){let v=1/0,D="",F="";for(const B of I){const P=X(m,S,B.sx1,B.sy1,B.sx2,B.sy2);P<v&&(v=P,D=B.name,F=B.color)}return{bestDist:v,bestName:D,bestColor:F}}function ve(m){if(!s.value||I.length===0)return;const{mx:S,my:v,rect:D}=me(m),{bestDist:F,bestName:B,bestColor:P}=pe(S,v);F<12?(y.value=!0,E.value=B,C.value={left:m.clientX-D.left+14+"px",top:m.clientY-D.top-8+"px",borderLeft:`4px solid ${P}`},s.value.style.cursor="pointer"):(y.value=!1,s.value.style.cursor="default")}function oe(){y.value=!1}function H(m){if(!s.value||I.length===0)return;const{mx:S,my:v}=me(m),{bestDist:D,bestName:F}=pe(S,v);D<12?g.value=g.value===F?null:F:g.value=null,U()}function fe(m){const S=m/8,v=Math.pow(10,Math.floor(Math.log10(S))),D=S/v;return D<1.5?v:D<3.5?2*v:D<7.5?5*v:10*v}return(m,S)=>l.visible?(e.openBlock(),e.createElementBlock("div",{key:0,class:"geo-dialog-overlay",onClick:e.withModifiers(x,["self"])},[e.createElementVNode("div",Kn,[e.createElementVNode("div",Qn,[S[0]||(S[0]=e.createElementVNode("span",{class:"geo-dialog-title"},"剖面结果",-1)),g.value?(e.openBlock(),e.createElementBlock("span",eo,e.toDisplayString(g.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"geo-export-btn",onClick:G,title:"导出图片"},"💾 导出图片"),e.createElementVNode("button",{class:"geo-dialog-close",onClick:x},"×")]),e.createElementVNode("div",to,[e.createElementVNode("div",{class:"geo-canvas-wrap",ref_key:"canvasWrapRef",ref:d},[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:s,onMousemove:ve,onMouseleave:oe,onClick:H},null,544),y.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"geo-canvas-tooltip",style:e.normalizeStyle(C.value)},e.toDisplayString(E.value),5)):e.createCommentVNode("",!0)],512),l.results.length===0?(e.openBlock(),e.createElementBlock("div",no,"该剖切线未与任何模型相交")):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0)}}),ro=we._export_sfc(oo,[["__scopeId","data-v-9d57c901"]]),ao={class:"marker-header"},so={class:"marker-icon"},lo={class:"marker-name"},io={key:0,class:"marker-rows"},co={class:"row-label"},uo={class:"row-value"},mo={class:"row-unit"},_t=e.defineComponent({__name:"Geo3dDeviceMarker",props:{deviceType:{},name:{},icon:{},rows:{},arrowAngle:{}},setup(l){const o=e.ref(!1),t=l,a=e.computed(()=>t.rows.filter(s=>s.label&&s.label.trim()!==""));return(s,d)=>(e.openBlock(),e.createElementBlock("div",{class:"geo3d-device-marker",onClick:d[0]||(d[0]=e.withModifiers(c=>o.value=!o.value,["stop"]))},[e.createElementVNode("div",ao,[e.createElementVNode("span",so,e.toDisplayString(l.icon),1),e.createElementVNode("span",lo,e.toDisplayString(l.name),1)]),o.value&&a.value.length>0?(e.openBlock(),e.createElementBlock("div",io,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(c,p)=>(e.openBlock(),e.createElementBlock("div",{key:p,class:"marker-row"},[e.createElementVNode("span",co,e.toDisplayString(c.label),1),e.createElementVNode("span",uo,e.toDisplayString(c.value),1),e.createElementVNode("span",mo,e.toDisplayString(c.unit),1)]))),128))])):e.createCommentVNode("",!0),o.value&&l.arrowAngle!=null?(e.openBlock(),e.createElementBlock("div",{key:1,class:"marker-arrow",style:e.normalizeStyle({transform:`rotate(${l.arrowAngle}deg)`})},[...d[1]||(d[1]=[e.createElementVNode("svg",{width:"48",height:"12",viewBox:"0 0 48 12",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("line",{x1:"2",y1:"6",x2:"36",y2:"6",stroke:"rgba(51,51,51,0.8)","stroke-width":"2","stroke-linecap":"round"}),e.createElementVNode("polygon",{points:"34,1 48,6 34,11",fill:"rgba(51,51,51,0.8)"})],-1)])],4)):e.createCommentVNode("",!0)]))}}),po={class:"geo-device-tree"},vo=["onClick"],fo={class:"geo-toggle"},go={class:"geo-device-icon"},ho=["title"],yo={class:"geo-count"},bo=["onClick"],ko=["title"],Eo=["onClick"],wo={key:0,class:"geo-device-empty"},Vo=e.defineComponent({__name:"Geo3dDeviceTree",props:{devices:{}},emits:["toggle-device","toggle-group"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(new Set);let d=!1;const c=e.computed(()=>{const g=new Map;for(const b of t.devices){const N=b.deviceType||"未知";g.has(N)||g.set(N,{type:N,icon:b.icon,devices:[]}),g.get(N).devices.push(b)}return Array.from(g.values())});e.watch(c,g=>{!d&&g.length>0&&(s.value=new Set(g.map(b=>b.type)),d=!0)},{immediate:!0});function p(g){return s.value.has(g)}function y(g){const b=new Set(s.value);b.has(g)?b.delete(g):b.add(g),s.value=b}function E(g){return g.devices.length>0&&g.devices.some(b=>b.visible)}function C(g){a("toggle-group",g.type,!E(g))}return(g,b)=>(e.openBlock(),e.createElementBlock("div",po,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,N=>(e.openBlock(),e.createElementBlock("div",{key:N.type,class:"geo-device-group"},[e.createElementVNode("div",{class:"geo-device-item group-item",onClick:w=>y(N.type)},[e.createElementVNode("span",fo,e.toDisplayString(p(N.type)?"▼":"▶"),1),e.createElementVNode("span",go,e.toDisplayString(N.icon),1),e.createElementVNode("span",{class:"geo-label",title:N.type},e.toDisplayString(N.type),9,ho),e.createElementVNode("span",yo,e.toDisplayString(N.devices.length)+"台",1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!E(N)}]),onClick:e.withModifiers(w=>C(N),["stop"])},e.toDisplayString(E(N)?"👁":"👁🗨"),11,bo)],8,vo),p(N.type)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(N.devices,w=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:"geo-device-item device-item"},[b[0]||(b[0]=e.createElementVNode("span",{class:"geo-toggle"}," ",-1)),e.createElementVNode("div",{class:"geo-device-dot",style:e.normalizeStyle({background:w.visible?"#10b981":"#ccc"})},null,4),e.createElementVNode("span",{class:"geo-label",title:w.name},e.toDisplayString(w.name),9,ko),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!w.visible}]),onClick:e.withModifiers(x=>g.$emit("toggle-device",w.id,!w.visible),["stop"])},e.toDisplayString(w.visible?"👁":"👁🗨"),11,Eo)]))),128)):e.createCommentVNode("",!0)]))),128)),c.value.length===0?(e.openBlock(),e.createElementBlock("div",wo,"暂无监测设备")):e.createCommentVNode("",!0)]))}}),No=we._export_sfc(Vo,[["__scopeId","data-v-c4ab4eb8"]]),_o={class:"mix-body"},Mo={key:0,class:"geo-filter-bar"},So={class:"geo-time-btns"},Co=["onClick"],xo={class:"geo-toolbar"},Bo=["disabled"],Ao=["disabled"],Lo={class:"geo-mode-group"},Do=["onClick"],Fo={key:1,class:"geo-pick-badge"},Ro={class:"geo-doc-name"},zo={class:"geo-main"},To={key:0,class:"geo-panel-left"},$o={class:"geo-device-count"},Uo={class:"geo-panel-header geo-radar-header"},Po={class:"geo-radar-count"},Oo={class:"geo-tree-scroll"},Go={key:0,class:"geo-loading"},Io={key:1,class:"geo-drop-hint"},Yo={key:2,class:"geo-model-selector"},Ho={key:0,class:"geo-model-dropdown"},qo=["onClick"],Wo={class:"geo-model-radio"},jo={class:"geo-model-radio"},Xo={key:0,class:"geo-model-option geo-model-sub"},Zo={key:1,class:"geo-panel-right"},Jo={class:"geo-radar-stats"},Ko={class:"geo-stat-row"},Qo={class:"geo-stat-val"},er={class:"geo-stat-row"},tr={class:"geo-stat-alarm"},nr={class:"geo-legend"},or={key:0,class:"geo-point-info"},rr={class:"geo-point-title"},ar={class:"geo-point-grid"},sr={key:1,class:"geo-point-hint"},lr={class:"geo-section-controls"},ir=["disabled"],cr={key:1},dr={class:"geo-pick-hint"},ur={key:2,class:"geo-coord"},mr={key:3,class:"geo-coord"},pr=["disabled"],vr={key:0,class:"geo-section-results"},fr={class:"geo-result-count"},gr={class:"geo-section-stats"},hr={class:"geo-status-bar"},yr={key:0},br={class:"geo-group-picker"},kr={class:"geo-group-body"},Er={class:"geo-group-options"},wr=["value"],Vr={DEFAULT_ICON:kt.DEFAULT_ICON,ACTIVE_ICON:kt.ACTIVE_ICON,NAME_CN:"三维地质模型",NAME_EN:"Geo3D Viewer",ORDER:1,PLATFORM:["pc","screen"]},Nr={bgColor:"#f0f2f5",radiusSize:4,isHideTitle:!1,titleColor:"#333",textColor:"#333",fontSize:{value:12,type:"number",label:"component.geo3d.fontSize",min:10,max:24},g3dFileUrl:{value:"",type:"string",label:"component.geo3d.g3dFileUrl"},geologyModelUrl:{value:"",type:"string",label:"component.geo3d.geologyModelUrl"},dtmModelUrl:{value:"",type:"string",label:"component.geo3d.dtmModelUrl"},uavModelUrl:{value:"",type:"string",label:"component.geo3d.uavModelUrl"},satelliteMapUrl:{value:"",type:"string",label:"component.geo3d.satelliteMapUrl"},mapCenterLon:{value:119.4,type:"number",label:"component.geo3d.mapCenterLon"},mapCenterLat:{value:45.37,type:"number",label:"component.geo3d.mapCenterLat"},mapZoom:{value:13,type:"number",label:"component.geo3d.mapZoom",min:1,max:18},radarFileUrl:{value:"",type:"string",label:"component.geo3d.radarFileUrl"},defaultRadarMode:{value:"rr",type:"select",label:"component.geo3d.defaultRadarMode",options:[{label:"位移",value:"rr"},{label:"速度",value:"av"},{label:"告警",value:"cf"}]},showFilterBar:{value:!0,type:"switch",label:"component.geo3d.showFilterBar"},linkChannel:{value:"geo3d",type:"select",label:"component.linkChannel",options:[{label:"geo3d",value:"geo3d"},{label:"custom",value:"custom"}]},customChannel:{value:"",type:"string",label:"component.customChannel",showWhen:{linkChannel:"custom"}}},_r=[{dataType:"radar",name:"监测点数据",object_id:"",fieldE:"e",fieldN:"n",fieldRL:"rl",fieldRR:"rr",fieldAV:"av",fieldCF:"cf"},{dataType:"device",name:"GNSS001",object_id:"",deviceType:"GNSS",e:0,n:0,rl:0,region:"",lineName:"",row1Label:"",row1FV:"",row1Unit:"",row2Label:"",row2FV:"",row2Unit:"",row3Label:"",row3FV:"",row3Unit:"",row4Label:"",row4FV:"",row4Unit:"",row5Label:"",row5FV:"",row5Unit:"",arrowXFV:"",arrowYFV:""}],Mr=["name","object_id","dataType","fieldE","fieldN","fieldRL","fieldRR","fieldAV","fieldCF","deviceType","e","n","rl","region","lineName","row1Label","row1FV","row1Unit","row2Label","row2FV","row2Unit","row3Label","row3FV","row3Unit","row4Label","row4FV","row4Unit","row5Label","row5FV","row5Unit","arrowXFV","arrowYFV"],Sr=["mosaic"],Cr={useAlias:!0,multiObject:!0,source:"mosaic"},xr={DEFAULT:Vr,OPTIONS:Nr,DATA:_r,PARAMS:Mr,SOURCE:Sr,COMMON:Cr},Br=e.defineComponent(Qe(Ke({},xr),{__name:"geo3dViewer",props:{conf:{type:Object,default:()=>({data:[]})},uid:{type:String,default:""},mode:{type:String,default:"edit"},theme:{type:String,default:"light"}},setup(l){const o=l;class t extends mn.BaseComponent{extractStyles(){return{bgColor:this.getOptionValue("bgColor","#f0f2f5"),radiusSize:this.getOptionValue("radiusSize",4),isHideTitle:this.getOptionValue("isHideTitle",!1),titleColor:this.getOptionValue("titleColor","#333"),fontSize:this.getOptionValue("fontSize",12),g3dFileUrl:this.getOptionValue("g3dFileUrl",""),geologyModelUrl:this.getOptionValue("geologyModelUrl",""),dtmModelUrl:this.getOptionValue("dtmModelUrl",""),uavModelUrl:this.getOptionValue("uavModelUrl",""),satelliteMapUrl:this.getOptionValue("satelliteMapUrl",""),mapCenterLon:this.getOptionValue("mapCenterLon",119.4),mapCenterLat:this.getOptionValue("mapCenterLat",45.37),mapZoom:this.getOptionValue("mapZoom",14),radarFileUrl:this.getOptionValue("radarFileUrl",""),defaultRadarMode:this.getOptionValue("defaultRadarMode","rr"),showFilterBar:this.getOptionValue("showFilterBar",!0),linkChannel:(()=>{const n=this.getOptionValue("linkChannel","geo3d"),i=this.getOptionValue("customChannel","");return n==="custom"&&i?i:n})()}}needsHistoryData(){return!0}parseRecordsToPoints(n,i){var Ee,te;const f=i||((te=(Ee=this.props.conf)==null?void 0:Ee.data)==null?void 0:te[0])||{},V=f.fieldE||"e",u=f.fieldN||"n",h=f.fieldRL||"rl",_=f.fieldRR||"rr",T=f.fieldAV||"av",Y=f.fieldCF||"cf",de=[];for(let z=0;z<n.length;z++){const j=n[z];if(!j)continue;const ne=Number(j[V]),ue=Number(j[u]),ze=Number(j[h]);!Number.isFinite(ne)||!Number.isFinite(ue)||!Number.isFinite(ze)||de.push({id:j.object_id||j.id||`pt_${z}`,e:ne,n:ue,rl:ze,rr:Number(j[_])||0,av:Number(j[T])||0,vd:Number(j.vd)||0,cf:Number(j[Y])||0})}return de}setHistoryData(n){var V;if(!n)return;const i=(V=this.props.conf)==null?void 0:V.data;if(!Array.isArray(i))return;const f=n.history;Array.isArray(f)&&i.forEach((u,h)=>{if(!u||y(u)!=="radar")return;const T=Array.isArray(f[h])?f[h]:[];if(T.length===0)return;const Y=this.parseRecordsToPoints(T,u);if(Y.length>0){const de=u.object_id||`__platform_radar_${h}__`;zt(Y,u.name||"平台数据",de)}})}onPreview(){var f;const n=(f=this.props.conf)==null?void 0:f.data;if(!Array.isArray(n))return;Rt();const i=new Set;n.forEach((V,u)=>{const h=y(V),_=this.resolveObjectId(V);if(h==="device"){it(V,_||V.name||`device_${u}`),_&&!i.has(_)&&(i.add(_),this.subscribeFv(_));return}!_||i.has(_)||(i.add(_),this.subscribeFv(_))}),console.log(`[geo3dViewer] onPreview: 已订阅 ${i.size} 个对象`)}setSocketData(n){var V,u;if(!n)return;const i=n.object_id||"";if(!i)return;const f=qe.get(i);if(f)if(f.type==="radar"){const h=n.data;if(!h)return;let _=[];if(Array.isArray(h)?_=h:typeof h=="object"&&(_=[h]),_.length===0)return;const T=(u=(V=this.props.conf)==null?void 0:V.data)==null?void 0:u[f.index],Y=this.parseRecordsToPoints(_,T);Y.length>0&&Tt(Y,i)}else f.type==="device"&&$t(i,n.data)}}const a=new t(o,"geo3dViewer");a.setupLifecycle();const s=a.getStyle(),d=o.conf,c=e.computed(()=>pn.generateTitleStyle(o.conf.options)),p={GNSS:"📍",DEEP:"⚓",RADAR:"📡",SURFACE:"📐",CRACK:"🧱",FIRE:"🔥",WATER:"💧",GROUND:"🌍",STRESS:"📊",VIB:"💥",SAT:"🛸"};function y(r){return(r==null?void 0:r.dataType)==="device"?"device":"radar"}function E(r){const n=[];for(let i=1;i<=5;i++){const f=r[`row${i}Label`]||"",V=r[`row${i}FV`]||"",u=r[`row${i}Unit`]||"";f&&n.push({label:f,fv:V,unit:u})}return n}function C(r){if(r==null)return"--";const n=Number(r);return!isNaN(n)&&typeof r!="boolean"?n.toFixed(2):String(r)}function g(r,n){return r===0&&n===0?null:Math.round(Math.atan2(n,r)*180/Math.PI*10)/10}const b=e.ref(""),N=e.ref(""),w=e.ref([]),x=e.ref(1),G=e.ref(we.dayjs().subtract(1,"day").format("YYYY-MM-DD HH:mm:ss")),I=e.ref(we.dayjs().format("YYYY-MM-DD HH:mm:ss")),U=[{days:1,label:"一天内"},{days:7,label:"一周内"},{days:30,label:"一个月内"}],X=e.computed(()=>{var i;const r=(i=o.conf)==null?void 0:i.data;if(!Array.isArray(r))return[];const n=new Set;return r.forEach(f=>{f.dataType==="device"&&f.region&&n.add(f.region)}),Array.from(n)}),me=e.computed(()=>{var i;const r=(i=o.conf)==null?void 0:i.data;if(!Array.isArray(r))return[];const n=new Set;return r.forEach(f=>{f.dataType==="device"&&f.lineName&&n.add(f.lineName)}),Array.from(n)}),pe=e.computed(()=>{var n;const r=(n=o.conf)==null?void 0:n.data;return Array.isArray(r)?r.filter(i=>i.dataType==="device"&&i.name).map(i=>i.name):[]});function ve(r){x.value=r,I.value=we.dayjs().format("YYYY-MM-DD HH:mm:ss"),G.value=we.dayjs().subtract(r,"day").format("YYYY-MM-DD HH:mm:ss"),H()}function oe(){x.value=0,H()}function H(){a.publish({type:"filter",region:b.value||null,line:N.value||null,points:w.value.length>0?w.value:null,timeRange:{start:G.value,end:I.value},days:x.value})}const fe=e.ref(),m=e.ref(null),S=e.ref(!1),v=e.ref(""),D=e.ref(!1),F=e.ref(""),B=e.ref("就绪"),P=e.ref(null),Z=e.ref(0),Ve=e.ref(0),ce=e.ref();let A=null,re=[];const ge=new Map;function Ne(){A||!ce.value||(A=xe.L.map(ce.value,{zoomControl:!0,attributionControl:!1,maxZoom:17}),A.setView([s.value.mapCenterLat||45.37,s.value.mapCenterLon||119.4],s.value.mapZoom||14),xe.L.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",{maxZoom:19}).addTo(A),setTimeout(()=>{A==null||A.invalidateSize(),Le()},200))}function Me(r,n,i,f){const u=.003352810681182319,h=2*u-u*u,_=(1-Math.sqrt(1-h))/(1+Math.sqrt(1-h)),T=1,Y=r-5e5,te=n/T/(6378137*(1-h/4-3*h*h/64-5*h*h*h/256)),z=te+(3*_/2-27*_*_*_/32)*Math.sin(2*te)+(21*_*_/16-55*_*_*_*_/32)*Math.sin(4*te)+151*_*_*_/96*Math.sin(6*te),j=h/(1-h),ne=j*Math.cos(z)*Math.cos(z),ue=Math.tan(z)*Math.tan(z),ze=6378137/Math.sqrt(1-h*Math.sin(z)*Math.sin(z)),tn=6378137*(1-h)/Math.pow(1-h*Math.sin(z)*Math.sin(z),1.5),$=Y/(ze*T),nn=z-ze*Math.tan(z)/tn*($*$/2-(5+3*ue+10*ne-4*ne*ne-9*j)*$*$*$*$/24+(61+90*ue+298*ne+45*ue*ue-252*j-3*ne*ne)*$*$*$*$*$*$/720),on=120*Math.PI/180,rn=($-(1+2*ue+ne)*$*$*$/6+(5-2*ne+28*ue-3*ne*ne+8*j+24*ue*ue)*$*$*$*$*$/120)/Math.cos(z);return{lat:nn*180/Math.PI,lon:(rn+on)*180/Math.PI}}function Le(){var i;if(!A)return;re.forEach(f=>A.removeLayer(f)),re=[],ge.clear();const r=(i=o.conf)==null?void 0:i.data;if(!Array.isArray(r))return;const n=[];r.forEach(f=>{if(y(f)!=="device")return;const V=Number(f.e),u=Number(f.n);if(!Number.isFinite(V)||!Number.isFinite(u))return;let h,_;if(V>180||u>90){const te=Me(V,u);h=te.lat,_=te.lon}else h=u,_=V;const T=xe.L.divIcon({className:"geo-leaflet-marker",html:`<div class="geo-lm-pin">${p[f.deviceType]||"📍"}</div><div class="geo-lm-name">${f.name||""}</div>`,iconSize:[60,40],iconAnchor:[30,40]}),Y=f.object_id||f.name||"",de=Ae.get(Y)!==!1,Ee=xe.L.marker([h,_],{icon:T});de&&Ee.addTo(A),re.push(Ee),Y&&ge.set(Y,Ee),de&&n.push(xe.L.latLng(h,_))}),n.length>0&&A.fitBounds(xe.L.latLngBounds(n).pad(.2))}function Te(r,n){const i=ge.get(r);!i||!A||(n?i.addTo(A):A.removeLayer(i))}const ae=e.ref(!1),se=e.ref("geology"),he=e.ref(!1);let ye=null;const Se=[{value:"geology",label:"地质模型"},{value:"dtm",label:"DTM面"}],Be=e.computed(()=>{var r;return se.value==="map2d"?he.value?"卫星+无人机":"卫星地图":((r=Se.find(n=>n.value===se.value))==null?void 0:r.label)||"请选择模型"});function $e(r){se.value=r,ae.value=!1;const n=r==="map2d";m.value&&(m.value.renderer.domElement.style.display=n?"none":"",m.value.labelRenderer.domElement.style.display=n?"none":""),n&&!A&&e.nextTick(()=>Ne()),n&&A&&setTimeout(()=>{A==null||A.invalidateSize(),Le()},100),a.publish({type:"modelChange",model:r})}function He(){if(A)if(he.value){const r=s.value.uavModelUrl;r&&(ye=xe.L.tileLayer(r,{maxZoom:19,opacity:.7}).addTo(A))}else ye&&(A.removeLayer(ye),ye=null)}const J=e.ref(!1),q=e.ref(!1),W=e.reactive({x:0,y:0,z:0}),le=e.reactive({x:0,y:0,z:0}),K=e.ref([]),M=e.ref(!1),R=e.ref("none"),Q=e.ref(null),ie=e.ref(null),be=e.computed(()=>R.value==="start"?"点击选取起点":R.value==="end"?"点击选取终点":""),Ce=e.computed(()=>K.value.reduce((r,n)=>r+n.segments.length,0)),L=e.ref([]),O=e.ref("rr"),ee=e.ref(null),St=e.ref("");let Ct=0;const ot=[{id:"east",name:"东帮"},{id:"south",name:"南帮"},{id:"west",name:"西帮"},{id:"north",name:"北帮"}],De=e.ref(!1),Fe=e.ref([]),ke=e.ref(""),rt=e.ref("");let xt=0;const at=e.ref([]),Bt=e.computed(()=>[...ot,...at.value].map(n=>({id:n.id,name:n.name,layers:L.value.filter(i=>i.groupId===n.id)})).filter(n=>n.layers.length>0)),st=[{value:"rr",label:"位移"},{value:"av",label:"速度"},{value:"cf",label:"告警"}];e.computed(()=>L.value.reduce((r,n)=>r+n.points.length,0));const At=e.computed(()=>L.value.filter(r=>r.visible).reduce((r,n)=>r+n.points.length,0)),Lt=e.computed(()=>L.value.filter(r=>r.visible).reduce((r,n)=>r+n.points.filter(i=>i.cf>=300||Math.abs(i.rr)>=50||Math.abs(i.av)>=.5).length,0)),Dt=e.computed(()=>O.value==="rr"?"linear-gradient(90deg,rgb(20,35,150),rgb(0,180,255),rgb(255,230,0),rgb(180,0,0))":O.value==="av"?"linear-gradient(90deg,rgb(0,80,220),rgb(0,220,120),rgb(220,30,30))":"linear-gradient(90deg,rgb(0,170,255),rgb(255,145,0),rgb(180,0,0))"),Ue=e.reactive(new Map),Re=new Map,qe=new Map,Ae=e.reactive(new Map),Pe=e.ref(!0),We=e.computed(()=>{const r=[];return Ue.forEach((n,i)=>{r.push({id:i,name:n.name||i,deviceType:n.deviceType||"未知",icon:n.icon||"📍",visible:Ae.get(i)!==!1})}),r}),Oe=e.computed(()=>We.value.length);function lt(r,n){var i;Ae.set(r,n),(i=m.value)==null||i.setDeviceMarkerVisible(r,n),Te(r,n)}function Ft(r,n){We.value.filter(i=>i.deviceType===r).forEach(i=>lt(i.id,n))}function Rt(){var n;qe.clear();const r=(n=o.conf)==null?void 0:n.data;Array.isArray(r)&&r.forEach((i,f)=>{const V=i==null?void 0:i.object_id;V&&qe.set(V,{type:y(i),index:f})})}const Ge="__platform_radar__";function zt(r,n,i){if(!m.value||r.length===0)return;const f=i||Ge;m.value.removeRadarLayer(f),L.value=L.value.filter(V=>V.id!==f),L.value.push({id:f,name:n,points:r,visible:!0,groupId:void 0}),m.value.addRadarLayer(f,r,O.value),B.value=`平台数据: ${r.length.toLocaleString()} 个监测点已加载`}function Tt(r,n){const i=n||Ge,f=L.value.find(h=>h.id===i)||L.value.find(h=>h.id===Ge);if(!f||!m.value)return;const V=new Map;f.points.forEach((h,_)=>V.set(h.id,_));let u=0;for(const h of r){const _=V.get(h.id);_!==void 0&&(f.points[_].rr=h.rr,f.points[_].av=h.av,f.points[_].cf=h.cf,f.points[_].e=h.e,f.points[_].n=h.n,f.points[_].rl=h.rl,u++)}u>0&&(m.value.updateRadarLayerColors(Ge,f.points,O.value),B.value=`实时更新: ${u} 个点`)}function it(r,n){var te;if(!m.value)return;const i=Number(r.e),f=Number(r.n),V=Number(r.rl);if(!Number.isFinite(i)||!Number.isFinite(f)||!Number.isFinite(V)){console.warn(`[geo3dViewer] 设备 ${r.name} 坐标无效,跳过标注创建`);return}const u=E(r),h=r.deviceType||"",_=p[h]||p[(te=h.toUpperCase)==null?void 0:te.call(h)]||"📍",T={id:n,name:r.name||"",deviceType:h,icon:_,position:{e:i,n:f,rl:V},rows:u.map(z=>Qe(Ke({},z),{value:"--"})),arrowXFV:r.arrowXFV||"",arrowYFV:r.arrowYFV||"",arrowAngle:null,css2dObject:null};Ue.set(n,T);const Y=document.createElement("div"),de=e.createApp(_t,{deviceType:T.deviceType,name:T.name,icon:T.icon,rows:T.rows.map(z=>({label:z.label,value:z.value,unit:z.unit})),arrowAngle:T.arrowAngle});de.mount(Y),Re.set(n,de);const Ee=m.value.addDeviceMarker(n,{e:i,n:f,rl:V},Y);T.css2dObject=Ee,Ae.has(n)||Ae.set(n,!0)}function $t(r,n){var V;const i=Ue.get(r);if(!i||!n)return;if(i.rows.forEach(u=>{u.fv&&(u.value=C(n[u.fv]))}),i.arrowXFV||i.arrowYFV){const u=i.arrowXFV?n[i.arrowXFV]:0,h=i.arrowYFV?n[i.arrowYFV]:0,_=parseFloat(u)||0,T=parseFloat(h)||0;i.arrowAngle=g(_,T)}const f=Re.get(r);if(f&&i.css2dObject){const u=i.css2dObject.element;f.unmount();const h=e.createApp(_t,{deviceType:i.deviceType,name:i.name,icon:i.icon,rows:i.rows.map(_=>({label:_.label,value:_.value,unit:_.unit})),arrowAngle:i.arrowAngle});h.mount(u),Re.set(r,h)}(V=m.value)==null||V.requestUpdate()}function Ut(){var r;for(const[,n]of Re)n.unmount();Re.clear(),Ue.clear(),Ae.clear(),ge.clear(),(r=m.value)==null||r.removeAllDeviceMarkers()}e.onMounted(()=>{var n;if(fe.value){m.value=new Vn(fe.value);const i=m.value.renderer.domElement;i.addEventListener("mousedown",ft),i.addEventListener("mouseup",gt)}O.value=s.value.defaultRadarMode||"rr";const r=s.value.g3dFileUrl;if(r&&typeof r=="string"&&r.trim()&&ct(r.trim()),o.mode==="edit"){const i=(n=o.conf)==null?void 0:n.data;Array.isArray(i)&&i.forEach((f,V)=>{y(f)==="device"&&it(f,f.object_id||f.name||`device_${V}`)})}}),e.onBeforeUnmount(()=>{var r;if(m.value){const n=m.value.renderer.domElement;n.removeEventListener("mousedown",ft),n.removeEventListener("mouseup",gt)}Ut(),re.forEach(n=>A==null?void 0:A.removeLayer(n)),re=[],A==null||A.remove(),A=null,(r=m.value)==null||r.dispose()}),e.watch(()=>s.value.g3dFileUrl,r=>{r&&!S.value&&ct(String(r).trim())});function Pt(){const r=document.createElement("input");r.type="file",r.accept=".g3d",r.onchange=()=>{var n;(n=r.files)!=null&&n[0]&&dt(r.files[0])},r.click()}function Ot(r){var i;const n=(i=r.dataTransfer)==null?void 0:i.files[0];n!=null&&n.name.endsWith(".g3d")?dt(n):n!=null&&n.name.endsWith(".json")&&S.value&&(Fe.value=[n],ke.value="",De.value=!0)}function ct(r){return _e(this,null,function*(){if(m.value){D.value=!0,F.value="从URL加载...";try{const i=yield(yield fetch(r)).text();yield ut(Et(i))}catch(n){B.value=`加载失败: ${n.message}`}finally{D.value=!1}}})}function dt(r){return _e(this,null,function*(){if(m.value){D.value=!0,F.value=`读取 ${r.name}...`;try{const n=yield r.text();yield ut(Et(n))}catch(n){B.value=`加载失败: ${n.message}`}finally{D.value=!1}}})}function ut(r){return _e(this,null,function*(){yield m.value.loadDocument(r,V=>{F.value=V}),P.value=r.rootNode,v.value=r.name,S.value=!0;let n=0,i=0;const f=V=>{n++,V.mesh&&V.mesh.positions.length>0&&i++,V.children.forEach(f)};f(r.rootNode),Z.value=n,Ve.value=i,B.value=`已加载: ${r.name} (${i}个网格)`,a.publish({type:"modelLoaded",modelName:r.name,nodeCount:n,meshNodeCount:i})})}function Gt(r,n){var i;(i=m.value)==null||i.setNodeVisible(r,n)}function It(){J.value=!J.value}let je={x:0,y:0};function Yt(){if(!m.value)return;vt(),R.value="start",B.value="点击模型选取起点";const r=m.value.renderer.domElement;r.addEventListener("mousedown",mt),r.addEventListener("mouseup",pt)}function Ht(){var r;R.value="none",Q.value=null,ie.value=null,(r=m.value)==null||r.clearPickMarkers(),Xe(),B.value="已取消"}function Xe(){var n;const r=(n=m.value)==null?void 0:n.renderer.domElement;r&&(r.removeEventListener("mousedown",mt),r.removeEventListener("mouseup",pt))}function mt(r){je={x:r.clientX,y:r.clientY}}function pt(r){if(!m.value||R.value==="none"||Math.hypot(r.clientX-je.x,r.clientY-je.y)>5)return;const n=m.value.pickPoint(r);if(!n){B.value="未选中模型,请重试";return}R.value==="start"?(Q.value={x:n.x,y:n.y,z:n.z},Object.assign(W,{x:n.x,y:n.y,z:n.z}),m.value.addPickMarker(n,65280),R.value="end",B.value="请选取终点"):(ie.value={x:n.x,y:n.y,z:n.z},Object.assign(le,{x:n.x,y:n.y,z:n.z}),m.value.addPickMarker(n,16729156),m.value.addPickLine(new k.Vector3(W.x,W.y,W.z),n),R.value="none",Xe(),B.value="两点已选,点击计算剖面")}function qt(){return _e(this,null,function*(){if(!(!m.value||q.value||!Q.value||!ie.value)){q.value=!0,B.value="计算剖面...",yield e.nextTick();try{const r=m.value.getVisibleMeshEntries(),n=[new k.Vector3(W.x,W.y,W.z),new k.Vector3(le.x,le.y,le.z)],{results:i,allPositions:f}=yield new Promise(V=>setTimeout(()=>V(xn(r,n)),50));if(K.value=i,m.value.clearSectionResults(),m.value.setTransparency(!0),f.length>0){for(const V of i){const u=[];for(const h of V.segments)u.push(h.start.x,h.start.y,h.start.z,h.end.x,h.end.y,h.end.z);m.value.addSectionLines(new Float32Array(u),V.nodeColor)}m.value.addSectionPath(n)}B.value=`剖面完成: ${Ce.value}条线段`,M.value=!0,a.publish({type:"sectionComputed",count:Ce.value})}catch(r){B.value=`失败: ${r.message}`}finally{q.value=!1}}})}function vt(){var r,n,i;K.value=[],Q.value=null,ie.value=null,R.value="none",M.value=!1,(r=m.value)==null||r.clearSectionResults(),(n=m.value)==null||n.clearPickMarkers(),(i=m.value)==null||i.setTransparency(!1),Xe(),B.value="剖面已清除"}function Wt(){const r=document.createElement("input");r.type="file",r.accept=".json",r.multiple=!0,r.onchange=()=>{var n;(n=r.files)!=null&&n.length&&(Fe.value=Array.from(r.files),ke.value="",De.value=!0)},r.click()}function jt(){let r=ke.value;if(r==="__custom__"){const n=rt.value.trim();if(!n)return;const i=`c_${++xt}`;at.value.push({id:i,name:n}),r=i}De.value=!1,Xt(Fe.value,r),Fe.value=[],rt.value=""}function Ze(){De.value=!1,Fe.value=[]}function Xt(r,n){return _e(this,null,function*(){var i;for(const f of r)try{const V=wn(JSON.parse(yield f.text()));if(!V.points.length){B.value=`${f.name}: 空数据`;continue}const u=`r_${++Ct}`,h=f.name.replace(/\.json$/i,"");L.value.push({id:u,name:h,points:V.points,visible:!0,groupId:n||void 0}),(i=m.value)==null||i.addRadarLayer(u,V.points,O.value),B.value=`已加载「${h}」(${V.points.length.toLocaleString()}点)`}catch(V){B.value=`${f.name}失败: ${V.message}`}})}function Zt(r,n){var f;const i=L.value.find(V=>V.id===r);i&&(i.visible=n,(f=m.value)==null||f.setRadarLayerVisible(r,n))}function Jt(r,n){L.value.filter(i=>i.groupId===r).forEach(i=>{var f;i.visible=n,(f=m.value)==null||f.setRadarLayerVisible(i.id,n)})}function Kt(r){var n;(n=m.value)==null||n.removeRadarLayer(r),L.value=L.value.filter(i=>i.id!==r),L.value.length||(ee.value=null)}function Qt(r){O.value=r,L.value.forEach(n=>{var i;return(i=m.value)==null?void 0:i.updateRadarLayerColors(n.id,n.points,r)})}function en(){var r;(r=m.value)==null||r.clearAllRadarLayers(),L.value=[],ee.value=null,B.value="雷达已清除"}let Je={x:0,y:0};function ft(r){Je={x:r.clientX,y:r.clientY}}function gt(r){var i;if(!m.value||!L.value.length||R.value!=="none"||Math.hypot(r.clientX-Je.x,r.clientY-Je.y)>5)return;const n=m.value.pickRadarPoint(r);n&&(ee.value=n.point,St.value=((i=L.value.find(f=>f.id===n.layerId))==null?void 0:i.name)||"",B.value=`选中 ${n.point.id} 位移:${n.point.rr.toFixed(2)}mm`,a.publish({type:"radarPointSelected",point:n.point}))}return e.computed(()=>{var r;return((r=st.find(n=>n.value===O.value))==null?void 0:r.label)||""}),e.computed(()=>O.value==="cf"?"0":O.value==="av"?"-2.0":"-200"),e.computed(()=>O.value==="cf"?"737":O.value==="av"?"2.0":"200"),(r,n)=>{const i=et.ElOption,f=et.ElSelect,V=et.ElDatePicker;return e.openBlock(),e.createElementBlock("div",{class:"mix-component geo3d-viewer",style:e.normalizeStyle({background:e.unref(s).bgColor,borderRadius:e.unref(s).radiusSize+"px",fontSize:e.unref(s).fontSize+"px"})},[e.unref(s).isHideTitle?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:"mix-title",style:e.normalizeStyle(c.value)},e.toDisplayString(e.unref(d).caption||e.unref(d).name||"三维地质模型"),5)),e.createElementVNode("div",_o,[e.unref(s).showFilterBar?(e.openBlock(),e.createElementBlock("div",Mo,[e.createVNode(f,{modelValue:b.value,"onUpdate:modelValue":n[0]||(n[0]=u=>b.value=u),class:"geo-filter-select",size:"small",placeholder:"全部区域",onChange:H},{default:e.withCtx(()=>[e.createVNode(i,{label:"全部区域",value:""}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(X.value,u=>(e.openBlock(),e.createBlock(i,{key:u,label:u,value:u},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e.createVNode(f,{modelValue:N.value,"onUpdate:modelValue":n[1]||(n[1]=u=>N.value=u),class:"geo-filter-select",size:"small",placeholder:"全部监测线",onChange:H},{default:e.withCtx(()=>[e.createVNode(i,{label:"全部监测线",value:""}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(me.value,u=>(e.openBlock(),e.createBlock(i,{key:u,label:u,value:u},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e.createVNode(f,{modelValue:w.value,"onUpdate:modelValue":n[2]||(n[2]=u=>w.value=u),class:"geo-filter-select geo-filter-wide",size:"small",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"全部监测点",onChange:H},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(pe.value,u=>(e.openBlock(),e.createBlock(i,{key:u,label:u,value:u},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e.createElementVNode("div",So,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(U,u=>e.createElementVNode("button",{key:u.days,class:e.normalizeClass(["geo-time-btn",{active:x.value===u.days}]),onClick:h=>ve(u.days)},e.toDisplayString(u.label),11,Co)),64))]),e.createVNode(V,{modelValue:G.value,"onUpdate:modelValue":n[3]||(n[3]=u=>G.value=u),type:"datetime",size:"small",placeholder:"开始时间",format:"YYYY/MM/DD HH:mm","value-format":"YYYY-MM-DD HH:mm:ss",class:"geo-date-picker",onChange:oe},null,8,["modelValue"]),n[13]||(n[13]=e.createElementVNode("span",{class:"geo-date-sep"},"至",-1)),e.createVNode(V,{modelValue:I.value,"onUpdate:modelValue":n[4]||(n[4]=u=>I.value=u),type:"datetime",size:"small",placeholder:"结束时间",format:"YYYY/MM/DD HH:mm","value-format":"YYYY-MM-DD HH:mm:ss",class:"geo-date-picker",onChange:oe},null,8,["modelValue"])])):e.createCommentVNode("",!0),e.createElementVNode("div",xo,[e.createElementVNode("button",{class:"geo-btn",onClick:Pt},"📂 打开"),e.createElementVNode("button",{class:"geo-btn",onClick:Wt,disabled:!S.value},"📡 雷达",8,Bo),e.createElementVNode("button",{class:"geo-btn",onClick:It,disabled:!S.value},"✂️ 剖面",8,Ao),L.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Lo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(st,u=>e.createElementVNode("button",{key:u.value,class:e.normalizeClass(["geo-btn geo-btn-sm",{"geo-btn-primary":O.value===u.value}]),onClick:h=>Qt(u.value)},e.toDisplayString(u.label),11,Do)),64))]),e.createElementVNode("button",{class:"geo-btn geo-btn-sm geo-btn-danger",onClick:en},"清除雷达")],64)):e.createCommentVNode("",!0),n[14]||(n[14]=e.createElementVNode("span",{style:{flex:"1"}},null,-1)),R.value!=="none"?(e.openBlock(),e.createElementBlock("span",Fo,e.toDisplayString(be.value),1)):e.createCommentVNode("",!0),e.createElementVNode("span",Ro,e.toDisplayString(v.value),1)]),e.createElementVNode("div",zo,[S.value?(e.openBlock(),e.createElementBlock("div",To,[n[16]||(n[16]=e.createElementVNode("div",{class:"geo-panel-header"},"模型节点树",-1)),e.createElementVNode("div",{class:"geo-tree-scroll",style:e.normalizeStyle({maxHeight:Oe.value>0||L.value.length>0?Oe.value>0&&L.value.length>0?"34%":"50%":"100%"})},[e.createVNode(Fn,{node:P.value,scene:m.value,onToggleVisible:Gt},null,8,["node","scene"])],4),Oe.value>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",{class:"geo-panel-header geo-device-header",onClick:n[5]||(n[5]=u=>Pe.value=!Pe.value),style:{cursor:"pointer"}},[e.createElementVNode("span",null,e.toDisplayString(Pe.value?"▼":"▶")+" 📍 监测设备",1),e.createElementVNode("span",$o,e.toDisplayString(Oe.value)+"台",1)]),Pe.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"geo-tree-scroll",style:e.normalizeStyle({maxHeight:L.value.length>0?"33%":"50%"})},[e.createVNode(No,{devices:We.value,onToggleDevice:lt,onToggleGroup:Ft},null,8,["devices"])],4)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),L.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Uo,[n[15]||(n[15]=e.createTextVNode("📡 雷达 ",-1)),e.createElementVNode("span",Po,e.toDisplayString(L.value.length)+"层",1)]),e.createElementVNode("div",Oo,[e.createVNode(Jn,{layers:L.value,groups:Bt.value,onToggleLayer:Zt,onToggleGroup:Jt,onRemoveLayer:Kt},null,8,["layers","groups"])])],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"geo-viewport",ref_key:"viewportRef",ref:fe,onDragover:n[9]||(n[9]=e.withModifiers(()=>{},["prevent"])),onDrop:e.withModifiers(Ot,["prevent"])},[D.value?(e.openBlock(),e.createElementBlock("div",Go,[n[17]||(n[17]=e.createElementVNode("div",{class:"geo-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(F.value),1)])):e.createCommentVNode("",!0),!S.value&&!D.value?(e.openBlock(),e.createElementBlock("div",Io,[...n[18]||(n[18]=[e.createElementVNode("div",{style:{"font-size":"36px",opacity:"0.3"}},"📦",-1),e.createElementVNode("p",null,"拖拽 .g3d 到此处或点击打开",-1)])])):e.createCommentVNode("",!0),S.value?(e.openBlock(),e.createElementBlock("div",Yo,[e.createElementVNode("button",{class:"geo-model-btn",onClick:n[6]||(n[6]=u=>ae.value=!ae.value)},e.toDisplayString(Be.value)+" ▼",1),ae.value?(e.openBlock(),e.createElementBlock("div",Ho,[n[21]||(n[21]=e.createElementVNode("div",{class:"geo-model-group-title"},"三维模型",-1)),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(Se,u=>e.createElementVNode("label",{key:u.value,class:e.normalizeClass(["geo-model-option",{active:se.value===u.value}]),onClick:h=>$e(u.value)},[e.createElementVNode("span",Wo,e.toDisplayString(se.value===u.value?"●":"○"),1),e.createElementVNode("span",null,e.toDisplayString(u.label),1)],10,qo)),64)),n[22]||(n[22]=e.createElementVNode("div",{class:"geo-model-divider"},null,-1)),n[23]||(n[23]=e.createElementVNode("div",{class:"geo-model-group-title"},"二维地图",-1)),e.createElementVNode("label",{class:e.normalizeClass(["geo-model-option",{active:se.value==="map2d"}]),onClick:n[7]||(n[7]=u=>$e("map2d"))},[e.createElementVNode("span",jo,e.toDisplayString(se.value==="map2d"?"●":"○"),1),n[19]||(n[19]=e.createElementVNode("span",null,"卫星地图",-1))],2),se.value==="map2d"?(e.openBlock(),e.createElementBlock("label",Xo,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[8]||(n[8]=u=>he.value=u),onChange:He},null,544),[[e.vModelCheckbox,he.value]]),n[20]||(n[20]=e.createElementVNode("span",null,"叠加无人机地图",-1))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("div",{class:"geo-leaflet-map",ref_key:"leafletRef",ref:ce},null,512),[[e.vShow,se.value==="map2d"]])],544),L.value.length>0||J.value?(e.openBlock(),e.createElementBlock("div",Zo,[L.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[26]||(n[26]=e.createElementVNode("div",{class:"geo-panel-header"},"📡 雷达统计",-1)),e.createElementVNode("div",Jo,[e.createElementVNode("div",Ko,[n[24]||(n[24]=e.createElementVNode("span",null,"可见点",-1)),e.createElementVNode("span",Qo,e.toDisplayString(At.value.toLocaleString()),1)]),e.createElementVNode("div",er,[n[25]||(n[25]=e.createElementVNode("span",null,"高风险",-1)),e.createElementVNode("span",tr,e.toDisplayString(Lt.value.toLocaleString()),1)]),e.createElementVNode("div",nr,[e.createElementVNode("div",{class:"geo-legend-bar",style:e.normalizeStyle({background:Dt.value})},null,4)]),ee.value?(e.openBlock(),e.createElementBlock("div",or,[e.createElementVNode("div",rr,e.toDisplayString(ee.value.id),1),e.createElementVNode("div",ar,[e.createElementVNode("span",null,"位移:"+e.toDisplayString(ee.value.rr.toFixed(2))+"mm",1),e.createElementVNode("span",null,"速度:"+e.toDisplayString(ee.value.av.toFixed(3))+"mm/h",1),e.createElementVNode("span",null,"高程:"+e.toDisplayString(ee.value.rl.toFixed(2))+"m",1),e.createElementVNode("span",null,"告警:"+e.toDisplayString(ee.value.cf),1)])])):(e.openBlock(),e.createElementBlock("div",sr,"点击雷达点查看详情"))])],64)):e.createCommentVNode("",!0),J.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[n[27]||(n[27]=e.createElementVNode("div",{class:"geo-panel-header"},"✂️ 剖面工具",-1)),e.createElementVNode("div",lr,[R.value==="none"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"geo-btn geo-btn-primary",style:{width:"100%"},onClick:Yt,disabled:q.value},"选取两点",8,ir)):e.createCommentVNode("",!0),R.value!=="none"?(e.openBlock(),e.createElementBlock("div",cr,[e.createElementVNode("div",dr,e.toDisplayString(be.value),1),e.createElementVNode("button",{class:"geo-btn geo-btn-danger geo-btn-sm",onClick:Ht},"取消")])):e.createCommentVNode("",!0),Q.value?(e.openBlock(),e.createElementBlock("div",ur,"起:("+e.toDisplayString(Q.value.x.toFixed(1))+","+e.toDisplayString(Q.value.y.toFixed(1))+","+e.toDisplayString(Q.value.z.toFixed(1))+")",1)):e.createCommentVNode("",!0),ie.value?(e.openBlock(),e.createElementBlock("div",mr,"终:("+e.toDisplayString(ie.value.x.toFixed(1))+","+e.toDisplayString(ie.value.y.toFixed(1))+","+e.toDisplayString(ie.value.z.toFixed(1))+")",1)):e.createCommentVNode("",!0),Q.value&&ie.value&&R.value==="none"?(e.openBlock(),e.createElementBlock("button",{key:4,class:"geo-btn geo-btn-primary",style:{width:"100%"},onClick:qt,disabled:q.value||!Q.value||!ie.value},e.toDisplayString(q.value?"计算中...":"计算剖面"),9,pr)):e.createCommentVNode("",!0),Q.value||K.value.length>0?(e.openBlock(),e.createElementBlock("button",{key:5,class:"geo-btn geo-btn-danger geo-btn-sm",onClick:vt},"清除")):e.createCommentVNode("",!0)]),K.value.length>0?(e.openBlock(),e.createElementBlock("div",vr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(K.value,u=>(e.openBlock(),e.createElementBlock("div",{key:u.nodeName,class:"geo-result-item"},[e.createElementVNode("div",{class:"geo-color-dot",style:e.normalizeStyle({background:"#"+u.nodeColor.toString(16).padStart(6,"0")})},null,4),e.createElementVNode("span",null,e.toDisplayString(u.nodeName),1),e.createElementVNode("span",fr,e.toDisplayString(u.segments.length)+"段",1)]))),128)),e.createElementVNode("div",gr,"共"+e.toDisplayString(Ce.value)+"条线段",1)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",hr,[e.createElementVNode("span",null,e.toDisplayString(B.value),1),S.value?(e.openBlock(),e.createElementBlock("span",yr,"节点:"+e.toDisplayString(Z.value)+" 网格:"+e.toDisplayString(Ve.value),1)):e.createCommentVNode("",!0)]),e.createVNode(ro,{visible:M.value,results:K.value,startPoint:W,endPoint:le,onClose:n[10]||(n[10]=u=>M.value=!1)},null,8,["visible","results","startPoint","endPoint"])]),De.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"geo-dialog-overlay",onClick:e.withModifiers(Ze,["self"])},[e.createElementVNode("div",br,[e.createElementVNode("div",{class:"geo-group-header"},[n[28]||(n[28]=e.createElementVNode("span",null,"选择分组",-1)),e.createElementVNode("button",{class:"geo-dialog-close",onClick:Ze},"×")]),e.createElementVNode("div",kr,[e.createElementVNode("div",Er,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ot,u=>e.createElementVNode("label",{key:u.id,class:e.normalizeClass(["geo-group-option",{selected:ke.value===u.id}])},[e.withDirectives(e.createElementVNode("input",{type:"radio",value:u.id,"onUpdate:modelValue":n[11]||(n[11]=h=>ke.value=h)},null,8,wr),[[e.vModelRadio,ke.value]]),e.createElementVNode("span",null,"📡 "+e.toDisplayString(u.name),1)],2)),64)),e.createElementVNode("label",{class:e.normalizeClass(["geo-group-option",{selected:ke.value===""}])},[e.withDirectives(e.createElementVNode("input",{type:"radio",value:"","onUpdate:modelValue":n[12]||(n[12]=u=>ke.value=u)},null,512),[[e.vModelRadio,ke.value]]),n[29]||(n[29]=e.createElementVNode("span",null,"📄 不分组",-1))],2)])]),e.createElementVNode("div",{class:"geo-group-footer"},[e.createElementVNode("button",{class:"geo-btn",onClick:Ze},"取消"),e.createElementVNode("button",{class:"geo-btn geo-btn-primary",onClick:jt},"确定")])])])):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default",{},void 0,!0)],4)}}})),Ar=we._export_sfc(Br,[["__scopeId","data-v-c35e371c"]]);exports.default=Ar;
|
|
1
|
+
"use strict";var an=Object.defineProperty,sn=Object.defineProperties;var ln=Object.getOwnPropertyDescriptors;var ht=Object.getOwnPropertySymbols;var cn=Object.prototype.hasOwnProperty,dn=Object.prototype.propertyIsEnumerable;var Ie=Math.pow,yt=(l,o,t)=>o in l?an(l,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[o]=t,Ke=(l,o)=>{for(var t in o||(o={}))cn.call(o,t)&&yt(l,t,o[t]);if(ht)for(var t of ht(o))dn.call(o,t)&&yt(l,t,o[t]);return l},Qe=(l,o)=>sn(l,ln(o));var _e=(l,o,t)=>new Promise((a,s)=>{var d=y=>{try{p(t.next(y))}catch(E){s(E)}},c=y=>{try{p(t.throw(y))}catch(E){s(E)}},p=y=>y.done?a(y.value):Promise.resolve(y.value).then(d,c);p((t=t.apply(l,o)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const et=require("element-plus/es");require("element-plus/es/components/base/style/css");require("element-plus/es/components/date-picker/style/css");require("element-plus/es/components/select/style/css");require("element-plus/es/components/option/style/css");const e=require("vue"),k=require("./three.module-CjayKmiG.cjs"),un=require("./OrbitControls-uuLGjaqy.cjs"),bt=require("./CSS2DRenderer-nQ2DN9Uc.cjs"),nt=require("./ExtensionUtilities-ClTuwtC-.cjs"),we=require("./index-CikO6qmH.cjs"),mn=require("./BaseComponent-eihedT_8.cjs"),pn=require("./titleStyle-NSnz6cUg.cjs"),xe=require("./leaflet-src-BhiA8QMC.cjs");;/* empty css */const kt=require("./ele-glbModel-icon-ByACDCrv.cjs");function Et(l){const t=JSON.parse(l).properties,a=vn(t.materials||[]),s=new Map;a.forEach(p=>s.set(p.id,p));const d=t.nodes,c=fn(d,s);return{name:t.name||"Untitled",id:t.id||"",version:t.version||"",materials:a,rootNode:c}}function vn(l){return l.map(o=>{var t,a,s;return{id:((t=o.properties)==null?void 0:t.id)||"",name:((a=o.properties)==null?void 0:a.name)||"",color:typeof((s=o.properties)==null?void 0:s.color)=="number"?o.properties.color:8947848}})}function fn(l,o){var s;if(!l||l.length===0)return wt("root");const t=new Map,a=[];for(const d of l){const c=gn(d,o);t.set(c.id,c),a.push({node:c,parentId:d.parentId})}for(const{node:d,parentId:c}of a)c&&t.has(c)&&t.get(c).children.push(d);return((s=a[0])==null?void 0:s.node)||wt("root")}function wt(l){return{id:"empty",name:l,classKey:"EmptyNode",visible:!0,color:8947848,children:[],raw:{}}}function gn(l,o){const t=l.properties||{},a=l.classKey||"";let s=8947848,d;if(t.materialId){d=t.materialId;const y=o.get(d);y&&(s=y.color)}else typeof t.color=="number"&&(s=t.color);const c={id:t.id||Math.random().toString(36).slice(2),name:t.name||a,classKey:a,visible:t.visible!==void 0?!!t.visible:!0,color:s,materialId:d,children:[],raw:t},p=hn(a,t);return p&&(c.mesh=p),c}function hn(l,o){if(l==="TriMeshNode"&&o.savedData)return yn(o.savedData);if(l==="ShapeNode"||l==="MultiShapeNode")return bn(o);if((l==="GeoPlineNode"||l==="PlineNode")&&o.points)return kn(o)}function yn(l){try{const o=typeof l=="string"?JSON.parse(l):l;if(!o.pos||!o.idx)return;const t=new Float32Array(o.pos),a=new Uint32Array(o.idx),s=o.uv?new Float32Array(o.uv):new Float32Array(0),d=o.edgePos?new Float32Array(o.edgePos):new Float32Array(0),c=Mt(t,a);return{positions:t,indices:a,normals:c,uvs:s,edgePositions:d}}catch(o){return}}function bn(l){const o=l.shape;if(!o)return;const t=o.properties||o,a=t.mesh||t._mesh;if(!a)return;const s=a.properties||a,d=s.faces||s._faces;if(!d)return;const c=d.properties||d;if(!c.position)return;const p=Ye(c.position),y=En(c.index),E=c.normal?Ye(c.normal):Mt(p,y),C=c.uv?Ye(c.uv):new Float32Array(0),g=s.edges||s._lines,b=(g==null?void 0:g.properties)||g,N=b!=null&&b.position?Ye(b.position):new Float32Array(0);if(p.length!==0)return{positions:p,indices:y,normals:E,uvs:C,edgePositions:N}}function kn(l){const o=l.points;if(!o||!Array.isArray(o))return;const t=o.map(s=>s.properties?{x:s.properties.x||0,y:s.properties.y||0,z:s.properties.z||0}:{x:s.x||0,y:s.y||0,z:s.z||0});if(t.length<2)return;const a=[];for(let s=0;s<t.length-1;s++)a.push(t[s].x,t[s].y,t[s].z),a.push(t[s+1].x,t[s+1].y,t[s+1].z);return{positions:new Float32Array(0),indices:new Uint32Array(0),normals:new Float32Array(0),uvs:new Float32Array(0),edgePositions:new Float32Array(a)}}function Ye(l){var o;return l instanceof Float32Array?l:(o=l==null?void 0:l.properties)!=null&&o.buffer?new Float32Array(l.properties.buffer):Array.isArray(l)?new Float32Array(l):new Float32Array(0)}function En(l){var o;return l instanceof Uint32Array?l:(o=l==null?void 0:l.properties)!=null&&o.buffer?new Uint32Array(l.properties.buffer):Array.isArray(l)?new Uint32Array(l):new Uint32Array(0)}function Mt(l,o){if(l.length===0||o.length===0)return new Float32Array(0);const t=new Float32Array(l.length);for(let a=0;a<o.length;a+=3){const s=o[a],d=o[a+1],c=o[a+2],p=l[s*3],y=l[s*3+1],E=l[s*3+2],C=l[d*3],g=l[d*3+1],b=l[d*3+2],N=l[c*3],w=l[c*3+1],x=l[c*3+2],G=C-p,I=g-y,U=b-E,X=N-p,me=w-y,pe=x-E,ve=I*pe-U*me,oe=U*X-G*pe,H=G*me-I*X,fe=Math.sqrt(ve*ve+oe*oe+H*H)||1;for(const m of[s,d,c])t[m*3]+=ve/fe,t[m*3+1]+=oe/fe,t[m*3+2]+=H/fe}for(let a=0;a<t.length;a+=3){const s=Math.sqrt(Ie(t[a],2)+Ie(t[a+1],2)+Ie(t[a+2],2))||1;t[a]/=s,t[a+1]/=s,t[a+2]/=s}return t}function Vt(l,o){if(o==="cf"){const a=l.cf;return a<50?[0/255,170/255,255/255]:a<150?[255/255,230/255,0/255]:a<300?[255/255,145/255,0/255]:a<500?[240/255,70/255,40/255]:[180/255,0/255,0/255]}if(o==="av"){const a=l.av;return a<-.6?[0/255,80/255,220/255]:a<-.1?[0/255,170/255,255/255]:Math.abs(a)<.1?[0/255,220/255,120/255]:a<.6?[255/255,185/255,0/255]:[220/255,30/255,30/255]}const t=Math.abs(l.rr);return l.rr<0?t<5?[0/255,180/255,255/255]:t<20?[0/255,120/255,255/255]:t<60?[40/255,70/255,220/255]:[20/255,35/255,150/255]:t<5?[255/255,230/255,0/255]:t<20?[255/255,165/255,0/255]:t<60?[235/255,85/255,0/255]:[180/255,0/255,0/255]}function wn(l){return l?Array.isArray(l.points)?l:l.data&&Array.isArray(l.data.points)?l.data:{points:[],radar:{e:0,n:0,rl:0}}:{points:[],radar:{e:0,n:0,rl:0}}}k.Mesh.prototype.raycast=nt.acceleratedRaycast;class Vn{constructor(o){this.container=o,this.raycaster=new k.Raycaster,this.animFrameId=0,this.needsUpdate=!0,this.nodeEntries=new Map,this.resizeObserver=null,this.deviceMarkers=new Map,this.radarLayers=new Map,this.animate=()=>{if(this.animFrameId=requestAnimationFrame(this.animate),this.controls.update(),!this.needsUpdate)return;const a=this.camera.position.clone().sub(this.controls.target);this.dynamicLight.position.copy(a),this.renderer.render(this.scene,this.camera),this.labelRenderer.render(this.scene,this.camera),this.needsUpdate=!1},k.Object3D.DEFAULT_UP.set(0,0,1),this.scene=new k.Scene,this.camera=new k.PerspectiveCamera(50,o.clientWidth/Math.max(o.clientHeight,1),.1,1e5),this.camera.position.set(500,-500,500),this.camera.up.set(0,0,1),this.renderer=new k.WebGLRenderer({antialias:!0,alpha:!0}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(o.clientWidth,o.clientHeight),o.appendChild(this.renderer.domElement),this.labelRenderer=new bt.CSS2DRenderer,this.labelRenderer.setSize(o.clientWidth,o.clientHeight),this.labelRenderer.domElement.style.position="absolute",this.labelRenderer.domElement.style.top="0",this.labelRenderer.domElement.style.left="0",this.labelRenderer.domElement.style.pointerEvents="none",this.labelRenderer.domElement.style.overflow="visible",o.appendChild(this.labelRenderer.domElement),this.controls=new un.OrbitControls(this.camera,this.renderer.domElement),this.controls.enableDamping=!1,this.controls.mouseButtons={LEFT:k.MOUSE.ROTATE,MIDDLE:k.MOUSE.PAN,RIGHT:k.MOUSE.PAN},this.controls.addEventListener("change",()=>{this.updateCameraNearFar(),this.needsUpdate=!0});const t=new k.AmbientLight(8947848,4);this.dynamicLight=new k.DirectionalLight(16777215,2),this.scene.add(t,this.dynamicLight),this.scene.add(new k.AxesHelper(250)),this.resizeObserver=new ResizeObserver(()=>this.resize()),this.resizeObserver.observe(o),this.animate()}loadDocument(o,t){return _e(this,null,function*(){this.clearModel();const a=this.flattenNodes(o.rootNode),s=a.filter(c=>c.mesh&&c.mesh.positions.length>0);t==null||t(`构建场景树 (${a.length} 节点)...`),this.buildGroupTree(o.rootNode,this.scene);let d=0;for(const c of s)this.createMeshForNode(c),d++,d%5===0&&(t==null||t(`创建网格 ${d}/${s.length}...`),yield new Promise(p=>setTimeout(p,0)));this.fitContent(),this.needsUpdate=!0})}flattenNodes(o){const t=[o];for(const a of o.children)t.push(...this.flattenNodes(a));return t}buildGroupTree(o,t){const a=new k.Group;a.name=o.name,a.visible=o.visible,t.add(a);const s={node:o,group:a};this.nodeEntries.set(o.id,s);for(const d of o.children)this.buildGroupTree(d,a)}createMeshForNode(o){var p,y;const t=this.nodeEntries.get(o.id);if(!t||!o.mesh)return;const{positions:a,indices:s,edgePositions:d}=o.mesh;if(a.length>0&&s.length>0){const E=new k.BufferGeometry;E.setAttribute("position",new k.BufferAttribute(a,3)),E.setIndex(new k.BufferAttribute(s,1)),E.computeVertexNormals(),E.computeBoundingBox(),E.boundsTree=new nt.MeshBVH(E);const C=new k.MeshLambertMaterial({color:new k.Color(o.color),side:k.DoubleSide,flatShading:!0}),g=new k.Mesh(E,C);g.name=o.name+"_mesh",t.group.add(g),t.meshObj=g}const c=(y=(p=o.raw)==null?void 0:p.displayMode)!=null?y:0;if(d.length>0&&c>0){const E=new k.BufferGeometry;E.setAttribute("position",new k.BufferAttribute(d,3)),E.computeBoundingBox();const C=new k.LineBasicMaterial({color:0,linewidth:1}),g=new k.LineSegments(E,C);g.name=o.name+"_edges",t.group.add(g),t.edgeObj=g}}setNodeVisible(o,t){const a=this.nodeEntries.get(o);a&&(this.setNodeVisibleRecursive(a.node,t),this.needsUpdate=!0)}setNodeVisibleRecursive(o,t){o.visible=t;const a=this.nodeEntries.get(o.id);a&&(a.group.visible=t);for(const s of o.children)this.setNodeVisibleRecursive(s,t)}fitContent(){try{this.scene.updateMatrixWorld(!0);const o=new k.Box3;if(this.scene.traverse(d=>{if(!(d instanceof k.AxesHelper)&&(d instanceof k.Mesh||d instanceof k.LineSegments)){const c=d.geometry;if(c&&c.attributes.position&&(c.computeBoundingBox(),c.boundingBox&&!c.boundingBox.isEmpty())){const p=c.boundingBox.clone();p.applyMatrix4(d.matrixWorld),o.union(p)}}}),o.isEmpty())return;const t=o.getCenter(new k.Vector3),a=o.getSize(new k.Vector3),s=Math.max(a.x,a.y,a.z);this.controls.target.copy(t),this.camera.position.set(t.x+s*.8,t.y-s*.8,t.z+s*.6),this.updateCameraNearFar(),this.controls.update(),this.needsUpdate=!0}catch(o){console.warn("[fitContent] error:",o)}}getVisibleMeshEntries(){const o=[];return this.nodeEntries.forEach(t=>{t.meshObj&&t.group.visible&&t.node.mesh&&o.push(t)}),o}addSectionLines(o,t){const a=new k.BufferGeometry;a.setAttribute("position",new k.BufferAttribute(o,3));const s=new k.LineBasicMaterial({color:t,linewidth:2,depthTest:!1}),d=new k.LineSegments(a,s);return d.renderOrder=999,d.name="__section_result__",this.scene.add(d),this.needsUpdate=!0,d}addSectionPath(o,t=16776960){const a=[];for(let p=0;p<o.length-1;p++)a.push(o[p].x,o[p].y,o[p].z),a.push(o[p+1].x,o[p+1].y,o[p+1].z);const s=new k.BufferGeometry;s.setAttribute("position",new k.BufferAttribute(new Float32Array(a),3));const d=new k.LineBasicMaterial({color:t,linewidth:3,depthTest:!1}),c=new k.LineSegments(s,d);return c.renderOrder=1e3,c.name="__section_path__",this.scene.add(c),this.needsUpdate=!0,c}clearSectionResults(){const o=[];this.scene.traverse(t=>{(t.name==="__section_result__"||t.name==="__section_path__")&&o.push(t)}),o.forEach(t=>{t.removeFromParent(),t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}),this.needsUpdate=!0}setTransparency(o){this.nodeEntries.forEach(t=>{if(t.meshObj){const a=t.meshObj.material;a.transparent=o,a.opacity=o?.4:1,a.depthWrite=!o,a.needsUpdate=!0}}),this.needsUpdate=!0}pickPoint(o){const t=this.renderer.domElement.getBoundingClientRect(),a=new k.Vector2((o.clientX-t.left)/t.width*2-1,-((o.clientY-t.top)/t.height)*2+1);this.raycaster.setFromCamera(a,this.camera);const s=[];this.scene.traverse(c=>{c instanceof k.Mesh&&c.name.endsWith("_mesh")&&c.visible&&s.push(c)});const d=this.raycaster.intersectObjects(s,!1);return d.length>0?d[0].point.clone():null}addPickMarker(o,t=16711680){const a=new k.SphereGeometry(1,16,16),s=new k.MeshBasicMaterial({color:t,depthTest:!1}),d=new k.Mesh(a,s);d.position.copy(o),d.renderOrder=998,d.name="__pick_marker__";const c=this.camera.position.distanceTo(this.controls.target);return d.scale.setScalar(c*.008),this.scene.add(d),this.needsUpdate=!0,d}addPickLine(o,t){const a=new k.BufferGeometry;a.setAttribute("position",new k.BufferAttribute(new Float32Array([o.x,o.y,o.z,t.x,t.y,t.z]),3));const s=new k.LineBasicMaterial({color:16776960,linewidth:2,depthTest:!1}),d=new k.LineSegments(a,s);return d.renderOrder=998,d.name="__pick_line__",this.scene.add(d),this.needsUpdate=!0,d}clearPickMarkers(){const o=[];this.scene.traverse(t=>{(t.name==="__pick_marker__"||t.name==="__pick_line__")&&o.push(t)}),o.forEach(t=>{t.removeFromParent(),t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}),this.needsUpdate=!0}addRadarLayer(o,t,a){if(this.removeRadarLayer(o),t.length===0)return;const s=new Float32Array(t.length*3),d=new Float32Array(t.length*3);for(let E=0;E<t.length;E++){const C=t[E],g=E*3;s[g]=C.e,s[g+1]=C.n,s[g+2]=C.rl;const b=Vt(C,a);d[g]=b[0],d[g+1]=b[1],d[g+2]=b[2]}const c=new k.BufferGeometry;c.setAttribute("position",new k.BufferAttribute(s,3)),c.setAttribute("color",new k.BufferAttribute(d,3)),c.computeBoundingSphere();const p=new k.PointsMaterial({size:5,sizeAttenuation:!1,vertexColors:!0,depthWrite:!1,depthTest:!1,toneMapped:!1}),y=new k.Points(c,p);y.renderOrder=900,y.name=`__radar_layer_${o}__`,this.scene.add(y),this.radarLayers.set(o,{cloud:y,pointIndex:t}),this.needsUpdate=!0}setRadarLayerVisible(o,t){const a=this.radarLayers.get(o);a&&(a.cloud.visible=t,this.needsUpdate=!0)}updateRadarLayerColors(o,t,a){const s=this.radarLayers.get(o);if(!s)return;const d=s.cloud.geometry.getAttribute("color"),c=d.array;for(let p=0;p<t.length;p++){const y=Vt(t[p],a),E=p*3;c[E]=y[0],c[E+1]=y[1],c[E+2]=y[2]}d.needsUpdate=!0,this.needsUpdate=!0}pickRadarPoint(o){const t=this.renderer.domElement.getBoundingClientRect(),a=new k.Vector2((o.clientX-t.left)/t.width*2-1,-((o.clientY-t.top)/t.height)*2+1),s=new k.Vector3;let d=.002,c=null;for(const[p,y]of this.radarLayers){if(!y.cloud.visible)continue;const C=y.cloud.geometry.getAttribute("position").array;for(let g=0;g<C.length;g+=3){if(s.set(C[g],C[g+1],C[g+2]).project(this.camera),s.z<-1||s.z>1)continue;const b=s.x-a.x,N=s.y-a.y,w=b*b+N*N;w<d&&(d=w,c={layerId:p,point:y.pointIndex[g/3]})}}return c}removeRadarLayer(o){const t=this.radarLayers.get(o);t&&(this.scene.remove(t.cloud),t.cloud.geometry.dispose(),t.cloud.material.dispose(),this.radarLayers.delete(o),this.needsUpdate=!0)}clearAllRadarLayers(){for(const[o]of this.radarLayers)this.removeRadarLayer(o)}addDeviceMarker(o,t,a){this.removeDeviceMarker(o);const s=new bt.CSS2DObject(a);return s.position.set(t.e,t.n,t.rl),s.name=`__device_marker_${o}__`,this.scene.add(s),this.deviceMarkers.set(o,s),this.needsUpdate=!0,s}updateDeviceMarkerPosition(o,t){const a=this.deviceMarkers.get(o);a&&(a.position.set(t.e,t.n,t.rl),this.needsUpdate=!0)}removeDeviceMarker(o){const t=this.deviceMarkers.get(o);t&&(this.scene.remove(t),this.deviceMarkers.delete(o),this.needsUpdate=!0)}removeAllDeviceMarkers(){for(const[o]of this.deviceMarkers)this.removeDeviceMarker(o)}setDeviceMarkerVisible(o,t){const a=this.deviceMarkers.get(o);a&&(a.visible=t,this.needsUpdate=!0)}setDeviceMarkersVisible(o){for(const[,t]of this.deviceMarkers)t.visible=o;this.needsUpdate=!0}clearModel(){const o=[];this.scene.children.forEach(t=>{t instanceof k.Group&&o.push(t)}),o.forEach(t=>{t.traverse(a=>{if(a.geometry&&a.geometry.dispose(),a.material){const s=a.material;Array.isArray(s)?s.forEach(d=>d.dispose()):s.dispose()}}),t.removeFromParent()}),this.nodeEntries.clear(),this.clearSectionResults()}resize(){const o=this.container.clientWidth,t=this.container.clientHeight;t<1||(this.camera.aspect=o/t,this.camera.updateProjectionMatrix(),this.renderer.setSize(o,t),this.labelRenderer.setSize(o,t),this.needsUpdate=!0)}updateCameraNearFar(){const o=this.camera.position.distanceTo(this.controls.target);o<1?(this.camera.near=.001,this.camera.far=100):o<10?(this.camera.near=.01,this.camera.far=1e3):o<100?(this.camera.near=.1,this.camera.far=1e4):o<1e3?(this.camera.near=1,this.camera.far=1e5):o<1e4?(this.camera.near=10,this.camera.far=1e6):o<1e5?(this.camera.near=100,this.camera.far=1e7):(this.camera.near=1e3,this.camera.far=1e8),this.camera.updateProjectionMatrix()}requestUpdate(){this.needsUpdate=!0}dispose(){var o;cancelAnimationFrame(this.animFrameId),(o=this.resizeObserver)==null||o.disconnect(),this.clearModel(),this.clearAllRadarLayers(),this.removeAllDeviceMarkers(),this.controls.dispose(),this.renderer.dispose(),this.renderer.domElement.remove(),this.labelRenderer.domElement.remove()}}function Nn(l,o){const t=new k.Vector3().subVectors(o,l).normalize();let a=new k.Vector3().crossVectors(t,new k.Vector3(0,0,1)).normalize();return a.lengthSq()<.01&&(a=new k.Vector3().crossVectors(t,new k.Vector3(1,0,0)).normalize()),{start:l.clone(),end:o.clone(),normal:a}}function _n(l){const o=[];for(let t=0;t<l.length-1;t++)o.push(Nn(l[t],l[t+1]));return o}const Nt=new WeakMap;function Mn(l,o){if(!l.mesh||l.mesh.positions.length===0||l.mesh.indices.length===0)return new Float32Array(0);let t=Nt.get(l);t||(t=new k.BufferGeometry,t.setAttribute("position",new k.BufferAttribute(l.mesh.positions,3)),t.setIndex(new k.BufferAttribute(l.mesh.indices,1)),t.boundsTree=new nt.MeshBVH(t),Nt.set(l,t));const a=t.boundsTree,s=[],d=new k.Line3;return a.shapecast({intersectsBounds:c=>o.intersectsBox(c),intersectsTriangle:c=>(Sn(c,o,d)&&s.push(d.start.x,d.start.y,d.start.z,d.end.x,d.end.y,d.end.z),!1)}),new Float32Array(s)}function Sn(l,o,t){const a=o.distanceToPoint(l.a),s=o.distanceToPoint(l.b),d=o.distanceToPoint(l.c);if(a>0&&s>0&&d>0||a<0&&s<0&&d<0||a===0&&s===0&&d===0)return!1;const c=[];if(tt(l.a,l.b,a,s,c),tt(l.b,l.c,s,d,c),tt(l.c,l.a,d,a,c),c.length>=2){t.start.copy(c[0]);let p=0,y=1;for(let E=1;E<c.length;E++){const C=c[0].distanceToSquared(c[E]);C>p&&(p=C,y=E)}return t.end.copy(c[y]),p>=1e-10}return!1}function tt(l,o,t,a,s){if(t*a<0){const d=t/(t-a);s.push(new k.Vector3().copy(l).lerp(o,d))}else Math.abs(t)<1e-5&&(s.length===0||s[s.length-1].distanceTo(l)>1e-5)&&s.push(l.clone())}function Cn(l,o,t){const a=[],s=new k.Vector3().subVectors(t,o),d=s.lengthSq();if(d<1e-6)return[];const c=(p,y,E)=>{const C=p-o.x,g=y-o.y,b=E-o.z;return(C*s.x+g*s.y+b*s.z)/d};for(let p=0;p<l.length;p+=6){const y=l[p],E=l[p+1],C=l[p+2],g=l[p+3],b=l[p+4],N=l[p+5],w=c(y,E,C),x=c(g,b,N);if(w>=0&&w<=1&&x>=0&&x<=1){a.push(y,E,C,g,b,N);continue}if(w<0&&x<0||w>1&&x>1)continue;const G=Math.min(w,x),I=Math.max(w,x),U=w<x?{x:y,y:E,z:C}:{x:g,y:b,z:N},X=w<x?{x:g,y:b,z:N}:{x:y,y:E,z:C},me=Math.max(G,0),pe=Math.min(I,1);if(me<pe){const ve=I-G,oe=(me-G)/ve,H=(pe-G)/ve;a.push(U.x+(X.x-U.x)*oe,U.y+(X.y-U.y)*oe,U.z+(X.z-U.z)*oe,U.x+(X.x-U.x)*H,U.y+(X.y-U.y)*H,U.z+(X.z-U.z)*H)}}return a}function xn(l,o){if(o.length<2)return{results:[],allPositions:new Float32Array(0)};const t=_n(o),a=[],s=[];for(const d of l){const c=d.node;if(!c.mesh||c.mesh.positions.length===0)continue;const p=[];for(const y of t){const E=new k.Plane(y.normal.clone(),-y.normal.dot(y.start)),C=Mn(c,E);if(C.length>0){const g=Cn(C,y.start,y.end);g.length>0&&p.push(...g)}}if(p.length>0){a.push(...p);const y=[];for(let E=0;E<p.length;E+=6)y.push({start:{x:p[E],y:p[E+1],z:p[E+2]},end:{x:p[E+3],y:p[E+4],z:p[E+5]}});s.push({nodeName:c.name,nodeColor:c.color,segments:y})}}return{results:s,allPositions:new Float32Array(a)}}const Bn={class:"geo-toggle"},An=["title"],Ln=["title"],Dn=e.defineComponent({__name:"Geo3dNodeTree",props:{node:{},scene:{},depth:{default:0}},emits:["toggle-visible"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(t.depth<2);function d(){t.node.children.length>0&&(s.value=!s.value)}function c(){const p=!t.node.visible;t.node.visible=p,a("toggle-visible",t.node.id,p)}return(p,y)=>{const E=e.resolveComponent("Geo3dNodeTree",!0);return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{class:"geo-tree-item",style:e.normalizeStyle({paddingLeft:l.depth*16+8+"px"}),onClick:d},[e.createElementVNode("span",Bn,[l.node.children.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(s.value?"▼":"▶"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" ")],64))]),e.createElementVNode("div",{class:"geo-icon",style:e.normalizeStyle({background:"#"+l.node.color.toString(16).padStart(6,"0")})},null,4),e.createElementVNode("span",{class:"geo-label",title:l.node.name},e.toDisplayString(l.node.name),9,An),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!l.node.visible}]),onClick:e.withModifiers(c,["stop"]),title:l.node.visible?"隐藏":"显示"},e.toDisplayString(l.node.visible?"👁":"👁🗨"),11,Ln)],4),s.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.node.children,C=>(e.openBlock(),e.createBlock(E,{key:C.id,node:C,scene:l.scene,depth:l.depth+1,onToggleVisible:y[0]||(y[0]=(g,b)=>a("toggle-visible",g,b))},null,8,["node","scene","depth"]))),128)):e.createCommentVNode("",!0)])}}}),Fn=we._export_sfc(Dn,[["__scopeId","data-v-24fac17a"]]),Rn={class:"geo-radar-tree"},zn=["onClick"],Tn={class:"geo-toggle"},$n=["title"],Un={class:"geo-count"},Pn=["onClick"],On=["title"],Gn={class:"geo-count"},In=["onClick"],Yn=["onClick"],Hn=["title"],qn={class:"geo-count"},Wn=["onClick"],jn=["onClick"],Xn={key:0,class:"geo-radar-empty"},Zn=e.defineComponent({__name:"Geo3dRadarTree",props:{layers:{},groups:{}},emits:["toggle-layer","toggle-group","remove-layer"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(new Set(t.groups.map(b=>b.id)));function d(b){return s.value.has(b)}function c(b){const N=new Set(s.value);N.has(b)?N.delete(b):N.add(b),s.value=N}const p=e.computed(()=>t.layers.filter(b=>!b.groupId));function y(b){return b.layers.length>0&&b.layers.some(N=>N.visible)}function E(b){return b.layers.reduce((N,w)=>N+w.points.length,0).toLocaleString()}function C(b){a("toggle-group",b.id,!y(b))}function g(b){if(b.points.length===0)return"#999";const N=["#2563eb","#10b981","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#ec4899","#84cc16"];let w=0;for(let x=0;x<b.name.length;x++)w=(w<<5)-w+b.name.charCodeAt(x)|0;return N[Math.abs(w)%N.length]}return(b,N)=>(e.openBlock(),e.createElementBlock("div",Rn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.groups,w=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:"geo-radar-group"},[e.createElementVNode("div",{class:"geo-radar-item group-item",onClick:x=>c(w.id)},[e.createElementVNode("span",Tn,e.toDisplayString(d(w.id)?"▼":"▶"),1),N[0]||(N[0]=e.createElementVNode("span",{class:"geo-radar-icon"},"📡",-1)),e.createElementVNode("span",{class:"geo-label",title:w.name},e.toDisplayString(w.name),9,$n),e.createElementVNode("span",Un,e.toDisplayString(E(w)),1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!y(w)}]),onClick:e.withModifiers(x=>C(w),["stop"])},e.toDisplayString(y(w)?"👁":"👁🗨"),11,Pn)],8,zn),d(w.id)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(w.layers,x=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:"geo-radar-item layer-item"},[N[1]||(N[1]=e.createElementVNode("span",{class:"geo-toggle"}," ",-1)),e.createElementVNode("div",{class:"geo-layer-dot",style:e.normalizeStyle({background:g(x)})},null,4),e.createElementVNode("span",{class:"geo-label",title:x.name},e.toDisplayString(x.name),9,On),e.createElementVNode("span",Gn,e.toDisplayString(x.points.length.toLocaleString()),1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!x.visible}]),onClick:e.withModifiers(G=>b.$emit("toggle-layer",x.id,!x.visible),["stop"])},e.toDisplayString(x.visible?"👁":"👁🗨"),11,In),e.createElementVNode("button",{class:"geo-del-btn",onClick:e.withModifiers(G=>b.$emit("remove-layer",x.id),["stop"]),title:"删除"},"×",8,Yn)]))),128)):e.createCommentVNode("",!0)]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,w=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:"geo-radar-item layer-item"},[N[2]||(N[2]=e.createElementVNode("span",{class:"geo-toggle"}," ",-1)),e.createElementVNode("div",{class:"geo-layer-dot",style:e.normalizeStyle({background:g(w)})},null,4),e.createElementVNode("span",{class:"geo-label",title:w.name},e.toDisplayString(w.name),9,Hn),e.createElementVNode("span",qn,e.toDisplayString(w.points.length.toLocaleString()),1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!w.visible}]),onClick:e.withModifiers(x=>b.$emit("toggle-layer",w.id,!w.visible),["stop"])},e.toDisplayString(w.visible?"👁":"👁🗨"),11,Wn),e.createElementVNode("button",{class:"geo-del-btn",onClick:e.withModifiers(x=>b.$emit("remove-layer",w.id),["stop"]),title:"删除"},"×",8,jn)]))),128)),l.groups.length===0&&p.value.length===0?(e.openBlock(),e.createElementBlock("div",Xn,"暂无雷达数据")):e.createCommentVNode("",!0)]))}}),Jn=we._export_sfc(Zn,[["__scopeId","data-v-8a9239e4"]]),Kn={class:"geo-dialog-box"},Qn={class:"geo-dialog-header"},eo={key:0,class:"geo-highlight-tag"},to={class:"geo-dialog-body"},no={key:0,class:"geo-no-result"},oo=e.defineComponent({__name:"Geo3dSectionDialog",props:{visible:{type:Boolean},results:{},startPoint:{},endPoint:{}},emits:["close"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(),d=e.ref();let c=1100,p=600;const y=e.ref(!1),E=e.ref(""),C=e.ref({}),g=e.ref(null);function b(m){const S=parseInt(m.slice(1,3),16),v=parseInt(m.slice(3,5),16),D=parseInt(m.slice(5,7),16),F=.7,B=Math.round(S*F),P=Math.round(v*F),Z=Math.round(D*F);return`#${B.toString(16).padStart(2,"0")}${P.toString(16).padStart(2,"0")}${Z.toString(16).padStart(2,"0")}`}const N=["#d32f2f","#1565c0","#2e7d32","#e65100","#6a1b9a","#00838f","#c62828","#283593","#1b5e20","#bf360c"];function w(m,S){const v=parseInt(m.slice(1,3),16),D=parseInt(m.slice(3,5),16),F=parseInt(m.slice(5,7),16);return(v*299+D*587+F*114)/1e3>180?N[S%N.length]:b(m)}e.computed(()=>{const m=new Map;return t.results.forEach((S,v)=>{const D="#"+S.nodeColor.toString(16).padStart(6,"0"),F=w(D,v);m.has(S.nodeName)?m.get(S.nodeName).count+=S.segments.length:m.set(S.nodeName,{color:F,count:S.segments.length})}),Array.from(m.entries()).map(([S,v])=>({name:S,color:v.color,count:v.count}))});function x(){a("close"),g.value=null}function G(){const m=s.value;if(!m)return;const S=m.toDataURL("image/png"),v=document.createElement("a");v.download=`剖面结果_${new Date().toISOString().slice(0,10)}.png`,v.href=S,v.click()}const I=[];e.watch(()=>t.visible,m=>_e(null,null,function*(){m&&(g.value=null,yield e.nextTick(),U())}));function U(){const m=s.value,S=d.value;if(!m||!S)return;const v=m.getContext("2d");if(!v)return;const D=S.clientWidth;c=Math.max(D,600),p=Math.round(c*.5);const F=window.devicePixelRatio||1;if(m.width=c*F,m.height=p*F,m.style.width=c+"px",m.style.height=p+"px",v.scale(F,F),v.clearRect(0,0,c,p),t.results.length===0)return;const B=t.endPoint.x-t.startPoint.x,P=t.endPoint.y-t.startPoint.y,Z=Math.sqrt(B*B+P*P);if(Z<1e-6)return;const Ve=B/Z,ce=P/Z,A=[];let re=1/0,ge=-1/0,Ne=1/0,Me=-1/0;if(t.results.forEach((M,R)=>{const Q="#"+M.nodeColor.toString(16).padStart(6,"0"),ie=w(Q,R);for(const be of M.segments){const Ce=(be.start.x-t.startPoint.x)*Ve+(be.start.y-t.startPoint.y)*ce,L=be.start.z,O=(be.end.x-t.startPoint.x)*Ve+(be.end.y-t.startPoint.y)*ce,ee=be.end.z;A.push({x1:Ce,z1:L,x2:O,z2:ee,color:ie,name:M.nodeName}),re=Math.min(re,Ce,O),ge=Math.max(ge,Ce,O),Ne=Math.min(Ne,L,ee),Me=Math.max(Me,L,ee)}}),A.length===0)return;const Le=ge-re||1,Te=Me-Ne||1,ae=70,se=30,he=30,ye=50,Se=c-ae-se,Be=p-he-ye,$e=Se/Le,He=Be/Te,J=M=>ae+(M-re)*$e,q=M=>p-ye-(M-Ne)*He;v.fillStyle="#fafafa",v.fillRect(0,0,c,p),v.strokeStyle="#bbb",v.lineWidth=1,v.strokeRect(ae,he,Se,Be);const W=fe(Le),le=fe(Te);v.strokeStyle="#e8e8e8",v.lineWidth=.5;for(let M=Math.ceil(re/W)*W;M<=ge;M+=W){const R=J(M);v.beginPath(),v.moveTo(R,he),v.lineTo(R,p-ye),v.stroke()}for(let M=Math.ceil(Ne/le)*le;M<=Me;M+=le){const R=q(M);v.beginPath(),v.moveTo(ae,R),v.lineTo(c-se,R),v.stroke()}v.fillStyle="#444",v.font="11px monospace",v.textAlign="center";for(let M=Math.ceil(re/W)*W;M<=ge;M+=W)v.fillText(M.toFixed(0),J(M),p-ye+16);v.textAlign="right";for(let M=Math.ceil(Ne/le)*le;M<=Me;M+=le)v.fillText(M.toFixed(0),ae-6,q(M)+4);v.fillStyle="#222",v.font="bold 13px sans-serif",v.textAlign="center",v.fillText("水平距离 (m)",ae+Se/2,p-4),v.save(),v.translate(14,he+Be/2),v.rotate(-Math.PI/2),v.fillText("标高 Z (m)",0,0),v.restore(),v.save(),v.beginPath(),v.rect(ae,he,Se,Be),v.clip();const K=g.value;if(K){v.lineWidth=1.5,v.globalAlpha=.2;for(const M of A)M.name!==K&&(v.strokeStyle=M.color,v.beginPath(),v.moveTo(J(M.x1),q(M.z1)),v.lineTo(J(M.x2),q(M.z2)),v.stroke());v.globalAlpha=1}v.lineWidth=K?4:1.5,v.lineCap="round";for(const M of A)K&&M.name!==K||(v.strokeStyle=M.color,v.beginPath(),v.moveTo(J(M.x1),q(M.z1)),v.lineTo(J(M.x2),q(M.z2)),v.stroke());v.restore(),I.length=0;for(const M of A)I.push({sx1:J(M.x1),sy1:q(M.z1),sx2:J(M.x2),sy2:q(M.z2),name:M.name,color:M.color})}function X(m,S,v,D,F,B){const P=F-v,Z=B-D,Ve=P*P+Z*Z;if(Ve<1e-6)return Math.hypot(m-v,S-D);let ce=((m-v)*P+(S-D)*Z)/Ve;return ce=Math.max(0,Math.min(1,ce)),Math.hypot(m-(v+ce*P),S-(D+ce*Z))}function me(m){const v=s.value.getBoundingClientRect();return{mx:(m.clientX-v.left)*(c/v.width),my:(m.clientY-v.top)*(p/v.height),rect:v}}function pe(m,S){let v=1/0,D="",F="";for(const B of I){const P=X(m,S,B.sx1,B.sy1,B.sx2,B.sy2);P<v&&(v=P,D=B.name,F=B.color)}return{bestDist:v,bestName:D,bestColor:F}}function ve(m){if(!s.value||I.length===0)return;const{mx:S,my:v,rect:D}=me(m),{bestDist:F,bestName:B,bestColor:P}=pe(S,v);F<12?(y.value=!0,E.value=B,C.value={left:m.clientX-D.left+14+"px",top:m.clientY-D.top-8+"px",borderLeft:`4px solid ${P}`},s.value.style.cursor="pointer"):(y.value=!1,s.value.style.cursor="default")}function oe(){y.value=!1}function H(m){if(!s.value||I.length===0)return;const{mx:S,my:v}=me(m),{bestDist:D,bestName:F}=pe(S,v);D<12?g.value=g.value===F?null:F:g.value=null,U()}function fe(m){const S=m/8,v=Math.pow(10,Math.floor(Math.log10(S))),D=S/v;return D<1.5?v:D<3.5?2*v:D<7.5?5*v:10*v}return(m,S)=>l.visible?(e.openBlock(),e.createElementBlock("div",{key:0,class:"geo-dialog-overlay",onClick:e.withModifiers(x,["self"])},[e.createElementVNode("div",Kn,[e.createElementVNode("div",Qn,[S[0]||(S[0]=e.createElementVNode("span",{class:"geo-dialog-title"},"剖面结果",-1)),g.value?(e.openBlock(),e.createElementBlock("span",eo,e.toDisplayString(g.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"geo-export-btn",onClick:G,title:"导出图片"},"💾 导出图片"),e.createElementVNode("button",{class:"geo-dialog-close",onClick:x},"×")]),e.createElementVNode("div",to,[e.createElementVNode("div",{class:"geo-canvas-wrap",ref_key:"canvasWrapRef",ref:d},[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:s,onMousemove:ve,onMouseleave:oe,onClick:H},null,544),y.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"geo-canvas-tooltip",style:e.normalizeStyle(C.value)},e.toDisplayString(E.value),5)):e.createCommentVNode("",!0)],512),l.results.length===0?(e.openBlock(),e.createElementBlock("div",no,"该剖切线未与任何模型相交")):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0)}}),ro=we._export_sfc(oo,[["__scopeId","data-v-9d57c901"]]),ao={class:"marker-header"},so={class:"marker-icon"},lo={class:"marker-name"},io={key:0,class:"marker-rows"},co={class:"row-label"},uo={class:"row-value"},mo={class:"row-unit"},_t=e.defineComponent({__name:"Geo3dDeviceMarker",props:{deviceType:{},name:{},icon:{},rows:{},arrowAngle:{}},setup(l){const o=e.ref(!1),t=l,a=e.computed(()=>t.rows.filter(s=>s.label&&s.label.trim()!==""));return(s,d)=>(e.openBlock(),e.createElementBlock("div",{class:"geo3d-device-marker",onClick:d[0]||(d[0]=e.withModifiers(c=>o.value=!o.value,["stop"]))},[e.createElementVNode("div",ao,[e.createElementVNode("span",so,e.toDisplayString(l.icon),1),e.createElementVNode("span",lo,e.toDisplayString(l.name),1)]),o.value&&a.value.length>0?(e.openBlock(),e.createElementBlock("div",io,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(c,p)=>(e.openBlock(),e.createElementBlock("div",{key:p,class:"marker-row"},[e.createElementVNode("span",co,e.toDisplayString(c.label),1),e.createElementVNode("span",uo,e.toDisplayString(c.value),1),e.createElementVNode("span",mo,e.toDisplayString(c.unit),1)]))),128))])):e.createCommentVNode("",!0),o.value&&l.arrowAngle!=null?(e.openBlock(),e.createElementBlock("div",{key:1,class:"marker-arrow",style:e.normalizeStyle({transform:`rotate(${l.arrowAngle}deg)`})},[...d[1]||(d[1]=[e.createElementVNode("svg",{width:"48",height:"12",viewBox:"0 0 48 12",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("line",{x1:"2",y1:"6",x2:"36",y2:"6",stroke:"rgba(51,51,51,0.8)","stroke-width":"2","stroke-linecap":"round"}),e.createElementVNode("polygon",{points:"34,1 48,6 34,11",fill:"rgba(51,51,51,0.8)"})],-1)])],4)):e.createCommentVNode("",!0)]))}}),po={class:"geo-device-tree"},vo=["onClick"],fo={class:"geo-toggle"},go={class:"geo-device-icon"},ho=["title"],yo={class:"geo-count"},bo=["onClick"],ko=["title"],Eo=["onClick"],wo={key:0,class:"geo-device-empty"},Vo=e.defineComponent({__name:"Geo3dDeviceTree",props:{devices:{}},emits:["toggle-device","toggle-group"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(new Set);let d=!1;const c=e.computed(()=>{const g=new Map;for(const b of t.devices){const N=b.deviceType||"未知";g.has(N)||g.set(N,{type:N,icon:b.icon,devices:[]}),g.get(N).devices.push(b)}return Array.from(g.values())});e.watch(c,g=>{!d&&g.length>0&&(s.value=new Set(g.map(b=>b.type)),d=!0)},{immediate:!0});function p(g){return s.value.has(g)}function y(g){const b=new Set(s.value);b.has(g)?b.delete(g):b.add(g),s.value=b}function E(g){return g.devices.length>0&&g.devices.some(b=>b.visible)}function C(g){a("toggle-group",g.type,!E(g))}return(g,b)=>(e.openBlock(),e.createElementBlock("div",po,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,N=>(e.openBlock(),e.createElementBlock("div",{key:N.type,class:"geo-device-group"},[e.createElementVNode("div",{class:"geo-device-item group-item",onClick:w=>y(N.type)},[e.createElementVNode("span",fo,e.toDisplayString(p(N.type)?"▼":"▶"),1),e.createElementVNode("span",go,e.toDisplayString(N.icon),1),e.createElementVNode("span",{class:"geo-label",title:N.type},e.toDisplayString(N.type),9,ho),e.createElementVNode("span",yo,e.toDisplayString(N.devices.length)+"台",1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!E(N)}]),onClick:e.withModifiers(w=>C(N),["stop"])},e.toDisplayString(E(N)?"👁":"👁🗨"),11,bo)],8,vo),p(N.type)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(N.devices,w=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:"geo-device-item device-item"},[b[0]||(b[0]=e.createElementVNode("span",{class:"geo-toggle"}," ",-1)),e.createElementVNode("div",{class:"geo-device-dot",style:e.normalizeStyle({background:w.visible?"#10b981":"#ccc"})},null,4),e.createElementVNode("span",{class:"geo-label",title:w.name},e.toDisplayString(w.name),9,ko),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!w.visible}]),onClick:e.withModifiers(x=>g.$emit("toggle-device",w.id,!w.visible),["stop"])},e.toDisplayString(w.visible?"👁":"👁🗨"),11,Eo)]))),128)):e.createCommentVNode("",!0)]))),128)),c.value.length===0?(e.openBlock(),e.createElementBlock("div",wo,"暂无监测设备")):e.createCommentVNode("",!0)]))}}),No=we._export_sfc(Vo,[["__scopeId","data-v-c4ab4eb8"]]),_o={class:"mix-body"},Mo={key:0,class:"geo-filter-bar"},So={class:"geo-time-btns"},Co=["onClick"],xo={class:"geo-toolbar"},Bo=["disabled"],Ao=["disabled"],Lo={class:"geo-mode-group"},Do=["onClick"],Fo={key:1,class:"geo-pick-badge"},Ro={class:"geo-doc-name"},zo={class:"geo-main"},To={key:0,class:"geo-panel-left"},$o={class:"geo-device-count"},Uo={class:"geo-panel-header geo-radar-header"},Po={class:"geo-radar-count"},Oo={class:"geo-tree-scroll"},Go={key:0,class:"geo-loading"},Io={key:1,class:"geo-drop-hint"},Yo={key:2,class:"geo-model-selector"},Ho={key:0,class:"geo-model-dropdown"},qo=["onClick"],Wo={class:"geo-model-radio"},jo={class:"geo-model-radio"},Xo={key:0,class:"geo-model-option geo-model-sub"},Zo={key:1,class:"geo-panel-right"},Jo={class:"geo-radar-stats"},Ko={class:"geo-stat-row"},Qo={class:"geo-stat-val"},er={class:"geo-stat-row"},tr={class:"geo-stat-alarm"},nr={class:"geo-legend"},or={key:0,class:"geo-point-info"},rr={class:"geo-point-title"},ar={class:"geo-point-grid"},sr={key:1,class:"geo-point-hint"},lr={class:"geo-section-controls"},ir=["disabled"],cr={key:1},dr={class:"geo-pick-hint"},ur={key:2,class:"geo-coord"},mr={key:3,class:"geo-coord"},pr=["disabled"],vr={key:0,class:"geo-section-results"},fr={class:"geo-result-count"},gr={class:"geo-section-stats"},hr={class:"geo-status-bar"},yr={key:0},br={class:"geo-group-picker"},kr={class:"geo-group-body"},Er={class:"geo-group-options"},wr=["value"],Vr={DEFAULT_ICON:kt.DEFAULT_ICON,ACTIVE_ICON:kt.ACTIVE_ICON,NAME_CN:"三维地质模型",NAME_EN:"Geo3D Viewer",ORDER:1,PLATFORM:["pc","screen"]},Nr={bgColor:"#f0f2f5",radiusSize:4,isHideTitle:!1,titleColor:"#333",textColor:"#333",fontSize:{value:12,type:"number",label:"component.geo3d.fontSize",min:10,max:24},g3dFileUrl:{value:"",type:"string",label:"component.geo3d.g3dFileUrl"},geologyModelUrl:{value:"",type:"string",label:"component.geo3d.geologyModelUrl"},dtmModelUrl:{value:"",type:"string",label:"component.geo3d.dtmModelUrl"},uavModelUrl:{value:"",type:"string",label:"component.geo3d.uavModelUrl"},satelliteMapUrl:{value:"",type:"string",label:"component.geo3d.satelliteMapUrl"},mapCenterLon:{value:119.4,type:"number",label:"component.geo3d.mapCenterLon"},mapCenterLat:{value:45.37,type:"number",label:"component.geo3d.mapCenterLat"},mapZoom:{value:13,type:"number",label:"component.geo3d.mapZoom",min:1,max:18},radarFileUrl:{value:"",type:"string",label:"component.geo3d.radarFileUrl"},defaultRadarMode:{value:"rr",type:"select",label:"component.geo3d.defaultRadarMode",options:[{label:"位移",value:"rr"},{label:"速度",value:"av"},{label:"告警",value:"cf"}]},showFilterBar:{value:!0,type:"switch",label:"component.geo3d.showFilterBar"},linkChannel:{value:"geo3d",type:"select",label:"component.linkChannel",options:[{label:"geo3d",value:"geo3d"},{label:"custom",value:"custom"}]},customChannel:{value:"",type:"string",label:"component.customChannel",showWhen:{linkChannel:"custom"}}},_r=[{dataType:"radar",name:"监测点数据",object_id:"",fieldE:"e",fieldN:"n",fieldRL:"rl",fieldRR:"rr",fieldAV:"av",fieldCF:"cf"},{dataType:"device",name:"GNSS001",object_id:"",deviceType:"GNSS",e:0,n:0,rl:0,region:"",lineName:"",row1Label:"",row1FV:"",row1Unit:"",row2Label:"",row2FV:"",row2Unit:"",row3Label:"",row3FV:"",row3Unit:"",row4Label:"",row4FV:"",row4Unit:"",row5Label:"",row5FV:"",row5Unit:"",arrowXFV:"",arrowYFV:""}],Mr=["name","object_id","dataType","fieldE","fieldN","fieldRL","fieldRR","fieldAV","fieldCF","deviceType","e","n","rl","region","lineName","row1Label","row1FV","row1Unit","row2Label","row2FV","row2Unit","row3Label","row3FV","row3Unit","row4Label","row4FV","row4Unit","row5Label","row5FV","row5Unit","arrowXFV","arrowYFV"],Sr=["mosaic"],Cr={useAlias:!0,multiObject:!0,source:"mosaic"},xr={DEFAULT:Vr,OPTIONS:Nr,DATA:_r,PARAMS:Mr,SOURCE:Sr,COMMON:Cr},Br=e.defineComponent(Qe(Ke({},xr),{__name:"geo3dViewer",props:{conf:{type:Object,default:()=>({data:[]})},uid:{type:String,default:""},mode:{type:String,default:"edit"},theme:{type:String,default:"light"}},setup(l){const o=l;class t extends mn.BaseComponent{extractStyles(){return{bgColor:this.getOptionValue("bgColor","#f0f2f5"),radiusSize:this.getOptionValue("radiusSize",4),isHideTitle:this.getOptionValue("isHideTitle",!1),titleColor:this.getOptionValue("titleColor","#333"),fontSize:this.getOptionValue("fontSize",12),g3dFileUrl:this.getOptionValue("g3dFileUrl",""),geologyModelUrl:this.getOptionValue("geologyModelUrl",""),dtmModelUrl:this.getOptionValue("dtmModelUrl",""),uavModelUrl:this.getOptionValue("uavModelUrl",""),satelliteMapUrl:this.getOptionValue("satelliteMapUrl",""),mapCenterLon:this.getOptionValue("mapCenterLon",119.4),mapCenterLat:this.getOptionValue("mapCenterLat",45.37),mapZoom:this.getOptionValue("mapZoom",14),radarFileUrl:this.getOptionValue("radarFileUrl",""),defaultRadarMode:this.getOptionValue("defaultRadarMode","rr"),showFilterBar:this.getOptionValue("showFilterBar",!0),linkChannel:(()=>{const n=this.getOptionValue("linkChannel","geo3d"),i=this.getOptionValue("customChannel","");return n==="custom"&&i?i:n})()}}needsHistoryData(){return!0}parseRecordsToPoints(n,i){var Ee,te;const f=i||((te=(Ee=this.props.conf)==null?void 0:Ee.data)==null?void 0:te[0])||{},V=f.fieldE||"e",u=f.fieldN||"n",h=f.fieldRL||"rl",_=f.fieldRR||"rr",T=f.fieldAV||"av",Y=f.fieldCF||"cf",de=[];for(let z=0;z<n.length;z++){const j=n[z];if(!j)continue;const ne=Number(j[V]),ue=Number(j[u]),ze=Number(j[h]);!Number.isFinite(ne)||!Number.isFinite(ue)||!Number.isFinite(ze)||de.push({id:j.object_id||j.id||`pt_${z}`,e:ne,n:ue,rl:ze,rr:Number(j[_])||0,av:Number(j[T])||0,vd:Number(j.vd)||0,cf:Number(j[Y])||0})}return de}setHistoryData(n){var V;if(!n)return;const i=(V=this.props.conf)==null?void 0:V.data;if(!Array.isArray(i))return;const f=n.history;Array.isArray(f)&&i.forEach((u,h)=>{if(!u||y(u)!=="radar")return;const T=Array.isArray(f[h])?f[h]:[];if(T.length===0)return;const Y=this.parseRecordsToPoints(T,u);if(Y.length>0){const de=u.object_id||`__platform_radar_${h}__`;zt(Y,u.name||"平台数据",de)}})}onPreview(){var f;const n=(f=this.props.conf)==null?void 0:f.data;if(!Array.isArray(n))return;Rt();const i=new Set;n.forEach((V,u)=>{const h=y(V),_=this.resolveObjectId(V);if(h==="device"){it(V,_||V.name||`device_${u}`),_&&!i.has(_)&&(i.add(_),this.subscribeFv(_));return}!_||i.has(_)||(i.add(_),this.subscribeFv(_))}),console.log(`[geo3dViewer] onPreview: 已订阅 ${i.size} 个对象`)}setSocketData(n){var V,u;if(!n)return;const i=n.object_id||"";if(!i)return;const f=qe.get(i);if(f)if(f.type==="radar"){const h=n.data;if(!h)return;let _=[];if(Array.isArray(h)?_=h:typeof h=="object"&&(_=[h]),_.length===0)return;const T=(u=(V=this.props.conf)==null?void 0:V.data)==null?void 0:u[f.index],Y=this.parseRecordsToPoints(_,T);Y.length>0&&Tt(Y,i)}else f.type==="device"&&$t(i,n.data)}}const a=new t(o,"geo3dViewer");a.setupLifecycle();const s=a.getStyle(),d=o.conf,c=e.computed(()=>pn.generateTitleStyle(o.conf.options)),p={GNSS:"📍",DEEP:"⚓",RADAR:"📡",SURFACE:"📐",CRACK:"🧱",FIRE:"🔥",WATER:"💧",GROUND:"🌍",STRESS:"📊",VIB:"💥",SAT:"🛸"};function y(r){return(r==null?void 0:r.dataType)==="device"?"device":"radar"}function E(r){const n=[];for(let i=1;i<=5;i++){const f=r[`row${i}Label`]||"",V=r[`row${i}FV`]||"",u=r[`row${i}Unit`]||"";f&&n.push({label:f,fv:V,unit:u})}return n}function C(r){if(r==null)return"--";const n=Number(r);return!isNaN(n)&&typeof r!="boolean"?n.toFixed(2):String(r)}function g(r,n){return r===0&&n===0?null:Math.round(Math.atan2(n,r)*180/Math.PI*10)/10}const b=e.ref(""),N=e.ref(""),w=e.ref([]),x=e.ref(1),G=e.ref(we.dayjs().subtract(1,"day").format("YYYY-MM-DD HH:mm:ss")),I=e.ref(we.dayjs().format("YYYY-MM-DD HH:mm:ss")),U=[{days:1,label:"一天内"},{days:7,label:"一周内"},{days:30,label:"一个月内"}],X=e.computed(()=>{var i;const r=(i=o.conf)==null?void 0:i.data;if(!Array.isArray(r))return[];const n=new Set;return r.forEach(f=>{f.dataType==="device"&&f.region&&n.add(f.region)}),Array.from(n)}),me=e.computed(()=>{var i;const r=(i=o.conf)==null?void 0:i.data;if(!Array.isArray(r))return[];const n=new Set;return r.forEach(f=>{f.dataType==="device"&&f.lineName&&n.add(f.lineName)}),Array.from(n)}),pe=e.computed(()=>{var n;const r=(n=o.conf)==null?void 0:n.data;return Array.isArray(r)?r.filter(i=>i.dataType==="device"&&i.name).map(i=>i.name):[]});function ve(r){x.value=r,I.value=we.dayjs().format("YYYY-MM-DD HH:mm:ss"),G.value=we.dayjs().subtract(r,"day").format("YYYY-MM-DD HH:mm:ss"),H()}function oe(){x.value=0,H()}function H(){a.publish({type:"filter",region:b.value||null,line:N.value||null,points:w.value.length>0?w.value:null,timeRange:{start:G.value,end:I.value},days:x.value})}const fe=e.ref(),m=e.ref(null),S=e.ref(!1),v=e.ref(""),D=e.ref(!1),F=e.ref(""),B=e.ref("就绪"),P=e.ref(null),Z=e.ref(0),Ve=e.ref(0),ce=e.ref();let A=null,re=[];const ge=new Map;function Ne(){A||!ce.value||(A=xe.L.map(ce.value,{zoomControl:!0,attributionControl:!1,maxZoom:17}),A.setView([s.value.mapCenterLat||45.37,s.value.mapCenterLon||119.4],s.value.mapZoom||14),xe.L.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",{maxZoom:19}).addTo(A),setTimeout(()=>{A==null||A.invalidateSize(),Le()},200))}function Me(r,n,i,f){const u=.003352810681182319,h=2*u-u*u,_=(1-Math.sqrt(1-h))/(1+Math.sqrt(1-h)),T=1,Y=r-5e5,te=n/T/(6378137*(1-h/4-3*h*h/64-5*h*h*h/256)),z=te+(3*_/2-27*_*_*_/32)*Math.sin(2*te)+(21*_*_/16-55*_*_*_*_/32)*Math.sin(4*te)+151*_*_*_/96*Math.sin(6*te),j=h/(1-h),ne=j*Math.cos(z)*Math.cos(z),ue=Math.tan(z)*Math.tan(z),ze=6378137/Math.sqrt(1-h*Math.sin(z)*Math.sin(z)),tn=6378137*(1-h)/Math.pow(1-h*Math.sin(z)*Math.sin(z),1.5),$=Y/(ze*T),nn=z-ze*Math.tan(z)/tn*($*$/2-(5+3*ue+10*ne-4*ne*ne-9*j)*$*$*$*$/24+(61+90*ue+298*ne+45*ue*ue-252*j-3*ne*ne)*$*$*$*$*$*$/720),on=120*Math.PI/180,rn=($-(1+2*ue+ne)*$*$*$/6+(5-2*ne+28*ue-3*ne*ne+8*j+24*ue*ue)*$*$*$*$*$/120)/Math.cos(z);return{lat:nn*180/Math.PI,lon:(rn+on)*180/Math.PI}}function Le(){var i;if(!A)return;re.forEach(f=>A.removeLayer(f)),re=[],ge.clear();const r=(i=o.conf)==null?void 0:i.data;if(!Array.isArray(r))return;const n=[];r.forEach(f=>{if(y(f)!=="device")return;const V=Number(f.e),u=Number(f.n);if(!Number.isFinite(V)||!Number.isFinite(u))return;let h,_;if(V>180||u>90){const te=Me(V,u);h=te.lat,_=te.lon}else h=u,_=V;const T=xe.L.divIcon({className:"geo-leaflet-marker",html:`<div class="geo-lm-pin">${p[f.deviceType]||"📍"}</div><div class="geo-lm-name">${f.name||""}</div>`,iconSize:[60,40],iconAnchor:[30,40]}),Y=f.object_id||f.name||"",de=Ae.get(Y)!==!1,Ee=xe.L.marker([h,_],{icon:T});de&&Ee.addTo(A),re.push(Ee),Y&&ge.set(Y,Ee),de&&n.push(xe.L.latLng(h,_))}),n.length>0&&A.fitBounds(xe.L.latLngBounds(n).pad(.2))}function Te(r,n){const i=ge.get(r);!i||!A||(n?i.addTo(A):A.removeLayer(i))}const ae=e.ref(!1),se=e.ref("geology"),he=e.ref(!1);let ye=null;const Se=[{value:"geology",label:"地质模型"},{value:"dtm",label:"DTM面"}],Be=e.computed(()=>{var r;return se.value==="map2d"?he.value?"卫星+无人机":"卫星地图":((r=Se.find(n=>n.value===se.value))==null?void 0:r.label)||"请选择模型"});function $e(r){se.value=r,ae.value=!1;const n=r==="map2d";m.value&&(m.value.renderer.domElement.style.display=n?"none":"",m.value.labelRenderer.domElement.style.display=n?"none":""),n&&!A&&e.nextTick(()=>Ne()),n&&A&&setTimeout(()=>{A==null||A.invalidateSize(),Le()},100),a.publish({type:"modelChange",model:r})}function He(){if(A)if(he.value){const r=s.value.uavModelUrl;r&&(ye=xe.L.tileLayer(r,{maxZoom:19,opacity:.7}).addTo(A))}else ye&&(A.removeLayer(ye),ye=null)}const J=e.ref(!1),q=e.ref(!1),W=e.reactive({x:0,y:0,z:0}),le=e.reactive({x:0,y:0,z:0}),K=e.ref([]),M=e.ref(!1),R=e.ref("none"),Q=e.ref(null),ie=e.ref(null),be=e.computed(()=>R.value==="start"?"点击选取起点":R.value==="end"?"点击选取终点":""),Ce=e.computed(()=>K.value.reduce((r,n)=>r+n.segments.length,0)),L=e.ref([]),O=e.ref("rr"),ee=e.ref(null),St=e.ref("");let Ct=0;const ot=[{id:"east",name:"东帮"},{id:"south",name:"南帮"},{id:"west",name:"西帮"},{id:"north",name:"北帮"}],De=e.ref(!1),Fe=e.ref([]),ke=e.ref(""),rt=e.ref("");let xt=0;const at=e.ref([]),Bt=e.computed(()=>[...ot,...at.value].map(n=>({id:n.id,name:n.name,layers:L.value.filter(i=>i.groupId===n.id)})).filter(n=>n.layers.length>0)),st=[{value:"rr",label:"位移"},{value:"av",label:"速度"},{value:"cf",label:"告警"}];e.computed(()=>L.value.reduce((r,n)=>r+n.points.length,0));const At=e.computed(()=>L.value.filter(r=>r.visible).reduce((r,n)=>r+n.points.length,0)),Lt=e.computed(()=>L.value.filter(r=>r.visible).reduce((r,n)=>r+n.points.filter(i=>i.cf>=300||Math.abs(i.rr)>=50||Math.abs(i.av)>=.5).length,0)),Dt=e.computed(()=>O.value==="rr"?"linear-gradient(90deg,rgb(20,35,150),rgb(0,180,255),rgb(255,230,0),rgb(180,0,0))":O.value==="av"?"linear-gradient(90deg,rgb(0,80,220),rgb(0,220,120),rgb(220,30,30))":"linear-gradient(90deg,rgb(0,170,255),rgb(255,145,0),rgb(180,0,0))"),Ue=e.reactive(new Map),Re=new Map,qe=new Map,Ae=e.reactive(new Map),Pe=e.ref(!0),We=e.computed(()=>{const r=[];return Ue.forEach((n,i)=>{r.push({id:i,name:n.name||i,deviceType:n.deviceType||"未知",icon:n.icon||"📍",visible:Ae.get(i)!==!1})}),r}),Oe=e.computed(()=>We.value.length);function lt(r,n){var i;Ae.set(r,n),(i=m.value)==null||i.setDeviceMarkerVisible(r,n),Te(r,n)}function Ft(r,n){We.value.filter(i=>i.deviceType===r).forEach(i=>lt(i.id,n))}function Rt(){var n;qe.clear();const r=(n=o.conf)==null?void 0:n.data;Array.isArray(r)&&r.forEach((i,f)=>{const V=i==null?void 0:i.object_id;V&&qe.set(V,{type:y(i),index:f})})}const Ge="__platform_radar__";function zt(r,n,i){if(!m.value||r.length===0)return;const f=i||Ge;m.value.removeRadarLayer(f),L.value=L.value.filter(V=>V.id!==f),L.value.push({id:f,name:n,points:r,visible:!0,groupId:void 0}),m.value.addRadarLayer(f,r,O.value),B.value=`平台数据: ${r.length.toLocaleString()} 个监测点已加载`}function Tt(r,n){const i=n||Ge,f=L.value.find(h=>h.id===i)||L.value.find(h=>h.id===Ge);if(!f||!m.value)return;const V=new Map;f.points.forEach((h,_)=>V.set(h.id,_));let u=0;for(const h of r){const _=V.get(h.id);_!==void 0&&(f.points[_].rr=h.rr,f.points[_].av=h.av,f.points[_].cf=h.cf,f.points[_].e=h.e,f.points[_].n=h.n,f.points[_].rl=h.rl,u++)}u>0&&(m.value.updateRadarLayerColors(Ge,f.points,O.value),B.value=`实时更新: ${u} 个点`)}function it(r,n){var te;if(!m.value)return;const i=Number(r.e),f=Number(r.n),V=Number(r.rl);if(!Number.isFinite(i)||!Number.isFinite(f)||!Number.isFinite(V)){console.warn(`[geo3dViewer] 设备 ${r.name} 坐标无效,跳过标注创建`);return}const u=E(r),h=r.deviceType||"",_=p[h]||p[(te=h.toUpperCase)==null?void 0:te.call(h)]||"📍",T={id:n,name:r.name||"",deviceType:h,icon:_,position:{e:i,n:f,rl:V},rows:u.map(z=>Qe(Ke({},z),{value:"--"})),arrowXFV:r.arrowXFV||"",arrowYFV:r.arrowYFV||"",arrowAngle:null,css2dObject:null};Ue.set(n,T);const Y=document.createElement("div"),de=e.createApp(_t,{deviceType:T.deviceType,name:T.name,icon:T.icon,rows:T.rows.map(z=>({label:z.label,value:z.value,unit:z.unit})),arrowAngle:T.arrowAngle});de.mount(Y),Re.set(n,de);const Ee=m.value.addDeviceMarker(n,{e:i,n:f,rl:V},Y);T.css2dObject=Ee,Ae.has(n)||Ae.set(n,!0)}function $t(r,n){var V;const i=Ue.get(r);if(!i||!n)return;if(i.rows.forEach(u=>{u.fv&&(u.value=C(n[u.fv]))}),i.arrowXFV||i.arrowYFV){const u=i.arrowXFV?n[i.arrowXFV]:0,h=i.arrowYFV?n[i.arrowYFV]:0,_=parseFloat(u)||0,T=parseFloat(h)||0;i.arrowAngle=g(_,T)}const f=Re.get(r);if(f&&i.css2dObject){const u=i.css2dObject.element;f.unmount();const h=e.createApp(_t,{deviceType:i.deviceType,name:i.name,icon:i.icon,rows:i.rows.map(_=>({label:_.label,value:_.value,unit:_.unit})),arrowAngle:i.arrowAngle});h.mount(u),Re.set(r,h)}(V=m.value)==null||V.requestUpdate()}function Ut(){var r;for(const[,n]of Re)n.unmount();Re.clear(),Ue.clear(),Ae.clear(),ge.clear(),(r=m.value)==null||r.removeAllDeviceMarkers()}e.onMounted(()=>{var n;if(fe.value){m.value=new Vn(fe.value);const i=m.value.renderer.domElement;i.addEventListener("mousedown",ft),i.addEventListener("mouseup",gt)}O.value=s.value.defaultRadarMode||"rr";const r=s.value.g3dFileUrl;if(r&&typeof r=="string"&&r.trim()&&ct(r.trim()),o.mode==="edit"){const i=(n=o.conf)==null?void 0:n.data;Array.isArray(i)&&i.forEach((f,V)=>{y(f)==="device"&&it(f,f.object_id||f.name||`device_${V}`)})}}),e.onBeforeUnmount(()=>{var r;if(m.value){const n=m.value.renderer.domElement;n.removeEventListener("mousedown",ft),n.removeEventListener("mouseup",gt)}Ut(),re.forEach(n=>A==null?void 0:A.removeLayer(n)),re=[],A==null||A.remove(),A=null,(r=m.value)==null||r.dispose()}),e.watch(()=>s.value.g3dFileUrl,r=>{r&&!S.value&&ct(String(r).trim())});function Pt(){const r=document.createElement("input");r.type="file",r.accept=".g3d",r.onchange=()=>{var n;(n=r.files)!=null&&n[0]&&dt(r.files[0])},r.click()}function Ot(r){var i;const n=(i=r.dataTransfer)==null?void 0:i.files[0];n!=null&&n.name.endsWith(".g3d")?dt(n):n!=null&&n.name.endsWith(".json")&&S.value&&(Fe.value=[n],ke.value="",De.value=!0)}function ct(r){return _e(this,null,function*(){if(m.value){D.value=!0,F.value="从URL加载...";try{const i=yield(yield fetch(r)).text();yield ut(Et(i))}catch(n){B.value=`加载失败: ${n.message}`}finally{D.value=!1}}})}function dt(r){return _e(this,null,function*(){if(m.value){D.value=!0,F.value=`读取 ${r.name}...`;try{const n=yield r.text();yield ut(Et(n))}catch(n){B.value=`加载失败: ${n.message}`}finally{D.value=!1}}})}function ut(r){return _e(this,null,function*(){yield m.value.loadDocument(r,V=>{F.value=V}),P.value=r.rootNode,v.value=r.name,S.value=!0;let n=0,i=0;const f=V=>{n++,V.mesh&&V.mesh.positions.length>0&&i++,V.children.forEach(f)};f(r.rootNode),Z.value=n,Ve.value=i,B.value=`已加载: ${r.name} (${i}个网格)`,a.publish({type:"modelLoaded",modelName:r.name,nodeCount:n,meshNodeCount:i})})}function Gt(r,n){var i;(i=m.value)==null||i.setNodeVisible(r,n)}function It(){J.value=!J.value}let je={x:0,y:0};function Yt(){if(!m.value)return;vt(),R.value="start",B.value="点击模型选取起点";const r=m.value.renderer.domElement;r.addEventListener("mousedown",mt),r.addEventListener("mouseup",pt)}function Ht(){var r;R.value="none",Q.value=null,ie.value=null,(r=m.value)==null||r.clearPickMarkers(),Xe(),B.value="已取消"}function Xe(){var n;const r=(n=m.value)==null?void 0:n.renderer.domElement;r&&(r.removeEventListener("mousedown",mt),r.removeEventListener("mouseup",pt))}function mt(r){je={x:r.clientX,y:r.clientY}}function pt(r){if(!m.value||R.value==="none"||Math.hypot(r.clientX-je.x,r.clientY-je.y)>5)return;const n=m.value.pickPoint(r);if(!n){B.value="未选中模型,请重试";return}R.value==="start"?(Q.value={x:n.x,y:n.y,z:n.z},Object.assign(W,{x:n.x,y:n.y,z:n.z}),m.value.addPickMarker(n,65280),R.value="end",B.value="请选取终点"):(ie.value={x:n.x,y:n.y,z:n.z},Object.assign(le,{x:n.x,y:n.y,z:n.z}),m.value.addPickMarker(n,16729156),m.value.addPickLine(new k.Vector3(W.x,W.y,W.z),n),R.value="none",Xe(),B.value="两点已选,点击计算剖面")}function qt(){return _e(this,null,function*(){if(!(!m.value||q.value||!Q.value||!ie.value)){q.value=!0,B.value="计算剖面...",yield e.nextTick();try{const r=m.value.getVisibleMeshEntries(),n=[new k.Vector3(W.x,W.y,W.z),new k.Vector3(le.x,le.y,le.z)],{results:i,allPositions:f}=yield new Promise(V=>setTimeout(()=>V(xn(r,n)),50));if(K.value=i,m.value.clearSectionResults(),m.value.setTransparency(!0),f.length>0){for(const V of i){const u=[];for(const h of V.segments)u.push(h.start.x,h.start.y,h.start.z,h.end.x,h.end.y,h.end.z);m.value.addSectionLines(new Float32Array(u),V.nodeColor)}m.value.addSectionPath(n)}B.value=`剖面完成: ${Ce.value}条线段`,M.value=!0,a.publish({type:"sectionComputed",count:Ce.value})}catch(r){B.value=`失败: ${r.message}`}finally{q.value=!1}}})}function vt(){var r,n,i;K.value=[],Q.value=null,ie.value=null,R.value="none",M.value=!1,(r=m.value)==null||r.clearSectionResults(),(n=m.value)==null||n.clearPickMarkers(),(i=m.value)==null||i.setTransparency(!1),Xe(),B.value="剖面已清除"}function Wt(){const r=document.createElement("input");r.type="file",r.accept=".json",r.multiple=!0,r.onchange=()=>{var n;(n=r.files)!=null&&n.length&&(Fe.value=Array.from(r.files),ke.value="",De.value=!0)},r.click()}function jt(){let r=ke.value;if(r==="__custom__"){const n=rt.value.trim();if(!n)return;const i=`c_${++xt}`;at.value.push({id:i,name:n}),r=i}De.value=!1,Xt(Fe.value,r),Fe.value=[],rt.value=""}function Ze(){De.value=!1,Fe.value=[]}function Xt(r,n){return _e(this,null,function*(){var i;for(const f of r)try{const V=wn(JSON.parse(yield f.text()));if(!V.points.length){B.value=`${f.name}: 空数据`;continue}const u=`r_${++Ct}`,h=f.name.replace(/\.json$/i,"");L.value.push({id:u,name:h,points:V.points,visible:!0,groupId:n||void 0}),(i=m.value)==null||i.addRadarLayer(u,V.points,O.value),B.value=`已加载「${h}」(${V.points.length.toLocaleString()}点)`}catch(V){B.value=`${f.name}失败: ${V.message}`}})}function Zt(r,n){var f;const i=L.value.find(V=>V.id===r);i&&(i.visible=n,(f=m.value)==null||f.setRadarLayerVisible(r,n))}function Jt(r,n){L.value.filter(i=>i.groupId===r).forEach(i=>{var f;i.visible=n,(f=m.value)==null||f.setRadarLayerVisible(i.id,n)})}function Kt(r){var n;(n=m.value)==null||n.removeRadarLayer(r),L.value=L.value.filter(i=>i.id!==r),L.value.length||(ee.value=null)}function Qt(r){O.value=r,L.value.forEach(n=>{var i;return(i=m.value)==null?void 0:i.updateRadarLayerColors(n.id,n.points,r)})}function en(){var r;(r=m.value)==null||r.clearAllRadarLayers(),L.value=[],ee.value=null,B.value="雷达已清除"}let Je={x:0,y:0};function ft(r){Je={x:r.clientX,y:r.clientY}}function gt(r){var i;if(!m.value||!L.value.length||R.value!=="none"||Math.hypot(r.clientX-Je.x,r.clientY-Je.y)>5)return;const n=m.value.pickRadarPoint(r);n&&(ee.value=n.point,St.value=((i=L.value.find(f=>f.id===n.layerId))==null?void 0:i.name)||"",B.value=`选中 ${n.point.id} 位移:${n.point.rr.toFixed(2)}mm`,a.publish({type:"radarPointSelected",point:n.point}))}return e.computed(()=>{var r;return((r=st.find(n=>n.value===O.value))==null?void 0:r.label)||""}),e.computed(()=>O.value==="cf"?"0":O.value==="av"?"-2.0":"-200"),e.computed(()=>O.value==="cf"?"737":O.value==="av"?"2.0":"200"),(r,n)=>{const i=et.ElOption,f=et.ElSelect,V=et.ElDatePicker;return e.openBlock(),e.createElementBlock("div",{class:"mix-component geo3d-viewer",style:e.normalizeStyle({background:e.unref(s).bgColor,borderRadius:e.unref(s).radiusSize+"px",fontSize:e.unref(s).fontSize+"px"})},[e.unref(s).isHideTitle?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:"mix-title",style:e.normalizeStyle(c.value)},e.toDisplayString(e.unref(d).caption||e.unref(d).name||"三维地质模型"),5)),e.createElementVNode("div",_o,[e.unref(s).showFilterBar?(e.openBlock(),e.createElementBlock("div",Mo,[e.createVNode(f,{modelValue:b.value,"onUpdate:modelValue":n[0]||(n[0]=u=>b.value=u),class:"geo-filter-select",size:"small",placeholder:"全部区域",onChange:H},{default:e.withCtx(()=>[e.createVNode(i,{label:"全部区域",value:""}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(X.value,u=>(e.openBlock(),e.createBlock(i,{key:u,label:u,value:u},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e.createVNode(f,{modelValue:N.value,"onUpdate:modelValue":n[1]||(n[1]=u=>N.value=u),class:"geo-filter-select",size:"small",placeholder:"全部监测线",onChange:H},{default:e.withCtx(()=>[e.createVNode(i,{label:"全部监测线",value:""}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(me.value,u=>(e.openBlock(),e.createBlock(i,{key:u,label:u,value:u},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e.createVNode(f,{modelValue:w.value,"onUpdate:modelValue":n[2]||(n[2]=u=>w.value=u),class:"geo-filter-select geo-filter-wide",size:"small",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"全部监测点",onChange:H},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(pe.value,u=>(e.openBlock(),e.createBlock(i,{key:u,label:u,value:u},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e.createElementVNode("div",So,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(U,u=>e.createElementVNode("button",{key:u.days,class:e.normalizeClass(["geo-time-btn",{active:x.value===u.days}]),onClick:h=>ve(u.days)},e.toDisplayString(u.label),11,Co)),64))]),e.createVNode(V,{modelValue:G.value,"onUpdate:modelValue":n[3]||(n[3]=u=>G.value=u),type:"datetime",size:"small",placeholder:"开始时间",format:"YYYY/MM/DD HH:mm","value-format":"YYYY-MM-DD HH:mm:ss",class:"geo-date-picker",onChange:oe},null,8,["modelValue"]),n[13]||(n[13]=e.createElementVNode("span",{class:"geo-date-sep"},"至",-1)),e.createVNode(V,{modelValue:I.value,"onUpdate:modelValue":n[4]||(n[4]=u=>I.value=u),type:"datetime",size:"small",placeholder:"结束时间",format:"YYYY/MM/DD HH:mm","value-format":"YYYY-MM-DD HH:mm:ss",class:"geo-date-picker",onChange:oe},null,8,["modelValue"])])):e.createCommentVNode("",!0),e.createElementVNode("div",xo,[e.createElementVNode("button",{class:"geo-btn",onClick:Pt},"📂 打开"),e.createElementVNode("button",{class:"geo-btn",onClick:Wt,disabled:!S.value},"📡 雷达",8,Bo),e.createElementVNode("button",{class:"geo-btn",onClick:It,disabled:!S.value},"✂️ 剖面",8,Ao),L.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Lo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(st,u=>e.createElementVNode("button",{key:u.value,class:e.normalizeClass(["geo-btn geo-btn-sm",{"geo-btn-primary":O.value===u.value}]),onClick:h=>Qt(u.value)},e.toDisplayString(u.label),11,Do)),64))]),e.createElementVNode("button",{class:"geo-btn geo-btn-sm geo-btn-danger",onClick:en},"清除雷达")],64)):e.createCommentVNode("",!0),n[14]||(n[14]=e.createElementVNode("span",{style:{flex:"1"}},null,-1)),R.value!=="none"?(e.openBlock(),e.createElementBlock("span",Fo,e.toDisplayString(be.value),1)):e.createCommentVNode("",!0),e.createElementVNode("span",Ro,e.toDisplayString(v.value),1)]),e.createElementVNode("div",zo,[S.value?(e.openBlock(),e.createElementBlock("div",To,[n[16]||(n[16]=e.createElementVNode("div",{class:"geo-panel-header"},"模型节点树",-1)),e.createElementVNode("div",{class:"geo-tree-scroll",style:e.normalizeStyle({maxHeight:Oe.value>0||L.value.length>0?Oe.value>0&&L.value.length>0?"34%":"50%":"100%"})},[e.createVNode(Fn,{node:P.value,scene:m.value,onToggleVisible:Gt},null,8,["node","scene"])],4),Oe.value>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",{class:"geo-panel-header geo-device-header",onClick:n[5]||(n[5]=u=>Pe.value=!Pe.value),style:{cursor:"pointer"}},[e.createElementVNode("span",null,e.toDisplayString(Pe.value?"▼":"▶")+" 📍 监测设备",1),e.createElementVNode("span",$o,e.toDisplayString(Oe.value)+"台",1)]),Pe.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"geo-tree-scroll",style:e.normalizeStyle({maxHeight:L.value.length>0?"33%":"50%"})},[e.createVNode(No,{devices:We.value,onToggleDevice:lt,onToggleGroup:Ft},null,8,["devices"])],4)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),L.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Uo,[n[15]||(n[15]=e.createTextVNode("📡 雷达 ",-1)),e.createElementVNode("span",Po,e.toDisplayString(L.value.length)+"层",1)]),e.createElementVNode("div",Oo,[e.createVNode(Jn,{layers:L.value,groups:Bt.value,onToggleLayer:Zt,onToggleGroup:Jt,onRemoveLayer:Kt},null,8,["layers","groups"])])],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"geo-viewport",ref_key:"viewportRef",ref:fe,onDragover:n[9]||(n[9]=e.withModifiers(()=>{},["prevent"])),onDrop:e.withModifiers(Ot,["prevent"])},[D.value?(e.openBlock(),e.createElementBlock("div",Go,[n[17]||(n[17]=e.createElementVNode("div",{class:"geo-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(F.value),1)])):e.createCommentVNode("",!0),!S.value&&!D.value?(e.openBlock(),e.createElementBlock("div",Io,[...n[18]||(n[18]=[e.createElementVNode("div",{style:{"font-size":"36px",opacity:"0.3"}},"📦",-1),e.createElementVNode("p",null,"拖拽 .g3d 到此处或点击打开",-1)])])):e.createCommentVNode("",!0),S.value?(e.openBlock(),e.createElementBlock("div",Yo,[e.createElementVNode("button",{class:"geo-model-btn",onClick:n[6]||(n[6]=u=>ae.value=!ae.value)},e.toDisplayString(Be.value)+" ▼",1),ae.value?(e.openBlock(),e.createElementBlock("div",Ho,[n[21]||(n[21]=e.createElementVNode("div",{class:"geo-model-group-title"},"三维模型",-1)),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(Se,u=>e.createElementVNode("label",{key:u.value,class:e.normalizeClass(["geo-model-option",{active:se.value===u.value}]),onClick:h=>$e(u.value)},[e.createElementVNode("span",Wo,e.toDisplayString(se.value===u.value?"●":"○"),1),e.createElementVNode("span",null,e.toDisplayString(u.label),1)],10,qo)),64)),n[22]||(n[22]=e.createElementVNode("div",{class:"geo-model-divider"},null,-1)),n[23]||(n[23]=e.createElementVNode("div",{class:"geo-model-group-title"},"二维地图",-1)),e.createElementVNode("label",{class:e.normalizeClass(["geo-model-option",{active:se.value==="map2d"}]),onClick:n[7]||(n[7]=u=>$e("map2d"))},[e.createElementVNode("span",jo,e.toDisplayString(se.value==="map2d"?"●":"○"),1),n[19]||(n[19]=e.createElementVNode("span",null,"卫星地图",-1))],2),se.value==="map2d"?(e.openBlock(),e.createElementBlock("label",Xo,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[8]||(n[8]=u=>he.value=u),onChange:He},null,544),[[e.vModelCheckbox,he.value]]),n[20]||(n[20]=e.createElementVNode("span",null,"叠加无人机地图",-1))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("div",{class:"geo-leaflet-map",ref_key:"leafletRef",ref:ce},null,512),[[e.vShow,se.value==="map2d"]])],544),L.value.length>0||J.value?(e.openBlock(),e.createElementBlock("div",Zo,[L.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[26]||(n[26]=e.createElementVNode("div",{class:"geo-panel-header"},"📡 雷达统计",-1)),e.createElementVNode("div",Jo,[e.createElementVNode("div",Ko,[n[24]||(n[24]=e.createElementVNode("span",null,"可见点",-1)),e.createElementVNode("span",Qo,e.toDisplayString(At.value.toLocaleString()),1)]),e.createElementVNode("div",er,[n[25]||(n[25]=e.createElementVNode("span",null,"高风险",-1)),e.createElementVNode("span",tr,e.toDisplayString(Lt.value.toLocaleString()),1)]),e.createElementVNode("div",nr,[e.createElementVNode("div",{class:"geo-legend-bar",style:e.normalizeStyle({background:Dt.value})},null,4)]),ee.value?(e.openBlock(),e.createElementBlock("div",or,[e.createElementVNode("div",rr,e.toDisplayString(ee.value.id),1),e.createElementVNode("div",ar,[e.createElementVNode("span",null,"位移:"+e.toDisplayString(ee.value.rr.toFixed(2))+"mm",1),e.createElementVNode("span",null,"速度:"+e.toDisplayString(ee.value.av.toFixed(3))+"mm/h",1),e.createElementVNode("span",null,"高程:"+e.toDisplayString(ee.value.rl.toFixed(2))+"m",1),e.createElementVNode("span",null,"告警:"+e.toDisplayString(ee.value.cf),1)])])):(e.openBlock(),e.createElementBlock("div",sr,"点击雷达点查看详情"))])],64)):e.createCommentVNode("",!0),J.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[n[27]||(n[27]=e.createElementVNode("div",{class:"geo-panel-header"},"✂️ 剖面工具",-1)),e.createElementVNode("div",lr,[R.value==="none"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"geo-btn geo-btn-primary",style:{width:"100%"},onClick:Yt,disabled:q.value},"选取两点",8,ir)):e.createCommentVNode("",!0),R.value!=="none"?(e.openBlock(),e.createElementBlock("div",cr,[e.createElementVNode("div",dr,e.toDisplayString(be.value),1),e.createElementVNode("button",{class:"geo-btn geo-btn-danger geo-btn-sm",onClick:Ht},"取消")])):e.createCommentVNode("",!0),Q.value?(e.openBlock(),e.createElementBlock("div",ur,"起:("+e.toDisplayString(Q.value.x.toFixed(1))+","+e.toDisplayString(Q.value.y.toFixed(1))+","+e.toDisplayString(Q.value.z.toFixed(1))+")",1)):e.createCommentVNode("",!0),ie.value?(e.openBlock(),e.createElementBlock("div",mr,"终:("+e.toDisplayString(ie.value.x.toFixed(1))+","+e.toDisplayString(ie.value.y.toFixed(1))+","+e.toDisplayString(ie.value.z.toFixed(1))+")",1)):e.createCommentVNode("",!0),Q.value&&ie.value&&R.value==="none"?(e.openBlock(),e.createElementBlock("button",{key:4,class:"geo-btn geo-btn-primary",style:{width:"100%"},onClick:qt,disabled:q.value||!Q.value||!ie.value},e.toDisplayString(q.value?"计算中...":"计算剖面"),9,pr)):e.createCommentVNode("",!0),Q.value||K.value.length>0?(e.openBlock(),e.createElementBlock("button",{key:5,class:"geo-btn geo-btn-danger geo-btn-sm",onClick:vt},"清除")):e.createCommentVNode("",!0)]),K.value.length>0?(e.openBlock(),e.createElementBlock("div",vr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(K.value,u=>(e.openBlock(),e.createElementBlock("div",{key:u.nodeName,class:"geo-result-item"},[e.createElementVNode("div",{class:"geo-color-dot",style:e.normalizeStyle({background:"#"+u.nodeColor.toString(16).padStart(6,"0")})},null,4),e.createElementVNode("span",null,e.toDisplayString(u.nodeName),1),e.createElementVNode("span",fr,e.toDisplayString(u.segments.length)+"段",1)]))),128)),e.createElementVNode("div",gr,"共"+e.toDisplayString(Ce.value)+"条线段",1)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",hr,[e.createElementVNode("span",null,e.toDisplayString(B.value),1),S.value?(e.openBlock(),e.createElementBlock("span",yr,"节点:"+e.toDisplayString(Z.value)+" 网格:"+e.toDisplayString(Ve.value),1)):e.createCommentVNode("",!0)]),e.createVNode(ro,{visible:M.value,results:K.value,startPoint:W,endPoint:le,onClose:n[10]||(n[10]=u=>M.value=!1)},null,8,["visible","results","startPoint","endPoint"])]),De.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"geo-dialog-overlay",onClick:e.withModifiers(Ze,["self"])},[e.createElementVNode("div",br,[e.createElementVNode("div",{class:"geo-group-header"},[n[28]||(n[28]=e.createElementVNode("span",null,"选择分组",-1)),e.createElementVNode("button",{class:"geo-dialog-close",onClick:Ze},"×")]),e.createElementVNode("div",kr,[e.createElementVNode("div",Er,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ot,u=>e.createElementVNode("label",{key:u.id,class:e.normalizeClass(["geo-group-option",{selected:ke.value===u.id}])},[e.withDirectives(e.createElementVNode("input",{type:"radio",value:u.id,"onUpdate:modelValue":n[11]||(n[11]=h=>ke.value=h)},null,8,wr),[[e.vModelRadio,ke.value]]),e.createElementVNode("span",null,"📡 "+e.toDisplayString(u.name),1)],2)),64)),e.createElementVNode("label",{class:e.normalizeClass(["geo-group-option",{selected:ke.value===""}])},[e.withDirectives(e.createElementVNode("input",{type:"radio",value:"","onUpdate:modelValue":n[12]||(n[12]=u=>ke.value=u)},null,512),[[e.vModelRadio,ke.value]]),n[29]||(n[29]=e.createElementVNode("span",null,"📄 不分组",-1))],2)])]),e.createElementVNode("div",{class:"geo-group-footer"},[e.createElementVNode("button",{class:"geo-btn",onClick:Ze},"取消"),e.createElementVNode("button",{class:"geo-btn geo-btn-primary",onClick:jt},"确定")])])])):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default",{},void 0,!0)],4)}}})),Ar=we._export_sfc(Br,[["__scopeId","data-v-c35e371c"]]);exports.default=Ar;
|
|
@@ -28,8 +28,8 @@ var de = (S, o, r) => new Promise((u, i) => {
|
|
|
28
28
|
});
|
|
29
29
|
import { defineComponent as Te, useCssVars as Pe, unref as Ee, ref as U, watch as F, onMounted as Ie, onBeforeUnmount as Oe, openBlock as G, createElementBlock as q, createElementVNode as O, createCommentVNode as Z, toDisplayString as ze, createBlock as Ue, Teleport as Fe, withModifiers as ue, renderSlot as Ne, nextTick as je } from "vue";
|
|
30
30
|
import "html2canvas";
|
|
31
|
-
import { B as Be } from "./BaseComponent-
|
|
32
|
-
import { _ as Ge } from "./index-
|
|
31
|
+
import { B as Be } from "./BaseComponent-Cs11e0k6.js";
|
|
32
|
+
import { _ as Ge } from "./index-B5OsYU5s.js";
|
|
33
33
|
import { U as He, X as me, Y as J, a6 as We, B as qe, a as fe, C as H, az as $e, S as Ve, l as Xe, W as Ye, A as pe, n as K, am as Ze, h as Je, V as Q, R as Ke, r as Qe } from "./three.module-DDLQaQWC.js";
|
|
34
34
|
import { G as et } from "./GLTFLoader-nke8z0Ol.js";
|
|
35
35
|
import { O as tt } from "./OrbitControls-BHOrUcwg.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var ye=Object.defineProperty,ve=Object.defineProperties;var ge=Object.getOwnPropertyDescriptors;var K=Object.getOwnPropertySymbols;var be=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable;var Q=(L,o,n)=>o in L?ye(L,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):L[o]=n,ee=(L,o)=>{for(var n in o||(o={}))be.call(o,n)&&Q(L,n,o[n]);if(K)for(var n of K(o))we.call(o,n)&&Q(L,n,o[n]);return L},te=(L,o)=>ve(L,ge(o));var oe=(L,o,n)=>new Promise((m,l)=>{var a=f=>{try{d(n.next(f))}catch(S){l(S)}},r=f=>{try{d(n.throw(f))}catch(S){l(S)}},d=f=>f.done?m(f.value):Promise.resolve(f.value).then(a,r);d((n=n.apply(L,o)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("vue");require("html2canvas");const Ce=require("./BaseComponent-
|
|
1
|
+
"use strict";var ye=Object.defineProperty,ve=Object.defineProperties;var ge=Object.getOwnPropertyDescriptors;var K=Object.getOwnPropertySymbols;var be=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable;var Q=(L,o,n)=>o in L?ye(L,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):L[o]=n,ee=(L,o)=>{for(var n in o||(o={}))be.call(o,n)&&Q(L,n,o[n]);if(K)for(var n of K(o))we.call(o,n)&&Q(L,n,o[n]);return L},te=(L,o)=>ve(L,ge(o));var oe=(L,o,n)=>new Promise((m,l)=>{var a=f=>{try{d(n.next(f))}catch(S){l(S)}},r=f=>{try{d(n.throw(f))}catch(S){l(S)}},d=f=>f.done?m(f.value):Promise.resolve(f.value).then(a,r);d((n=n.apply(L,o)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("vue");require("html2canvas");const Ce=require("./BaseComponent-eihedT_8.cjs"),ke=require("./index-CikO6qmH.cjs"),g=require("./three.module-CjayKmiG.cjs"),_e=require("./GLTFLoader-DhebSl5W.cjs"),Se=require("./OrbitControls-uuLGjaqy.cjs"),re=require("./CSS2DRenderer-nQ2DN9Uc.cjs"),ne=require("./ele-glbModel-icon-ByACDCrv.cjs"),W=new WeakMap;class Ae extends g.Loader{constructor(o){super(o),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(o){return this.decoderPath=o,this}setDecoderConfig(o){return this.decoderConfig=o,this}setWorkerLimit(o){return this.workerLimit=o,this}load(o,n,m,l){const a=new g.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(o,r=>{this.parse(r,n,l)},m,l)}parse(o,n,m=()=>{}){this.decodeDracoFile(o,n,null,null,g.SRGBColorSpace,m).catch(m)}decodeDracoFile(o,n,m,l,a=g.LinearSRGBColorSpace,r=()=>{}){const d={attributeIDs:m||this.defaultAttributeIDs,attributeTypes:l||this.defaultAttributeTypes,useUniqueIDs:!!m,vertexColorSpace:a};return this.decodeGeometry(o,d).then(n).catch(r)}decodeGeometry(o,n){const m=JSON.stringify(n);if(W.has(o)){const f=W.get(o);if(f.key===m)return f.promise;if(o.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let l;const a=this.workerNextTaskID++,r=o.byteLength,d=this._getWorker(a,r).then(f=>(l=f,new Promise((S,A)=>{l._callbacks[a]={resolve:S,reject:A},l.postMessage({type:"decode",id:a,taskConfig:n,buffer:o},[o])}))).then(f=>this._createGeometry(f.geometry));return d.catch(()=>!0).then(()=>{l&&a&&this._releaseTask(l,a)}),W.set(o,{key:m,promise:d}),d}_createGeometry(o){const n=new g.BufferGeometry;o.index&&n.setIndex(new g.BufferAttribute(o.index.array,1));for(let m=0;m<o.attributes.length;m++){const l=o.attributes[m],a=l.name,r=l.array,d=l.itemSize,f=new g.BufferAttribute(r,d);a==="color"&&(this._assignVertexColorSpace(f,l.vertexColorSpace),f.normalized=!(r instanceof Float32Array)),n.setAttribute(a,f)}return n}_assignVertexColorSpace(o,n){if(n!==g.SRGBColorSpace)return;const m=new g.Color;for(let l=0,a=o.count;l<a;l++)m.fromBufferAttribute(o,l),g.ColorManagement.toWorkingColorSpace(m,g.SRGBColorSpace),o.setXYZ(l,m.r,m.g,m.b)}_loadLibrary(o,n){const m=new g.FileLoader(this.manager);return m.setPath(this.decoderPath),m.setResponseType(n),m.setWithCredentials(this.withCredentials),new Promise((l,a)=>{m.load(o,l,void 0,a)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const o=typeof WebAssembly!="object"||this.decoderConfig.type==="js",n=[];return o?n.push(this._loadLibrary("draco_decoder.js","text")):(n.push(this._loadLibrary("draco_wasm_wrapper.js","text")),n.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(n).then(m=>{const l=m[0];o||(this.decoderConfig.wasmBinary=m[1]);const a=Le.toString(),r=["/* draco decoder */",l,"","/* worker */",a.substring(a.indexOf("{")+1,a.lastIndexOf("}"))].join(`
|
|
2
2
|
`);this.workerSourceURL=URL.createObjectURL(new Blob([r]))}),this.decoderPending}_getWorker(o,n){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const l=new Worker(this.workerSourceURL);l._callbacks={},l._taskCosts={},l._taskLoad=0,l.postMessage({type:"init",decoderConfig:this.decoderConfig}),l.onmessage=function(a){const r=a.data;switch(r.type){case"decode":l._callbacks[r.id].resolve(r);break;case"error":l._callbacks[r.id].reject(r);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+r.type+'"')}},this.workerPool.push(l)}else this.workerPool.sort(function(l,a){return l._taskLoad>a._taskLoad?-1:1});const m=this.workerPool[this.workerPool.length-1];return m._taskCosts[o]=n,m._taskLoad+=n,m})}_releaseTask(o,n){o._taskLoad-=o._taskCosts[n],delete o._callbacks[n],delete o._taskCosts[n]}debug(){console.log("Task load: ",this.workerPool.map(o=>o._taskLoad))}dispose(){for(let o=0;o<this.workerPool.length;++o)this.workerPool[o].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function Le(){let L,o;onmessage=function(r){const d=r.data;switch(d.type){case"init":L=d.decoderConfig,o=new Promise(function(A){L.onModuleLoaded=function(u){A({draco:u})},DracoDecoderModule(L)});break;case"decode":const f=d.buffer,S=d.taskConfig;o.then(A=>{const u=A.draco,h=new u.Decoder;try{const w=n(u,h,new Int8Array(f),S),k=w.attributes.map(y=>y.array.buffer);w.index&&k.push(w.index.array.buffer),self.postMessage({type:"decode",id:d.id,geometry:w},k)}catch(w){console.error(w),self.postMessage({type:"error",id:d.id,error:w.message})}finally{u.destroy(h)}});break}};function n(r,d,f,S){const A=S.attributeIDs,u=S.attributeTypes;let h,w;const k=d.GetEncodedGeometryType(f);if(k===r.TRIANGULAR_MESH)h=new r.Mesh,w=d.DecodeArrayToMesh(f,f.byteLength,h);else if(k===r.POINT_CLOUD)h=new r.PointCloud,w=d.DecodeArrayToPointCloud(f,f.byteLength,h);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!w.ok()||h.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+w.error_msg());const y={index:null,attributes:[]};for(const v in A){const D=self[u[v]];let O,I;if(S.useUniqueIDs)I=A[v],O=d.GetAttributeByUniqueId(h,I);else{if(I=d.GetAttributeId(h,r[A[v]]),I===-1)continue;O=d.GetAttribute(h,I)}const M=l(r,d,h,v,D,O);v==="color"&&(M.vertexColorSpace=S.vertexColorSpace),y.attributes.push(M)}return k===r.TRIANGULAR_MESH&&(y.index=m(r,d,h)),r.destroy(h),y}function m(r,d,f){const A=f.num_faces()*3,u=A*4,h=r._malloc(u);d.GetTrianglesUInt32Array(f,u,h);const w=new Uint32Array(r.HEAPF32.buffer,h,A).slice();return r._free(h),{array:w,itemSize:1}}function l(r,d,f,S,A,u){const h=u.num_components(),k=f.num_points()*h,y=k*A.BYTES_PER_ELEMENT,v=a(r,A),D=r._malloc(y);d.GetAttributeDataArrayForAllPoints(f,u,v,y,D);const O=new A(r.HEAPF32.buffer,D,k).slice();return r._free(D),{name:S,array:O,itemSize:h}}function a(r,d){switch(d){case Float32Array:return r.DT_FLOAT32;case Int8Array:return r.DT_INT8;case Int16Array:return r.DT_INT16;case Int32Array:return r.DT_INT32;case Uint8Array:return r.DT_UINT8;case Uint16Array:return r.DT_UINT16;case Uint32Array:return r.DT_UINT32}}}const xe={key:0,class:"loading-overlay"},De={key:1,class:"error-overlay"},Re={class:"error-text"},Ee={class:"component-modal-wrapper"},Te={DEFAULT_ICON:ne.DEFAULT_ICON,ACTIVE_ICON:ne.ACTIVE_ICON,NAME_CN:"三维模型",NAME_EN:"3D Model",ORDER:6,PLATFORM:["pc","screen"]},Me={bgColor:{value:"#ffffff",type:"color",label:"setting.bgColor",hideAlpha:!0},modelUrl:{value:"",type:"string",label:"component.glbModel.modelUrl"},modelScale:{value:1,type:"number",label:"component.glbModel.modelScale",min:.1,max:10,step:.1},autoRotate:{value:!0,type:"checkbox",label:"component.glbModel.autoRotate"},rotateSpeed:{value:1,type:"number",label:"component.glbModel.rotateSpeed",min:.1,max:5,step:.1},lightIntensity:{value:1,type:"number",label:"component.glbModel.lightIntensity",min:0,max:5,step:.1},cameraDistance:{value:5,type:"number",label:"component.glbModel.cameraDistance",min:1,max:20,step:.5}},Ie=[],Pe=["name","fv","object_id","icon","chartType","targetComponentId","posX","posY","posZ"],Oe=["mosaic","statistics","calculate","statisticsRealtime","calculateRealtime"],Ne={useAlias:!1,multiObject:!1,source:"mosaic"},Ue={DEFAULT:Te,OPTIONS:Me,DATA:Ie,PARAMS:Pe,SOURCE:Oe,COMMON:Ne},ze=s.defineComponent(te(ee({},Ue),{__name:"glbModel",props:{conf:{type:Object,default:()=>({data:[]})},mode:{type:String,default:"edit"},uid:{type:String,default:""},theme:{type:String,default:"light"}},setup(L,{expose:o}){s.useCssVars(e=>({c296d046:s.unref(a).bgColor}));const n=L;class m extends Ce.BaseComponent{extractStyles(){var c,i,p,C,_,x,R,E,U,P,z,q;const{options:t}=this.props.conf;return{bgColor:((c=t==null?void 0:t.bgColor)==null?void 0:c.value)||"#ffffff",modelUrl:((i=t==null?void 0:t.modelUrl)==null?void 0:i.value)||"",modelScale:(C=(p=t==null?void 0:t.modelScale)==null?void 0:p.value)!=null?C:1,autoRotate:(x=(_=t==null?void 0:t.autoRotate)==null?void 0:_.value)!=null?x:!0,rotateSpeed:(E=(R=t==null?void 0:t.rotateSpeed)==null?void 0:R.value)!=null?E:1,lightIntensity:(P=(U=t==null?void 0:t.lightIntensity)==null?void 0:U.value)!=null?P:1,cameraDistance:(q=(z=t==null?void 0:t.cameraDistance)==null?void 0:z.value)!=null?q:5}}}const l=new m(n,"glbModel");l.setupLifecycle();const a=l.getStyle(),r=s.ref(),d=s.ref(),f=s.ref(!1),S=s.ref(""),A=s.ref(a.value.autoRotate);let u,h,w,k,y,v,D=0,O,I;const M=s.ref([]),N=new Map,V=s.ref(!1),B=s.ref();let b=null;const $=()=>{if(b){const e=b._originalParent;e&&(e.appendChild(b),delete b._originalParent),b.style.visibility="hidden",b.style.position="absolute",b.style.zIndex="-1",b=null}V.value=!1,B.value&&(B.value.innerHTML="")},ae=()=>{var C;if(!d.value||!r.value)return;D&&(cancelAnimationFrame(D),D=0);const e=r.value.clientWidth,t=r.value.clientHeight;u=new g.Scene,u.background=new g.Color(a.value.bgColor),h=new g.PerspectiveCamera(45,e/t,.1,1e3),h.position.set(0,0,a.value.cameraDistance),w=new g.WebGLRenderer({canvas:d.value,antialias:!0,alpha:!0,powerPreference:"high-performance"}),w.setSize(e,t),w.setPixelRatio(Math.min(window.devicePixelRatio,2)),w.shadowMap.enabled=!1;const c=new g.AmbientLight(16777215,a.value.lightIntensity*.5);u.add(c);const i=new g.DirectionalLight(16777215,a.value.lightIntensity);i.position.set(5,5,5),u.add(i);const p=new g.DirectionalLight(16777215,a.value.lightIntensity*.3);p.position.set(-5,-5,-5),u.add(p),y=new Se.OrbitControls(h,w.domElement),y.enableDamping=!0,y.dampingFactor=.05,y.autoRotate=A.value,y.autoRotateSpeed=a.value.rotateSpeed,y.enableZoom=!0,y.enablePan=!1,y.enableRotate=!0,y.minDistance=.5,y.maxDistance=50,y.zoomSpeed=1,y.target.set(0,0,0),k=new re.CSS2DRenderer,k.setSize(e,t),k.domElement.style.position="absolute",k.domElement.style.top="0",k.domElement.style.left="0",k.domElement.style.pointerEvents="none",r.value.appendChild(k.domElement),O=new g.Raycaster,I=new g.Vector2,n.mode==="edit"&&((C=d.value)==null||C.addEventListener("dblclick",Y)),X()},se=e=>oe(null,null,function*(){if(!e){S.value="请设置模型URL";return}f.value=!0,S.value="";const t=new _e.GLTFLoader,c=new Ae;c.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.6/"),c.setDecoderConfig({type:"js"}),t.setDRACOLoader(c);try{const i=yield t.loadAsync(e);v&&(u.remove(v),v.traverse(T=>{T.geometry&&T.geometry.dispose(),T.material&&(Array.isArray(T.material)?T.material.forEach(j=>j.dispose()):T.material.dispose())})),v=i.scene;let p=0,C=0;v.traverse(T=>{if(T.isMesh&&T.material){p++;const j=J=>{const pe=J.color||new g.Color(13421772),he=J.map,H=new g.MeshStandardMaterial({color:pe,map:he,metalness:.2,roughness:.8});return delete H.onBuild,delete H.onBeforeCompile,C++,H};Array.isArray(T.material)?T.material=T.material.map(j):T.material=j(T.material)}});const _=new g.Box3().setFromObject(v),x=_.getSize(new g.Vector3),R=_.getCenter(new g.Vector3),E=Math.max(x.x,x.y,x.z),P=E>0?1/E:1;v.scale.setScalar(P*a.value.modelScale),v.position.x=-R.x*P*a.value.modelScale,v.position.y=-R.y*P*a.value.modelScale,v.position.z=-R.z*P*a.value.modelScale,u.add(v);const z=_.getSize(new g.Vector3),fe=Math.max(z.x,z.y,z.z)*P*2.5;h.position.set(0,0,Math.max(fe,a.value.cameraDistance)),y.update(),f.value=!1,me()}catch(i){S.value=`加载模型失败: ${i.message||"未知错误"}`,f.value=!1}}),X=()=>{if(!(!u||!h||!w||!y)){D=requestAnimationFrame(X);try{y.update(),w.render(u,h),k&&k.render(u,h)}catch(e){S.value=`渲染错误: ${e.message||"未知错误"}`,D&&(cancelAnimationFrame(D),D=0)}}},Y=e=>{var i,p;if(!v||!r.value)return;const t=r.value.getBoundingClientRect();I.x=(e.clientX-t.left)/t.width*2-1,I.y=-((e.clientY-t.top)/t.height)*2+1,O.setFromCamera(I,h);const c=O.intersectObject(v,!0);if(c.length>0){const C=c[0].point,_=v.worldToLocal(C.clone()),x=((p=(i=n.conf)==null?void 0:i.data)==null?void 0:p.length)||0,R={name:`标记 ${x+1}`,fv:"",object_id:"",icon:"🛜",posX:_.x,posY:_.y,posZ:_.z};n.conf&&Array.isArray(n.conf.data)&&n.conf.data.push(R);const E={id:`marker_${x}`,position:{x:_.x,y:_.y,z:_.z},label:R.name,objectId:"",fv:"",value:""};M.value.push(E),Z(E)}},Z=(e,t="📍")=>{const c=document.createElement("div");c.className="model-marker",c.dataset.markerId=e.id,c.innerHTML=`
|
|
3
3
|
<div class="marker-icon">${t}</div>
|
|
4
4
|
${e.value?`<div class="marker-value">${e.value}</div>`:""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var $=Object.defineProperty,J=Object.defineProperties;var K=Object.getOwnPropertyDescriptors;var O=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var L=(d,p,i)=>p in d?$(d,p,{enumerable:!0,configurable:!0,writable:!0,value:i}):d[p]=i,C=(d,p)=>{for(var i in p||(p={}))H.call(p,i)&&L(d,i,p[i]);if(O)for(var i of O(p))W.call(p,i)&&L(d,i,p[i]);return d},N=(d,p)=>J(d,K(p));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("element-plus/es");require("element-plus/es/components/base/style/css");require("element-plus/es/components/select/style/css");require("element-plus/es/components/option/style/css");const t=require("vue"),Q=require("./safeI18n-D-TYNVsv.cjs"),I=require("./index-DoEyCVDU.cjs"),E=require("./ele-ctrSet-icon-DCsPO0tL.cjs"),X={class:"section-header"},Y={class:"section-title"},Z={class:"object-toolbar"},ee={class:"toolbar-field"},le={class:"field-label"},te={class:"toolbar-field object-input-field"},oe={class:"field-label"},ne={DEFAULT_ICON:E.DEFAULT_ICON,ACTIVE_ICON:E.ACTIVE_ICON,NAME_CN:"全局对象切换",NAME_EN:"Global Object Selector",ORDER:21,PLATFORM:["pc","screen"]},ae={bgColor:{value:"#ffffff",type:"color",label:"setting.bgColor"},textColor:{value:"#333333",type:"color",label:"setting.textColor"},accentColor:{value:"#409eff",type:"color",label:"component.options.accentColor"},borderColor:{value:"#e5e5e5",type:"color",label:"component.options.borderColor"},hideSectionTitle:{value:!1,type:"switch",label:"component.openpitConfigPanel.hideSectionTitle"},sectionTitle:{value:"对象切换",type:"string",label:"component.openpitConfigPanel.label"},groupLabel:{value:"分组",type:"string",label:"component.openpitConfigPanel.objectSelectGroupLabel"},inputLabel:{value:"对象",type:"string",label:"component.openpitConfigPanel.objectSelectInputLabel"},groupPlaceholder:{value:"请选择分组",type:"string",label:"component.openpitConfigPanel.objectSelectGroupPlaceholder"},inputPlaceholder:{value:"请选择对象",type:"string",label:"component.openpitConfigPanel.objectSelectInputPlaceholder"},linkChannel:{value:"deepDisplacement",type:"select",label:"component.linkChannel",options:[{label:"component.linkChannelOptions.deepDisplacement",value:"deepDisplacement"},{label:"component.linkChannelOptions.gnss",value:"gnss"},{label:"component.linkChannelOptions.slope",value:"slope"},{label:"component.linkChannelOptions.device",value:"device"},{label:"component.linkChannelOptions.alarm",value:"alarm"},{label:"component.linkChannelOptions.custom",value:"custom"}]},customChannel:{value:"",type:"string",label:"component.customChannel",showWhen:{linkChannel:"custom"}}},ce=[{key:"objectId",multiple:!1,lengthKey:"length",defaultLength:200,options:[{label:"SJ45",value:"SJ45",remark:"北帮",length:80},{label:"SJ46",value:"SJ46",remark:"南帮",length:100}]}],re=[{key:"key",label:"component.openpitConfigPanel.key",type:"string"},{key:"multiple",label:"component.openpitConfigPanel.multiple",type:"switch"},{key:"lengthKey",label:"component.openpitConfigPanel.lengthKey",type:"string"},{key:"defaultLength",label:"component.openpitConfigPanel.defaultLength",type:"number"},{key:"options",label:"component.openpitConfigPanel.options",type:"table",columns:[{key:"label",label:"component.openpitConfigPanel.optionLabel",type:"string"},{key:"value",label:"component.openpitConfigPanel.optionValue",type:"string"},{key:"remark",label:"component.openpitConfigPanel.optionRemark",type:"string"},{key:"length",label:"component.openpitConfigPanel.optionLength",type:"number"}]}],se=[],ue={useAlias:!1,multiObject:!1,source:""},ie={DEFAULT:ne,OPTIONS:ae,DATA:ce,PARAMS:re,SOURCE:se,COMMON:ue},pe=t.defineComponent(N(C({},ie),{__name:"globalObjectSelector",props:{module:{type:Object,default:null},conf:{type:Object,default:null},state:{type:Object,default:null},uid:{type:String,default:""},hideSectionTitle:{type:Boolean,default:!1},textColor:{type:String,default:"#333333"},accentColor:{type:String,default:"#409eff"},borderColor:{type:String,default:"#e5e5e5"}},emits:["change"],setup(d,{emit:p}){t.useCssVars(e=>({v47807a88:f.value.backgroundColor,v72954404:f.value.borderColor,v238b3fec:f.value.color}));const{t:i}=Q.useSafeI18n(),B=I.useLinkStore(),c=d,y=p,u=t.computed(()=>{var e;return c.module?c.module:Array.isArray((e=c.conf)==null?void 0:e.data)?c.conf.data[0]||{}:c.conf||{}}),f=t.computed(()=>{var l,o,a,n,s;const e=((l=c.conf)==null?void 0:l.options)||{};return{backgroundColor:((o=e==null?void 0:e.bgColor)==null?void 0:o.value)||"#ffffff",color:((a=e==null?void 0:e.textColor)==null?void 0:a.value)||c.textColor,borderColor:((n=e==null?void 0:e.borderColor)==null?void 0:n.value)||c.borderColor,"--accent-color":((s=e==null?void 0:e.accentColor)==null?void 0:s.value)||c.accentColor}}),T=t.computed(()=>{var l,o;const e=((l=c.conf)==null?void 0:l.options)||{};return c.hideSectionTitle||((o=e==null?void 0:e.hideSectionTitle)==null?void 0:o.value)===!0}),b=(e,l)=>e?String(e).includes(".")?i(String(e)):String(e):i(l),G=t.computed(()=>{var e,l,o;return b((o=(l=(e=c.conf)==null?void 0:e.options)==null?void 0:l.sectionTitle)==null?void 0:o.value,"component.openpitConfigPanel.objectSelectLabel")}),w=t.computed(()=>{var e,l,o;return b((o=(l=(e=c.conf)==null?void 0:e.options)==null?void 0:l.groupLabel)==null?void 0:o.value,"component.openpitConfigPanel.objectSelectGroupLabel")}),D=t.computed(()=>{var e,l,o;return b((o=(l=(e=c.conf)==null?void 0:e.options)==null?void 0:l.groupPlaceholder)==null?void 0:o.value,"component.openpitConfigPanel.objectSelectGroupPlaceholder")}),x=t.computed(()=>{var e,l,o;return b((o=(l=(e=c.conf)==null?void 0:e.options)==null?void 0:l.inputLabel)==null?void 0:o.value,"component.openpitConfigPanel.objectSelectInputLabel")}),S=t.computed(()=>{var e,l,o;return b((o=(l=(e=c.conf)==null?void 0:e.options)==null?void 0:l.inputPlaceholder)==null?void 0:o.value,"component.openpitConfigPanel.objectSelectInputPlaceholder")}),g=t.computed(()=>{var l;const e=(l=u.value)==null?void 0:l.options;if(Array.isArray(e))return e;if(!e)return[];if(typeof e=="string")try{const o=JSON.parse(e);return Array.isArray(o)?o:[]}catch(o){return[]}return[]}),F=t.computed(()=>{const e=new Set;return g.value.forEach(l=>{var a;const o=String((a=l==null?void 0:l.remark)!=null?a:"").trim();o&&e.add(o)}),Array.from(e)}),r=t.reactive({selectedGroup:"",selectedValue:"",selectedValues:[]}),v=t.computed(()=>{const e=String(r.selectedGroup||"").trim();return g.value.filter(l=>{var a;const o=String((a=l==null?void 0:l.remark)!=null?a:"");return!(e&&o!==e)})}),q=()=>{var l,o,a,n,s;const e=c.state&&typeof c.state=="object"?c.state:{};r.selectedGroup=String(e.selectedGroup||""),(l=u.value)!=null&&l.multiple?(Array.isArray(e.selectedValues)?r.selectedValues=[...e.selectedValues]:Array.isArray((o=u.value)==null?void 0:o.value)?r.selectedValues=[...u.value.value]:r.selectedValues=[],r.selectedValue=""):(r.selectedValue=(s=(n=e.selectedValue)!=null?n:(a=u.value)==null?void 0:a.value)!=null?s:"",r.selectedValues=[])},M=()=>{var a,n,s;const e=((a=c.conf)==null?void 0:a.options)||{},l=((n=e==null?void 0:e.linkChannel)==null?void 0:n.value)||"deepDisplacement",o=((s=e==null?void 0:e.customChannel)==null?void 0:s.value)||"";return l==="custom"&&o?o:l},z=e=>{var m,P;const l=String(((m=u.value)==null?void 0:m.lengthKey)||"length"),o=g.value.find(h=>{var _;return String((_=h==null?void 0:h.value)!=null?_:"")===String(e)}),a=o==null?void 0:o[l],n=Number(a);if(Number.isFinite(n)&&n>=0)return n;const s=Number((P=u.value)==null?void 0:P.defaultLength);return Number.isFinite(s)&&s>=0?s:200},U=()=>{var s,m;const e=String(((s=u.value)==null?void 0:s.key)||"objectId"),l=((m=u.value)==null?void 0:m.multiple)===!0,o=l?[...r.selectedValues||[]]:r.selectedValue,a=String(l?(r.selectedValues||[])[0]||"":r.selectedValue||""),n=z(a);return{[e]:o,objectId:a,objectLength:n,depthStep:1,objectGroup:r.selectedGroup||""}},k=()=>{var s;const e=M(),l=String(((s=u.value)==null?void 0:s.targetId)||"").trim(),o=U(),a=l?l.split(",").map(m=>m.trim()).filter(m=>m):[],n=C({source:"globalObjectSelector",type:"filter",objectId:o.objectId,objectLength:o.objectLength,depthStep:o.depthStep,filter:o,meta:{channel:e,routeTargets:a}},o);B.publish(e,"globalObjectSelector",n)},V=()=>{var e;!c.state||typeof c.state!="object"||(c.state.selectedGroup=r.selectedGroup,(e=u.value)!=null&&e.multiple?c.state.selectedValues=[...r.selectedValues||[]]:c.state.selectedValue=r.selectedValue)},R=()=>{var l,o;const e=v.value;if((l=u.value)!=null&&l.multiple){const a=new Set(e.map(n=>n.value));r.selectedValues=(r.selectedValues||[]).filter(n=>a.has(n))}else e.some(a=>a.value===r.selectedValue)||(r.selectedValue=((o=e[0])==null?void 0:o.value)||"");V(),k(),y("change")},j=()=>{V(),k(),y("change")};return t.watch(()=>{var e,l,o;return[c.state,(e=u.value)==null?void 0:e.multiple,(l=u.value)==null?void 0:l.value,(o=u.value)==null?void 0:o.options]},()=>q(),{immediate:!0,deep:!0}),(e,l)=>{const o=A.ElOption,a=A.ElSelect;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["object-select-section",{"hide-section-title":T.value}]),style:t.normalizeStyle(f.value)},[t.createElementVNode("div",X,[t.createElementVNode("span",Y,t.toDisplayString(G.value),1)]),t.createElementVNode("div",Z,[t.createElementVNode("div",ee,[t.createElementVNode("span",le,t.toDisplayString(w.value),1),t.createVNode(a,{modelValue:r.selectedGroup,"onUpdate:modelValue":l[0]||(l[0]=n=>r.selectedGroup=n),clearable:"",placeholder:D.value,size:"small",class:"select-control",onChange:R},{default:t.withCtx(()=>[t.createVNode(o,{label:t.unref(i)("component.openpitConfigPanel.allOptionLabel"),value:""},null,8,["label"]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(F.value,n=>(t.openBlock(),t.createBlock(o,{key:n,label:n,value:n},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])]),t.createElementVNode("div",te,[t.createElementVNode("span",oe,t.toDisplayString(x.value),1),u.value.multiple?(t.openBlock(),t.createBlock(a,{key:1,modelValue:r.selectedValues,"onUpdate:modelValue":l[2]||(l[2]=n=>r.selectedValues=n),multiple:"",filterable:"","collapse-tags":"","collapse-tags-tooltip":"",size:"small",placeholder:S.value,class:"select-control select-control-wide",onChange:j},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(v.value,n=>(t.openBlock(),t.createBlock(o,{key:n.value,label:n.remark?`${n.label}(${n.remark})`:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])):(t.openBlock(),t.createBlock(a,{key:0,modelValue:r.selectedValue,"onUpdate:modelValue":l[1]||(l[1]=n=>r.selectedValue=n),filterable:"",clearable:"",size:"small",placeholder:S.value,class:"select-control",onChange:j},{default:t.withCtx(()=>[t.createVNode(o,{label:t.unref(i)("component.openpitConfigPanel.allOptionLabel"),value:""},null,8,["label"]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(v.value,n=>(t.openBlock(),t.createBlock(o,{key:n.value,label:n.remark?`${n.label}(${n.remark})`:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"]))])]),t.renderSlot(e.$slots,"default",{},void 0,!0)],6)}}})),de=I._export_sfc(pe,[["__scopeId","data-v-ca0a35cd"]]);exports.default=de;
|
|
1
|
+
"use strict";var $=Object.defineProperty,J=Object.defineProperties;var K=Object.getOwnPropertyDescriptors;var O=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var L=(d,p,i)=>p in d?$(d,p,{enumerable:!0,configurable:!0,writable:!0,value:i}):d[p]=i,C=(d,p)=>{for(var i in p||(p={}))H.call(p,i)&&L(d,i,p[i]);if(O)for(var i of O(p))W.call(p,i)&&L(d,i,p[i]);return d},N=(d,p)=>J(d,K(p));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("element-plus/es");require("element-plus/es/components/base/style/css");require("element-plus/es/components/select/style/css");require("element-plus/es/components/option/style/css");const t=require("vue"),Q=require("./safeI18n-D-TYNVsv.cjs"),I=require("./index-CikO6qmH.cjs"),E=require("./ele-ctrSet-icon-DCsPO0tL.cjs"),X={class:"section-header"},Y={class:"section-title"},Z={class:"object-toolbar"},ee={class:"toolbar-field"},le={class:"field-label"},te={class:"toolbar-field object-input-field"},oe={class:"field-label"},ne={DEFAULT_ICON:E.DEFAULT_ICON,ACTIVE_ICON:E.ACTIVE_ICON,NAME_CN:"全局对象切换",NAME_EN:"Global Object Selector",ORDER:21,PLATFORM:["pc","screen"]},ae={bgColor:{value:"#ffffff",type:"color",label:"setting.bgColor"},textColor:{value:"#333333",type:"color",label:"setting.textColor"},accentColor:{value:"#409eff",type:"color",label:"component.options.accentColor"},borderColor:{value:"#e5e5e5",type:"color",label:"component.options.borderColor"},hideSectionTitle:{value:!1,type:"switch",label:"component.openpitConfigPanel.hideSectionTitle"},sectionTitle:{value:"对象切换",type:"string",label:"component.openpitConfigPanel.label"},groupLabel:{value:"分组",type:"string",label:"component.openpitConfigPanel.objectSelectGroupLabel"},inputLabel:{value:"对象",type:"string",label:"component.openpitConfigPanel.objectSelectInputLabel"},groupPlaceholder:{value:"请选择分组",type:"string",label:"component.openpitConfigPanel.objectSelectGroupPlaceholder"},inputPlaceholder:{value:"请选择对象",type:"string",label:"component.openpitConfigPanel.objectSelectInputPlaceholder"},linkChannel:{value:"deepDisplacement",type:"select",label:"component.linkChannel",options:[{label:"component.linkChannelOptions.deepDisplacement",value:"deepDisplacement"},{label:"component.linkChannelOptions.gnss",value:"gnss"},{label:"component.linkChannelOptions.slope",value:"slope"},{label:"component.linkChannelOptions.device",value:"device"},{label:"component.linkChannelOptions.alarm",value:"alarm"},{label:"component.linkChannelOptions.custom",value:"custom"}]},customChannel:{value:"",type:"string",label:"component.customChannel",showWhen:{linkChannel:"custom"}}},ce=[{key:"objectId",multiple:!1,lengthKey:"length",defaultLength:200,options:[{label:"SJ45",value:"SJ45",remark:"北帮",length:80},{label:"SJ46",value:"SJ46",remark:"南帮",length:100}]}],re=[{key:"key",label:"component.openpitConfigPanel.key",type:"string"},{key:"multiple",label:"component.openpitConfigPanel.multiple",type:"switch"},{key:"lengthKey",label:"component.openpitConfigPanel.lengthKey",type:"string"},{key:"defaultLength",label:"component.openpitConfigPanel.defaultLength",type:"number"},{key:"options",label:"component.openpitConfigPanel.options",type:"table",columns:[{key:"label",label:"component.openpitConfigPanel.optionLabel",type:"string"},{key:"value",label:"component.openpitConfigPanel.optionValue",type:"string"},{key:"remark",label:"component.openpitConfigPanel.optionRemark",type:"string"},{key:"length",label:"component.openpitConfigPanel.optionLength",type:"number"}]}],se=[],ue={useAlias:!1,multiObject:!1,source:""},ie={DEFAULT:ne,OPTIONS:ae,DATA:ce,PARAMS:re,SOURCE:se,COMMON:ue},pe=t.defineComponent(N(C({},ie),{__name:"globalObjectSelector",props:{module:{type:Object,default:null},conf:{type:Object,default:null},state:{type:Object,default:null},uid:{type:String,default:""},hideSectionTitle:{type:Boolean,default:!1},textColor:{type:String,default:"#333333"},accentColor:{type:String,default:"#409eff"},borderColor:{type:String,default:"#e5e5e5"}},emits:["change"],setup(d,{emit:p}){t.useCssVars(e=>({v47807a88:f.value.backgroundColor,v72954404:f.value.borderColor,v238b3fec:f.value.color}));const{t:i}=Q.useSafeI18n(),B=I.useLinkStore(),c=d,y=p,u=t.computed(()=>{var e;return c.module?c.module:Array.isArray((e=c.conf)==null?void 0:e.data)?c.conf.data[0]||{}:c.conf||{}}),f=t.computed(()=>{var l,o,a,n,s;const e=((l=c.conf)==null?void 0:l.options)||{};return{backgroundColor:((o=e==null?void 0:e.bgColor)==null?void 0:o.value)||"#ffffff",color:((a=e==null?void 0:e.textColor)==null?void 0:a.value)||c.textColor,borderColor:((n=e==null?void 0:e.borderColor)==null?void 0:n.value)||c.borderColor,"--accent-color":((s=e==null?void 0:e.accentColor)==null?void 0:s.value)||c.accentColor}}),T=t.computed(()=>{var l,o;const e=((l=c.conf)==null?void 0:l.options)||{};return c.hideSectionTitle||((o=e==null?void 0:e.hideSectionTitle)==null?void 0:o.value)===!0}),b=(e,l)=>e?String(e).includes(".")?i(String(e)):String(e):i(l),G=t.computed(()=>{var e,l,o;return b((o=(l=(e=c.conf)==null?void 0:e.options)==null?void 0:l.sectionTitle)==null?void 0:o.value,"component.openpitConfigPanel.objectSelectLabel")}),w=t.computed(()=>{var e,l,o;return b((o=(l=(e=c.conf)==null?void 0:e.options)==null?void 0:l.groupLabel)==null?void 0:o.value,"component.openpitConfigPanel.objectSelectGroupLabel")}),D=t.computed(()=>{var e,l,o;return b((o=(l=(e=c.conf)==null?void 0:e.options)==null?void 0:l.groupPlaceholder)==null?void 0:o.value,"component.openpitConfigPanel.objectSelectGroupPlaceholder")}),x=t.computed(()=>{var e,l,o;return b((o=(l=(e=c.conf)==null?void 0:e.options)==null?void 0:l.inputLabel)==null?void 0:o.value,"component.openpitConfigPanel.objectSelectInputLabel")}),S=t.computed(()=>{var e,l,o;return b((o=(l=(e=c.conf)==null?void 0:e.options)==null?void 0:l.inputPlaceholder)==null?void 0:o.value,"component.openpitConfigPanel.objectSelectInputPlaceholder")}),g=t.computed(()=>{var l;const e=(l=u.value)==null?void 0:l.options;if(Array.isArray(e))return e;if(!e)return[];if(typeof e=="string")try{const o=JSON.parse(e);return Array.isArray(o)?o:[]}catch(o){return[]}return[]}),F=t.computed(()=>{const e=new Set;return g.value.forEach(l=>{var a;const o=String((a=l==null?void 0:l.remark)!=null?a:"").trim();o&&e.add(o)}),Array.from(e)}),r=t.reactive({selectedGroup:"",selectedValue:"",selectedValues:[]}),v=t.computed(()=>{const e=String(r.selectedGroup||"").trim();return g.value.filter(l=>{var a;const o=String((a=l==null?void 0:l.remark)!=null?a:"");return!(e&&o!==e)})}),q=()=>{var l,o,a,n,s;const e=c.state&&typeof c.state=="object"?c.state:{};r.selectedGroup=String(e.selectedGroup||""),(l=u.value)!=null&&l.multiple?(Array.isArray(e.selectedValues)?r.selectedValues=[...e.selectedValues]:Array.isArray((o=u.value)==null?void 0:o.value)?r.selectedValues=[...u.value.value]:r.selectedValues=[],r.selectedValue=""):(r.selectedValue=(s=(n=e.selectedValue)!=null?n:(a=u.value)==null?void 0:a.value)!=null?s:"",r.selectedValues=[])},M=()=>{var a,n,s;const e=((a=c.conf)==null?void 0:a.options)||{},l=((n=e==null?void 0:e.linkChannel)==null?void 0:n.value)||"deepDisplacement",o=((s=e==null?void 0:e.customChannel)==null?void 0:s.value)||"";return l==="custom"&&o?o:l},z=e=>{var m,P;const l=String(((m=u.value)==null?void 0:m.lengthKey)||"length"),o=g.value.find(h=>{var _;return String((_=h==null?void 0:h.value)!=null?_:"")===String(e)}),a=o==null?void 0:o[l],n=Number(a);if(Number.isFinite(n)&&n>=0)return n;const s=Number((P=u.value)==null?void 0:P.defaultLength);return Number.isFinite(s)&&s>=0?s:200},U=()=>{var s,m;const e=String(((s=u.value)==null?void 0:s.key)||"objectId"),l=((m=u.value)==null?void 0:m.multiple)===!0,o=l?[...r.selectedValues||[]]:r.selectedValue,a=String(l?(r.selectedValues||[])[0]||"":r.selectedValue||""),n=z(a);return{[e]:o,objectId:a,objectLength:n,depthStep:1,objectGroup:r.selectedGroup||""}},k=()=>{var s;const e=M(),l=String(((s=u.value)==null?void 0:s.targetId)||"").trim(),o=U(),a=l?l.split(",").map(m=>m.trim()).filter(m=>m):[],n=C({source:"globalObjectSelector",type:"filter",objectId:o.objectId,objectLength:o.objectLength,depthStep:o.depthStep,filter:o,meta:{channel:e,routeTargets:a}},o);B.publish(e,"globalObjectSelector",n)},V=()=>{var e;!c.state||typeof c.state!="object"||(c.state.selectedGroup=r.selectedGroup,(e=u.value)!=null&&e.multiple?c.state.selectedValues=[...r.selectedValues||[]]:c.state.selectedValue=r.selectedValue)},R=()=>{var l,o;const e=v.value;if((l=u.value)!=null&&l.multiple){const a=new Set(e.map(n=>n.value));r.selectedValues=(r.selectedValues||[]).filter(n=>a.has(n))}else e.some(a=>a.value===r.selectedValue)||(r.selectedValue=((o=e[0])==null?void 0:o.value)||"");V(),k(),y("change")},j=()=>{V(),k(),y("change")};return t.watch(()=>{var e,l,o;return[c.state,(e=u.value)==null?void 0:e.multiple,(l=u.value)==null?void 0:l.value,(o=u.value)==null?void 0:o.options]},()=>q(),{immediate:!0,deep:!0}),(e,l)=>{const o=A.ElOption,a=A.ElSelect;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["object-select-section",{"hide-section-title":T.value}]),style:t.normalizeStyle(f.value)},[t.createElementVNode("div",X,[t.createElementVNode("span",Y,t.toDisplayString(G.value),1)]),t.createElementVNode("div",Z,[t.createElementVNode("div",ee,[t.createElementVNode("span",le,t.toDisplayString(w.value),1),t.createVNode(a,{modelValue:r.selectedGroup,"onUpdate:modelValue":l[0]||(l[0]=n=>r.selectedGroup=n),clearable:"",placeholder:D.value,size:"small",class:"select-control",onChange:R},{default:t.withCtx(()=>[t.createVNode(o,{label:t.unref(i)("component.openpitConfigPanel.allOptionLabel"),value:""},null,8,["label"]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(F.value,n=>(t.openBlock(),t.createBlock(o,{key:n,label:n,value:n},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])]),t.createElementVNode("div",te,[t.createElementVNode("span",oe,t.toDisplayString(x.value),1),u.value.multiple?(t.openBlock(),t.createBlock(a,{key:1,modelValue:r.selectedValues,"onUpdate:modelValue":l[2]||(l[2]=n=>r.selectedValues=n),multiple:"",filterable:"","collapse-tags":"","collapse-tags-tooltip":"",size:"small",placeholder:S.value,class:"select-control select-control-wide",onChange:j},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(v.value,n=>(t.openBlock(),t.createBlock(o,{key:n.value,label:n.remark?`${n.label}(${n.remark})`:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])):(t.openBlock(),t.createBlock(a,{key:0,modelValue:r.selectedValue,"onUpdate:modelValue":l[1]||(l[1]=n=>r.selectedValue=n),filterable:"",clearable:"",size:"small",placeholder:S.value,class:"select-control",onChange:j},{default:t.withCtx(()=>[t.createVNode(o,{label:t.unref(i)("component.openpitConfigPanel.allOptionLabel"),value:""},null,8,["label"]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(v.value,n=>(t.openBlock(),t.createBlock(o,{key:n.value,label:n.remark?`${n.label}(${n.remark})`:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"]))])]),t.renderSlot(e.$slots,"default",{},void 0,!0)],6)}}})),de=I._export_sfc(pe,[["__scopeId","data-v-ca0a35cd"]]);exports.default=de;
|
|
@@ -16,7 +16,7 @@ import "element-plus/es/components/select/style/css";
|
|
|
16
16
|
import "element-plus/es/components/option/style/css";
|
|
17
17
|
import { defineComponent as ae, useCssVars as ce, computed as d, reactive as re, watch as se, openBlock as m, createElementBlock as y, normalizeStyle as ue, normalizeClass as ie, createElementVNode as f, toDisplayString as j, createVNode as P, withCtx as _, unref as z, Fragment as O, renderList as L, createBlock as v, renderSlot as pe } from "vue";
|
|
18
18
|
import { u as de } from "./safeI18n-C5fF3KBo.js";
|
|
19
|
-
import { o as be, _ as me } from "./index-
|
|
19
|
+
import { o as be, _ as me } from "./index-B5OsYU5s.js";
|
|
20
20
|
import { A as fe, D as ge } from "./ele-ctrSet-icon-BtKGrCid.js";
|
|
21
21
|
const ve = { class: "section-header" }, he = { class: "section-title" }, ye = { class: "object-toolbar" }, Ce = { class: "toolbar-field" }, Se = { class: "field-label" }, ke = { class: "toolbar-field object-input-field" }, Ve = { class: "field-label" }, je = {
|
|
22
22
|
DEFAULT_ICON: ge,
|