mixdashboards 1.0.71 → 1.0.73

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.
Files changed (470) hide show
  1. package/dist/{BaseComponent-D5tlYehc.js → BaseComponent-CBagahPU.js} +138 -109
  2. package/dist/BaseComponent-Chnv4fBT.cjs +1 -0
  3. package/dist/{EChartComponentBase-CAabYXSj.js → EChartComponentBase-cFfawl6h.js} +2 -2
  4. package/dist/{EChartComponentBase-D4wMej9X.cjs → EChartComponentBase-dLE5F7Tt.cjs} +1 -1
  5. package/dist/{EmergencyPlanPanel-Th4ZNdCb.js → EmergencyPlanPanel--jTGG89o.js} +1 -1
  6. package/dist/{EmergencyPlanPanel-D96XjhRq.cjs → EmergencyPlanPanel-BJb-Bbxh.cjs} +1 -1
  7. package/dist/{HistoryPlanDialog-rn2Bp0Gx.cjs → HistoryPlanDialog-C-QPdV4V.cjs} +1 -1
  8. package/dist/{HistoryPlanDialog-D2mQLhkO.js → HistoryPlanDialog-DerClU2U.js} +1 -1
  9. package/dist/{MonitoringMap-BZ98NYTJ.cjs → MonitoringMap-B6RMbiIS.cjs} +1 -1
  10. package/dist/{MonitoringMap-Coozb35G.js → MonitoringMap-CNaGsq83.js} +2 -2
  11. package/dist/UniverSheet-CM-vvc23.cjs +1 -0
  12. package/dist/{UniverSheet-CJCunVAM.js → UniverSheet-KI09RqKm.js} +16 -15
  13. package/dist/{accelerationChart-DacjcSHD.js → accelerationChart-D7KNk5fI.js} +61 -59
  14. package/dist/accelerationChart-HBCb2bRW.cjs +6 -0
  15. package/dist/{actionItem-d-4p5HZK.js → actionItem-BmNYzAXu.js} +48 -41
  16. package/dist/actionItem-Bx4mW0jP.cjs +1 -0
  17. package/dist/alarmLevelChart-Cvnw4z1w.cjs +2 -0
  18. package/dist/{alarmLevelChart-DddN1NVy.js → alarmLevelChart-DdSw2s7W.js} +91 -46
  19. package/dist/{alertTable-Q-Waa5jf.js → alertTable-CC3c8DFb.js} +40 -39
  20. package/dist/alertTable-hH6HA9pY.cjs +1 -0
  21. package/dist/aliasObjectSelectorDemo-C7E_fnCf.cjs +1 -0
  22. package/dist/{aliasObjectSelectorDemo-BZygQw9k.js → aliasObjectSelectorDemo-yDiavTpG.js} +11 -10
  23. package/dist/{annualRainfallChart-CthANCvn.js → annualRainfallChart-B9ar8vo8.js} +32 -30
  24. package/dist/annualRainfallChart-C6JLSPIf.cjs +1 -0
  25. package/dist/{aqi-C_HnKsjh.js → aqi-BNc5QCM3.js} +21 -19
  26. package/dist/{aqi-BFW_8xYd.cjs → aqi-DEiCVIVa.cjs} +3 -3
  27. package/dist/aqiIndass-Bowic_Pc.cjs +3 -0
  28. package/dist/{aqiIndass-NVRa3lmj.js → aqiIndass-CAGV8_Uf.js} +41 -40
  29. package/dist/{areaDeformCurve-mQiOHdtN.js → areaDeformCurve-CSpR060t.js} +51 -49
  30. package/dist/areaDeformCurve-CVy23kV2.cjs +1 -0
  31. package/dist/arrayCard-NqoQKcE9.cjs +1 -0
  32. package/dist/{arrayCard-DZitcjMs.js → arrayCard-PPDb7U6X.js} +29 -28
  33. package/dist/{audio-CDAMVEgC.js → audio-BJPFIQIr.js} +42 -41
  34. package/dist/audio-Bw-GaYe1.cjs +1 -0
  35. package/dist/{bar--JrlRud9.js → bar-C38h_mUA.js} +72 -70
  36. package/dist/{bar-C7uQADV1.cjs → bar-Cru6WosS.cjs} +2 -2
  37. package/dist/bmp-BXaEkkpa.cjs +1 -0
  38. package/dist/{bmp-DrVcnYxy.js → bmp-BnSOaFEr.js} +15 -14
  39. package/dist/box-CKuGsh2k.cjs +1 -0
  40. package/dist/{box-szcLhted.js → box-DIHVOqrV.js} +58 -57
  41. package/dist/chartConfigPanel-BVdVXbs6.cjs +1 -0
  42. package/dist/{chartConfigPanel-C32o1gyJ.js → chartConfigPanel-D1rO6SGh.js} +86 -79
  43. package/dist/{circleBar-CeL2rqMJ.cjs → circleBar-BzXqA-Cz.cjs} +3 -3
  44. package/dist/{circleBar-BmTjsLHo.js → circleBar-CBLcp4Xi.js} +27 -25
  45. package/dist/{clock-CuQpD76K.js → clock-4AMfFDGC.js} +35 -34
  46. package/dist/clock-DmWyBpo-.cjs +1 -0
  47. package/dist/clt-CmPPtp9c.cjs +1 -0
  48. package/dist/{clt-XCswxZ6i.js → clt-D5i_8-pq.js} +60 -59
  49. package/dist/cmc-8jH3DGv9.cjs +1 -0
  50. package/dist/{cmc-CXmAv6fz.js → cmc-Cjb5w3om.js} +23 -22
  51. package/dist/{cmp-Duz_v-LC.js → cmp-COJzlQPa.js} +19 -18
  52. package/dist/{cmp-DmpxjexT.cjs → cmp-CpmGtNal.cjs} +2 -2
  53. package/dist/{composite-CWgy-w61.js → composite-CsFgfxih.js} +37 -36
  54. package/dist/{composite-DdHASMFQ.cjs → composite-DLmzZNIj.cjs} +3 -3
  55. package/dist/{conclusionCard-BtB0rARK.js → conclusionCard-BQUlLFde.js} +15 -14
  56. package/dist/conclusionCard-C-TT6znN.cjs +1 -0
  57. package/dist/{controlList-C0AQ8Yb8.js → controlList-5D5UIDQL.js} +40 -38
  58. package/dist/controlList-CIwzKylK.cjs +1 -0
  59. package/dist/{controlRecordList-CSPKG1HU.js → controlRecordList-Cp5mmEQ1.js} +55 -53
  60. package/dist/controlRecordList-uEQ3ohmB.cjs +1 -0
  61. package/dist/controlRecordListAPP-B5d4x_xH.cjs +1 -0
  62. package/dist/controlRecordListAPP-p_skbQVD.js +502 -0
  63. package/dist/{crd-DQruf9o3.js → crd-8gRWMf2Y.js} +14 -13
  64. package/dist/crd-Dfl2XKAx.cjs +1 -0
  65. package/dist/{ctrBtn-jEWTt_f2.js → ctrBtn-BzmFxucy.js} +106 -107
  66. package/dist/ctrBtn-OOgL9esv.cjs +1 -0
  67. package/dist/{ctrSet-C4wCODMY.js → ctrSet-Btg2T9w6.js} +24 -23
  68. package/dist/ctrSet-CifyJt05.cjs +1 -0
  69. package/dist/ctrSwitch-6nMHbIE7.js +206 -0
  70. package/dist/ctrSwitch-C8mwxLPe.cjs +1 -0
  71. package/dist/{dataManagement-BQVZS7Hi.js → dataManagement-BZiSmktM.js} +52 -45
  72. package/dist/dataManagement-sQpuBaDz.cjs +1 -0
  73. package/dist/{dataReport-vP1LBJjE.js → dataReport-CbJzXeCE.js} +25 -24
  74. package/dist/{dataReport-DRopth3A.cjs → dataReport-D9Q9c43B.cjs} +2 -2
  75. package/dist/{dataTable-C2AgSR36.cjs → dataTable-BJ4SVFbu.cjs} +1 -1
  76. package/dist/{dataTable-B1FQ3XIq.js → dataTable-BuBB0b-A.js} +1 -1
  77. package/dist/datetime-B66VgJL1.cjs +1 -0
  78. package/dist/{datetime-DU3rzi1v.js → datetime-DO03QrXz.js} +25 -24
  79. package/dist/deepClusterSlipSurface-BqT55vkY.cjs +1 -0
  80. package/dist/{deepClusterSlipSurface-BHwB0eu9.js → deepClusterSlipSurface-DpSAXgFf.js} +45 -43
  81. package/dist/{deepDataMatrix-C3uKZmon.js → deepDataMatrix-CPrIOv5r.js} +46 -45
  82. package/dist/deepDataMatrix-DZZaTMbD.cjs +1 -0
  83. package/dist/{deepDisplacement3D-BBYgB-rK.cjs → deepDisplacement3D-Cd9nwwPt.cjs} +3 -3
  84. package/dist/{deepDisplacement3D-CDNPul6D.js → deepDisplacement3D-JlMej7-5.js} +9 -7
  85. package/dist/{deepDisplacementChart-C_pwwgIC.js → deepDisplacementChart-BiDt60xI.js} +89 -88
  86. package/dist/deepDisplacementChart-CALM3gna.cjs +5 -0
  87. package/dist/deepDisplacementChart-CEaj2bUV.cjs +6 -0
  88. package/dist/{deepDisplacementChart-C6GQHO-J.js → deepDisplacementChart-CjlGpeHj.js} +54 -52
  89. package/dist/{deepDisplacementView-C837RNer.js → deepDisplacementView-BpUw-b-i.js} +37 -36
  90. package/dist/deepDisplacementView-CoSNzN1q.cjs +8 -0
  91. package/dist/deepNodeTemperatureChart-DPN0rYir.cjs +1 -0
  92. package/dist/{deepNodeTemperatureChart-BcH3ZNi4.js → deepNodeTemperatureChart-DfZq7kLx.js} +50 -48
  93. package/dist/{deepTangentAngleChart-DSpCyIdq.js → deepTangentAngleChart-Ca01hah9.js} +92 -90
  94. package/dist/deepTangentAngleChart-Dg9PJspK.cjs +1 -0
  95. package/dist/deepTemperatureField-BqDB97SW.cjs +1 -0
  96. package/dist/{deepTemperatureField-B2qIHL1-.js → deepTemperatureField-CYBTjhEp.js} +95 -93
  97. package/dist/deepTrendChart-B5BAHTeY.cjs +1 -0
  98. package/dist/{deepTrendChart-DFGSV17a.js → deepTrendChart-DBjxV7_A.js} +56 -54
  99. package/dist/{deviceOnlineStatus-CiIFdo9I.js → deviceOnlineStatus-1eoHCl_-.js} +58 -50
  100. package/dist/deviceOnlineStatus-DHzaAzCp.cjs +2 -0
  101. package/dist/deviceStatus-4BMy4qBD.cjs +1 -0
  102. package/dist/{deviceStatus-Dd1pqVnO.js → deviceStatus-90rQa1uj.js} +61 -60
  103. package/dist/{displacementDataTable-CGIHGxye.js → displacementDataTable-BArwj-xp.js} +52 -51
  104. package/dist/displacementDataTable-BLWjiaRQ.cjs +1 -0
  105. package/dist/{displacementTrajectoryChart-RL97CTML.js → displacementTrajectoryChart-CxOPJVlD.js} +34 -32
  106. package/dist/displacementTrajectoryChart-DfJMOCFJ.cjs +22 -0
  107. package/dist/{displacementTrendChart-Bqnv7hiP.js → displacementTrendChart-4E6cDsX8.js} +49 -48
  108. package/dist/displacementTrendChart-Cuxa5iTp.cjs +5 -0
  109. package/dist/{dxf-BQoArgPS.cjs → dxf-BgklkksV.cjs} +1 -1
  110. package/dist/{dxf-DBu1iA-r.js → dxf-BogwbJID.js} +5 -4
  111. package/dist/{dzc-DMVPjosV.cjs → dzc-CApfzriC.cjs} +2 -2
  112. package/dist/{dzc-7tLxe18d.js → dzc-D7tTBLaA.js} +24 -22
  113. package/dist/emergencyPlan-BuFz4XFc.cjs +1 -0
  114. package/dist/{emergencyPlan-C9Edkw51.js → emergencyPlan-CjbuX-N5.js} +19 -18
  115. package/dist/evn-BcSenXF3.cjs +1 -0
  116. package/dist/{evn-CeLoYCUr.js → evn-DTPm72ZM.js} +23 -22
  117. package/dist/evolutionChart-CrwR8i40.cjs +1 -0
  118. package/dist/{evolutionChart-DAlncdLU.js → evolutionChart-D1dVKWOt.js} +25 -23
  119. package/dist/{fileViewer-BFMFEN2f.js → fileViewer-BNHwlZRa.js} +57 -56
  120. package/dist/fileViewer-BUuST3Rp.cjs +1 -0
  121. package/dist/filterBar-BJzjPFFg.cjs +1 -0
  122. package/dist/{filterBar-qJJKdxYE.js → filterBar-CRJinh5K.js} +44 -43
  123. package/dist/fireCombustionCurve-BGdJ1ybj.cjs +1 -0
  124. package/dist/{fireCombustionCurve-DyRikhHw.js → fireCombustionCurve-BZ6qJ1kq.js} +69 -67
  125. package/dist/fireFilterBar-DZejT0oL.cjs +1 -0
  126. package/dist/{fireFilterBar-DkjBGPXa.js → fireFilterBar-KvvbsCsZ.js} +25 -24
  127. package/dist/{fireHistoryTable-ldXil5up.js → fireHistoryTable-80ygqnOG.js} +73 -65
  128. package/dist/fireHistoryTable-CMSGKb3w.cjs +3 -0
  129. package/dist/gag-1bvAZ5m6.cjs +1 -0
  130. package/dist/{gag-KZfFHn72.js → gag-D2obj7AF.js} +30 -28
  131. package/dist/{gasStationList-Btoo_olJ.js → gasStationList-DM-laJsi.js} +527 -526
  132. package/dist/gasStationList-DjJtXnqL.cjs +1 -0
  133. package/dist/{geo3dViewer-Cif9uFqd.cjs → geo3dViewer-CL_89mQf.cjs} +1 -1
  134. package/dist/{geo3dViewer-iZhkCiTP.js → geo3dViewer-FhmMIvMJ.js} +12 -5
  135. package/dist/{glbModel-MJZgDSJf.js → glbModel-B0nWYYJQ.js} +19 -18
  136. package/dist/{glbModel-2xydaxDT.cjs → glbModel-DakMJal6.cjs} +3 -3
  137. package/dist/{globalObjectSelector-CHtYGpi9.js → globalObjectSelector-Gv4srHhp.js} +79 -78
  138. package/dist/globalObjectSelector-jNzZxdnL.cjs +1 -0
  139. package/dist/{gnssFilterBar-CPis6bUI.js → gnssFilterBar-C4rpyNw3.js} +70 -63
  140. package/dist/gnssFilterBar-kEIW7Tjs.cjs +1 -0
  141. package/dist/{gnssHistoryTable-kHZY48EZ.js → gnssHistoryTable-CyMwQJ7_.js} +58 -50
  142. package/dist/gnssHistoryTable-DRKlP8-b.cjs +3 -0
  143. package/dist/{gnssMapView-BNIkieqL.cjs → gnssMapView-DpExCi0x.cjs} +4 -4
  144. package/dist/{gnssMapView-DXP8yz0v.js → gnssMapView-EVufCGrW.js} +174 -167
  145. package/dist/{gnssSectionProfile-DEUDEvJ1.js → gnssSectionProfile-CaJwF9wp.js} +41 -34
  146. package/dist/gnssSectionProfile-DdcOMdNC.cjs +1 -0
  147. package/dist/{gnssTimeSeriesChart-C_xqd0su.js → gnssTimeSeriesChart-iffDvMNx.js} +57 -49
  148. package/dist/gnssTimeSeriesChart-y11Y8k2-.cjs +1 -0
  149. package/dist/{gnssXYTrajectory-GqgFw_qK.js → gnssXYTrajectory-C_1fuLWn.js} +53 -45
  150. package/dist/gnssXYTrajectory-DGBGGDwi.cjs +5 -0
  151. package/dist/grd-C4hCrpvH.cjs +1 -0
  152. package/dist/{grd-QCuVN1jE.js → grd-FfuMQJb7.js} +43 -42
  153. package/dist/{grdIndass-BEcfZTYw.js → grdIndass-BTbZmPLZ.js} +30 -29
  154. package/dist/grdIndass-CyuRKD5H.cjs +1 -0
  155. package/dist/{grg-CMVrF5tB.js → grg-CcnI5kRY.js} +27 -26
  156. package/dist/grg-Cuxa17d6.cjs +1 -0
  157. package/dist/gridview-CKjBuTRq.cjs +1 -0
  158. package/dist/{gridview-Cd3Tqzph.js → gridview-ffVc5Wvg.js} +32 -31
  159. package/dist/groundwaterFilterBar-D3l7GLVY.cjs +1 -0
  160. package/dist/{groundwaterFilterBar-D7lrbzDC.js → groundwaterFilterBar-DaPR-kbl.js} +13 -12
  161. package/dist/groundwaterProfileChart-BxJKIPXF.cjs +11 -0
  162. package/dist/{groundwaterProfileChart-Bjtqz-Zv.js → groundwaterProfileChart-DoSx7WWp.js} +42 -40
  163. package/dist/groundwaterTimeCurve-Bp5MxM9k.cjs +1 -0
  164. package/dist/{groundwaterTimeCurve-Bu6vgAaC.js → groundwaterTimeCurve-D-SdVYeq.js} +57 -55
  165. package/dist/{groupCard-CPvAsuPb.cjs → groupCard-BzUQ8xY0.cjs} +1 -1
  166. package/dist/{groupCard-DQvEe6cc.js → groupCard-COMEkzIb.js} +29 -28
  167. package/dist/headerBar-iFe0YQKE.cjs +1 -0
  168. package/dist/{headerBar-CGOtSvFn.js → headerBar-ouXO8bzC.js} +48 -47
  169. package/dist/{history-D6C3tSut.js → history-BZ869y2d.js} +18 -18
  170. package/dist/{history-9ToM-rJ6.cjs → history-MxYUUwkm.cjs} +1 -1
  171. package/dist/index-DVqMfQVc.cjs +612 -0
  172. package/dist/{index-Bdq33405.js → index-DwPJu6XM.js} +1159 -1128
  173. package/dist/{insarDeformChart-Ls-cdqaP.js → insarDeformChart-5BhCUq8L.js} +24 -17
  174. package/dist/insarDeformChart-Ca3AMsBk.cjs +1 -0
  175. package/dist/{insarImageViewer-Dnke9JDG.js → insarImageViewer-DHNxmLpa.js} +41 -34
  176. package/dist/insarImageViewer-DWPsoHz6.cjs +1 -0
  177. package/dist/{kds-B4BKGG0r.js → kds-BYZC4pIM.js} +57 -50
  178. package/dist/{kds-BjX5tXhF.cjs → kds-Dpf_3WWj.cjs} +2 -2
  179. package/dist/{kpiCard-C77vHJ_E.js → kpiCard-CStPtl-c.js} +5 -4
  180. package/dist/kpiCard-OLJgA48-.cjs +2 -0
  181. package/dist/{landslideMap-BEkbnCqP.js → landslideMap-BUq0x7rd.js} +34 -33
  182. package/dist/landslideMap-JTdoQjW-.cjs +1 -0
  183. package/dist/{landslideWarning-C5upI2cf.js → landslideWarning-VAn9XGUj.js} +55 -54
  184. package/dist/landslideWarning-ZA5LCsIr.cjs +1 -0
  185. package/dist/{layerTabs-DoGw1Jfv.js → layerTabs-CAJ6f-2W.js} +40 -38
  186. package/dist/layerTabs-CdhowHB1.cjs +1 -0
  187. package/dist/{leaflet-src-BUWIqhPn.cjs → leaflet-src-CxFQ_Cn7.cjs} +1 -1
  188. package/dist/{leaflet-src-DFE_g2gF.js → leaflet-src-DNO2-OsP.js} +1 -1
  189. package/dist/{lerc-CXc9KSRL.js → lerc-bF2jqjoV.js} +2 -2
  190. package/dist/{lerc-BBgQP785.cjs → lerc-qU4WKXeS.cjs} +1 -1
  191. package/dist/{lin-ClO2MqZl.cjs → lin-BHI2KgyW.cjs} +2 -2
  192. package/dist/{lin-Difz8N88.js → lin-DbQw7wZw.js} +20 -18
  193. package/dist/linIndass-CIrObeZT.cjs +2 -0
  194. package/dist/{linIndass-DqXVOBh3.js → linIndass-Cd9Hjzs_.js} +31 -30
  195. package/dist/lst-BRsEe-Hq.cjs +1 -0
  196. package/dist/{lst-4RMMZZkY.js → lst-C3C2m1v_.js} +40 -39
  197. package/dist/{manualEntry-B3_4Z-Lj.js → manualEntry-B8TDMcDg.js} +29 -22
  198. package/dist/manualEntry-C3_WtYz8.cjs +1 -0
  199. package/dist/{mapBackground-B3OHQsXZ.js → mapBackground-BrVIQUcT.js} +21 -20
  200. package/dist/{mapBackground-Bmt-oZt6.cjs → mapBackground-Du7R_ICY.cjs} +2 -2
  201. package/dist/{mappingList-DVj7H206.js → mappingList-BpJUawmv.js} +22 -20
  202. package/dist/mappingList-C5OZ8oUx.cjs +1 -0
  203. package/dist/{markdownViewer-fheM5uV4.js → markdownViewer-CoRrvdY7.js} +16 -15
  204. package/dist/{markdownViewer-BAuNEWRt.cjs → markdownViewer-D96bwxEt.cjs} +2 -2
  205. package/dist/materialFileUrl-CubtnHeq.js +108 -0
  206. package/dist/materialFileUrl-DfPNm265.cjs +1 -0
  207. package/dist/{mix-control-modal-BoYynGT2.cjs → mix-control-modal-DwxwW65v.cjs} +1 -1
  208. package/dist/{mix-control-modal-BBiKe4MM.js → mix-control-modal-Qg_mzyT_.js} +1 -1
  209. package/dist/{mixGrid-BUjP1qv2.js → mixGrid-CtJWul6c.js} +44 -43
  210. package/dist/mixGrid-Hj0OJjkg.cjs +1 -0
  211. package/dist/mixMap-CJzmC0IR.cjs +1 -0
  212. package/dist/{mixMap-DPIwyKuP.js → mixMap-E36SDnEa.js} +36 -35
  213. package/dist/mixModel-BMRxhvWn.cjs +3 -0
  214. package/dist/{mixModel-CIdQp4V9.js → mixModel-_McJ6OuH.js} +30 -29
  215. package/dist/{mixPie-C6OhdOCV.js → mixPie-CMOkAe9p.js} +31 -30
  216. package/dist/mixPie-MAKXeYVp.cjs +2 -0
  217. package/dist/mixdashboards.cjs +1 -1
  218. package/dist/mixdashboards.css +1 -1
  219. package/dist/mixdashboards.js +1 -1
  220. package/dist/mixiotObjectListApi-BaeBL318.js +82 -0
  221. package/dist/mixiotObjectListApi-D9OyHNQ3.cjs +1 -0
  222. package/dist/mjpegCamera-BY7pmbDc.cjs +1 -0
  223. package/dist/{mjpegCamera-Cd1vhZ5v.js → mjpegCamera-Dc4IsJA6.js} +12 -11
  224. package/dist/monitorAlert-DVNvJyTy.cjs +1 -0
  225. package/dist/{monitorAlert-DIJtH557.js → monitorAlert-F8QFOchR.js} +45 -44
  226. package/dist/monitorData-AkPbhJ9q.cjs +1 -0
  227. package/dist/{monitorData-B6jhpzVK.js → monitorData-BzqNIdrW.js} +61 -59
  228. package/dist/{monitorSpeedChart-DF5zvxs9.js → monitorSpeedChart-348U37LW.js} +22 -21
  229. package/dist/{monitorSpeedChart-EIcGs3NX.cjs → monitorSpeedChart-DVH1xihw.cjs} +2 -2
  230. package/dist/{mxa-COxjxwpC.js → mxa-CkJjCHA-.js} +29 -27
  231. package/dist/{mxa-BfwIV49n.cjs → mxa-DShU528J.cjs} +2 -2
  232. package/dist/myValue-BCeycpdO.cjs +1 -0
  233. package/dist/{myValue-Crba15Wc.js → myValue-CEfp19i2.js} +17 -16
  234. package/dist/myValueList-CAPOW8TK.cjs +1 -0
  235. package/dist/{myValueList-m2yaIcuf.js → myValueList-y3GR4AX2.js} +41 -40
  236. package/dist/objectList-4rYQk5uq.cjs +1 -0
  237. package/dist/{objectList-BwZJzrXs.js → objectList-D16yLbzD.js} +538 -599
  238. package/dist/objectListAPP-DCwTyqFp.js +1864 -0
  239. package/dist/objectListAPP-Db5beOAM.cjs +1 -0
  240. package/dist/photo-BV6rkbWO.js +811 -0
  241. package/dist/photo-D67wLRkY.cjs +1 -0
  242. package/dist/{pie-CSLVJv0Y.cjs → pie-BeRwVkTk.cjs} +2 -2
  243. package/dist/{pie-C9MU90ON.js → pie-bNKhq6ak.js} +16 -14
  244. package/dist/{placeholder-CRARTMF4.js → placeholder-_iK4rVyU.js} +26 -25
  245. package/dist/placeholder-zByzfWaH.cjs +1 -0
  246. package/dist/{pressBtn-CkYcW1a8.js → pressBtn-B-rZPXK2.js} +124 -124
  247. package/dist/pressBtn-BjqYIPC-.cjs +1 -0
  248. package/dist/processTable-ByPlSKRJ.cjs +3 -0
  249. package/dist/{processTable-BgAhGGAq.js → processTable-s_y8uups.js} +12 -11
  250. package/dist/{progressBar-BbDFps1r.cjs → progressBar-CRdA7oJT.cjs} +1 -1
  251. package/dist/{progressBar-CIPUVeaf.js → progressBar-DskxZk1P.js} +19 -18
  252. package/dist/{progressCircle-DDc5zsd6.js → progressCircle-BE_Am-AP.js} +13 -12
  253. package/dist/{progressCircle-CgkZ1EC1.cjs → progressCircle-CHe-12Hb.cjs} +1 -1
  254. package/dist/{qrcode-CQbWGVgq.cjs → qrcode-D8cFyUpL.cjs} +1 -1
  255. package/dist/{qrcode-CCu677Ad.js → qrcode-Dgth6KwU.js} +39 -38
  256. package/dist/{raceBar-CzNGSYCt.cjs → raceBar-CeybrpCB.cjs} +3 -3
  257. package/dist/{raceBar-Cn8oPhCE.js → raceBar-DV-3KFg2.js} +18 -16
  258. package/dist/rad-BerkC70H.cjs +1 -0
  259. package/dist/{rad-D_cLWeMk.js → rad-BhsfF0XI.js} +22 -20
  260. package/dist/{radarMapViewer-BaAXjsWx.js → radarMapViewer-C2dde8EN.js} +82 -81
  261. package/dist/radarMapViewer-HWzvBTzT.cjs +1 -0
  262. package/dist/{rainfallFilterBar-Bhpadat8.js → rainfallFilterBar-CiT1mvYh.js} +22 -21
  263. package/dist/rainfallFilterBar-kuAQO0M-.cjs +1 -0
  264. package/dist/rainfallTimeCurve-7uHaSkuE.cjs +1 -0
  265. package/dist/{rainfallTimeCurve-sDYapogL.js → rainfallTimeCurve-BlOnCq2M.js} +58 -56
  266. package/dist/rangeLin-BQeWFL_E.cjs +3 -0
  267. package/dist/{rangeLin-CdMOPwMP.js → rangeLin-BvKd8kEv.js} +32 -31
  268. package/dist/realtimeEvolutionMap-BUnD3JjE.cjs +1 -0
  269. package/dist/{realtimeEvolutionMap-CIH_sZ29.js → realtimeEvolutionMap-DZ6yniwl.js} +46 -44
  270. package/dist/regionBar-mMaN5NEc.cjs +3 -0
  271. package/dist/{regionBar-VB-2GpR0.js → regionBar-vp5D52Jd.js} +14 -13
  272. package/dist/{request-BHfDxLXZ.js → request-CMbwWTDF.js} +9 -9
  273. package/dist/{request-DU8pRyvu.cjs → request-DegEaaCG.cjs} +1 -1
  274. package/dist/retainer1-CF2Tr7Zt.cjs +1 -0
  275. package/dist/{retainer1-C_109Weq.js → retainer1-Xvdlh-B_.js} +17 -16
  276. package/dist/retainer2-BQVUhgcH.cjs +1 -0
  277. package/dist/{retainer2-BiHUTumr.js → retainer2-D3a-c_BA.js} +43 -42
  278. package/dist/{retainerRecordList-Cgil_g8a.js → retainerRecordList-BJbPsJ4D.js} +47 -45
  279. package/dist/retainerRecordList-Rqnoz6_6.cjs +1 -0
  280. package/dist/retainerRecordListAPP-B4IDQK3C.cjs +1 -0
  281. package/dist/retainerRecordListAPP-CNntGyA-.js +1068 -0
  282. package/dist/{ringTopN-C9AH-t3T.js → ringTopN-BFKlXqGX.js} +18 -16
  283. package/dist/ringTopN-CsouIsk1.cjs +1 -0
  284. package/dist/{riskRegionTable-Co1uxMzf.js → riskRegionTable-B6k4uM0_.js} +26 -19
  285. package/dist/riskRegionTable-DttMvHe5.cjs +1 -0
  286. package/dist/sankey-CAuBQaYh.cjs +1 -0
  287. package/dist/{sankey-Bag0ladh.js → sankey-DEQK7uU6.js} +17 -15
  288. package/dist/{scd-D9AiOiPg.js → scd-D5TicpCZ.js} +1282 -1062
  289. package/dist/scd-qaap6hGW.cjs +1 -0
  290. package/dist/{sideMenu-869HFB0p.js → sideMenu-ByyrOOYh.js} +28 -27
  291. package/dist/sideMenu-D-73DoYb.cjs +1 -0
  292. package/dist/{slopeStability-bZ0lHLjZ.js → slopeStability-BtgMH3oW.js} +44 -42
  293. package/dist/slopeStability-CTN6Kpva.cjs +1 -0
  294. package/dist/speedCurve-C5NoQCjK.cjs +1 -0
  295. package/dist/{speedCurve-DZ52XKCk.js → speedCurve-CInn7NAC.js} +43 -41
  296. package/dist/staticLine-BC-zj5yZ.cjs +1 -0
  297. package/dist/{staticLine-CyPnmKCh.js → staticLine-CLqN4lpU.js} +51 -50
  298. package/dist/stressFilterBar-Cpfbmllu.cjs +1 -0
  299. package/dist/{stressFilterBar-BAUt2bGy.js → stressFilterBar-D_QqOHna.js} +46 -45
  300. package/dist/{stressTimeCurve-IW4ArsyA.js → stressTimeCurve-1HXHUj-F.js} +64 -62
  301. package/dist/stressTimeCurve-Bp6Cevk1.cjs +1 -0
  302. package/dist/{swiper-BPS9C2GV.cjs → swiper-B8YZ2VQ2.cjs} +1 -1
  303. package/dist/{swiper-RM0GoZkW.js → swiper-D_y4Fj_D.js} +25 -24
  304. package/dist/terminalConfigList-B39cEptG.cjs +1 -0
  305. package/dist/{terminalConfigList-n7NE5NdJ.js → terminalConfigList-CHbA4y-S.js} +38 -36
  306. package/dist/terminalList-Vf-Dbybr.cjs +1 -0
  307. package/dist/{terminalList-Byb4eLcD.js → terminalList-oJFrGVtT.js} +38 -36
  308. package/dist/terminalListAPP-CdBG8krw.cjs +1 -0
  309. package/dist/terminalListAPP-DWArp2D4.js +1366 -0
  310. package/dist/{textbox-DM1AUWw8.js → textbox-D8nmoGjG.js} +13 -12
  311. package/dist/textbox-DPoyxB4u.cjs +1 -0
  312. package/dist/{timeQueryBar-Tbd9M8UT.js → timeQueryBar-DyC0iHq9.js} +21 -20
  313. package/dist/timeQueryBar-uUGotoTx.cjs +1 -0
  314. package/dist/{timeSeries-DCV2YjC2.cjs → timeSeries-BhlqgEOq.cjs} +2 -2
  315. package/dist/{timeSeries-CdpEx6bf.js → timeSeries-U91gMDDQ.js} +66 -64
  316. package/dist/timeSeriesCurve-CiRMnZRD.cjs +1 -0
  317. package/dist/{timeSeriesCurve-C1AmF6TP.js → timeSeriesCurve-DOhIS88N.js} +68 -66
  318. package/dist/{toggleBtn-BGjXjIuK.cjs → toggleBtn-CuWwHFjD.cjs} +1 -1
  319. package/dist/{toggleBtn-XS9MjfKM.js → toggleBtn-DE35dkxx.js} +46 -44
  320. package/dist/trajectoryConfigPanel-DAbF8oE9.cjs +1 -0
  321. package/dist/{trajectoryConfigPanel-BC90nD1T.js → trajectoryConfigPanel-Ye7NY6rd.js} +35 -34
  322. package/dist/{trajectoryScatter-DF_ESBn8.js → trajectoryScatter-DL7HUNJI.js} +47 -45
  323. package/dist/trajectoryScatter-Dg99HzM3.cjs +1 -0
  324. package/dist/universalConfigPanel-1svBCvD9.cjs +1 -0
  325. package/dist/{universalConfigPanel-DjNTwJkz.js → universalConfigPanel-CkyIDl_x.js} +50 -49
  326. package/dist/{universalTable-BY9vRraC.js → universalTable--dpnyNO2.js} +56 -54
  327. package/dist/universalTable-D8w7FQbl.cjs +2 -0
  328. package/dist/useMixiotPanelSurface-CAZgexY5.cjs +1 -0
  329. package/dist/useMixiotPanelSurface-DRl3cZvc.js +22 -0
  330. package/dist/useTableBodyHeight-CwrQvi7M.js +21 -0
  331. package/dist/useTableBodyHeight-pf87uGjw.cjs +1 -0
  332. package/dist/{video-DDvDGDql.js → video-BmMSRRa_.js} +5 -4
  333. package/dist/{video-8_Sf1uz0.cjs → video-RGIZoUn6.cjs} +2 -2
  334. package/dist/videoMonitor-Bo5T0MT_.cjs +1 -0
  335. package/dist/{videoMonitor-sce5N4Q5.js → videoMonitor-uf6tt2E6.js} +34 -33
  336. package/dist/{vlu-BKeYJtOO.js → vlu-D8l5zE_P.js} +24 -23
  337. package/dist/vlu-DEo_h1qN.cjs +1 -0
  338. package/dist/warningOverview-A5AA_vCc.cjs +1 -0
  339. package/dist/{warningOverview-CG5mwtaO.js → warningOverview-CA0PikjV.js} +31 -30
  340. package/dist/{weather-CWvAqxgX.cjs → weather-D20MGzuJ.cjs} +1 -1
  341. package/dist/{weather-BrX2a1an.js → weather-DuseqeNF.js} +19 -18
  342. package/dist/{windLin-BbbsSwuF.cjs → windLin-BU6Q87dE.cjs} +1 -1
  343. package/dist/{windLin-P4Gs2aBB.js → windLin-D8AUL_dV.js} +58 -57
  344. package/package.json +120 -120
  345. package/dist/BaseComponent-CNXUpPY1.cjs +0 -1
  346. package/dist/UniverSheet-CntkzcVZ.cjs +0 -1
  347. package/dist/accelerationChart-DLV-1mpA.cjs +0 -6
  348. package/dist/actionItem-CFxzHf4E.cjs +0 -1
  349. package/dist/alarmLevelChart-DCC6D1fH.cjs +0 -2
  350. package/dist/alertTable-BREZBeS5.cjs +0 -1
  351. package/dist/aliasObjectSelectorDemo-DunKWEkT.cjs +0 -1
  352. package/dist/annualRainfallChart-BJyoUBDn.cjs +0 -1
  353. package/dist/aqiIndass-B441j8CT.cjs +0 -3
  354. package/dist/areaDeformCurve-Dj405Jil.cjs +0 -1
  355. package/dist/arrayCard-B7zb1dFi.cjs +0 -1
  356. package/dist/audio-BfsYRWbm.cjs +0 -1
  357. package/dist/bmp-DIkLqzRN.cjs +0 -1
  358. package/dist/box-kXjrgG2u.cjs +0 -1
  359. package/dist/chartConfigPanel-DN4LMy8-.cjs +0 -1
  360. package/dist/clock-EbmFBRb-.cjs +0 -1
  361. package/dist/clt-C-9xGiKs.cjs +0 -1
  362. package/dist/cmc-CFa8Q3tu.cjs +0 -1
  363. package/dist/conclusionCard-Dlg5GWlE.cjs +0 -1
  364. package/dist/controlList-C1vhlonT.cjs +0 -1
  365. package/dist/controlRecordList-BhK7KtLR.cjs +0 -1
  366. package/dist/crd-CgxqxwKV.cjs +0 -1
  367. package/dist/ctrBtn-BSJ9c7Pt.cjs +0 -1
  368. package/dist/ctrSet-B9M4yI53.cjs +0 -1
  369. package/dist/ctrSwitch-C6dUn_qm.js +0 -206
  370. package/dist/ctrSwitch-ZvMCYKvG.cjs +0 -1
  371. package/dist/dataManagement-CNrEa_zB.cjs +0 -1
  372. package/dist/datetime-CAyDWKE8.cjs +0 -1
  373. package/dist/deepClusterSlipSurface-DzoyF6i1.cjs +0 -1
  374. package/dist/deepDataMatrix--AstWPiL.cjs +0 -1
  375. package/dist/deepDisplacementChart-BnT1ZdfR.cjs +0 -6
  376. package/dist/deepDisplacementChart-DOPij7KP.cjs +0 -5
  377. package/dist/deepDisplacementView-u1IPcbxN.cjs +0 -8
  378. package/dist/deepNodeTemperatureChart-CD3JbqkA.cjs +0 -1
  379. package/dist/deepTangentAngleChart-BCAauuDY.cjs +0 -1
  380. package/dist/deepTemperatureField-BxuKsrtc.cjs +0 -1
  381. package/dist/deepTrendChart-6L4cCHgh.cjs +0 -1
  382. package/dist/deviceOnlineStatus-WkwzGom4.cjs +0 -2
  383. package/dist/deviceStatus-BoIv8fbr.cjs +0 -1
  384. package/dist/displacementDataTable-BwcxrsuU.cjs +0 -1
  385. package/dist/displacementTrajectoryChart-BOPIBgi5.cjs +0 -22
  386. package/dist/displacementTrendChart-CI8i0oQY.cjs +0 -5
  387. package/dist/emergencyPlan-BRFhMubg.cjs +0 -1
  388. package/dist/evn-B05d7LtF.cjs +0 -1
  389. package/dist/evolutionChart-y2mkLVwU.cjs +0 -1
  390. package/dist/fileViewer-Dy2fdABW.cjs +0 -1
  391. package/dist/filterBar-CcrUdD-O.cjs +0 -1
  392. package/dist/fireCombustionCurve-B-6MZLul.cjs +0 -1
  393. package/dist/fireFilterBar-C9b_Ohvr.cjs +0 -1
  394. package/dist/fireHistoryTable-5sG5FDCD.cjs +0 -3
  395. package/dist/gag-CDX99Ta4.cjs +0 -1
  396. package/dist/gasStationList-Dl9qawf_.cjs +0 -1
  397. package/dist/globalObjectSelector-Bz2XhgxT.cjs +0 -1
  398. package/dist/gnssFilterBar-BT19n0j_.cjs +0 -1
  399. package/dist/gnssHistoryTable-CrS2qO6S.cjs +0 -3
  400. package/dist/gnssSectionProfile-_KbP1NXU.cjs +0 -1
  401. package/dist/gnssTimeSeriesChart-BgFoXAZv.cjs +0 -1
  402. package/dist/gnssXYTrajectory-C1N3RWzp.cjs +0 -5
  403. package/dist/grd-DtDoJOOa.cjs +0 -1
  404. package/dist/grdIndass-ci3JkvGZ.cjs +0 -1
  405. package/dist/grg-C2qVuXYE.cjs +0 -1
  406. package/dist/gridview-BLAlr5uj.cjs +0 -1
  407. package/dist/groundwaterFilterBar-1E1j67JT.cjs +0 -1
  408. package/dist/groundwaterProfileChart-CS9xelz8.cjs +0 -11
  409. package/dist/groundwaterTimeCurve-DYiDLgVY.cjs +0 -1
  410. package/dist/headerBar-OwCxpc4o.cjs +0 -1
  411. package/dist/index-D8dh_6Qd.cjs +0 -612
  412. package/dist/insarDeformChart-CSQ7fc2p.cjs +0 -1
  413. package/dist/insarImageViewer-DvaRS1zr.cjs +0 -1
  414. package/dist/kpiCard-oLpk5d4m.cjs +0 -2
  415. package/dist/landslideMap-CO8o7T8J.cjs +0 -1
  416. package/dist/landslideWarning-BZXa5qTB.cjs +0 -1
  417. package/dist/layerTabs-BxRAsklw.cjs +0 -1
  418. package/dist/linIndass-Bb7UA-zk.cjs +0 -2
  419. package/dist/lst-Dri1MTDI.cjs +0 -1
  420. package/dist/manualEntry-D74dgZv8.cjs +0 -1
  421. package/dist/mappingList-CBN7ArkQ.cjs +0 -1
  422. package/dist/mixGrid-DTj2pmFW.cjs +0 -1
  423. package/dist/mixMap-B4T4R6kA.cjs +0 -1
  424. package/dist/mixModel-BzilRtjf.cjs +0 -3
  425. package/dist/mixPie-DtQm-LGp.cjs +0 -2
  426. package/dist/mjpegCamera-Lu3UHJ83.cjs +0 -1
  427. package/dist/monitorAlert-Ctt2kCxQ.cjs +0 -1
  428. package/dist/monitorData-D_tMbx_Y.cjs +0 -1
  429. package/dist/myValue-FZPOucSS.cjs +0 -1
  430. package/dist/myValueList-XIDK3ove.cjs +0 -1
  431. package/dist/objectList-BtbxHtJj.cjs +0 -1
  432. package/dist/photo-BITvEhKG.cjs +0 -1
  433. package/dist/photo-CjulDHTM.js +0 -873
  434. package/dist/placeholder-3kajeeeb.cjs +0 -1
  435. package/dist/pressBtn-pUcQtd5n.cjs +0 -1
  436. package/dist/processTable-CDulvQlu.cjs +0 -3
  437. package/dist/rad-Dk4PrnyI.cjs +0 -1
  438. package/dist/radarMapViewer-TJIPACdT.cjs +0 -1
  439. package/dist/rainfallFilterBar-Myq0MBCf.cjs +0 -1
  440. package/dist/rainfallTimeCurve-BUI-RlnG.cjs +0 -1
  441. package/dist/rangeLin-DYCZ8wVc.cjs +0 -3
  442. package/dist/realtimeEvolutionMap-BwyQdAhL.cjs +0 -1
  443. package/dist/regionBar-DsxqfirI.cjs +0 -3
  444. package/dist/retainer1-CSqjvY4k.cjs +0 -1
  445. package/dist/retainer2-Bqlwvr53.cjs +0 -1
  446. package/dist/retainerRecordList-DWZ3WDiz.cjs +0 -1
  447. package/dist/ringTopN-Bp0er_zV.cjs +0 -1
  448. package/dist/riskRegionTable-B3bzMaR_.cjs +0 -1
  449. package/dist/sankey-B4BJ4xIo.cjs +0 -1
  450. package/dist/scd-Dgd3KDpk.cjs +0 -1
  451. package/dist/sideMenu-BQ5rrGBr.cjs +0 -1
  452. package/dist/slopeStability-D96aiykf.cjs +0 -1
  453. package/dist/speedCurve-5nWqVAzz.cjs +0 -1
  454. package/dist/staticLine-DUCg-0tI.cjs +0 -1
  455. package/dist/stressFilterBar-CorWdmpQ.cjs +0 -1
  456. package/dist/stressTimeCurve-Bci50Cwv.cjs +0 -1
  457. package/dist/terminalConfigList-O881ke5o.cjs +0 -1
  458. package/dist/terminalList-C9TB2cJH.cjs +0 -1
  459. package/dist/textbox-BMWnbPvz.cjs +0 -1
  460. package/dist/timeQueryBar-C6ZheMvD.cjs +0 -1
  461. package/dist/timeSeriesCurve-DRlr5n3U.cjs +0 -1
  462. package/dist/trajectoryConfigPanel-DJ6fOeb1.cjs +0 -1
  463. package/dist/trajectoryScatter-C7kfSkyS.cjs +0 -1
  464. package/dist/universalConfigPanel-PO1hdgjw.cjs +0 -1
  465. package/dist/universalTable-QAb6UKCq.cjs +0 -2
  466. package/dist/useMixiotPanelSurface-BMNrWBMF.cjs +0 -1
  467. package/dist/useMixiotPanelSurface-DlVkLttU.js +0 -40
  468. package/dist/videoMonitor-BKLD_aQs.cjs +0 -1
  469. package/dist/vlu-C0XLDKKk.cjs +0 -1
  470. package/dist/warningOverview--n7crFnZ.cjs +0 -1
@@ -0,0 +1 @@
1
+ "use strict";var Xe=Object.defineProperty,Ye=Object.defineProperties;var Ze=Object.getOwnPropertyDescriptors;var _e=Object.getOwnPropertySymbols;var et=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable;var Ve=(b,f,v)=>f in b?Xe(b,f,{enumerable:!0,configurable:!0,writable:!0,value:v}):b[f]=v,oe=(b,f)=>{for(var v in f||(f={}))et.call(f,v)&&Ve(b,v,f[v]);if(_e)for(var v of _e(f))tt.call(f,v)&&Ve(b,v,f[v]);return b},le=(b,f)=>Ye(b,Ze(f));var x=(b,f,v)=>new Promise((I,j)=>{var K=S=>{try{R(v.next(S))}catch(T){j(T)}},Q=S=>{try{R(v.throw(S))}catch(T){j(T)}},R=S=>S.done?I(S.value):Promise.resolve(S.value).then(K,Q);R((v=v.apply(b,f)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("element-plus/es");require("element-plus/es/components/base/style/css");require("element-plus/es/components/loading/style/css");require("element-plus/es/components/dialog/style/css");require("element-plus/es/components/form/style/css");require("element-plus/es/components/form-item/style/css");require("element-plus/es/components/empty/style/css");require("element-plus/es/components/tree/style/css");require("element-plus/es/components/dropdown/style/css");require("element-plus/es/components/dropdown-menu/style/css");require("element-plus/es/components/dropdown-item/style/css");require("element-plus/es/components/button/style/css");require("element-plus/es/components/input/style/css");require("element-plus/es/components/icon/style/css");const e=require("vue"),a=require("@element-plus/icons-vue"),ot=require("./BaseComponent-Chnv4fBT.cjs"),E=require("./index-DVqMfQVc.cjs"),g=require("element-plus"),Se=require("./ele-lst-icon-CrxnHZ-A.cjs"),lt=[{uid:"CO_HUANENG",id:1001,name:"华能燃气集团",ctype:"customer",nodeIcon:"company",child:[{uid:"PRJ_HB",id:1101,name:"华北区项目",ctype:"project",father_id:1001,nodeIcon:"folder",child:[{uid:"ST_NS",id:1201,name:"南山项目站",ctype:"project",father_id:1101,stationIndicator:"green",child:[{uid:"EQ_NS_AC1",id:1301,name:"1#空压机",ctype:"object",statusDot:"green"},{uid:"EQ_NS_AC2",id:1302,name:"2#空压机",ctype:"object",statusDot:"green"},{uid:"EQ_NS_AC3",id:1303,name:"3#空压机",ctype:"object",statusDot:"orange"},{uid:"EQ_NS_EM",id:1304,name:"总电表",ctype:"object",statusDot:"green"},{uid:"EQ_NS_FM",id:1305,name:"总流量计",ctype:"object",statusDot:"green"}]},{uid:"ST_HAIDIAN",id:1202,name:"北京海淀项目站",ctype:"project",father_id:1101,stationIndicator:"orange",child:[{uid:"EQ_HD_AC1",id:1311,name:"1#空压机",ctype:"object",statusDot:"green"},{uid:"EQ_HD_AC2",id:1312,name:"2#空压机",ctype:"object",statusDot:"orange"},{uid:"EQ_HD_EM",id:1313,name:"总电表",ctype:"object",statusDot:"orange"},{uid:"EQ_HD_FM",id:1314,name:"总流量计",ctype:"object",statusDot:"green"}]},{uid:"ST_BINHAI",id:1203,name:"天津滨海项目站",ctype:"project",father_id:1101,stationIndicator:"green",child:[{uid:"EQ_BH_AC1",id:1321,name:"1#空压机",ctype:"object",statusDot:"green"},{uid:"EQ_BH_AC2",id:1322,name:"2#空压机",ctype:"object",statusDot:"green"},{uid:"EQ_BH_AC3",id:1323,name:"3#空压机",ctype:"object",statusDot:"orange"},{uid:"EQ_BH_EM",id:1324,name:"总电表",ctype:"object",statusDot:"green"},{uid:"EQ_BH_FM",id:1325,name:"总流量计",ctype:"object",statusDot:"green"}]}]},{uid:"PRJ_HD",id:1102,name:"华东区项目",ctype:"project",father_id:1001,nodeIcon:"folder",child:[]}]},{uid:"CO_ZHONGRAN",id:2001,name:"中燃能源科技",ctype:"customer",nodeIcon:"company",child:[{uid:"PRJ_XN",id:2101,name:"西南区项目",ctype:"project",father_id:2001,nodeIcon:"folder",child:[{uid:"ST_CD_GX",id:2201,name:"成都高新项目站",ctype:"project",father_id:2101,stationIndicator:"green",child:[{uid:"EQ_CD_AC1",id:2301,name:"1#空压机",ctype:"object",statusDot:"green"},{uid:"EQ_CD_EM",id:2302,name:"总电表",ctype:"object",statusDot:"green"}]},{uid:"ST_CQ_YB",id:2202,name:"重庆渝北项目站",ctype:"project",father_id:2101,stationIndicator:"green",child:[{uid:"EQ_CQ_AC1",id:2311,name:"1#空压机",ctype:"object",statusDot:"green"},{uid:"EQ_CQ_FM",id:2312,name:"总流量计",ctype:"object",statusDot:"orange"}]}]}]}],Ne={Monitor:a.Monitor,Folder:a.Folder,Document:a.Document,OfficeBuilding:a.OfficeBuilding,Setting:a.Setting,DataAnalysis:a.DataAnalysis,Platform:a.Platform,Box:a.Box,Grid:a.Grid,User:a.User,Bell:a.Bell,Message:a.Message,TrendCharts:a.TrendCharts,PieChart:a.PieChart,Histogram:a.Histogram,Cpu:a.Cpu,Connection:a.Connection,Location:a.Location,MapLocation:a.MapLocation,Calendar:a.Calendar,Warning:a.Warning,Tools:a.Tools,Operation:a.Operation,List:a.List,Menu:a.Menu,Management:a.Management,Files:a.Files,FolderOpened:a.FolderOpened,Reading:a.Reading,Promotion:a.Promotion,Star:a.Star,Flag:a.Flag,Guide:a.Guide,Goods:a.Goods,Service:a.Service,Odometer:a.Odometer,VideoCamera:a.VideoCamera,Picture:a.Picture,Phone:a.Phone,Cellphone:a.Cellphone,Link:a.Link,Lock:a.Lock,Medal:a.Medal,Compass:a.Compass,ShoppingCart:a.ShoppingCart,WindPower:a.WindPower,SetUp:a.SetUp,DataBoard:a.DataBoard,DataLine:a.DataLine,Upload:a.Upload,Download:a.Download,Search:a.Search,EditPen:a.EditPen,View:a.View,Refresh:a.Refresh,Collection:a.Collection,Share:a.Share,Wallet:a.Wallet,Key:a.Key,Timer:a.Timer,Lightning:a.Lightning},nt={class:"gsl-top-bar"},at={key:0,class:"gsl-top-caption"},it={key:1,class:"gsl-top-caption-placeholder"},rt={class:"gsl-top-actions"},st={class:"gsl-tree-col"},ut={class:"gsl-tree-wrap"},ct={class:"gsl-tree-node"},dt={key:0,class:"gsl-type-icon-wrap","aria-hidden":"true"},mt={class:"gsl-tree-label"},pt={key:0,class:"gsl-monitor-col"},ft={key:0,class:"gsl-monitor-inner"},gt={DEFAULT_ICON:Se.DEFAULT_ICON,ACTIVE_ICON:Se.ACTIVE_ICON,NAME_CN:"客户项目对象组件",NAME_EN:"CustomerProjectObject",ORDER:0,PLATFORM:["pc","screen"]},vt={bgColor:"#fff",nameColor:"#999",valueColor:"#333",titleColor:"#111",titleSize:14,nameSize:12,valueSize:12,radiusSize:8,isHideTitle:!1,linkChannel:""},we=[{name:"客户项目对象组件",fv:"",object_id:"",unit:"",default:"",isText:!1,useMockTree:!1,showAddBtn:!0,sheetPageKeys:"gas_layout,monitor",sheetPageLabels:"对象布局,监控",defaultSheetGasList:"gas_layout",defaultSheetRuntimeCheck:"monitor",runtimeScene:"gasList",stationNavRules:[],stationNavPageKey:"",embedObjectMonitorRight:!0,objectLinkedDashboardDevice:"pc",menuToSheetLevels:[{level:1,label:"客户",treeIcon:"OfficeBuilding",rules:[{sheetTitle:""}]},{level:2,label:"项目",treeIcon:"Folder",rules:[{sheetTitle:""}]},{level:3,label:"对象",treeIcon:"Monitor",rules:[{sheetTitle:""}]}]}],ht=[{key:"useMockTree",label:"使用模拟树(离线演示;关闭则 get_customer_project_tree)",type:"checkbox",group:"数据"},{key:"embedObjectMonitorRight",label:"点击对象右侧内嵌设备监控(与对象详情监控同源)",type:"checkbox",group:"数据"},{key:"objectLinkedDashboardDevice",label:"监控显示板终端(pc/mobile/screen)",group:"数据"},{key:"showAddBtn",label:"显示新增",type:"checkbox",group:"命令组"},{key:"sheetPageKeys",label:"页面标识列表"},{key:"sheetPageLabels",label:"页面标题列表"},{key:"defaultSheetGasList",label:"默认页面(客户项目对象)"},{key:"defaultSheetRuntimeCheck",label:"默认页面(运行检查)"},{key:"runtimeScene",label:"当前场景(gasList/runtimeCheck)"}],bt=[],yt={isAddCondition:!1,conditions:[],conditionFilterFields:[{value:"name",label:"setting.mixiotListFilter.treeNodeName"},{value:"uid",label:"setting.mixiotListFilter.treeNodeUid"}]},Ct={DEFAULT:gt,OPTIONS:vt,DATA:we,PARAMS:ht,SOURCE:bt,COMMON:yt},_t=e.defineComponent(le(oe({},Ct),{__name:"gasStationList",props:{conf:{default:()=>({data:[]})},uid:{default:""},mode:{},theme:{},code:{default:""}},setup(b){const f=b;class v extends ot.BaseComponent{getDataBool(t,l){var r,s;const n=(s=(r=this.props.conf)==null?void 0:r.data)==null?void 0:s[0];return n&&Object.prototype.hasOwnProperty.call(n,t)&&n[t]!==void 0?!!n[t]:this.getOptionValue(t,l)}extractStyles(){return{bgColor:this.getOptionValue("bgColor","#fff"),nameColor:this.getOptionValue("nameColor","#999"),valueColor:this.getOptionValue("valueColor","#333"),titleColor:this.getOptionValue("titleColor","#111"),titleSize:this.getOptionValue("titleSize",14),nameSize:this.getOptionValue("nameSize",12),valueSize:this.getOptionValue("valueSize",12),radiusSize:this.getOptionValue("radiusSize",8),isHideTitle:this.getOptionValue("isHideTitle",!1),linkChannel:this.getOptionValue("linkChannel",""),showAddBtn:this.getDataBool("showAddBtn",!0)}}init(){var t;if(this.Style.value=this.extractStyles(),this.applyTheme(),!((t=this.props.conf.data)!=null&&t.length))this.props.conf.data=JSON.parse(JSON.stringify(we));else{const l=this.props.conf.data[0];l.useMockTree===void 0&&(l.useMockTree=!1),l.showAddBtn===void 0&&(l.showAddBtn=!0);const n={sheetPageKeys:"gas_layout,monitor",sheetPageLabels:"对象布局,监控",defaultSheetGasList:"gas_layout",defaultSheetRuntimeCheck:"monitor",runtimeScene:"gasList"};for(const[i,c]of Object.entries(n))(l[i]===void 0||l[i]==="")&&(l[i]=c);l.stationNavPageKey===void 0&&(l.stationNavPageKey=""),Array.isArray(l.stationNavRules)||(l.stationNavRules=[]),l.embedObjectMonitorRight===void 0&&(l.embedObjectMonitorRight=l.openObjectLinkedDashboard!==!1),(l.objectLinkedDashboardDevice===void 0||l.objectLinkedDashboardDevice==="")&&(l.objectLinkedDashboardDevice="pc");const r=[{level:1,label:"客户",treeIcon:"OfficeBuilding",rules:[{sheetTitle:""}]},{level:2,label:"项目",treeIcon:"Folder",rules:[{sheetTitle:""}]},{level:3,label:"对象",treeIcon:"Monitor",rules:[{sheetTitle:""}]}],s=i=>i===1?"OfficeBuilding":i===2?"Folder":i===3?"Monitor":"Folder";if(!Array.isArray(l.menuToSheetLevels)||!l.menuToSheetLevels.length)l.menuToSheetLevels=JSON.parse(JSON.stringify(r));else for(const i of l.menuToSheetLevels){(!Array.isArray(i.rules)||!i.rules.length)&&(i.rules=[{sheetTitle:""}]);const c=Number(i.level);(i.treeIcon===void 0||i.treeIcon==="")&&(i.treeIcon=s(Number.isFinite(c)?c:0))}}}}const I=new v(f,"gasStationList");I.setupLifecycle();const j=I.getStyle(),K=e.inject("switchSheetByPageKey",()=>-1),Q=e.inject("getSheets",()=>[]),R=e.inject("getProAppActiveMenuTitle",()=>""),S=e.inject("boardSwitchEpoch",e.ref(0)),T=e.computed(()=>{var o;try{const t=R;return typeof t=="function"?String((o=t())!=null?o:"").trim():""}catch(t){return""}}),C=e.computed(()=>{var o,t;return((t=(o=f.conf)==null?void 0:o.data)==null?void 0:t[0])||{}}),U=e.computed(()=>!!C.value.useMockTree);function ne(o){return String(o!=null?o:"").split(/[,,]/).map(t=>t.trim()).filter(Boolean)}const ae=e.computed(()=>{const o=ne(C.value.sheetPageKeys),t=ne(C.value.sheetPageLabels);return o.map((l,n)=>({pageKey:l,label:t[n]||l}))}),je=e.computed(()=>String(C.value.runtimeScene||"gasList").trim()),ke=e.computed(()=>je.value==="runtimeCheck"?String(C.value.defaultSheetRuntimeCheck||"").trim():String(C.value.defaultSheetGasList||"").trim()),z=e.ref("");function ie(){var n;const o=ke.value,t=ae.value,l=((n=t[0])==null?void 0:n.pageKey)||"";return o&&t.some(r=>r.pageKey===o)?o:l}function Ee(){z.value=ie()}function re(){if(f.mode==="edit"||(Q()||[]).filter(n=>!(n!=null&&n.hideInPreviewTabs)).length<=1)return;const l=ie();l&&(z.value=l,K(String(l)))}e.watch(S,()=>{e.nextTick(()=>re())},{flush:"post",immediate:!0}),e.watch(ae,()=>{f.mode!=="edit"&&e.nextTick(()=>re())},{deep:!0}),e.watch(z,o=>{if(f.mode==="edit"||!o)return;K(String(o))<0&&console.warn("[客户项目对象] 未匹配到 Sheet 页面标识:",o,"sheets:",Q())});function se(o){return Array.isArray(o.children)?o.children:Array.isArray(o.child)?o.child:[]}function X(o){return Array.isArray(o)?o.filter(Boolean).map(t=>{var s,i,c,h;const l=t,n=String((h=(c=(i=(s=l.name)!=null?s:l.alias)!=null?i:l.uid)!=null?c:l.id)!=null?h:""),r=X(se(l));return le(oe({},l),{label:n,treeKey:De(l),children:r.length?r:void 0})}):[]}function A(o,t){const l=String(o||"").trim().toLowerCase();return l==="child_object"?"object":l==="customer"||l==="project"||l==="object"?l:t<=1?"customer":t===2?"project":"object"}function xe(o,t){const l=o.stationIndicator;if(l==="green"||l==="orange")return!0;if(A(o.ctype,t.level)!=="project")return!1;const n=se(o);return n.length?n.every(r=>A(r.ctype,t.level+1)==="object"):!1}function Te(o){const t=C.value.menuToSheetLevels;if(!Array.isArray(t)||!t.length)return"Folder";const l=t.map(i=>{var c;return{level:Number(i.level)||0,treeIcon:String((c=i.treeIcon)!=null?c:"").trim()}}).filter(i=>i.level>0).sort((i,c)=>i.level-c.level),n=l.filter(i=>i.level<=o),r=n.length?n[n.length-1]:l[0];if(!r)return"Folder";const s=r.treeIcon;return s==="none"?null:s&&Ne[s]?s:"Folder"}function Ae(o){const t=Te(o);return t&&Ne[t]||null}function De(o){var n,r,s,i,c;const t=String((n=o.ctype)!=null?n:"n"),l=(c=(i=(s=(r=o.uid)!=null?r:o.id)!=null?s:o.name)!=null?i:o.label)!=null?c:"n";return`${t}_${l}`}const D=e.ref([]),G=e.ref(!1),Y=e.ref(null),J=e.ref("");function Me(o,t){var i,c,h,V;if(!o)return!0;const l=o.toLowerCase(),n=String((c=(i=t.label)!=null?i:t.name)!=null?c:"").toLowerCase(),r=String((h=t.uid)!=null?h:"").toLowerCase(),s=String((V=t.alias)!=null?V:"").toLowerCase();return n.includes(l)||r.includes(l)||s.includes(l)}function ue(){e.nextTick(()=>{var o;(o=Y.value)==null||o.filter(J.value.trim())})}function M(){return x(this,null,function*(){var o,t;G.value=!0;try{if(U.value)D.value=X(JSON.parse(JSON.stringify(lt)));else{const l=yield E.api.post("get_customer_project_tree",{},!0),n=(o=l==null?void 0:l.result)!=null?o:l,r=Array.isArray(n)?n:n!=null?[n]:[];D.value=X(r)}yield e.nextTick(),(t=Y.value)==null||t.filter(J.value.trim())}catch(l){console.error(l),D.value=[]}finally{G.value=!1}})}e.watch(U,()=>{M()});const N=e.ref(null),$=e.ref(1);function ce(o){var l,n,r,s;(l=j.value)!=null&&l.linkChannel&&I.publish({objectUid:String((n=o.uid)!=null?n:""),objectName:String((s=(r=o.name)!=null?r:o.label)!=null?s:""),objectId:o.id!=null?String(o.id):""})}function Le(o){var r,s,i,c;const t=String((r=o.uid)!=null?r:"").trim(),l=C.value.stationNavRules,n=Array.isArray(l)?l:[];for(const h of n){const V=String((s=h==null?void 0:h.stationUid)!=null?s:"").trim(),m=String((i=h==null?void 0:h.pageKey)!=null?i:"").trim();if(!(!V||!m)&&V===t)return m}return String((c=C.value.stationNavPageKey)!=null?c:"").trim()}function Be(o,t){const l=C.value;return l&&Object.prototype.hasOwnProperty.call(l,o)&&l[o]!==void 0?!!l[o]:t}const L=e.computed(()=>Be("embedObjectMonitorRight",!0)),Oe=e.computed(()=>{if(!L.value)return;const o=String(T.value||"").trim();if(!o)return[];const t=C.value.menuToSheetLevels;if(!Array.isArray(t))return[];const l=Number($.value),n=t.find(i=>Number(i==null?void 0:i.level)===l),s=(n&&Array.isArray(n.rules)?n.rules:[]).map(i=>{var c;return String((c=i==null?void 0:i.sheetTitle)!=null?c:"").trim()}).filter(Boolean);return s.length?s.map(i=>({menuTitle:o,sheetTitle:i})):[]}),Pe=e.computed(()=>{const o=String(C.value.objectLinkedDashboardDevice||"pc").trim().toLowerCase();return o==="mobile"||o==="screen"?o:"pc"}),B=e.ref(null),W=e.ref(""),Z=e.ref(!1);function de(){B.value=null,W.value=""}function me(o){if(!o||typeof o!="object")return{};const t=o,l=t.result;if(l&&typeof l=="object"&&!Array.isArray(l))return l;const n=t.data;return n&&typeof n=="object"&&!Array.isArray(n)?n:t}function Fe(o,t){const l=t.toLowerCase();return o.find(n=>{var i,c;const r=String((i=n==null?void 0:n.device_type)!=null?i:"").toLowerCase(),s=String((c=n==null?void 0:n.type)!=null?c:"").toLowerCase();return r===l||s===l})}function Ie(o){return x(this,null,function*(){var l;const t=o.trim();if(!t){g.ElMessage.warning("对象缺少 uid");return}Z.value=!0,B.value=null,W.value=t;try{const n=yield E.api.post("get_object_item",{uid:t},!0),r=me(n),s=Array.isArray(r.dashboard_list)?r.dashboard_list:[],i=Pe.value,c=Fe(s,i),h=String((l=c==null?void 0:c.uid)!=null?l:"").trim();if(!h){g.ElMessage.warning("该对象未绑定对应类型的显示板");return}const V=yield E.api.post("get_dashboard_item",{uid:h},!0),m=me(V),k=m==null?void 0:m.script;k&&typeof k=="object"&&Object.keys(k).length?B.value=k:g.ElMessage.warning("显示板脚本为空")}catch(n){console.error(n),B.value=null}finally{Z.value=!1}})}function Re(o,t){N.value=o,$.value=t.level;const l=Le(o);if(l&&xe(o,t)){L.value&&de(),z.value=l,ce(o);return}L.value&&A(o.ctype,t.level)!=="object"&&de(),A(o.ctype,t.level)==="object"&&x(null,null,function*(){var n;if(L.value&&f.mode!=="edit"){const r=String((n=o.uid)!=null?n:"").trim();r&&(yield Ie(r))}else Ee();ce(o)})}const pe=e.computed(()=>N.value?A(N.value.ctype,$.value)==="customer":!1),fe=e.computed(()=>N.value?A(N.value.ctype,$.value)==="project":!1),q=e.ref(null),H=e.ref(""),ee=e.ref("");function Ue(o){o==="customer"?qe():o==="project"?He():o==="object"&&Ke()}function qe(){ge(),O.value=!0}function He(){var s,i,c;if(!pe.value||!N.value){g.ElMessage.warning("请先在树中选中客户(片区)节点");return}ve();const o=N.value,t=o.id,l=t!=null&&t!==""?Number(t):NaN;q.value=Number.isFinite(l)?l:null,H.value=String((s=o.uid)!=null?s:"").trim();const n=String((c=(i=o.name)!=null?i:o.label)!=null?c:"").trim(),r=H.value;ee.value=[n,r].filter(Boolean).join(" · ")||r||String(t!=null?t:"—"),P.value=!0}function Ke(){var t,l,n,r;if(!fe.value||!N.value){g.ElMessage.warning("请先在树中选中项目节点");return}he();const o=N.value;d.customer_id=String((t=o.uid)!=null?t:"").trim(),d.customer_name=String((n=(l=o.name)!=null?l:o.label)!=null?n:"").trim(),d.customer_alias=String((r=o.alias)!=null?r:"").trim(),F.value=!0}const O=e.ref(!1),P=e.ref(!1),F=e.ref(!1),w=e.ref(!1),p=e.reactive({name:"",alias:"",contact:"",mobile:"",description:""}),y=e.reactive({name:"",alias:"",description:""}),d=e.reactive({uid:"",name:"",alias:"",model:"",customer_id:"",customer_name:"",customer_alias:"",description:""});function ge(){p.name="",p.alias="",p.contact="",p.mobile="",p.description=""}function ve(){y.name="",y.alias="",y.description=""}function Qe(){q.value=null,H.value="",ee.value=""}function ze(){ve(),Qe()}function he(){d.uid="",d.name="",d.alias="",d.model="",d.customer_id="",d.customer_name="",d.customer_alias="",d.description=""}function Ge(){return x(this,null,function*(){if(!p.name.trim()){g.ElMessage.warning("请填写客户名称");return}if(U.value){g.ElMessage.success("演示数据:已记录(未写入模拟树,关闭「使用模拟树」后可调真实接口)"),O.value=!1;return}w.value=!0;try{yield E.api.post("create_customer",{name:p.name.trim(),alias:p.alias.trim(),contact:p.contact,mobile:p.mobile,description:p.description},!0),g.ElMessage.success("添加成功"),O.value=!1,yield M()}catch(o){g.ElMessage.error("添加失败")}finally{w.value=!1}})}function Je(){return x(this,null,function*(){if(!y.name.trim()){g.ElMessage.warning("请填写项目名称");return}const o=q.value!=null&&!Number.isNaN(q.value),t=!!H.value;if(!o&&!t){g.ElMessage.warning("缺少所属客户");return}if(U.value){g.ElMessage.success("演示数据:已记录(未写入模拟树)"),P.value=!1;return}w.value=!0;try{const l={name:y.name.trim(),alias:y.alias.trim(),description:y.description};o?l.father_id=q.value:t&&(l.parent_uid=H.value),yield E.api.post("create_project",l,!0),g.ElMessage.success("添加成功"),P.value=!1,yield M()}catch(l){g.ElMessage.error("添加失败")}finally{w.value=!1}})}function $e(){var o,t,l,n,r,s,i;return{id:0,uid:"",name:String((o=d.name)!=null?o:"").trim(),alias:String((t=d.alias)!=null?t:""),model:String((l=d.model)!=null?l:""),description:String((n=d.description)!=null?n:""),customer_id:String((r=d.customer_id)!=null?r:""),customer_name:String((s=d.customer_name)!=null?s:""),customer_alias:String((i=d.customer_alias)!=null?i:""),terminal_list:[],mapping_id:"",mapping_name:"",tag:[],province:"",city:"",create_by_tpl:0,tpl_uid:"",tpl_name:"",tpl_alias:"",addition:"[]"}}function We(){return x(this,null,function*(){var o;if(!d.name.trim()){g.ElMessage.warning("请填写对象名称");return}if(!String((o=d.customer_id)!=null?o:"").trim()){g.ElMessage.warning("缺少所属项目,请从树中选中项目后再添加");return}if(U.value){g.ElMessage.success("演示数据:已记录(未写入模拟树)"),F.value=!1;return}w.value=!0;try{yield E.api.post("create_object",$e(),!0),g.ElMessage.success("添加成功"),F.value=!1,yield M()}catch(t){g.ElMessage.error("添加失败")}finally{w.value=!1}})}return e.onMounted(()=>{M()}),(o,t)=>{const l=_.ElIcon,n=_.ElInput,r=_.ElButton,s=_.ElDropdownItem,i=_.ElDropdownMenu,c=_.ElDropdown,h=_.ElTree,V=_.ElEmpty,m=_.ElFormItem,k=_.ElForm,te=_.ElDialog,be=_.ElLoadingDirective;return e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:"customer-project-object mix-component",style:e.normalizeStyle({backgroundColor:e.unref(j).bgColor,borderRadius:`${e.unref(j).radiusSize}px`})},[e.createElementVNode("div",nt,[e.unref(j).isHideTitle?(e.openBlock(),e.createElementBlock("div",it)):(e.openBlock(),e.createElementBlock("span",at,e.toDisplayString(b.conf.caption||b.conf.name),1)),e.createElementVNode("div",rt,[e.createVNode(n,{modelValue:J.value,"onUpdate:modelValue":t[0]||(t[0]=u=>J.value=u),class:"gsl-search-input",clearable:"",placeholder:"搜索客户、项目、对象…",size:"small",onInput:ue,onClear:ue},{prefix:e.withCtx(()=>[e.createVNode(l,{class:"gsl-search-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.Search))]),_:1})]),_:1},8,["modelValue"]),e.createVNode(r,{size:"small",loading:G.value,onClick:M},{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode("刷新",-1)])]),_:1},8,["loading"]),e.unref(j).showAddBtn?(e.openBlock(),e.createBlock(c,{key:0,trigger:"click",onCommand:Ue},{dropdown:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(s,{command:"customer"},{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("添加客户",-1)])]),_:1}),e.createVNode(s,{command:"project",disabled:!pe.value},{default:e.withCtx(()=>[...t[22]||(t[22]=[e.createTextVNode("添加项目",-1)])]),_:1},8,["disabled"]),e.createVNode(s,{command:"object",disabled:!fe.value},{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode("添加对象",-1)])]),_:1},8,["disabled"])]),_:1})]),default:e.withCtx(()=>[e.createVNode(r,{type:"primary",size:"small"},{default:e.withCtx(()=>[t[20]||(t[20]=e.createTextVNode(" 新增 ",-1)),e.createVNode(l,{class:"el-icon--right"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ArrowDown))]),_:1})]),_:1})]),_:1})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",{class:e.normalizeClass(["mix-body gsl-body",{"gsl-body--split":L.value}])},[e.createElementVNode("div",st,[e.createElementVNode("div",ut,[D.value.length?(e.openBlock(),e.createBlock(h,{key:0,ref_key:"treeRef",ref:Y,class:"gsl-tree",data:D.value,props:{label:"label",children:"children"},"node-key":"treeKey","highlight-current":"","default-expand-all":"","filter-node-method":Me,onNodeClick:Re},{default:e.withCtx(({node:u,data:ye})=>[e.createElementVNode("span",ct,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList([Ae(u.level)],Ce=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:ye.treeKey+"-"+u.level},[Ce?(e.openBlock(),e.createElementBlock("span",dt,[e.createVNode(l,{class:"gsl-tree-level-icon"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(Ce)))]),_:2},1024)])):e.createCommentVNode("",!0)],64))),128)),e.createElementVNode("span",mt,e.toDisplayString(ye.label),1)])]),_:1},8,["data"])):(e.openBlock(),e.createBlock(V,{key:1,description:"暂无树数据"}))])]),L.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",pt,[B.value?(e.openBlock(),e.createElementBlock("div",ft,[(e.openBlock(),e.createBlock(E._sfc_main,{key:W.value,script:B.value,uid:W.value,"enable-web-socket":!0,"follow-host-theme":!0,"host-pro-menu-title":T.value,"host-menu-to-sheet-rules":Oe.value},null,8,["script","uid","host-pro-menu-title","host-menu-to-sheet-rules"]))])):(e.openBlock(),e.createBlock(V,{key:1,class:"gsl-monitor-empty",description:"点击对象查看设备监控"}))])),[[be,Z.value]]):e.createCommentVNode("",!0)],2),e.createVNode(te,{modelValue:O.value,"onUpdate:modelValue":t[7]||(t[7]=u=>O.value=u),title:"添加客户",width:"520px","destroy-on-close":"",onClosed:ge},{footer:e.withCtx(()=>[e.createVNode(r,{onClick:t[6]||(t[6]=u=>O.value=!1)},{default:e.withCtx(()=>[...t[24]||(t[24]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(r,{type:"primary",loading:w.value,onClick:Ge},{default:e.withCtx(()=>[...t[25]||(t[25]=[e.createTextVNode("保存",-1)])]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(k,{model:p,"label-width":"100px"},{default:e.withCtx(()=>[e.createVNode(m,{label:"客户名称",required:""},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:p.name,"onUpdate:modelValue":t[1]||(t[1]=u=>p.name=u),placeholder:"必填"},null,8,["modelValue"])]),_:1}),e.createVNode(m,{label:"客户别名"},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:p.alias,"onUpdate:modelValue":t[2]||(t[2]=u=>p.alias=u)},null,8,["modelValue"])]),_:1}),e.createVNode(m,{label:"联系人"},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:p.contact,"onUpdate:modelValue":t[3]||(t[3]=u=>p.contact=u)},null,8,["modelValue"])]),_:1}),e.createVNode(m,{label:"手机"},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:p.mobile,"onUpdate:modelValue":t[4]||(t[4]=u=>p.mobile=u)},null,8,["modelValue"])]),_:1}),e.createVNode(m,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:p.description,"onUpdate:modelValue":t[5]||(t[5]=u=>p.description=u),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),e.createVNode(te,{modelValue:P.value,"onUpdate:modelValue":t[12]||(t[12]=u=>P.value=u),title:"添加项目",width:"520px","destroy-on-close":"",onClosed:ze},{footer:e.withCtx(()=>[e.createVNode(r,{onClick:t[11]||(t[11]=u=>P.value=!1)},{default:e.withCtx(()=>[...t[26]||(t[26]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(r,{type:"primary",loading:w.value,onClick:Je},{default:e.withCtx(()=>[...t[27]||(t[27]=[e.createTextVNode("保存",-1)])]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(k,{model:y,"label-width":"100px"},{default:e.withCtx(()=>[e.createVNode(m,{label:"所属客户"},{default:e.withCtx(()=>[e.createVNode(n,{"model-value":ee.value,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(m,{label:"项目名称",required:""},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:y.name,"onUpdate:modelValue":t[8]||(t[8]=u=>y.name=u),placeholder:"必填"},null,8,["modelValue"])]),_:1}),e.createVNode(m,{label:"项目别名"},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:y.alias,"onUpdate:modelValue":t[9]||(t[9]=u=>y.alias=u)},null,8,["modelValue"])]),_:1}),e.createVNode(m,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:y.description,"onUpdate:modelValue":t[10]||(t[10]=u=>y.description=u),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),e.createVNode(te,{modelValue:F.value,"onUpdate:modelValue":t[18]||(t[18]=u=>F.value=u),title:"添加对象",width:"560px","destroy-on-close":"",onClosed:he},{footer:e.withCtx(()=>[e.createVNode(r,{onClick:t[17]||(t[17]=u=>F.value=!1)},{default:e.withCtx(()=>[...t[28]||(t[28]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(r,{type:"primary",loading:w.value,onClick:We},{default:e.withCtx(()=>[...t[29]||(t[29]=[e.createTextVNode("保存",-1)])]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(k,{model:d,"label-width":"110px"},{default:e.withCtx(()=>[e.createVNode(m,{label:"对象名称",required:""},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:d.name,"onUpdate:modelValue":t[13]||(t[13]=u=>d.name=u),placeholder:"必填"},null,8,["modelValue"])]),_:1}),e.createVNode(m,{label:"对象别名"},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:d.alias,"onUpdate:modelValue":t[14]||(t[14]=u=>d.alias=u)},null,8,["modelValue"])]),_:1}),e.createVNode(m,{label:"型号"},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:d.model,"onUpdate:modelValue":t[15]||(t[15]=u=>d.model=u)},null,8,["modelValue"])]),_:1}),e.createVNode(m,{label:"项目编号"},{default:e.withCtx(()=>[e.createVNode(n,{"model-value":d.customer_id,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(m,{label:"项目名称"},{default:e.withCtx(()=>[e.createVNode(n,{"model-value":d.customer_name,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(m,{label:"项目别名"},{default:e.withCtx(()=>[e.createVNode(n,{"model-value":d.customer_alias,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(m,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:d.description,"onUpdate:modelValue":t[16]||(t[16]=u=>d.description=u),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),e.renderSlot(o.$slots,"default",{},void 0,!0)],4)),[[be,G.value&&!D.value.length]])}}})),Vt=E._export_sfc(_t,[["__scopeId","data-v-645bb86f"]]);exports.default=Vt;
@@ -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-D8dh_6Qd.cjs"),mn=require("./BaseComponent-CNXUpPY1.cjs"),pn=require("./titleStyle-NSnz6cUg.cjs"),xe=require("./leaflet-src-BUWIqhPn.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},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-d53ee494"]]);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-DVqMfQVc.cjs"),mn=require("./BaseComponent-Chnv4fBT.cjs"),pn=require("./titleStyle-NSnz6cUg.cjs"),xe=require("./leaflet-src-CxFQ_Cn7.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;
@@ -36,10 +36,10 @@ import { R as Zn, k as Jn, S as Kn, l as Qn, W as eo, m as xt, A as to, n as no,
36
36
  import { O as fo } from "./OrbitControls-BHOrUcwg.js";
37
37
  import { C as mo, a as ho } from "./CSS2DRenderer-BpZog3-L.js";
38
38
  import { M as tn, a as go } from "./ExtensionUtilities-D6MxZMHR.js";
39
- import { _ as et, g as ut } from "./index-Bdq33405.js";
40
- import { B as yo } from "./BaseComponent-D5tlYehc.js";
39
+ import { _ as et, d as ut } from "./index-DwPJu6XM.js";
40
+ import { B as yo } from "./BaseComponent-CBagahPU.js";
41
41
  import { g as bo } from "./titleStyle-BT5GlpAb.js";
42
- import { L as Ge } from "./leaflet-src-DFE_g2gF.js";
42
+ import { L as Ge } from "./leaflet-src-DNO2-OsP.js";
43
43
  /* empty css */
44
44
  import { A as wo, D as ko } from "./ele-glbModel-icon-l_SMi3ik.js";
45
45
  function Zt(r) {
@@ -1055,7 +1055,14 @@ const Uo = { class: "geo-toggle" }, Do = ["title"], Oo = ["title"], Io = /* @__P
1055
1055
  }, wa = ["disabled"], ka = {
1056
1056
  key: 0,
1057
1057
  class: "geo-section-results"
1058
- }, _a = { class: "geo-result-count" }, Ma = { class: "geo-section-stats" }, xa = { class: "geo-status-bar" }, Ca = { key: 0 }, Aa = { class: "geo-group-picker" }, Sa = { class: "geo-group-body" }, Ra = { class: "geo-group-options" }, La = ["value"], Fa = { DEFAULT_ICON: ko, ACTIVE_ICON: wo, NAME_CN: "三维地质模型", NAME_EN: "Geo3D Viewer", ORDER: 1 }, Ta = {
1058
+ }, _a = { class: "geo-result-count" }, Ma = { class: "geo-section-stats" }, xa = { class: "geo-status-bar" }, Ca = { key: 0 }, Aa = { class: "geo-group-picker" }, Sa = { class: "geo-group-body" }, Ra = { class: "geo-group-options" }, La = ["value"], Fa = {
1059
+ DEFAULT_ICON: ko,
1060
+ ACTIVE_ICON: wo,
1061
+ NAME_CN: "三维地质模型",
1062
+ NAME_EN: "Geo3D Viewer",
1063
+ ORDER: 1,
1064
+ PLATFORM: ["pc", "screen"]
1065
+ }, Ta = {
1059
1066
  bgColor: "#f0f2f5",
1060
1067
  radiusSize: 4,
1061
1068
  isHideTitle: !1,
@@ -2120,7 +2127,7 @@ const Uo = { class: "geo-toggle" }, Do = ["title"], Oo = ["title"], Io = /* @__P
2120
2127
  ], 4);
2121
2128
  };
2122
2129
  }
2123
- })), tr = /* @__PURE__ */ et(Pa, [["__scopeId", "data-v-d53ee494"]]);
2130
+ })), tr = /* @__PURE__ */ et(Pa, [["__scopeId", "data-v-c35e371c"]]);
2124
2131
  export {
2125
2132
  tr as default
2126
2133
  };