mixdashboards 1.0.77 → 1.0.78

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 (331) hide show
  1. package/dist/{BaseComponent-DtvXBQYf.js → BaseComponent-Dwhb9Mde.js} +3 -3
  2. package/dist/{BaseComponent-B5ivgb3E.cjs → BaseComponent-bzb58Hhs.cjs} +1 -1
  3. package/dist/{EChartComponentBase-c7NzErOu.js → EChartComponentBase-BmS2KONN.js} +2 -2
  4. package/dist/{EChartComponentBase-ChoVZ7wg.cjs → EChartComponentBase-CMN_pOMr.cjs} +1 -1
  5. package/dist/{EmergencyPlanPanel-DG23L1EJ.cjs → EmergencyPlanPanel-CVusdpDo.cjs} +1 -1
  6. package/dist/{EmergencyPlanPanel-COfHeuTK.js → EmergencyPlanPanel-FtvC-aXY.js} +1 -1
  7. package/dist/{HistoryPlanDialog-d5ocUKAB.cjs → HistoryPlanDialog-CrYylrTC.cjs} +1 -1
  8. package/dist/{HistoryPlanDialog-CItsTCsk.js → HistoryPlanDialog-DliuSi0p.js} +1 -1
  9. package/dist/{MonitoringMap-H5AOAU8m.cjs → MonitoringMap-CBnv001f.cjs} +1 -1
  10. package/dist/{MonitoringMap-CGdqpp4N.js → MonitoringMap-DB3R5nAJ.js} +2 -2
  11. package/dist/{UniverSheet-tSAkLkuy.js → UniverSheet-DFyIjurx.js} +2 -2
  12. package/dist/{UniverSheet-BAwHvLEU.cjs → UniverSheet-jy9kOyPN.cjs} +1 -1
  13. package/dist/{accelerationChart-D69FGgF0.cjs → accelerationChart-Ceo371ch.cjs} +1 -1
  14. package/dist/{accelerationChart-4RM-T97n.js → accelerationChart-Q_Q_QlU7.js} +2 -2
  15. package/dist/{actionItem-XXesGERk.js → actionItem-BzMI_4-S.js} +2 -2
  16. package/dist/{actionItem-nkkG4T8t.cjs → actionItem-DB74CPi2.cjs} +1 -1
  17. package/dist/{alarmLevelChart-Cg4-8uhy.js → alarmLevelChart-Bp3SLCMe.js} +2 -2
  18. package/dist/{alarmLevelChart-DtzJLIO8.cjs → alarmLevelChart-CxmiBIKh.cjs} +1 -1
  19. package/dist/{alertTable-cpTXAjVG.cjs → alertTable-B1w_i0VB.cjs} +1 -1
  20. package/dist/{alertTable-_7uxXdg1.js → alertTable-DXzTm7mA.js} +2 -2
  21. package/dist/{aliasObjectSelectorDemo-COnsSHH1.cjs → aliasObjectSelectorDemo-CRuq8zju.cjs} +1 -1
  22. package/dist/{aliasObjectSelectorDemo-bgchdBQ0.js → aliasObjectSelectorDemo-Dfanalux.js} +1 -1
  23. package/dist/{annualRainfallChart-D5byp5kM.js → annualRainfallChart-D4Rhc84p.js} +2 -2
  24. package/dist/{annualRainfallChart-BRRuAOLJ.cjs → annualRainfallChart-DEeyac7q.cjs} +1 -1
  25. package/dist/{aqi-BkNZxokM.js → aqi-BzCTxj0q.js} +36 -28
  26. package/dist/{aqi-CbM96i-K.cjs → aqi-CBknBfTF.cjs} +2 -2
  27. package/dist/{aqiIndass-CC_FnBlK.js → aqiIndass-BJGsJsmz.js} +2 -2
  28. package/dist/{aqiIndass-UP1Ez_qA.cjs → aqiIndass-CUs24FxP.cjs} +1 -1
  29. package/dist/{areaDeformCurve-97gwWmiv.cjs → areaDeformCurve-B8VGdoKK.cjs} +1 -1
  30. package/dist/{areaDeformCurve-CoTcTIJx.js → areaDeformCurve-bSAkB3Pt.js} +2 -2
  31. package/dist/{arrayCard-lwGyTUyK.js → arrayCard-BkD5sytz.js} +2 -2
  32. package/dist/{arrayCard-CDs0w_2C.cjs → arrayCard-kh5WRweD.cjs} +1 -1
  33. package/dist/{audio-DwzGVHhN.js → audio-BTrvZwCy.js} +2 -2
  34. package/dist/{audio-DcGRfoFl.cjs → audio-DwJN2gca.cjs} +1 -1
  35. package/dist/{bar-DA7TDioF.js → bar-DYIb4143.js} +2 -2
  36. package/dist/{bar-Bh4Zupfj.cjs → bar-DsyyzcxB.cjs} +1 -1
  37. package/dist/{bmp-D7P6JPZ3.cjs → bmp-DbEyuBZw.cjs} +1 -1
  38. package/dist/{bmp-C-7PJc-e.js → bmp-Dt3mSkAr.js} +2 -2
  39. package/dist/{box-EScim_8s.cjs → box--u3HQFj9.cjs} +1 -1
  40. package/dist/{box-CabcDxmT.js → box-D7RsK5Qp.js} +2 -2
  41. package/dist/{chartConfigPanel-BOTXJEgB.js → chartConfigPanel-CD-csrX-.js} +1 -1
  42. package/dist/{chartConfigPanel-CGM3JLv0.cjs → chartConfigPanel-DybQRqg6.cjs} +1 -1
  43. package/dist/{circleBar-okrH5S9i.js → circleBar-4md65KCX.js} +2 -2
  44. package/dist/{circleBar-C3LcD2GM.cjs → circleBar-DJY37bwB.cjs} +1 -1
  45. package/dist/{clock-_0PzxcIr.js → clock-Cj0HsizY.js} +2 -2
  46. package/dist/{clock-B-MpqirO.cjs → clock-Dc9jgxHT.cjs} +1 -1
  47. package/dist/{clt-CmMR6xrj.cjs → clt-CBbtQxMc.cjs} +1 -1
  48. package/dist/{clt-B7Ro2RZ9.js → clt-uJT1jgHk.js} +2 -2
  49. package/dist/{cmc-CFz43gP5.cjs → cmc-CeTCKLBx.cjs} +1 -1
  50. package/dist/{cmc-UjkMrdkf.js → cmc-JJ6eTxB3.js} +2 -2
  51. package/dist/{cmp-B99dBC5D.cjs → cmp-CGZ_2BdE.cjs} +1 -1
  52. package/dist/{cmp-DAoGjmUK.js → cmp-D9qlHJoW.js} +2 -2
  53. package/dist/{conclusionCard-DfGfQa2i.js → conclusionCard-BsLeh3yq.js} +2 -2
  54. package/dist/{conclusionCard-BH6PfBmm.cjs → conclusionCard-CwLwj3zj.cjs} +1 -1
  55. package/dist/{controlList-Ch22lz5j.js → controlList-CYNS0ArB.js} +2 -2
  56. package/dist/{controlList-UzBZAUg8.cjs → controlList-l2ZYM6m5.cjs} +1 -1
  57. package/dist/{controlRecordList-DqVkxlxI.js → controlRecordList-BZmCvISO.js} +2 -2
  58. package/dist/{controlRecordList-CjaRe3iR.cjs → controlRecordList-N79_cTON.cjs} +1 -1
  59. package/dist/{controlRecordListAPP-DO9oXKbz.cjs → controlRecordListAPP-DOzMDV4x.cjs} +1 -1
  60. package/dist/{controlRecordListAPP-B4Agwftc.js → controlRecordListAPP-aDj520mp.js} +2 -2
  61. package/dist/{crd-Bf8jZALT.cjs → crd-CV4kMUTB.cjs} +1 -1
  62. package/dist/{crd-9hr2CpXs.js → crd-bm_BHuoV.js} +2 -2
  63. package/dist/{ctrBtn-DrNeLQd9.cjs → ctrBtn-Cs6ZmfyJ.cjs} +1 -1
  64. package/dist/{ctrBtn-Yfbw4Pt6.js → ctrBtn-DYceHTAq.js} +3 -3
  65. package/dist/{ctrSet-BI4qrXOp.js → ctrSet-B6PlTSBE.js} +3 -3
  66. package/dist/{ctrSet-Cw82MzYN.cjs → ctrSet-XqnGgYPn.cjs} +1 -1
  67. package/dist/{ctrSwitch-CyIBxuP0.cjs → ctrSwitch-B9lHJgQn.cjs} +1 -1
  68. package/dist/{ctrSwitch-CbrB82jp.js → ctrSwitch-E0FM_4f2.js} +3 -3
  69. package/dist/{dataManagement-8jLHO5b6.js → dataManagement-BAHa-OHl.js} +2 -2
  70. package/dist/{dataManagement-BANzNRgt.cjs → dataManagement-bKmkV2VY.cjs} +1 -1
  71. package/dist/{dataReport-BTY2YPkp.js → dataReport-B60Rb4sb.js} +2 -2
  72. package/dist/{dataReport-C6rqooz1.cjs → dataReport-JcrjpK_j.cjs} +1 -1
  73. package/dist/{dataTable-CT7O3vOj.js → dataTable-BmvewFlr.js} +1 -1
  74. package/dist/{dataTable-DK1bXW7L.cjs → dataTable-CX6uktOu.cjs} +1 -1
  75. package/dist/{datetime-Gc1JB409.cjs → datetime-BPM_lGiY.cjs} +1 -1
  76. package/dist/{datetime-BfpmpRWw.js → datetime-DARBbZJx.js} +2 -2
  77. package/dist/{deepClusterSlipSurface-CuPVV8T2.js → deepClusterSlipSurface-BF77Vp7G.js} +2 -2
  78. package/dist/{deepClusterSlipSurface-Do0cuafE.cjs → deepClusterSlipSurface-IywdiDlA.cjs} +1 -1
  79. package/dist/{deepDataMatrix-B2h-jr0-.js → deepDataMatrix--zgQoWer.js} +2 -2
  80. package/dist/{deepDataMatrix-eYmIiIMu.cjs → deepDataMatrix-sRXkGqdm.cjs} +1 -1
  81. package/dist/{deepDisplacement3D-Cc8f_nFC.cjs → deepDisplacement3D-BET8Ftuc.cjs} +1 -1
  82. package/dist/{deepDisplacement3D-DyF7L9GI.js → deepDisplacement3D-BYt49pzj.js} +2 -2
  83. package/dist/{deepDisplacementChart-BkgOiG2W.js → deepDisplacementChart-B2zPpsk6.js} +2 -2
  84. package/dist/{deepDisplacementChart-BUPlTFCA.js → deepDisplacementChart-BGBhipUx.js} +3 -3
  85. package/dist/{deepDisplacementChart-DVscdSYa.cjs → deepDisplacementChart-BuuM485C.cjs} +1 -1
  86. package/dist/{deepDisplacementChart-De935Ifi.cjs → deepDisplacementChart-D7loYUI5.cjs} +1 -1
  87. package/dist/{deepDisplacementView-C9P1cqRH.js → deepDisplacementView-Bwk9p_Qc.js} +1 -1
  88. package/dist/{deepDisplacementView-C3qEJa9Q.cjs → deepDisplacementView-CTBH3IxP.cjs} +1 -1
  89. package/dist/{deepNodeTemperatureChart-DePoeTnV.js → deepNodeTemperatureChart-BqTigCTs.js} +2 -2
  90. package/dist/{deepNodeTemperatureChart-DLzI-lAv.cjs → deepNodeTemperatureChart-CTLHLf0w.cjs} +1 -1
  91. package/dist/{deepTangentAngleChart-D2SQkZEz.js → deepTangentAngleChart-5oxzMpMF.js} +2 -2
  92. package/dist/{deepTangentAngleChart-ClBLpr_-.cjs → deepTangentAngleChart-CHxB8OFL.cjs} +1 -1
  93. package/dist/{deepTemperatureField-B_rWuVyI.js → deepTemperatureField-Bhk89D3D.js} +3 -3
  94. package/dist/{deepTemperatureField-CUGWy_vS.cjs → deepTemperatureField-Cr6YbuR_.cjs} +1 -1
  95. package/dist/{deepTrendChart-C_e7Dgjz.js → deepTrendChart-CAbdVR8d.js} +2 -2
  96. package/dist/{deepTrendChart-BcrJBFqD.cjs → deepTrendChart-Ch94j4W9.cjs} +1 -1
  97. package/dist/{deviceOnlineStatus-C0SqKqjc.js → deviceOnlineStatus-C5ODwFsY.js} +2 -2
  98. package/dist/{deviceOnlineStatus-BZxCnz-5.cjs → deviceOnlineStatus-DxsTb4Vb.cjs} +1 -1
  99. package/dist/{deviceStatus-DClMreZ3.cjs → deviceStatus-CjFTpCaU.cjs} +1 -1
  100. package/dist/{deviceStatus-BPglOIKN.js → deviceStatus-DPfOQCSX.js} +2 -2
  101. package/dist/{displacementDataTable-C5172BMT.cjs → displacementDataTable-BIqBEkul.cjs} +1 -1
  102. package/dist/{displacementDataTable-9WH9Y3-l.js → displacementDataTable-DG36VWok.js} +2 -2
  103. package/dist/{displacementTrajectoryChart-DWGKAbMq.js → displacementTrajectoryChart-Cpmj24Jn.js} +2 -2
  104. package/dist/{displacementTrajectoryChart-C-pchT8b.cjs → displacementTrajectoryChart-DRltcPfa.cjs} +1 -1
  105. package/dist/{displacementTrendChart-D4keOUDg.js → displacementTrendChart-D1yfRFQb.js} +2 -2
  106. package/dist/{displacementTrendChart-B8Em-Apt.cjs → displacementTrendChart-DpD79zii.cjs} +1 -1
  107. package/dist/{dxf-CRFblr-a.cjs → dxf-C_9cH0WU.cjs} +1 -1
  108. package/dist/{dxf-BV56d_m8.js → dxf-zbCakRgh.js} +2 -2
  109. package/dist/dzc-CejqHneE.cjs +2 -0
  110. package/dist/{dzc-FZBGaYTk.js → dzc-CfPVaIgj.js} +46 -38
  111. package/dist/{emergencyPlan-CbFUPUf9.js → emergencyPlan-LbeRH-P9.js} +3 -3
  112. package/dist/{emergencyPlan-D5YlhQNC.cjs → emergencyPlan-dEwML5xC.cjs} +1 -1
  113. package/dist/{evn-ty-ACnv0.cjs → evn-BvgQ3o3T.cjs} +1 -1
  114. package/dist/{evn-DMrhD8U9.js → evn-DsD_MKQd.js} +2 -2
  115. package/dist/{evolutionChart-Cg3jN_vy.js → evolutionChart-B4C9qB3I.js} +3 -3
  116. package/dist/{evolutionChart-C6E2yiqG.cjs → evolutionChart-Dt5-xRsy.cjs} +1 -1
  117. package/dist/{fileViewer-D3UlJjIK.js → fileViewer-B0LdLy2P.js} +2 -2
  118. package/dist/{fileViewer-BqlO8FED.cjs → fileViewer-DZIREgL0.cjs} +1 -1
  119. package/dist/{filterBar-BWqpT6Ft.js → filterBar-Bt6w4_xK.js} +2 -2
  120. package/dist/{filterBar-x-zvXO4x.cjs → filterBar-D_jcuqwP.cjs} +1 -1
  121. package/dist/{fireCombustionCurve-CCsxFlpG.js → fireCombustionCurve-C2rWY89D.js} +3 -3
  122. package/dist/{fireCombustionCurve-BzvhUF4h.cjs → fireCombustionCurve-CHRd1nSv.cjs} +1 -1
  123. package/dist/{fireFilterBar-KU0l3oMk.js → fireFilterBar-CpwHRisZ.js} +2 -2
  124. package/dist/{fireFilterBar-BtMlwSl0.cjs → fireFilterBar-DX8qH1rr.cjs} +1 -1
  125. package/dist/{fireHistoryTable-GYC28vg2.cjs → fireHistoryTable-B38M6w5w.cjs} +1 -1
  126. package/dist/{fireHistoryTable-BqxPj5bh.js → fireHistoryTable-DcSgHt5q.js} +2 -2
  127. package/dist/{gag-CEsV2Rsa.js → gag-BErw_nsf.js} +2 -2
  128. package/dist/{gag-DnaEi2qS.cjs → gag-qDNPdFJu.cjs} +1 -1
  129. package/dist/{gasStationList-enI_qbTZ.js → gasStationList-BREZbC_k.js} +2 -2
  130. package/dist/{gasStationList-CSmyS9tt.cjs → gasStationList-NhJa4GO6.cjs} +1 -1
  131. package/dist/{geo3dViewer-Bi2I8qrS.cjs → geo3dViewer-D9uSt0up.cjs} +1 -1
  132. package/dist/{geo3dViewer-D3ZEH_sW.js → geo3dViewer-zAN1eIza.js} +3 -3
  133. package/dist/{glbModel-BcrfDRGx.cjs → glbModel-C4FiDMM5.cjs} +1 -1
  134. package/dist/{glbModel-Dz32VGsg.js → glbModel-i6HvK0m8.js} +2 -2
  135. package/dist/{globalObjectSelector-DPm_eXg_.js → globalObjectSelector-BrVwJEgp.js} +1 -1
  136. package/dist/{globalObjectSelector-CJrFL8ag.cjs → globalObjectSelector-CR74psMa.cjs} +1 -1
  137. package/dist/{gnssFilterBar-klba1QZm.js → gnssFilterBar-BEHXIIKI.js} +2 -2
  138. package/dist/{gnssFilterBar-DzHsXBPj.cjs → gnssFilterBar-BkfBQWXF.cjs} +1 -1
  139. package/dist/{gnssHistoryTable-BmWSzo4U.cjs → gnssHistoryTable-CQ-7ESYj.cjs} +1 -1
  140. package/dist/{gnssHistoryTable-Cp3pIekL.js → gnssHistoryTable-DDWGE_ge.js} +2 -2
  141. package/dist/{gnssMapView-BV9rsiDD.js → gnssMapView-C9iRAzym.js} +4 -4
  142. package/dist/{gnssMapView-BaZlzP_f.cjs → gnssMapView-P6ed3l_W.cjs} +2 -2
  143. package/dist/{gnssSectionProfile-CArri0j5.js → gnssSectionProfile-BIqyABEf.js} +2 -2
  144. package/dist/{gnssSectionProfile-D02MfJcd.cjs → gnssSectionProfile-CIZnF7VA.cjs} +1 -1
  145. package/dist/{gnssTimeSeriesChart-fZYtdBrL.cjs → gnssTimeSeriesChart-BgIM5U-H.cjs} +1 -1
  146. package/dist/{gnssTimeSeriesChart-C3VtICJV.js → gnssTimeSeriesChart-DqH9JFBF.js} +2 -2
  147. package/dist/{gnssXYTrajectory-ClbZljGY.js → gnssXYTrajectory-BviUjxG9.js} +2 -2
  148. package/dist/{gnssXYTrajectory-glpzGLHH.cjs → gnssXYTrajectory-CH8864n6.cjs} +1 -1
  149. package/dist/{grd-DAPxN3Yv.cjs → grd-BhpBxrpa.cjs} +1 -1
  150. package/dist/{grd-DFbgrJiz.js → grd-DfkGlcW6.js} +2 -2
  151. package/dist/{grdIndass-CdReMrRF.js → grdIndass-ByznFwzc.js} +2 -2
  152. package/dist/{grdIndass-CRYPP8ap.cjs → grdIndass-DhMfHz31.cjs} +1 -1
  153. package/dist/{grg-BuxeFXkW.js → grg-CVBoetQY.js} +2 -2
  154. package/dist/{grg-DBj_IXUS.cjs → grg-uzBlEm_K.cjs} +1 -1
  155. package/dist/{gridview-DMqISEIm.cjs → gridview-CyXCqWKq.cjs} +1 -1
  156. package/dist/{gridview-ieOKw-zp.js → gridview-Dt3i1t5d.js} +2 -2
  157. package/dist/{groundwaterFilterBar-CMrXUaJD.js → groundwaterFilterBar-BbS81e9a.js} +2 -2
  158. package/dist/{groundwaterFilterBar-DTjCop4R.cjs → groundwaterFilterBar-C4xCPqa_.cjs} +1 -1
  159. package/dist/{groundwaterProfileChart-wwZ31Nxz.js → groundwaterProfileChart-BBPFrt5W.js} +3 -3
  160. package/dist/{groundwaterProfileChart-CHFMvxM0.cjs → groundwaterProfileChart-DvjFvCm5.cjs} +2 -2
  161. package/dist/{groundwaterTimeCurve-CL7EWs-M.js → groundwaterTimeCurve-CKlvc2nQ.js} +3 -3
  162. package/dist/{groundwaterTimeCurve-DzTolxJ6.cjs → groundwaterTimeCurve-Cb3xlM78.cjs} +1 -1
  163. package/dist/{groupCard-3iWG0sN3.js → groupCard-BBzDl9uX.js} +2 -2
  164. package/dist/{groupCard-CdPis-TL.cjs → groupCard-BVdjzdqF.cjs} +1 -1
  165. package/dist/{headerBar-DVP5Ob99.cjs → headerBar-B5Z8UviF.cjs} +1 -1
  166. package/dist/{headerBar-BVa2ewi0.js → headerBar-Dty08mHR.js} +2 -2
  167. package/dist/{history-CZCtaT0D.js → history-TkSKA8F1.js} +1 -1
  168. package/dist/{history-CVMvhgUJ.cjs → history-yI8XiwXi.cjs} +1 -1
  169. package/dist/{index-DYr57ceS.cjs → index-6QhTSPkL.cjs} +10 -10
  170. package/dist/{index-BueGUjcH.js → index-YNdVib_6.js} +1260 -1265
  171. package/dist/{insarDeformChart-vPREnzjC.js → insarDeformChart-C9UkWIL9.js} +2 -2
  172. package/dist/{insarDeformChart-CVrCLtcb.cjs → insarDeformChart-Dr9Ve1vY.cjs} +1 -1
  173. package/dist/{insarImageViewer-C0D9bkS3.cjs → insarImageViewer-DAKBn2vV.cjs} +1 -1
  174. package/dist/{insarImageViewer-DsNoAsNI.js → insarImageViewer-DZbq2xch.js} +2 -2
  175. package/dist/{kds-C6tBi9fO.cjs → kds-BkH8cJCu.cjs} +1 -1
  176. package/dist/{kds-DUdtTddq.js → kds-__I8-o5i.js} +2 -2
  177. package/dist/{kpiCard-A_7vB_FS.js → kpiCard-BzuF0qdE.js} +2 -2
  178. package/dist/{kpiCard-Dfn9Utnc.cjs → kpiCard-fRfv1QPb.cjs} +1 -1
  179. package/dist/{landslideMap-DEYHn_Z8.js → landslideMap-D84pku4Y.js} +3 -3
  180. package/dist/{landslideMap-CjsBed2W.cjs → landslideMap-zD8SU2Lh.cjs} +1 -1
  181. package/dist/{landslideWarning-C2SVP_SW.js → landslideWarning-0mckvEoZ.js} +5 -5
  182. package/dist/{landslideWarning-9q-8-Yaf.cjs → landslideWarning-Cq-di-hN.cjs} +1 -1
  183. package/dist/{layerTabs-DpIpshzv.cjs → layerTabs-C2zq6a5M.cjs} +1 -1
  184. package/dist/{layerTabs-CkgVEQIu.js → layerTabs-COzqQ9mn.js} +2 -2
  185. package/dist/{leaflet-src-BV47Q4HI.js → leaflet-src-2tPn7QVH.js} +1 -1
  186. package/dist/{leaflet-src-DzRw1bMt.cjs → leaflet-src-D8MF2j44.cjs} +1 -1
  187. package/dist/{lerc-COLax3Js.js → lerc-BCmG0CMS.js} +2 -2
  188. package/dist/{lerc-BxPJ0Ezc.cjs → lerc-BHcVhBOn.cjs} +1 -1
  189. package/dist/{lin-BgNnturC.js → lin-CQ6TCBCr.js} +59 -51
  190. package/dist/{lin-0o_p8mvp.cjs → lin-niA_T9Ql.cjs} +2 -2
  191. package/dist/{linIndass-DqIczVZr.js → linIndass-J9rdji6E.js} +2 -2
  192. package/dist/{linIndass-DCnHejlJ.cjs → linIndass-nZx16Vos.cjs} +1 -1
  193. package/dist/{lst-DVSrQxnF.cjs → lst-Cw1XCAv0.cjs} +1 -1
  194. package/dist/{lst-pzZFRLE7.js → lst-DieyrYCh.js} +2 -2
  195. package/dist/{manualEntry-CU7C50JU.js → manualEntry-CCmyPMJm.js} +2 -2
  196. package/dist/{manualEntry-COjFNu6s.cjs → manualEntry-ChhTpAF2.cjs} +1 -1
  197. package/dist/{mapBackground-ssUjWKfZ.cjs → mapBackground-BzOdjhnZ.cjs} +1 -1
  198. package/dist/{mapBackground-Bi8yjPRE.js → mapBackground-CiiG2nHi.js} +3 -3
  199. package/dist/{mappingList-BRndtYHP.js → mappingList-CoBD8D27.js} +2 -2
  200. package/dist/{mappingList-Cryu-iab.cjs → mappingList-D42mILiq.cjs} +1 -1
  201. package/dist/{markdownViewer-i0a6mIv1.js → markdownViewer-C3HUXDvf.js} +2 -2
  202. package/dist/{markdownViewer-Dn2PQ9LA.cjs → markdownViewer-DHs9ekCh.cjs} +1 -1
  203. package/dist/{mix-control-modal-CHglSLUZ.js → mix-control-modal-BEwriuWS.js} +1 -1
  204. package/dist/{mix-control-modal-CicQq7ai.cjs → mix-control-modal-DGd2S6Jd.cjs} +1 -1
  205. package/dist/{mixGrid-CJfUwclp.js → mixGrid-CBenxHD_.js} +2 -2
  206. package/dist/{mixGrid-CHyP3WlY.cjs → mixGrid-Cnq99D09.cjs} +1 -1
  207. package/dist/mixdashboards.cjs +1 -1
  208. package/dist/mixdashboards.css +1 -1
  209. package/dist/mixdashboards.js +1 -1
  210. package/dist/{mixiotObjectListApi-BzhGWfpb.js → mixiotObjectListApi-CKJLXcnf.js} +1 -1
  211. package/dist/{mixiotObjectListApi-D8aEu-tS.cjs → mixiotObjectListApi-e1qL7PHh.cjs} +1 -1
  212. package/dist/{mjpegCamera-BltugLlx.js → mjpegCamera-D8lB701i.js} +2 -2
  213. package/dist/{mjpegCamera-DNETbJj6.cjs → mjpegCamera-DDFrZo-x.cjs} +1 -1
  214. package/dist/{monitorAlert-B0e6NlDC.cjs → monitorAlert-C-mo-lDe.cjs} +1 -1
  215. package/dist/{monitorAlert-BZt1nTav.js → monitorAlert-Z1dFDfPh.js} +2 -2
  216. package/dist/{monitorData-BN6f9iMG.cjs → monitorData-CNRfV5Wt.cjs} +1 -1
  217. package/dist/{monitorData-Bj-yPQyW.js → monitorData-DZhO9Gos.js} +2 -2
  218. package/dist/{monitorSpeedChart-DPUyFmKD.js → monitorSpeedChart-C5pN46lO.js} +1 -1
  219. package/dist/{monitorSpeedChart-B3VWNas7.cjs → monitorSpeedChart-DrRdMdGD.cjs} +1 -1
  220. package/dist/{mxa-pTWhgscr.js → mxa-BFQ70ksk.js} +39 -31
  221. package/dist/mxa-COpw24fq.cjs +2 -0
  222. package/dist/{myValue-Dyyv7mp6.js → myValue-Dosl4Ro5.js} +2 -2
  223. package/dist/{myValue-K9yzWHVv.cjs → myValue-Eb3asTOC.cjs} +1 -1
  224. package/dist/{myValueList-BrL41hIy.js → myValueList-Dkc10vr6.js} +2 -2
  225. package/dist/{myValueList-BF88xTbG.cjs → myValueList-mcqRZanE.cjs} +1 -1
  226. package/dist/{objectList-D1wulpL0.cjs → objectList-D4owr3ED.cjs} +1 -1
  227. package/dist/{objectList-DqUaLWIN.js → objectList-FWkZ6PAs.js} +3 -3
  228. package/dist/{objectListAPP-BJI-LZ9h.cjs → objectListAPP-Bzevu1od.cjs} +1 -1
  229. package/dist/{objectListAPP-68pa8xQ3.js → objectListAPP-CdfeZTgm.js} +3 -3
  230. package/dist/{photo-D2G-MiYd.cjs → photo-Dmxxqgrg.cjs} +1 -1
  231. package/dist/{photo-CqtG1ZDn.js → photo-DxXTYq73.js} +2 -2
  232. package/dist/pie-BxpiCEYe.cjs +2 -0
  233. package/dist/{pie-rodX5eBx.js → pie-COixdWUz.js} +85 -75
  234. package/dist/{placeholder-C2uw4-Bv.js → placeholder-CLLNLxRC.js} +1 -1
  235. package/dist/{placeholder-yXuUcCld.cjs → placeholder-Ole-Or58.cjs} +1 -1
  236. package/dist/{pressBtn-CkKRECXu.js → pressBtn-C7Y-B8Dz.js} +3 -3
  237. package/dist/{pressBtn-kIjSTK2P.cjs → pressBtn-DwKg9PbD.cjs} +1 -1
  238. package/dist/{processTable-pFBZ3sr0.js → processTable-CTkwZWWJ.js} +2 -2
  239. package/dist/{processTable-DVvTpite.cjs → processTable-DDcKkjJx.cjs} +1 -1
  240. package/dist/{progressBar-CE8Tat_F.cjs → progressBar-7qHg67Sf.cjs} +1 -1
  241. package/dist/{progressBar-CJXjo8T8.js → progressBar-9npgJ9jD.js} +2 -2
  242. package/dist/{progressCircle-jhxHU2LM.js → progressCircle-DP08TX08.js} +2 -2
  243. package/dist/{progressCircle-Cqjxopp0.cjs → progressCircle-Xgjnl1KF.cjs} +1 -1
  244. package/dist/{qrcode-COU9b8jO.js → qrcode-ClTSNzEN.js} +2 -2
  245. package/dist/{qrcode-ICKNQzlF.cjs → qrcode-D6wDMo-f.cjs} +1 -1
  246. package/dist/{raceBar-CpfkbT_l.cjs → raceBar-C8mVFHnd.cjs} +1 -1
  247. package/dist/{raceBar-DPZn5eQr.js → raceBar-CTmsN8VC.js} +2 -2
  248. package/dist/{rad-DYSDihyX.js → rad-DWCSD35t.js} +2 -2
  249. package/dist/{rad-MVqAl4DI.cjs → rad-Dxaakm82.cjs} +1 -1
  250. package/dist/{radarMapViewer-DSEst_zr.cjs → radarMapViewer-U7IQJjQs.cjs} +1 -1
  251. package/dist/{radarMapViewer-DT-cLDqj.js → radarMapViewer-eEBE3MS-.js} +2 -2
  252. package/dist/{rainfallFilterBar-BH4y-ZiG.js → rainfallFilterBar-DJTDGu7Z.js} +2 -2
  253. package/dist/{rainfallFilterBar-DBckf4TU.cjs → rainfallFilterBar-ow_wdOwq.cjs} +1 -1
  254. package/dist/{rainfallTimeCurve-BLPYjZne.cjs → rainfallTimeCurve-BL1I5Z2D.cjs} +1 -1
  255. package/dist/{rainfallTimeCurve-CEROEYQa.js → rainfallTimeCurve-CwGmJhxu.js} +3 -3
  256. package/dist/{rangeLin-CAWXiFqA.cjs → rangeLin-BEz9xapa.cjs} +1 -1
  257. package/dist/{rangeLin-D5m33pm3.js → rangeLin-BqcJpIva.js} +2 -2
  258. package/dist/{realtimeEvolutionMap-B_WyUQ7o.js → realtimeEvolutionMap-NOkyU7G3.js} +2 -2
  259. package/dist/{realtimeEvolutionMap-7YXQpGQV.cjs → realtimeEvolutionMap-mzXlR8gS.cjs} +1 -1
  260. package/dist/{regionBar-CRE0mrBK.cjs → regionBar-CEfz0Yol.cjs} +1 -1
  261. package/dist/{regionBar-BklMVV2U.js → regionBar-DDk-2UWS.js} +2 -2
  262. package/dist/{request-Bu96_fCa.js → request-BIXfJXjX.js} +1 -1
  263. package/dist/{request-C_dGr-al.cjs → request-BfG3yDz6.cjs} +1 -1
  264. package/dist/{retainer1-CSONW25j.cjs → retainer1-Ch1oZMeA.cjs} +1 -1
  265. package/dist/{retainer1-C9XjKFwo.js → retainer1-Cz5rXIJj.js} +3 -3
  266. package/dist/{retainer2-pxQIRn6B.cjs → retainer2-DJ1R2GJE.cjs} +1 -1
  267. package/dist/{retainer2-Nohg83dY.js → retainer2-DeelXgAZ.js} +3 -3
  268. package/dist/{retainerRecordList-B7mJ2EWt.cjs → retainerRecordList-D3MsCnqy.cjs} +1 -1
  269. package/dist/{retainerRecordList-D7ZTrf1N.js → retainerRecordList-DyhfjtfF.js} +2 -2
  270. package/dist/{retainerRecordListAPP-C5v2ahXJ.js → retainerRecordListAPP-3Gr7db3D.js} +2 -2
  271. package/dist/{retainerRecordListAPP-D-YaMhTT.cjs → retainerRecordListAPP-B_hCyRak.cjs} +1 -1
  272. package/dist/{ringTopN-CxZDBUkx.cjs → ringTopN-fLinQVwX.cjs} +1 -1
  273. package/dist/{ringTopN-n0TONMcf.js → ringTopN-t9xaVCWg.js} +2 -2
  274. package/dist/{riskRegionTable-CBddIShe.js → riskRegionTable-BThwQbTf.js} +2 -2
  275. package/dist/{riskRegionTable-Byb0Z693.cjs → riskRegionTable-CagcISBC.cjs} +1 -1
  276. package/dist/{sankey-BlIAPski.cjs → sankey-BY_nwThw.cjs} +1 -1
  277. package/dist/{sankey-D6XWVSSp.js → sankey-Bwm0omQr.js} +2 -2
  278. package/dist/{scd-CW_VLAdy.cjs → scd-Bs1dG1w8.cjs} +1 -1
  279. package/dist/{scd-B-DnzdLf.js → scd-DeYC1Rqx.js} +2 -2
  280. package/dist/{sideMenu-DCz3bw5f.cjs → sideMenu-CAEh3bwF.cjs} +1 -1
  281. package/dist/{sideMenu-B4NRCYfC.js → sideMenu-Db_Nc_xz.js} +2 -2
  282. package/dist/{slopeStability-C-vWRW5q.cjs → slopeStability-BWg6jhBB.cjs} +1 -1
  283. package/dist/{slopeStability-D5OmQDgi.js → slopeStability-CVC68Qcj.js} +2 -2
  284. package/dist/{speedCurve-tvLBjNoJ.js → speedCurve-CK4CXHeC.js} +2 -2
  285. package/dist/{speedCurve-D6uG-gFp.cjs → speedCurve-DNNEIz4o.cjs} +1 -1
  286. package/dist/{stressFilterBar-BQYqGIRB.cjs → stressFilterBar-Cigl3IyR.cjs} +1 -1
  287. package/dist/{stressFilterBar-aj-X6HC9.js → stressFilterBar-DQ8nq8jV.js} +2 -2
  288. package/dist/{stressTimeCurve-DC8cKQ52.js → stressTimeCurve-BEANw1F8.js} +3 -3
  289. package/dist/{stressTimeCurve-B0Gplbam.cjs → stressTimeCurve-BiduKfcg.cjs} +1 -1
  290. package/dist/{swiper-yrpsF9po.js → swiper-BgkvIN5U.js} +2 -2
  291. package/dist/{swiper-CDdx8LXl.cjs → swiper-MIRXMnxk.cjs} +1 -1
  292. package/dist/{terminalConfigList-VU0kGVKY.js → terminalConfigList-B3lqvQel.js} +2 -2
  293. package/dist/{terminalConfigList-NmdMNFkS.cjs → terminalConfigList-C3zRbQvM.cjs} +1 -1
  294. package/dist/{terminalList-BsHqVc8x.cjs → terminalList-ArxJ1jdO.cjs} +1 -1
  295. package/dist/{terminalList-BAYA-Ac0.js → terminalList-BevfdySj.js} +2 -2
  296. package/dist/{terminalListAPP-o2MxJO3g.js → terminalListAPP-CbpVft_s.js} +2 -2
  297. package/dist/{terminalListAPP-CsFu8juA.cjs → terminalListAPP-Cs0nnBfc.cjs} +1 -1
  298. package/dist/{textbox-B4Mo8FWS.js → textbox-CjkfmdaO.js} +2 -2
  299. package/dist/{textbox-5BUkzLTc.cjs → textbox-DC9YLTn5.cjs} +1 -1
  300. package/dist/{timeQueryBar-G4hUPdC2.cjs → timeQueryBar-B69eldHQ.cjs} +1 -1
  301. package/dist/{timeQueryBar-B0LIBA90.js → timeQueryBar-CXd9yNgD.js} +1 -1
  302. package/dist/{timeSeries-Ch4UV0P1.js → timeSeries-CLnLd-gX.js} +3 -3
  303. package/dist/{timeSeries-DC_CbU3l.cjs → timeSeries-fB14CgRy.cjs} +1 -1
  304. package/dist/{timeSeriesCurve-BF10Q_7c.js → timeSeriesCurve-CMcCzR13.js} +3 -3
  305. package/dist/{timeSeriesCurve-CJSHo8qO.cjs → timeSeriesCurve-DOaxDpjr.cjs} +1 -1
  306. package/dist/{toggleBtn-DQ2sHyaB.cjs → toggleBtn-BiUyrx_o.cjs} +1 -1
  307. package/dist/{toggleBtn-BhILbiNf.js → toggleBtn-CWmuTxSD.js} +2 -2
  308. package/dist/{trajectoryConfigPanel-BgSmlQkD.cjs → trajectoryConfigPanel-D7IDlQIH.cjs} +1 -1
  309. package/dist/{trajectoryConfigPanel-BlqriMc7.js → trajectoryConfigPanel-DKLN3KY5.js} +1 -1
  310. package/dist/{trajectoryScatter-CeX4LQpn.cjs → trajectoryScatter-CL-2FKZe.cjs} +1 -1
  311. package/dist/{trajectoryScatter-BL2aiBf-.js → trajectoryScatter-TEactc8J.js} +2 -2
  312. package/dist/{universalConfigPanel-NMan3ddE.cjs → universalConfigPanel-B8JIiLXp.cjs} +1 -1
  313. package/dist/{universalConfigPanel-CLKhwJP4.js → universalConfigPanel-wicv4Ypw.js} +1 -1
  314. package/dist/{universalTable-CEmD-HRB.js → universalTable-8e3LrZvD.js} +2 -2
  315. package/dist/{universalTable-thYFp4vt.cjs → universalTable-BlTdL3c0.cjs} +1 -1
  316. package/dist/{video-t1nUpAcT.js → video-DpRcCZZQ.js} +2 -2
  317. package/dist/{video-8idiBjxG.cjs → video-nPkrKQyL.cjs} +1 -1
  318. package/dist/{videoMonitor-BEeCMVJf.cjs → videoMonitor-DOVw5mE0.cjs} +1 -1
  319. package/dist/{videoMonitor-PM3-BUjQ.js → videoMonitor-Z_7cZk5Y.js} +2 -2
  320. package/dist/{vlu-CE181id-.js → vlu-BQCrHSlq.js} +2 -2
  321. package/dist/{vlu-o3-SObwR.cjs → vlu-DEIgGiO-.cjs} +1 -1
  322. package/dist/{warningOverview-CKcMNgw-.js → warningOverview-C7J5aXTJ.js} +3 -3
  323. package/dist/{warningOverview-CbJfW5ek.cjs → warningOverview-DXJNk5bT.cjs} +1 -1
  324. package/dist/{weather-a0CGhe9q.cjs → weather-B1Pfcn75.cjs} +1 -1
  325. package/dist/{weather-D3LQY9qO.js → weather-C1sjTcwC.js} +2 -2
  326. package/dist/{windLin-Cg58bRj3.cjs → windLin-QKZKJ1h_.cjs} +1 -1
  327. package/dist/{windLin-D7qqnbNz.js → windLin-vlM63Hu7.js} +2 -2
  328. package/package.json +1 -1
  329. package/dist/dzc-9BLm4nwW.cjs +0 -2
  330. package/dist/mxa-BQ_gyPOg.cjs +0 -2
  331. package/dist/pie-DGQowd1d.cjs +0 -2
@@ -1 +1 @@
1
- "use strict";var at=Object.defineProperty,it=Object.defineProperties;var st=Object.getOwnPropertyDescriptors;var Be=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,ut=Object.prototype.propertyIsEnumerable;var Me=(i,d,u)=>d in i?at(i,d,{enumerable:!0,configurable:!0,writable:!0,value:u}):i[d]=u,re=(i,d)=>{for(var u in d||(d={}))ct.call(d,u)&&Me(i,u,d[u]);if(Be)for(var u of Be(d))ut.call(d,u)&&Me(i,u,d[u]);return i},pe=(i,d)=>it(i,st(d));var U=(i,d,u)=>new Promise((g,h)=>{var b=v=>{try{S(u.next(v))}catch(w){h(w)}},N=v=>{try{S(u.throw(v))}catch(w){h(w)}},S=v=>v.done?g(v.value):Promise.resolve(v.value).then(b,N);S((u=u.apply(i,d)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=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"),Pe=require("@element-plus/icons-vue"),dt=require("./BaseComponent-B5ivgb3E.cjs"),T=require("./index-DYr57ceS.cjs"),_=require("element-plus"),Oe=require("./ele-lst-icon-CrxnHZ-A.cjs"),mt=[{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"}]}]}]}],ft=new Set(["pro","globalSettings","dashboard","version","meta"]);function ge(i){var d,u;if(!i)return null;if(Array.isArray(i))return ge(i[0]);if(typeof i=="string")try{return ge(JSON.parse(i))}catch(g){return null}if(typeof i=="object"){const g=(u=(d=i.script)!=null?d:i.data)!=null?u:i.result;if(g&&g!==i)return ge(g)}return i}function ve(i){if(!i||typeof i!="object"||Array.isArray(i))return null;const d=i;if(Array.isArray(d.sheets))return d;const u=d.dashboard;if(Array.isArray(u)&&u.length>0&&u[0]&&typeof u[0]=="object"){const g=u[0];if(Array.isArray(g.sheets))return pe(re(re({},d),g),{sheets:g.sheets})}return null}function pt(i){const d={};if(!i||typeof i!="object"||Array.isArray(i))return d;for(const u of Object.keys(i)){if(ft.has(u))continue;const g=ve(i[u]);g&&(d[u]=g)}return d}function gt(i,d){if(!i)return[];const u=ge(i);if(!u||typeof u!="object"||Array.isArray(u))return[];const g=u;if(Array.isArray(g.sheets)&&g.sheets.length)return g.sheets;const h=ve(g);if(h&&Array.isArray(h.sheets)&&h.sheets.length)return h.sheets;const b=pt(g),N=d.trim();if(N&&b[N]){const S=ve(b[N]);if(S&&Array.isArray(S.sheets))return S.sheets}for(const S of Object.keys(b)){const v=ve(b[S]);if(v&&Array.isArray(v.sheets)&&v.sheets.length)return v.sheets}return[]}function X(i){return String(i!=null?i:"").trim().replace(/\s+/g," ")}function vt(i){var u,g,h,b,N,S;const d=[];for(const v of i){if(!v||v.hideInPreviewTabs)continue;const w=String((h=(g=(u=v.caption)!=null?u:v.name)!=null?g:v.id)!=null?h:"").trim(),C=String((S=(N=(b=v.id)!=null?b:v.name)!=null?N:v.caption)!=null?S:"").trim();!w||!C||d.push({title:w,pageKey:C})}return d}function ht(i,d,u){var v,w,C,O,Y,Z,le;if(!i.length)return null;const g=X(d);let h=-1;if(u!==void 0&&g&&u.length)for(let D=0;D<i.length;D++){const E=i[D];if(!(!E||E.hideInPreviewTabs)){for(const B of u){const ae=X(B==null?void 0:B.menuTitle),I=X(B==null?void 0:B.sheetTitle);if(!ae||!I||X(g)!==ae)continue;const ie=X(E.caption),W=X(E.name),L=String((v=E.id)!=null?v:"").trim();if(ie===I||W===I||L===I){h=D;break}}if(h>=0)break}}h<0&&(h=i.findIndex(D=>D&&!D.hideInPreviewTabs)),h<0&&(h=0);const b=i[h];if(!b)return null;const N=String((O=(C=(w=b.caption)!=null?w:b.name)!=null?C:b.id)!=null?O:"").trim(),S=String((le=(Z=(Y=b.id)!=null?Y:b.name)!=null?Z:b.caption)!=null?le:"").trim();return N?{title:N,pageKey:S}:null}const yt={class:"gsl-top-bar"},bt={key:0,class:"gsl-top-caption"},_t={key:1,class:"gsl-top-caption-placeholder"},Ct={class:"gsl-top-actions"},St={class:"gsl-tree-col"},Vt={class:"gsl-tree-wrap"},Nt={class:"gsl-tree-node"},wt={key:0,class:"gsl-type-icon-wrap","aria-hidden":"true"},kt={class:"gsl-tree-label"},jt={key:0,class:"gsl-monitor-col"},At={key:0,class:"gsl-monitor-sheet-bar"},Et=["title","onClick"],xt={key:1,class:"gsl-monitor-sheet-bar gsl-monitor-sheet-bar--fallback"},Tt={key:2,class:"gsl-monitor-inner"},Dt={DEFAULT_ICON:Oe.DEFAULT_ICON,ACTIVE_ICON:Oe.ACTIVE_ICON,NAME_CN:"客户项目对象组件",NAME_EN:"CustomerProjectObject",ORDER:0,PLATFORM:["pc","screen"]},Bt={bgColor:"#fff",nameColor:"#999",valueColor:"#333",titleColor:"#111",titleSize:14,nameSize:12,valueSize:12,radiusSize:8,isHideTitle:!1,linkChannel:""},Le=[{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:""}]}]}],Mt=[{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)"}],Pt=[],Ot={isAddCondition:!1,conditions:[],conditionFilterFields:[{value:"name",label:"setting.mixiotListFilter.treeNodeName"},{value:"uid",label:"setting.mixiotListFilter.treeNodeUid"}]},Lt={DEFAULT:Dt,OPTIONS:Bt,DATA:Le,PARAMS:Mt,SOURCE:Pt,COMMON:Ot},It=e.defineComponent(pe(re({},Lt),{__name:"gasStationList",props:{conf:{default:()=>({data:[]})},uid:{default:""},mode:{},theme:{},code:{default:""}},setup(i){const d=i;class u extends dt.BaseComponent{getDataBool(t,n){var a,c;const r=(c=(a=this.props.conf)==null?void 0:a.data)==null?void 0:c[0];return r&&Object.prototype.hasOwnProperty.call(r,t)&&r[t]!==void 0?!!r[t]:this.getOptionValue(t,n)}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(Le));else{const n=this.props.conf.data[0];n.useMockTree===void 0&&(n.useMockTree=!1),n.showAddBtn===void 0&&(n.showAddBtn=!0);const r={sheetPageKeys:"gas_layout,monitor",sheetPageLabels:"对象布局,监控",defaultSheetGasList:"gas_layout",defaultSheetRuntimeCheck:"monitor",runtimeScene:"gasList"};for(const[l,m]of Object.entries(r))(n[l]===void 0||n[l]==="")&&(n[l]=m);n.stationNavPageKey===void 0&&(n.stationNavPageKey=""),Array.isArray(n.stationNavRules)||(n.stationNavRules=[]),n.embedObjectMonitorRight===void 0&&(n.embedObjectMonitorRight=n.openObjectLinkedDashboard!==!1),(n.objectLinkedDashboardDevice===void 0||n.objectLinkedDashboardDevice==="")&&(n.objectLinkedDashboardDevice="pc");const a=[{level:1,label:"客户",treeIcon:"OfficeBuilding",rules:[{sheetTitle:""}]},{level:2,label:"项目",treeIcon:"Folder",rules:[{sheetTitle:""}]},{level:3,label:"对象",treeIcon:"Monitor",rules:[{sheetTitle:""}]}],c=l=>l===1?"OfficeBuilding":l===2?"Folder":l===3?"Monitor":"Folder";if(!Array.isArray(n.menuToSheetLevels)||!n.menuToSheetLevels.length)n.menuToSheetLevels=JSON.parse(JSON.stringify(a));else for(const l of n.menuToSheetLevels){(!Array.isArray(l.rules)||!l.rules.length)&&(l.rules=[{sheetTitle:""}]);const m=Number(l.level);(l.treeIcon===void 0||l.treeIcon==="")&&(l.treeIcon=c(Number.isFinite(m)?m:0))}}}}const g=new u(d,"gasStationList");g.setupLifecycle();const h=g.getStyle(),b=e.inject("switchSheetByPageKey",()=>-1),N=e.inject("getSheets",()=>[]),S=e.inject("getProAppActiveMenuTitle",()=>""),v=e.inject("boardSwitchEpoch",e.ref(0)),w=e.computed(()=>{var o;try{const t=S;return typeof t=="function"?String((o=t())!=null?o:"").trim():""}catch(t){return""}}),C=e.computed(()=>{var o,t;return((t=(o=d.conf)==null?void 0:o.data)==null?void 0:t[0])||{}}),O=e.computed(()=>!!C.value.useMockTree);function Y(o){return String(o!=null?o:"").split(/[,,]/).map(t=>t.trim()).filter(Boolean)}const Z=e.computed(()=>{const o=Y(C.value.sheetPageKeys),t=Y(C.value.sheetPageLabels);return o.map((n,r)=>({pageKey:n,label:t[r]||n}))}),le=e.computed(()=>String(C.value.runtimeScene||"gasList").trim()),D=e.computed(()=>le.value==="runtimeCheck"?String(C.value.defaultSheetRuntimeCheck||"").trim():String(C.value.defaultSheetGasList||"").trim()),E=e.ref("");function B(){var r;const o=D.value,t=Z.value,n=((r=t[0])==null?void 0:r.pageKey)||"";return o&&t.some(a=>a.pageKey===o)?o:n}function ae(){E.value=B()}function I(){if(d.mode==="edit"||(N()||[]).filter(r=>!(r!=null&&r.hideInPreviewTabs)).length<=1)return;const n=B();n&&(E.value=n,b(String(n)))}e.watch(v,()=>{e.nextTick(()=>I())},{flush:"post",immediate:!0}),e.watch(Z,()=>{d.mode!=="edit"&&e.nextTick(()=>I())},{deep:!0}),e.watch(E,o=>{if(d.mode==="edit"||!o)return;b(String(o))<0&&console.warn("[客户项目对象] 未匹配到 Sheet 页面标识:",o,"sheets:",N())});function ie(o){return Array.isArray(o.children)?o.children:Array.isArray(o.child)?o.child:[]}function W(o){return Array.isArray(o)?o.filter(Boolean).map(t=>{var c,l,m,V;const n=t,r=String((V=(m=(l=(c=n.name)!=null?c:n.alias)!=null?l:n.uid)!=null?m:n.id)!=null?V:""),a=W(ie(n));return pe(re({},n),{label:r,treeKey:Ke(n),children:a.length?a:void 0})}):[]}function L(o,t){const n=String(o||"").trim().toLowerCase();return n==="child_object"?"object":n==="customer"||n==="project"||n==="object"?n:t<=1?"customer":t===2?"project":"object"}function Ie(o,t){const n=o.stationIndicator;if(n==="green"||n==="orange")return!0;if(L(o.ctype,t.level)!=="project")return!1;const r=ie(o);return r.length?r.every(a=>L(a.ctype,t.level+1)==="object"):!1}function Fe(o){const t=C.value.menuToSheetLevels;if(!Array.isArray(t)||!t.length)return"Folder";const n=t.map(l=>{var m;return{level:Number(l.level)||0,treeIcon:String((m=l.treeIcon)!=null?m:"").trim()}}).filter(l=>l.level>0).sort((l,m)=>l.level-m.level),r=n.filter(l=>l.level<=o),a=r.length?r[r.length-1]:n[0];if(!a)return"Folder";const c=a.treeIcon;return c==="none"?null:c&&T.proMenuIconMap[c]?c:"Folder"}function Re(o){const t=Fe(o);return t&&T.proMenuIconMap[t]||null}function Ke(o){var r,a,c,l,m;const t=String((r=o.ctype)!=null?r:"n"),n=(m=(l=(c=(a=o.uid)!=null?a:o.id)!=null?c:o.name)!=null?l:o.label)!=null?m:"n";return`${t}_${n}`}const q=e.ref([]),se=e.ref(!1),he=e.ref(null),ce=e.ref("");function Ue(o,t){var l,m,V,x;if(!o)return!0;const n=o.toLowerCase(),r=String((m=(l=t.label)!=null?l:t.name)!=null?m:"").toLowerCase(),a=String((V=t.uid)!=null?V:"").toLowerCase(),c=String((x=t.alias)!=null?x:"").toLowerCase();return r.includes(n)||a.includes(n)||c.includes(n)}function Ve(){e.nextTick(()=>{var o;(o=he.value)==null||o.filter(ce.value.trim())})}function z(){return U(this,null,function*(){var o,t;se.value=!0;try{if(O.value)q.value=W(JSON.parse(JSON.stringify(mt)));else{const n=yield T.api.post("get_customer_project_tree",{},!0),r=(o=n==null?void 0:n.result)!=null?o:n,a=Array.isArray(r)?r:r!=null?[r]:[];q.value=W(a)}yield e.nextTick(),(t=he.value)==null||t.filter(ce.value.trim())}catch(n){console.error(n),q.value=[]}finally{se.value=!1}})}e.watch(O,()=>{z()});const M=e.ref(null),ee=e.ref(1);function Ne(o){var n,r,a,c;(n=h.value)!=null&&n.linkChannel&&g.publish({objectUid:String((r=o.uid)!=null?r:""),objectName:String((c=(a=o.name)!=null?a:o.label)!=null?c:""),objectId:o.id!=null?String(o.id):""})}function qe(o){var a,c,l,m;const t=String((a=o.uid)!=null?a:"").trim(),n=C.value.stationNavRules,r=Array.isArray(n)?n:[];for(const V of r){const x=String((c=V==null?void 0:V.stationUid)!=null?c:"").trim(),p=String((l=V==null?void 0:V.pageKey)!=null?l:"").trim();if(!(!x||!p)&&x===t)return p}return String((m=C.value.stationNavPageKey)!=null?m:"").trim()}function ze(o,t){const n=C.value;return n&&Object.prototype.hasOwnProperty.call(n,o)&&n[o]!==void 0?!!n[o]:t}const H=e.computed(()=>ze("embedObjectMonitorRight",!0)),ye=e.computed(()=>{if(!H.value)return;const o=String(w.value||"").trim();if(!o)return[];const t=C.value.menuToSheetLevels;if(!Array.isArray(t))return[];const n=Number(ee.value),r=t.find(l=>Number(l==null?void 0:l.level)===n),c=(r&&Array.isArray(r.rules)?r.rules:[]).map(l=>{var m;return String((m=l==null?void 0:l.sheetTitle)!=null?m:"").trim()}).filter(Boolean);return c.length?c.map(l=>({menuTitle:o,sheetTitle:l})):[]}),He=e.computed(()=>{const o=String(C.value.objectLinkedDashboardDevice||"pc").trim().toLowerCase();return o==="mobile"||o==="screen"?o:"pc"}),A=e.ref(null),ue=e.ref(""),de=e.ref(""),me=e.ref(""),be=e.ref(!1),we=e.ref(null),F=e.ref([]),R=e.ref("");function _e(){var c;const o=A.value;if(!o){F.value=[],R.value="";return}const t=gt(o,de.value),n=ye.value;F.value=vt(t);const r=ht(t,w.value,n),a=(r==null?void 0:r.pageKey)||((c=F.value[0])==null?void 0:c.pageKey)||"";(!R.value||!F.value.some(l=>l.pageKey===R.value))&&(R.value=a)}function Qe(o){var n,r;if(!o.pageKey||!A.value)return;R.value=o.pageKey;const t=(r=(n=we.value)==null?void 0:n.switchSheetByPageKey)==null?void 0:r.call(n,o.pageKey);(t===void 0||t<0)&&_.ElMessage.warning("未找到对应 Sheet 页面")}function ke(){A.value=null,ue.value="",de.value="",me.value="",F.value=[],R.value=""}function je(o){if(!o||typeof o!="object")return{};const t=o,n=t.result;if(n&&typeof n=="object"&&!Array.isArray(n))return n;const r=t.data;return r&&typeof r=="object"&&!Array.isArray(r)?r:t}function Ge(o,t){const n=t.toLowerCase();return o.find(r=>{var l,m;const a=String((l=r==null?void 0:r.device_type)!=null?l:"").toLowerCase(),c=String((m=r==null?void 0:r.type)!=null?m:"").toLowerCase();return a===n||c===n})}function Je(o){return U(this,null,function*(){var n,r,a,c;const t=o.trim();if(!t){_.ElMessage.warning("对象缺少 uid");return}be.value=!0,A.value=null,ue.value=t,de.value="",me.value="";try{const l=yield T.api.post("get_object_item",{uid:t},!0),m=je(l),V=Array.isArray(m.dashboard_list)?m.dashboard_list:[],x=He.value,p=Ge(V,x),K=String((n=p==null?void 0:p.uid)!=null?n:"").trim();if(!K){_.ElMessage.warning("该对象未绑定对应类型的显示板");return}de.value=K,me.value=String((c=(a=(r=p==null?void 0:p.name)!=null?r:p==null?void 0:p.caption)!=null?a:p==null?void 0:p.alias)!=null?c:"").trim();const ne=yield T.api.post("get_dashboard_item",{uid:K},!0),$=je(ne),s=$==null?void 0:$.script;s&&typeof s=="object"&&Object.keys(s).length?(A.value=s,yield e.nextTick(),_e()):_.ElMessage.warning("显示板脚本为空")}catch(l){console.error(l),A.value=null,_e()}finally{be.value=!1}})}e.watch([A,w,ye,ee],()=>{_e()},{deep:!0});function $e(o,t){M.value=o,ee.value=t.level;const n=qe(o);if(n&&Ie(o,t)){H.value&&ke(),E.value=n,Ne(o);return}H.value&&L(o.ctype,t.level)!=="object"&&ke(),L(o.ctype,t.level)==="object"&&U(null,null,function*(){var r;if(H.value&&d.mode!=="edit"){const a=String((r=o.uid)!=null?r:"").trim();a&&(yield Je(a))}else ae();Ne(o)})}const Ae=e.computed(()=>M.value?L(M.value.ctype,ee.value)==="customer":!1),Ee=e.computed(()=>M.value?L(M.value.ctype,ee.value)==="project":!1),te=e.ref(null),oe=e.ref(""),Ce=e.ref("");function Xe(o){o==="customer"?Ye():o==="project"?Ze():o==="object"&&We()}function Ye(){xe(),Q.value=!0}function Ze(){var c,l,m;if(!Ae.value||!M.value){_.ElMessage.warning("请先在树中选中客户(片区)节点");return}Te();const o=M.value,t=o.id,n=t!=null&&t!==""?Number(t):NaN;te.value=Number.isFinite(n)?n:null,oe.value=String((c=o.uid)!=null?c:"").trim();const r=String((m=(l=o.name)!=null?l:o.label)!=null?m:"").trim(),a=oe.value;Ce.value=[r,a].filter(Boolean).join(" · ")||a||String(t!=null?t:"—"),G.value=!0}function We(){var t,n,r,a;if(!Ee.value||!M.value){_.ElMessage.warning("请先在树中选中项目节点");return}De();const o=M.value;f.customer_id=String((t=o.uid)!=null?t:"").trim(),f.customer_name=String((r=(n=o.name)!=null?n:o.label)!=null?r:"").trim(),f.customer_alias=String((a=o.alias)!=null?a:"").trim(),J.value=!0}const Q=e.ref(!1),G=e.ref(!1),J=e.ref(!1),P=e.ref(!1),y=e.reactive({name:"",alias:"",contact:"",mobile:"",description:""}),k=e.reactive({name:"",alias:"",description:""}),f=e.reactive({uid:"",name:"",alias:"",model:"",customer_id:"",customer_name:"",customer_alias:"",description:""});function xe(){y.name="",y.alias="",y.contact="",y.mobile="",y.description=""}function Te(){k.name="",k.alias="",k.description=""}function et(){te.value=null,oe.value="",Ce.value=""}function tt(){Te(),et()}function De(){f.uid="",f.name="",f.alias="",f.model="",f.customer_id="",f.customer_name="",f.customer_alias="",f.description=""}function ot(){return U(this,null,function*(){if(!y.name.trim()){_.ElMessage.warning("请填写客户名称");return}if(O.value){_.ElMessage.success("演示数据:已记录(未写入模拟树,关闭「使用模拟树」后可调真实接口)"),Q.value=!1;return}P.value=!0;try{yield T.api.post("create_customer",{name:y.name.trim(),alias:y.alias.trim(),contact:y.contact,mobile:y.mobile,description:y.description},!0),_.ElMessage.success("添加成功"),Q.value=!1,yield z()}catch(o){_.ElMessage.error("添加失败")}finally{P.value=!1}})}function nt(){return U(this,null,function*(){if(!k.name.trim()){_.ElMessage.warning("请填写项目名称");return}const o=te.value!=null&&!Number.isNaN(te.value),t=!!oe.value;if(!o&&!t){_.ElMessage.warning("缺少所属客户");return}if(O.value){_.ElMessage.success("演示数据:已记录(未写入模拟树)"),G.value=!1;return}P.value=!0;try{const n={name:k.name.trim(),alias:k.alias.trim(),description:k.description};o?n.father_id=te.value:t&&(n.parent_uid=oe.value),yield T.api.post("create_project",n,!0),_.ElMessage.success("添加成功"),G.value=!1,yield z()}catch(n){_.ElMessage.error("添加失败")}finally{P.value=!1}})}function rt(){var o,t,n,r,a,c,l;return{id:0,uid:"",name:String((o=f.name)!=null?o:"").trim(),alias:String((t=f.alias)!=null?t:""),model:String((n=f.model)!=null?n:""),description:String((r=f.description)!=null?r:""),customer_id:String((a=f.customer_id)!=null?a:""),customer_name:String((c=f.customer_name)!=null?c:""),customer_alias:String((l=f.customer_alias)!=null?l:""),terminal_list:[],mapping_id:"",mapping_name:"",tag:[],province:"",city:"",create_by_tpl:0,tpl_uid:"",tpl_name:"",tpl_alias:"",addition:"[]"}}function lt(){return U(this,null,function*(){var o;if(!f.name.trim()){_.ElMessage.warning("请填写对象名称");return}if(!String((o=f.customer_id)!=null?o:"").trim()){_.ElMessage.warning("缺少所属项目,请从树中选中项目后再添加");return}if(O.value){_.ElMessage.success("演示数据:已记录(未写入模拟树)"),J.value=!1;return}P.value=!0;try{yield T.api.post("create_object",rt(),!0),_.ElMessage.success("添加成功"),J.value=!1,yield z()}catch(t){_.ElMessage.error("添加失败")}finally{P.value=!1}})}return e.onMounted(()=>{z()}),(o,t)=>{const n=j.ElIcon,r=j.ElInput,a=j.ElButton,c=j.ElDropdownItem,l=j.ElDropdownMenu,m=j.ElDropdown,V=j.ElTree,x=j.ElEmpty,p=j.ElFormItem,K=j.ElForm,ne=j.ElDialog,$=j.ElLoadingDirective;return e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:"customer-project-object mix-component",style:e.normalizeStyle({backgroundColor:e.unref(h).bgColor,borderRadius:`${e.unref(h).radiusSize}px`})},[e.createElementVNode("div",yt,[e.unref(h).isHideTitle?(e.openBlock(),e.createElementBlock("div",_t)):(e.openBlock(),e.createElementBlock("span",bt,e.toDisplayString(i.conf.caption||i.conf.name),1)),e.createElementVNode("div",Ct,[e.createVNode(r,{modelValue:ce.value,"onUpdate:modelValue":t[0]||(t[0]=s=>ce.value=s),class:"gsl-search-input",clearable:"",placeholder:"搜索客户、项目、对象…",size:"small",onInput:Ve,onClear:Ve},{prefix:e.withCtx(()=>[e.createVNode(n,{class:"gsl-search-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(Pe.Search))]),_:1})]),_:1},8,["modelValue"]),e.createVNode(a,{size:"small",loading:se.value,onClick:z},{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode("刷新",-1)])]),_:1},8,["loading"]),e.unref(h).showAddBtn?(e.openBlock(),e.createBlock(m,{key:0,trigger:"click",onCommand:Xe},{dropdown:e.withCtx(()=>[e.createVNode(l,null,{default:e.withCtx(()=>[e.createVNode(c,{command:"customer"},{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("添加客户",-1)])]),_:1}),e.createVNode(c,{command:"project",disabled:!Ae.value},{default:e.withCtx(()=>[...t[22]||(t[22]=[e.createTextVNode("添加项目",-1)])]),_:1},8,["disabled"]),e.createVNode(c,{command:"object",disabled:!Ee.value},{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode("添加对象",-1)])]),_:1},8,["disabled"])]),_:1})]),default:e.withCtx(()=>[e.createVNode(a,{type:"primary",size:"small"},{default:e.withCtx(()=>[t[20]||(t[20]=e.createTextVNode(" 新增 ",-1)),e.createVNode(n,{class:"el-icon--right"},{default:e.withCtx(()=>[e.createVNode(e.unref(Pe.ArrowDown))]),_:1})]),_:1})]),_:1})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",{class:e.normalizeClass(["mix-body gsl-body",{"gsl-body--split":H.value}])},[e.createElementVNode("div",St,[e.createElementVNode("div",Vt,[q.value.length?(e.openBlock(),e.createBlock(V,{key:0,ref_key:"treeRef",ref:he,class:"gsl-tree",data:q.value,props:{label:"label",children:"children"},"node-key":"treeKey","highlight-current":"","default-expand-all":"","filter-node-method":Ue,onNodeClick:$e},{default:e.withCtx(({node:s,data:fe})=>[e.createElementVNode("span",Nt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList([Re(s.level)],Se=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:fe.treeKey+"-"+s.level},[Se?(e.openBlock(),e.createElementBlock("span",wt,[e.createVNode(n,{class:"gsl-tree-level-icon"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(Se)))]),_:2},1024)])):e.createCommentVNode("",!0)],64))),128)),e.createElementVNode("span",kt,e.toDisplayString(fe.label),1)])]),_:1},8,["data"])):(e.openBlock(),e.createBlock(x,{key:1,description:"暂无树数据"}))])]),H.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",jt,[A.value&&F.value.length?(e.openBlock(),e.createElementBlock("div",At,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.value,(s,fe)=>(e.openBlock(),e.createElementBlock("button",{key:s.pageKey+"-"+fe,type:"button",class:e.normalizeClass(["gsl-monitor-sheet-tab",{active:s.pageKey===R.value}]),title:s.title,onClick:Se=>Qe(s)},e.toDisplayString(s.title),11,Et))),128))])):A.value?(e.openBlock(),e.createElementBlock("div",xt,e.toDisplayString(me.value||"设备监控"),1)):e.createCommentVNode("",!0),A.value?(e.openBlock(),e.createElementBlock("div",Tt,[(e.openBlock(),e.createBlock(T._sfc_main,{ref_key:"rightPanelDesignRef",ref:we,key:ue.value,script:A.value,uid:ue.value,"enable-web-socket":!0,"follow-host-theme":!0,"host-pro-menu-title":w.value,"host-menu-to-sheet-rules":ye.value},null,8,["script","uid","host-pro-menu-title","host-menu-to-sheet-rules"]))])):(e.openBlock(),e.createBlock(x,{key:3,class:"gsl-monitor-empty",description:"点击对象查看设备监控"}))])),[[$,be.value]]):e.createCommentVNode("",!0)],2),e.createVNode(ne,{modelValue:Q.value,"onUpdate:modelValue":t[7]||(t[7]=s=>Q.value=s),title:"添加客户",width:"520px","destroy-on-close":"",onClosed:xe},{footer:e.withCtx(()=>[e.createVNode(a,{onClick:t[6]||(t[6]=s=>Q.value=!1)},{default:e.withCtx(()=>[...t[24]||(t[24]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(a,{type:"primary",loading:P.value,onClick:ot},{default:e.withCtx(()=>[...t[25]||(t[25]=[e.createTextVNode("保存",-1)])]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(K,{model:y,"label-width":"100px"},{default:e.withCtx(()=>[e.createVNode(p,{label:"客户名称",required:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:y.name,"onUpdate:modelValue":t[1]||(t[1]=s=>y.name=s),placeholder:"必填"},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"客户别名"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:y.alias,"onUpdate:modelValue":t[2]||(t[2]=s=>y.alias=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"联系人"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:y.contact,"onUpdate:modelValue":t[3]||(t[3]=s=>y.contact=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"手机"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:y.mobile,"onUpdate:modelValue":t[4]||(t[4]=s=>y.mobile=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:y.description,"onUpdate:modelValue":t[5]||(t[5]=s=>y.description=s),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),e.createVNode(ne,{modelValue:G.value,"onUpdate:modelValue":t[12]||(t[12]=s=>G.value=s),title:"添加项目",width:"520px","destroy-on-close":"",onClosed:tt},{footer:e.withCtx(()=>[e.createVNode(a,{onClick:t[11]||(t[11]=s=>G.value=!1)},{default:e.withCtx(()=>[...t[26]||(t[26]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(a,{type:"primary",loading:P.value,onClick:nt},{default:e.withCtx(()=>[...t[27]||(t[27]=[e.createTextVNode("保存",-1)])]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(K,{model:k,"label-width":"100px"},{default:e.withCtx(()=>[e.createVNode(p,{label:"所属客户"},{default:e.withCtx(()=>[e.createVNode(r,{"model-value":Ce.value,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(p,{label:"项目名称",required:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:k.name,"onUpdate:modelValue":t[8]||(t[8]=s=>k.name=s),placeholder:"必填"},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"项目别名"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:k.alias,"onUpdate:modelValue":t[9]||(t[9]=s=>k.alias=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:k.description,"onUpdate:modelValue":t[10]||(t[10]=s=>k.description=s),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),e.createVNode(ne,{modelValue:J.value,"onUpdate:modelValue":t[18]||(t[18]=s=>J.value=s),title:"添加对象",width:"560px","destroy-on-close":"",onClosed:De},{footer:e.withCtx(()=>[e.createVNode(a,{onClick:t[17]||(t[17]=s=>J.value=!1)},{default:e.withCtx(()=>[...t[28]||(t[28]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(a,{type:"primary",loading:P.value,onClick:lt},{default:e.withCtx(()=>[...t[29]||(t[29]=[e.createTextVNode("保存",-1)])]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(K,{model:f,"label-width":"110px"},{default:e.withCtx(()=>[e.createVNode(p,{label:"对象名称",required:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:f.name,"onUpdate:modelValue":t[13]||(t[13]=s=>f.name=s),placeholder:"必填"},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"对象别名"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:f.alias,"onUpdate:modelValue":t[14]||(t[14]=s=>f.alias=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"型号"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:f.model,"onUpdate:modelValue":t[15]||(t[15]=s=>f.model=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"项目编号"},{default:e.withCtx(()=>[e.createVNode(r,{"model-value":f.customer_id,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(p,{label:"项目名称"},{default:e.withCtx(()=>[e.createVNode(r,{"model-value":f.customer_name,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(p,{label:"项目别名"},{default:e.withCtx(()=>[e.createVNode(r,{"model-value":f.customer_alias,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(p,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:f.description,"onUpdate:modelValue":t[16]||(t[16]=s=>f.description=s),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),e.renderSlot(o.$slots,"default",{},void 0,!0)],4)),[[$,se.value&&!q.value.length]])}}})),Ft=T._export_sfc(It,[["__scopeId","data-v-3637114d"]]);exports.default=Ft;
1
+ "use strict";var at=Object.defineProperty,it=Object.defineProperties;var st=Object.getOwnPropertyDescriptors;var Be=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,ut=Object.prototype.propertyIsEnumerable;var Me=(i,d,u)=>d in i?at(i,d,{enumerable:!0,configurable:!0,writable:!0,value:u}):i[d]=u,re=(i,d)=>{for(var u in d||(d={}))ct.call(d,u)&&Me(i,u,d[u]);if(Be)for(var u of Be(d))ut.call(d,u)&&Me(i,u,d[u]);return i},pe=(i,d)=>it(i,st(d));var U=(i,d,u)=>new Promise((g,h)=>{var b=v=>{try{S(u.next(v))}catch(w){h(w)}},N=v=>{try{S(u.throw(v))}catch(w){h(w)}},S=v=>v.done?g(v.value):Promise.resolve(v.value).then(b,N);S((u=u.apply(i,d)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=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"),Pe=require("@element-plus/icons-vue"),dt=require("./BaseComponent-bzb58Hhs.cjs"),T=require("./index-6QhTSPkL.cjs"),_=require("element-plus"),Oe=require("./ele-lst-icon-CrxnHZ-A.cjs"),mt=[{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"}]}]}]}],ft=new Set(["pro","globalSettings","dashboard","version","meta"]);function ge(i){var d,u;if(!i)return null;if(Array.isArray(i))return ge(i[0]);if(typeof i=="string")try{return ge(JSON.parse(i))}catch(g){return null}if(typeof i=="object"){const g=(u=(d=i.script)!=null?d:i.data)!=null?u:i.result;if(g&&g!==i)return ge(g)}return i}function ve(i){if(!i||typeof i!="object"||Array.isArray(i))return null;const d=i;if(Array.isArray(d.sheets))return d;const u=d.dashboard;if(Array.isArray(u)&&u.length>0&&u[0]&&typeof u[0]=="object"){const g=u[0];if(Array.isArray(g.sheets))return pe(re(re({},d),g),{sheets:g.sheets})}return null}function pt(i){const d={};if(!i||typeof i!="object"||Array.isArray(i))return d;for(const u of Object.keys(i)){if(ft.has(u))continue;const g=ve(i[u]);g&&(d[u]=g)}return d}function gt(i,d){if(!i)return[];const u=ge(i);if(!u||typeof u!="object"||Array.isArray(u))return[];const g=u;if(Array.isArray(g.sheets)&&g.sheets.length)return g.sheets;const h=ve(g);if(h&&Array.isArray(h.sheets)&&h.sheets.length)return h.sheets;const b=pt(g),N=d.trim();if(N&&b[N]){const S=ve(b[N]);if(S&&Array.isArray(S.sheets))return S.sheets}for(const S of Object.keys(b)){const v=ve(b[S]);if(v&&Array.isArray(v.sheets)&&v.sheets.length)return v.sheets}return[]}function X(i){return String(i!=null?i:"").trim().replace(/\s+/g," ")}function vt(i){var u,g,h,b,N,S;const d=[];for(const v of i){if(!v||v.hideInPreviewTabs)continue;const w=String((h=(g=(u=v.caption)!=null?u:v.name)!=null?g:v.id)!=null?h:"").trim(),C=String((S=(N=(b=v.id)!=null?b:v.name)!=null?N:v.caption)!=null?S:"").trim();!w||!C||d.push({title:w,pageKey:C})}return d}function ht(i,d,u){var v,w,C,O,Y,Z,le;if(!i.length)return null;const g=X(d);let h=-1;if(u!==void 0&&g&&u.length)for(let D=0;D<i.length;D++){const E=i[D];if(!(!E||E.hideInPreviewTabs)){for(const B of u){const ae=X(B==null?void 0:B.menuTitle),I=X(B==null?void 0:B.sheetTitle);if(!ae||!I||X(g)!==ae)continue;const ie=X(E.caption),W=X(E.name),L=String((v=E.id)!=null?v:"").trim();if(ie===I||W===I||L===I){h=D;break}}if(h>=0)break}}h<0&&(h=i.findIndex(D=>D&&!D.hideInPreviewTabs)),h<0&&(h=0);const b=i[h];if(!b)return null;const N=String((O=(C=(w=b.caption)!=null?w:b.name)!=null?C:b.id)!=null?O:"").trim(),S=String((le=(Z=(Y=b.id)!=null?Y:b.name)!=null?Z:b.caption)!=null?le:"").trim();return N?{title:N,pageKey:S}:null}const yt={class:"gsl-top-bar"},bt={key:0,class:"gsl-top-caption"},_t={key:1,class:"gsl-top-caption-placeholder"},Ct={class:"gsl-top-actions"},St={class:"gsl-tree-col"},Vt={class:"gsl-tree-wrap"},Nt={class:"gsl-tree-node"},wt={key:0,class:"gsl-type-icon-wrap","aria-hidden":"true"},kt={class:"gsl-tree-label"},jt={key:0,class:"gsl-monitor-col"},At={key:0,class:"gsl-monitor-sheet-bar"},Et=["title","onClick"],xt={key:1,class:"gsl-monitor-sheet-bar gsl-monitor-sheet-bar--fallback"},Tt={key:2,class:"gsl-monitor-inner"},Dt={DEFAULT_ICON:Oe.DEFAULT_ICON,ACTIVE_ICON:Oe.ACTIVE_ICON,NAME_CN:"客户项目对象组件",NAME_EN:"CustomerProjectObject",ORDER:0,PLATFORM:["pc","screen"]},Bt={bgColor:"#fff",nameColor:"#999",valueColor:"#333",titleColor:"#111",titleSize:14,nameSize:12,valueSize:12,radiusSize:8,isHideTitle:!1,linkChannel:""},Le=[{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:""}]}]}],Mt=[{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)"}],Pt=[],Ot={isAddCondition:!1,conditions:[],conditionFilterFields:[{value:"name",label:"setting.mixiotListFilter.treeNodeName"},{value:"uid",label:"setting.mixiotListFilter.treeNodeUid"}]},Lt={DEFAULT:Dt,OPTIONS:Bt,DATA:Le,PARAMS:Mt,SOURCE:Pt,COMMON:Ot},It=e.defineComponent(pe(re({},Lt),{__name:"gasStationList",props:{conf:{default:()=>({data:[]})},uid:{default:""},mode:{},theme:{},code:{default:""}},setup(i){const d=i;class u extends dt.BaseComponent{getDataBool(t,n){var a,c;const r=(c=(a=this.props.conf)==null?void 0:a.data)==null?void 0:c[0];return r&&Object.prototype.hasOwnProperty.call(r,t)&&r[t]!==void 0?!!r[t]:this.getOptionValue(t,n)}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(Le));else{const n=this.props.conf.data[0];n.useMockTree===void 0&&(n.useMockTree=!1),n.showAddBtn===void 0&&(n.showAddBtn=!0);const r={sheetPageKeys:"gas_layout,monitor",sheetPageLabels:"对象布局,监控",defaultSheetGasList:"gas_layout",defaultSheetRuntimeCheck:"monitor",runtimeScene:"gasList"};for(const[l,m]of Object.entries(r))(n[l]===void 0||n[l]==="")&&(n[l]=m);n.stationNavPageKey===void 0&&(n.stationNavPageKey=""),Array.isArray(n.stationNavRules)||(n.stationNavRules=[]),n.embedObjectMonitorRight===void 0&&(n.embedObjectMonitorRight=n.openObjectLinkedDashboard!==!1),(n.objectLinkedDashboardDevice===void 0||n.objectLinkedDashboardDevice==="")&&(n.objectLinkedDashboardDevice="pc");const a=[{level:1,label:"客户",treeIcon:"OfficeBuilding",rules:[{sheetTitle:""}]},{level:2,label:"项目",treeIcon:"Folder",rules:[{sheetTitle:""}]},{level:3,label:"对象",treeIcon:"Monitor",rules:[{sheetTitle:""}]}],c=l=>l===1?"OfficeBuilding":l===2?"Folder":l===3?"Monitor":"Folder";if(!Array.isArray(n.menuToSheetLevels)||!n.menuToSheetLevels.length)n.menuToSheetLevels=JSON.parse(JSON.stringify(a));else for(const l of n.menuToSheetLevels){(!Array.isArray(l.rules)||!l.rules.length)&&(l.rules=[{sheetTitle:""}]);const m=Number(l.level);(l.treeIcon===void 0||l.treeIcon==="")&&(l.treeIcon=c(Number.isFinite(m)?m:0))}}}}const g=new u(d,"gasStationList");g.setupLifecycle();const h=g.getStyle(),b=e.inject("switchSheetByPageKey",()=>-1),N=e.inject("getSheets",()=>[]),S=e.inject("getProAppActiveMenuTitle",()=>""),v=e.inject("boardSwitchEpoch",e.ref(0)),w=e.computed(()=>{var o;try{const t=S;return typeof t=="function"?String((o=t())!=null?o:"").trim():""}catch(t){return""}}),C=e.computed(()=>{var o,t;return((t=(o=d.conf)==null?void 0:o.data)==null?void 0:t[0])||{}}),O=e.computed(()=>!!C.value.useMockTree);function Y(o){return String(o!=null?o:"").split(/[,,]/).map(t=>t.trim()).filter(Boolean)}const Z=e.computed(()=>{const o=Y(C.value.sheetPageKeys),t=Y(C.value.sheetPageLabels);return o.map((n,r)=>({pageKey:n,label:t[r]||n}))}),le=e.computed(()=>String(C.value.runtimeScene||"gasList").trim()),D=e.computed(()=>le.value==="runtimeCheck"?String(C.value.defaultSheetRuntimeCheck||"").trim():String(C.value.defaultSheetGasList||"").trim()),E=e.ref("");function B(){var r;const o=D.value,t=Z.value,n=((r=t[0])==null?void 0:r.pageKey)||"";return o&&t.some(a=>a.pageKey===o)?o:n}function ae(){E.value=B()}function I(){if(d.mode==="edit"||(N()||[]).filter(r=>!(r!=null&&r.hideInPreviewTabs)).length<=1)return;const n=B();n&&(E.value=n,b(String(n)))}e.watch(v,()=>{e.nextTick(()=>I())},{flush:"post",immediate:!0}),e.watch(Z,()=>{d.mode!=="edit"&&e.nextTick(()=>I())},{deep:!0}),e.watch(E,o=>{if(d.mode==="edit"||!o)return;b(String(o))<0&&console.warn("[客户项目对象] 未匹配到 Sheet 页面标识:",o,"sheets:",N())});function ie(o){return Array.isArray(o.children)?o.children:Array.isArray(o.child)?o.child:[]}function W(o){return Array.isArray(o)?o.filter(Boolean).map(t=>{var c,l,m,V;const n=t,r=String((V=(m=(l=(c=n.name)!=null?c:n.alias)!=null?l:n.uid)!=null?m:n.id)!=null?V:""),a=W(ie(n));return pe(re({},n),{label:r,treeKey:Ke(n),children:a.length?a:void 0})}):[]}function L(o,t){const n=String(o||"").trim().toLowerCase();return n==="child_object"?"object":n==="customer"||n==="project"||n==="object"?n:t<=1?"customer":t===2?"project":"object"}function Ie(o,t){const n=o.stationIndicator;if(n==="green"||n==="orange")return!0;if(L(o.ctype,t.level)!=="project")return!1;const r=ie(o);return r.length?r.every(a=>L(a.ctype,t.level+1)==="object"):!1}function Fe(o){const t=C.value.menuToSheetLevels;if(!Array.isArray(t)||!t.length)return"Folder";const n=t.map(l=>{var m;return{level:Number(l.level)||0,treeIcon:String((m=l.treeIcon)!=null?m:"").trim()}}).filter(l=>l.level>0).sort((l,m)=>l.level-m.level),r=n.filter(l=>l.level<=o),a=r.length?r[r.length-1]:n[0];if(!a)return"Folder";const c=a.treeIcon;return c==="none"?null:c&&T.proMenuIconMap[c]?c:"Folder"}function Re(o){const t=Fe(o);return t&&T.proMenuIconMap[t]||null}function Ke(o){var r,a,c,l,m;const t=String((r=o.ctype)!=null?r:"n"),n=(m=(l=(c=(a=o.uid)!=null?a:o.id)!=null?c:o.name)!=null?l:o.label)!=null?m:"n";return`${t}_${n}`}const q=e.ref([]),se=e.ref(!1),he=e.ref(null),ce=e.ref("");function Ue(o,t){var l,m,V,x;if(!o)return!0;const n=o.toLowerCase(),r=String((m=(l=t.label)!=null?l:t.name)!=null?m:"").toLowerCase(),a=String((V=t.uid)!=null?V:"").toLowerCase(),c=String((x=t.alias)!=null?x:"").toLowerCase();return r.includes(n)||a.includes(n)||c.includes(n)}function Ve(){e.nextTick(()=>{var o;(o=he.value)==null||o.filter(ce.value.trim())})}function z(){return U(this,null,function*(){var o,t;se.value=!0;try{if(O.value)q.value=W(JSON.parse(JSON.stringify(mt)));else{const n=yield T.api.post("get_customer_project_tree",{},!0),r=(o=n==null?void 0:n.result)!=null?o:n,a=Array.isArray(r)?r:r!=null?[r]:[];q.value=W(a)}yield e.nextTick(),(t=he.value)==null||t.filter(ce.value.trim())}catch(n){console.error(n),q.value=[]}finally{se.value=!1}})}e.watch(O,()=>{z()});const M=e.ref(null),ee=e.ref(1);function Ne(o){var n,r,a,c;(n=h.value)!=null&&n.linkChannel&&g.publish({objectUid:String((r=o.uid)!=null?r:""),objectName:String((c=(a=o.name)!=null?a:o.label)!=null?c:""),objectId:o.id!=null?String(o.id):""})}function qe(o){var a,c,l,m;const t=String((a=o.uid)!=null?a:"").trim(),n=C.value.stationNavRules,r=Array.isArray(n)?n:[];for(const V of r){const x=String((c=V==null?void 0:V.stationUid)!=null?c:"").trim(),p=String((l=V==null?void 0:V.pageKey)!=null?l:"").trim();if(!(!x||!p)&&x===t)return p}return String((m=C.value.stationNavPageKey)!=null?m:"").trim()}function ze(o,t){const n=C.value;return n&&Object.prototype.hasOwnProperty.call(n,o)&&n[o]!==void 0?!!n[o]:t}const H=e.computed(()=>ze("embedObjectMonitorRight",!0)),ye=e.computed(()=>{if(!H.value)return;const o=String(w.value||"").trim();if(!o)return[];const t=C.value.menuToSheetLevels;if(!Array.isArray(t))return[];const n=Number(ee.value),r=t.find(l=>Number(l==null?void 0:l.level)===n),c=(r&&Array.isArray(r.rules)?r.rules:[]).map(l=>{var m;return String((m=l==null?void 0:l.sheetTitle)!=null?m:"").trim()}).filter(Boolean);return c.length?c.map(l=>({menuTitle:o,sheetTitle:l})):[]}),He=e.computed(()=>{const o=String(C.value.objectLinkedDashboardDevice||"pc").trim().toLowerCase();return o==="mobile"||o==="screen"?o:"pc"}),A=e.ref(null),ue=e.ref(""),de=e.ref(""),me=e.ref(""),be=e.ref(!1),we=e.ref(null),F=e.ref([]),R=e.ref("");function _e(){var c;const o=A.value;if(!o){F.value=[],R.value="";return}const t=gt(o,de.value),n=ye.value;F.value=vt(t);const r=ht(t,w.value,n),a=(r==null?void 0:r.pageKey)||((c=F.value[0])==null?void 0:c.pageKey)||"";(!R.value||!F.value.some(l=>l.pageKey===R.value))&&(R.value=a)}function Qe(o){var n,r;if(!o.pageKey||!A.value)return;R.value=o.pageKey;const t=(r=(n=we.value)==null?void 0:n.switchSheetByPageKey)==null?void 0:r.call(n,o.pageKey);(t===void 0||t<0)&&_.ElMessage.warning("未找到对应 Sheet 页面")}function ke(){A.value=null,ue.value="",de.value="",me.value="",F.value=[],R.value=""}function je(o){if(!o||typeof o!="object")return{};const t=o,n=t.result;if(n&&typeof n=="object"&&!Array.isArray(n))return n;const r=t.data;return r&&typeof r=="object"&&!Array.isArray(r)?r:t}function Ge(o,t){const n=t.toLowerCase();return o.find(r=>{var l,m;const a=String((l=r==null?void 0:r.device_type)!=null?l:"").toLowerCase(),c=String((m=r==null?void 0:r.type)!=null?m:"").toLowerCase();return a===n||c===n})}function Je(o){return U(this,null,function*(){var n,r,a,c;const t=o.trim();if(!t){_.ElMessage.warning("对象缺少 uid");return}be.value=!0,A.value=null,ue.value=t,de.value="",me.value="";try{const l=yield T.api.post("get_object_item",{uid:t},!0),m=je(l),V=Array.isArray(m.dashboard_list)?m.dashboard_list:[],x=He.value,p=Ge(V,x),K=String((n=p==null?void 0:p.uid)!=null?n:"").trim();if(!K){_.ElMessage.warning("该对象未绑定对应类型的显示板");return}de.value=K,me.value=String((c=(a=(r=p==null?void 0:p.name)!=null?r:p==null?void 0:p.caption)!=null?a:p==null?void 0:p.alias)!=null?c:"").trim();const ne=yield T.api.post("get_dashboard_item",{uid:K},!0),$=je(ne),s=$==null?void 0:$.script;s&&typeof s=="object"&&Object.keys(s).length?(A.value=s,yield e.nextTick(),_e()):_.ElMessage.warning("显示板脚本为空")}catch(l){console.error(l),A.value=null,_e()}finally{be.value=!1}})}e.watch([A,w,ye,ee],()=>{_e()},{deep:!0});function $e(o,t){M.value=o,ee.value=t.level;const n=qe(o);if(n&&Ie(o,t)){H.value&&ke(),E.value=n,Ne(o);return}H.value&&L(o.ctype,t.level)!=="object"&&ke(),L(o.ctype,t.level)==="object"&&U(null,null,function*(){var r;if(H.value&&d.mode!=="edit"){const a=String((r=o.uid)!=null?r:"").trim();a&&(yield Je(a))}else ae();Ne(o)})}const Ae=e.computed(()=>M.value?L(M.value.ctype,ee.value)==="customer":!1),Ee=e.computed(()=>M.value?L(M.value.ctype,ee.value)==="project":!1),te=e.ref(null),oe=e.ref(""),Ce=e.ref("");function Xe(o){o==="customer"?Ye():o==="project"?Ze():o==="object"&&We()}function Ye(){xe(),Q.value=!0}function Ze(){var c,l,m;if(!Ae.value||!M.value){_.ElMessage.warning("请先在树中选中客户(片区)节点");return}Te();const o=M.value,t=o.id,n=t!=null&&t!==""?Number(t):NaN;te.value=Number.isFinite(n)?n:null,oe.value=String((c=o.uid)!=null?c:"").trim();const r=String((m=(l=o.name)!=null?l:o.label)!=null?m:"").trim(),a=oe.value;Ce.value=[r,a].filter(Boolean).join(" · ")||a||String(t!=null?t:"—"),G.value=!0}function We(){var t,n,r,a;if(!Ee.value||!M.value){_.ElMessage.warning("请先在树中选中项目节点");return}De();const o=M.value;f.customer_id=String((t=o.uid)!=null?t:"").trim(),f.customer_name=String((r=(n=o.name)!=null?n:o.label)!=null?r:"").trim(),f.customer_alias=String((a=o.alias)!=null?a:"").trim(),J.value=!0}const Q=e.ref(!1),G=e.ref(!1),J=e.ref(!1),P=e.ref(!1),y=e.reactive({name:"",alias:"",contact:"",mobile:"",description:""}),k=e.reactive({name:"",alias:"",description:""}),f=e.reactive({uid:"",name:"",alias:"",model:"",customer_id:"",customer_name:"",customer_alias:"",description:""});function xe(){y.name="",y.alias="",y.contact="",y.mobile="",y.description=""}function Te(){k.name="",k.alias="",k.description=""}function et(){te.value=null,oe.value="",Ce.value=""}function tt(){Te(),et()}function De(){f.uid="",f.name="",f.alias="",f.model="",f.customer_id="",f.customer_name="",f.customer_alias="",f.description=""}function ot(){return U(this,null,function*(){if(!y.name.trim()){_.ElMessage.warning("请填写客户名称");return}if(O.value){_.ElMessage.success("演示数据:已记录(未写入模拟树,关闭「使用模拟树」后可调真实接口)"),Q.value=!1;return}P.value=!0;try{yield T.api.post("create_customer",{name:y.name.trim(),alias:y.alias.trim(),contact:y.contact,mobile:y.mobile,description:y.description},!0),_.ElMessage.success("添加成功"),Q.value=!1,yield z()}catch(o){_.ElMessage.error("添加失败")}finally{P.value=!1}})}function nt(){return U(this,null,function*(){if(!k.name.trim()){_.ElMessage.warning("请填写项目名称");return}const o=te.value!=null&&!Number.isNaN(te.value),t=!!oe.value;if(!o&&!t){_.ElMessage.warning("缺少所属客户");return}if(O.value){_.ElMessage.success("演示数据:已记录(未写入模拟树)"),G.value=!1;return}P.value=!0;try{const n={name:k.name.trim(),alias:k.alias.trim(),description:k.description};o?n.father_id=te.value:t&&(n.parent_uid=oe.value),yield T.api.post("create_project",n,!0),_.ElMessage.success("添加成功"),G.value=!1,yield z()}catch(n){_.ElMessage.error("添加失败")}finally{P.value=!1}})}function rt(){var o,t,n,r,a,c,l;return{id:0,uid:"",name:String((o=f.name)!=null?o:"").trim(),alias:String((t=f.alias)!=null?t:""),model:String((n=f.model)!=null?n:""),description:String((r=f.description)!=null?r:""),customer_id:String((a=f.customer_id)!=null?a:""),customer_name:String((c=f.customer_name)!=null?c:""),customer_alias:String((l=f.customer_alias)!=null?l:""),terminal_list:[],mapping_id:"",mapping_name:"",tag:[],province:"",city:"",create_by_tpl:0,tpl_uid:"",tpl_name:"",tpl_alias:"",addition:"[]"}}function lt(){return U(this,null,function*(){var o;if(!f.name.trim()){_.ElMessage.warning("请填写对象名称");return}if(!String((o=f.customer_id)!=null?o:"").trim()){_.ElMessage.warning("缺少所属项目,请从树中选中项目后再添加");return}if(O.value){_.ElMessage.success("演示数据:已记录(未写入模拟树)"),J.value=!1;return}P.value=!0;try{yield T.api.post("create_object",rt(),!0),_.ElMessage.success("添加成功"),J.value=!1,yield z()}catch(t){_.ElMessage.error("添加失败")}finally{P.value=!1}})}return e.onMounted(()=>{z()}),(o,t)=>{const n=j.ElIcon,r=j.ElInput,a=j.ElButton,c=j.ElDropdownItem,l=j.ElDropdownMenu,m=j.ElDropdown,V=j.ElTree,x=j.ElEmpty,p=j.ElFormItem,K=j.ElForm,ne=j.ElDialog,$=j.ElLoadingDirective;return e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:"customer-project-object mix-component",style:e.normalizeStyle({backgroundColor:e.unref(h).bgColor,borderRadius:`${e.unref(h).radiusSize}px`})},[e.createElementVNode("div",yt,[e.unref(h).isHideTitle?(e.openBlock(),e.createElementBlock("div",_t)):(e.openBlock(),e.createElementBlock("span",bt,e.toDisplayString(i.conf.caption||i.conf.name),1)),e.createElementVNode("div",Ct,[e.createVNode(r,{modelValue:ce.value,"onUpdate:modelValue":t[0]||(t[0]=s=>ce.value=s),class:"gsl-search-input",clearable:"",placeholder:"搜索客户、项目、对象…",size:"small",onInput:Ve,onClear:Ve},{prefix:e.withCtx(()=>[e.createVNode(n,{class:"gsl-search-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(Pe.Search))]),_:1})]),_:1},8,["modelValue"]),e.createVNode(a,{size:"small",loading:se.value,onClick:z},{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode("刷新",-1)])]),_:1},8,["loading"]),e.unref(h).showAddBtn?(e.openBlock(),e.createBlock(m,{key:0,trigger:"click",onCommand:Xe},{dropdown:e.withCtx(()=>[e.createVNode(l,null,{default:e.withCtx(()=>[e.createVNode(c,{command:"customer"},{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("添加客户",-1)])]),_:1}),e.createVNode(c,{command:"project",disabled:!Ae.value},{default:e.withCtx(()=>[...t[22]||(t[22]=[e.createTextVNode("添加项目",-1)])]),_:1},8,["disabled"]),e.createVNode(c,{command:"object",disabled:!Ee.value},{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode("添加对象",-1)])]),_:1},8,["disabled"])]),_:1})]),default:e.withCtx(()=>[e.createVNode(a,{type:"primary",size:"small"},{default:e.withCtx(()=>[t[20]||(t[20]=e.createTextVNode(" 新增 ",-1)),e.createVNode(n,{class:"el-icon--right"},{default:e.withCtx(()=>[e.createVNode(e.unref(Pe.ArrowDown))]),_:1})]),_:1})]),_:1})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",{class:e.normalizeClass(["mix-body gsl-body",{"gsl-body--split":H.value}])},[e.createElementVNode("div",St,[e.createElementVNode("div",Vt,[q.value.length?(e.openBlock(),e.createBlock(V,{key:0,ref_key:"treeRef",ref:he,class:"gsl-tree",data:q.value,props:{label:"label",children:"children"},"node-key":"treeKey","highlight-current":"","default-expand-all":"","filter-node-method":Ue,onNodeClick:$e},{default:e.withCtx(({node:s,data:fe})=>[e.createElementVNode("span",Nt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList([Re(s.level)],Se=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:fe.treeKey+"-"+s.level},[Se?(e.openBlock(),e.createElementBlock("span",wt,[e.createVNode(n,{class:"gsl-tree-level-icon"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(Se)))]),_:2},1024)])):e.createCommentVNode("",!0)],64))),128)),e.createElementVNode("span",kt,e.toDisplayString(fe.label),1)])]),_:1},8,["data"])):(e.openBlock(),e.createBlock(x,{key:1,description:"暂无树数据"}))])]),H.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",jt,[A.value&&F.value.length?(e.openBlock(),e.createElementBlock("div",At,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.value,(s,fe)=>(e.openBlock(),e.createElementBlock("button",{key:s.pageKey+"-"+fe,type:"button",class:e.normalizeClass(["gsl-monitor-sheet-tab",{active:s.pageKey===R.value}]),title:s.title,onClick:Se=>Qe(s)},e.toDisplayString(s.title),11,Et))),128))])):A.value?(e.openBlock(),e.createElementBlock("div",xt,e.toDisplayString(me.value||"设备监控"),1)):e.createCommentVNode("",!0),A.value?(e.openBlock(),e.createElementBlock("div",Tt,[(e.openBlock(),e.createBlock(T._sfc_main,{ref_key:"rightPanelDesignRef",ref:we,key:ue.value,script:A.value,uid:ue.value,"enable-web-socket":!0,"follow-host-theme":!0,"host-pro-menu-title":w.value,"host-menu-to-sheet-rules":ye.value},null,8,["script","uid","host-pro-menu-title","host-menu-to-sheet-rules"]))])):(e.openBlock(),e.createBlock(x,{key:3,class:"gsl-monitor-empty",description:"点击对象查看设备监控"}))])),[[$,be.value]]):e.createCommentVNode("",!0)],2),e.createVNode(ne,{modelValue:Q.value,"onUpdate:modelValue":t[7]||(t[7]=s=>Q.value=s),title:"添加客户",width:"520px","destroy-on-close":"",onClosed:xe},{footer:e.withCtx(()=>[e.createVNode(a,{onClick:t[6]||(t[6]=s=>Q.value=!1)},{default:e.withCtx(()=>[...t[24]||(t[24]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(a,{type:"primary",loading:P.value,onClick:ot},{default:e.withCtx(()=>[...t[25]||(t[25]=[e.createTextVNode("保存",-1)])]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(K,{model:y,"label-width":"100px"},{default:e.withCtx(()=>[e.createVNode(p,{label:"客户名称",required:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:y.name,"onUpdate:modelValue":t[1]||(t[1]=s=>y.name=s),placeholder:"必填"},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"客户别名"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:y.alias,"onUpdate:modelValue":t[2]||(t[2]=s=>y.alias=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"联系人"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:y.contact,"onUpdate:modelValue":t[3]||(t[3]=s=>y.contact=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"手机"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:y.mobile,"onUpdate:modelValue":t[4]||(t[4]=s=>y.mobile=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:y.description,"onUpdate:modelValue":t[5]||(t[5]=s=>y.description=s),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),e.createVNode(ne,{modelValue:G.value,"onUpdate:modelValue":t[12]||(t[12]=s=>G.value=s),title:"添加项目",width:"520px","destroy-on-close":"",onClosed:tt},{footer:e.withCtx(()=>[e.createVNode(a,{onClick:t[11]||(t[11]=s=>G.value=!1)},{default:e.withCtx(()=>[...t[26]||(t[26]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(a,{type:"primary",loading:P.value,onClick:nt},{default:e.withCtx(()=>[...t[27]||(t[27]=[e.createTextVNode("保存",-1)])]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(K,{model:k,"label-width":"100px"},{default:e.withCtx(()=>[e.createVNode(p,{label:"所属客户"},{default:e.withCtx(()=>[e.createVNode(r,{"model-value":Ce.value,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(p,{label:"项目名称",required:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:k.name,"onUpdate:modelValue":t[8]||(t[8]=s=>k.name=s),placeholder:"必填"},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"项目别名"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:k.alias,"onUpdate:modelValue":t[9]||(t[9]=s=>k.alias=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:k.description,"onUpdate:modelValue":t[10]||(t[10]=s=>k.description=s),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),e.createVNode(ne,{modelValue:J.value,"onUpdate:modelValue":t[18]||(t[18]=s=>J.value=s),title:"添加对象",width:"560px","destroy-on-close":"",onClosed:De},{footer:e.withCtx(()=>[e.createVNode(a,{onClick:t[17]||(t[17]=s=>J.value=!1)},{default:e.withCtx(()=>[...t[28]||(t[28]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(a,{type:"primary",loading:P.value,onClick:lt},{default:e.withCtx(()=>[...t[29]||(t[29]=[e.createTextVNode("保存",-1)])]),_:1},8,["loading"])]),default:e.withCtx(()=>[e.createVNode(K,{model:f,"label-width":"110px"},{default:e.withCtx(()=>[e.createVNode(p,{label:"对象名称",required:""},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:f.name,"onUpdate:modelValue":t[13]||(t[13]=s=>f.name=s),placeholder:"必填"},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"对象别名"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:f.alias,"onUpdate:modelValue":t[14]||(t[14]=s=>f.alias=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"型号"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:f.model,"onUpdate:modelValue":t[15]||(t[15]=s=>f.model=s)},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"项目编号"},{default:e.withCtx(()=>[e.createVNode(r,{"model-value":f.customer_id,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(p,{label:"项目名称"},{default:e.withCtx(()=>[e.createVNode(r,{"model-value":f.customer_name,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(p,{label:"项目别名"},{default:e.withCtx(()=>[e.createVNode(r,{"model-value":f.customer_alias,disabled:""},null,8,["model-value"])]),_:1}),e.createVNode(p,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(r,{modelValue:f.description,"onUpdate:modelValue":t[16]||(t[16]=s=>f.description=s),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),e.renderSlot(o.$slots,"default",{},void 0,!0)],4)),[[$,se.value&&!q.value.length]])}}})),Ft=T._export_sfc(It,[["__scopeId","data-v-3637114d"]]);exports.default=Ft;
@@ -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-DYr57ceS.cjs"),mn=require("./BaseComponent-B5ivgb3E.cjs"),pn=require("./titleStyle-NSnz6cUg.cjs"),xe=require("./leaflet-src-DzRw1bMt.cjs");;/* empty css */const kt=require("./ele-glbModel-icon-ByACDCrv.cjs");function Et(l){const t=JSON.parse(l).properties,a=vn(t.materials||[]),s=new Map;a.forEach(p=>s.set(p.id,p));const d=t.nodes,c=fn(d,s);return{name:t.name||"Untitled",id:t.id||"",version:t.version||"",materials:a,rootNode:c}}function vn(l){return l.map(o=>{var t,a,s;return{id:((t=o.properties)==null?void 0:t.id)||"",name:((a=o.properties)==null?void 0:a.name)||"",color:typeof((s=o.properties)==null?void 0:s.color)=="number"?o.properties.color:8947848}})}function fn(l,o){var s;if(!l||l.length===0)return wt("root");const t=new Map,a=[];for(const d of l){const c=gn(d,o);t.set(c.id,c),a.push({node:c,parentId:d.parentId})}for(const{node:d,parentId:c}of a)c&&t.has(c)&&t.get(c).children.push(d);return((s=a[0])==null?void 0:s.node)||wt("root")}function wt(l){return{id:"empty",name:l,classKey:"EmptyNode",visible:!0,color:8947848,children:[],raw:{}}}function gn(l,o){const t=l.properties||{},a=l.classKey||"";let s=8947848,d;if(t.materialId){d=t.materialId;const y=o.get(d);y&&(s=y.color)}else typeof t.color=="number"&&(s=t.color);const c={id:t.id||Math.random().toString(36).slice(2),name:t.name||a,classKey:a,visible:t.visible!==void 0?!!t.visible:!0,color:s,materialId:d,children:[],raw:t},p=hn(a,t);return p&&(c.mesh=p),c}function hn(l,o){if(l==="TriMeshNode"&&o.savedData)return yn(o.savedData);if(l==="ShapeNode"||l==="MultiShapeNode")return bn(o);if((l==="GeoPlineNode"||l==="PlineNode")&&o.points)return kn(o)}function yn(l){try{const o=typeof l=="string"?JSON.parse(l):l;if(!o.pos||!o.idx)return;const t=new Float32Array(o.pos),a=new Uint32Array(o.idx),s=o.uv?new Float32Array(o.uv):new Float32Array(0),d=o.edgePos?new Float32Array(o.edgePos):new Float32Array(0),c=Mt(t,a);return{positions:t,indices:a,normals:c,uvs:s,edgePositions:d}}catch(o){return}}function bn(l){const o=l.shape;if(!o)return;const t=o.properties||o,a=t.mesh||t._mesh;if(!a)return;const s=a.properties||a,d=s.faces||s._faces;if(!d)return;const c=d.properties||d;if(!c.position)return;const p=Ye(c.position),y=En(c.index),E=c.normal?Ye(c.normal):Mt(p,y),C=c.uv?Ye(c.uv):new Float32Array(0),g=s.edges||s._lines,b=(g==null?void 0:g.properties)||g,N=b!=null&&b.position?Ye(b.position):new Float32Array(0);if(p.length!==0)return{positions:p,indices:y,normals:E,uvs:C,edgePositions:N}}function kn(l){const o=l.points;if(!o||!Array.isArray(o))return;const t=o.map(s=>s.properties?{x:s.properties.x||0,y:s.properties.y||0,z:s.properties.z||0}:{x:s.x||0,y:s.y||0,z:s.z||0});if(t.length<2)return;const a=[];for(let s=0;s<t.length-1;s++)a.push(t[s].x,t[s].y,t[s].z),a.push(t[s+1].x,t[s+1].y,t[s+1].z);return{positions:new Float32Array(0),indices:new Uint32Array(0),normals:new Float32Array(0),uvs:new Float32Array(0),edgePositions:new Float32Array(a)}}function Ye(l){var o;return l instanceof Float32Array?l:(o=l==null?void 0:l.properties)!=null&&o.buffer?new Float32Array(l.properties.buffer):Array.isArray(l)?new Float32Array(l):new Float32Array(0)}function En(l){var o;return l instanceof Uint32Array?l:(o=l==null?void 0:l.properties)!=null&&o.buffer?new Uint32Array(l.properties.buffer):Array.isArray(l)?new Uint32Array(l):new Uint32Array(0)}function Mt(l,o){if(l.length===0||o.length===0)return new Float32Array(0);const t=new Float32Array(l.length);for(let a=0;a<o.length;a+=3){const s=o[a],d=o[a+1],c=o[a+2],p=l[s*3],y=l[s*3+1],E=l[s*3+2],C=l[d*3],g=l[d*3+1],b=l[d*3+2],N=l[c*3],w=l[c*3+1],x=l[c*3+2],G=C-p,I=g-y,U=b-E,X=N-p,me=w-y,pe=x-E,ve=I*pe-U*me,oe=U*X-G*pe,H=G*me-I*X,fe=Math.sqrt(ve*ve+oe*oe+H*H)||1;for(const m of[s,d,c])t[m*3]+=ve/fe,t[m*3+1]+=oe/fe,t[m*3+2]+=H/fe}for(let a=0;a<t.length;a+=3){const s=Math.sqrt(Ie(t[a],2)+Ie(t[a+1],2)+Ie(t[a+2],2))||1;t[a]/=s,t[a+1]/=s,t[a+2]/=s}return t}function Vt(l,o){if(o==="cf"){const a=l.cf;return a<50?[0/255,170/255,255/255]:a<150?[255/255,230/255,0/255]:a<300?[255/255,145/255,0/255]:a<500?[240/255,70/255,40/255]:[180/255,0/255,0/255]}if(o==="av"){const a=l.av;return a<-.6?[0/255,80/255,220/255]:a<-.1?[0/255,170/255,255/255]:Math.abs(a)<.1?[0/255,220/255,120/255]:a<.6?[255/255,185/255,0/255]:[220/255,30/255,30/255]}const t=Math.abs(l.rr);return l.rr<0?t<5?[0/255,180/255,255/255]:t<20?[0/255,120/255,255/255]:t<60?[40/255,70/255,220/255]:[20/255,35/255,150/255]:t<5?[255/255,230/255,0/255]:t<20?[255/255,165/255,0/255]:t<60?[235/255,85/255,0/255]:[180/255,0/255,0/255]}function wn(l){return l?Array.isArray(l.points)?l:l.data&&Array.isArray(l.data.points)?l.data:{points:[],radar:{e:0,n:0,rl:0}}:{points:[],radar:{e:0,n:0,rl:0}}}k.Mesh.prototype.raycast=nt.acceleratedRaycast;class Vn{constructor(o){this.container=o,this.raycaster=new k.Raycaster,this.animFrameId=0,this.needsUpdate=!0,this.nodeEntries=new Map,this.resizeObserver=null,this.deviceMarkers=new Map,this.radarLayers=new Map,this.animate=()=>{if(this.animFrameId=requestAnimationFrame(this.animate),this.controls.update(),!this.needsUpdate)return;const a=this.camera.position.clone().sub(this.controls.target);this.dynamicLight.position.copy(a),this.renderer.render(this.scene,this.camera),this.labelRenderer.render(this.scene,this.camera),this.needsUpdate=!1},k.Object3D.DEFAULT_UP.set(0,0,1),this.scene=new k.Scene,this.camera=new k.PerspectiveCamera(50,o.clientWidth/Math.max(o.clientHeight,1),.1,1e5),this.camera.position.set(500,-500,500),this.camera.up.set(0,0,1),this.renderer=new k.WebGLRenderer({antialias:!0,alpha:!0}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(o.clientWidth,o.clientHeight),o.appendChild(this.renderer.domElement),this.labelRenderer=new bt.CSS2DRenderer,this.labelRenderer.setSize(o.clientWidth,o.clientHeight),this.labelRenderer.domElement.style.position="absolute",this.labelRenderer.domElement.style.top="0",this.labelRenderer.domElement.style.left="0",this.labelRenderer.domElement.style.pointerEvents="none",this.labelRenderer.domElement.style.overflow="visible",o.appendChild(this.labelRenderer.domElement),this.controls=new un.OrbitControls(this.camera,this.renderer.domElement),this.controls.enableDamping=!1,this.controls.mouseButtons={LEFT:k.MOUSE.ROTATE,MIDDLE:k.MOUSE.PAN,RIGHT:k.MOUSE.PAN},this.controls.addEventListener("change",()=>{this.updateCameraNearFar(),this.needsUpdate=!0});const t=new k.AmbientLight(8947848,4);this.dynamicLight=new k.DirectionalLight(16777215,2),this.scene.add(t,this.dynamicLight),this.scene.add(new k.AxesHelper(250)),this.resizeObserver=new ResizeObserver(()=>this.resize()),this.resizeObserver.observe(o),this.animate()}loadDocument(o,t){return _e(this,null,function*(){this.clearModel();const a=this.flattenNodes(o.rootNode),s=a.filter(c=>c.mesh&&c.mesh.positions.length>0);t==null||t(`构建场景树 (${a.length} 节点)...`),this.buildGroupTree(o.rootNode,this.scene);let d=0;for(const c of s)this.createMeshForNode(c),d++,d%5===0&&(t==null||t(`创建网格 ${d}/${s.length}...`),yield new Promise(p=>setTimeout(p,0)));this.fitContent(),this.needsUpdate=!0})}flattenNodes(o){const t=[o];for(const a of o.children)t.push(...this.flattenNodes(a));return t}buildGroupTree(o,t){const a=new k.Group;a.name=o.name,a.visible=o.visible,t.add(a);const s={node:o,group:a};this.nodeEntries.set(o.id,s);for(const d of o.children)this.buildGroupTree(d,a)}createMeshForNode(o){var p,y;const t=this.nodeEntries.get(o.id);if(!t||!o.mesh)return;const{positions:a,indices:s,edgePositions:d}=o.mesh;if(a.length>0&&s.length>0){const E=new k.BufferGeometry;E.setAttribute("position",new k.BufferAttribute(a,3)),E.setIndex(new k.BufferAttribute(s,1)),E.computeVertexNormals(),E.computeBoundingBox(),E.boundsTree=new nt.MeshBVH(E);const C=new k.MeshLambertMaterial({color:new k.Color(o.color),side:k.DoubleSide,flatShading:!0}),g=new k.Mesh(E,C);g.name=o.name+"_mesh",t.group.add(g),t.meshObj=g}const c=(y=(p=o.raw)==null?void 0:p.displayMode)!=null?y:0;if(d.length>0&&c>0){const E=new k.BufferGeometry;E.setAttribute("position",new k.BufferAttribute(d,3)),E.computeBoundingBox();const C=new k.LineBasicMaterial({color:0,linewidth:1}),g=new k.LineSegments(E,C);g.name=o.name+"_edges",t.group.add(g),t.edgeObj=g}}setNodeVisible(o,t){const a=this.nodeEntries.get(o);a&&(this.setNodeVisibleRecursive(a.node,t),this.needsUpdate=!0)}setNodeVisibleRecursive(o,t){o.visible=t;const a=this.nodeEntries.get(o.id);a&&(a.group.visible=t);for(const s of o.children)this.setNodeVisibleRecursive(s,t)}fitContent(){try{this.scene.updateMatrixWorld(!0);const o=new k.Box3;if(this.scene.traverse(d=>{if(!(d instanceof k.AxesHelper)&&(d instanceof k.Mesh||d instanceof k.LineSegments)){const c=d.geometry;if(c&&c.attributes.position&&(c.computeBoundingBox(),c.boundingBox&&!c.boundingBox.isEmpty())){const p=c.boundingBox.clone();p.applyMatrix4(d.matrixWorld),o.union(p)}}}),o.isEmpty())return;const t=o.getCenter(new k.Vector3),a=o.getSize(new k.Vector3),s=Math.max(a.x,a.y,a.z);this.controls.target.copy(t),this.camera.position.set(t.x+s*.8,t.y-s*.8,t.z+s*.6),this.updateCameraNearFar(),this.controls.update(),this.needsUpdate=!0}catch(o){console.warn("[fitContent] error:",o)}}getVisibleMeshEntries(){const o=[];return this.nodeEntries.forEach(t=>{t.meshObj&&t.group.visible&&t.node.mesh&&o.push(t)}),o}addSectionLines(o,t){const a=new k.BufferGeometry;a.setAttribute("position",new k.BufferAttribute(o,3));const s=new k.LineBasicMaterial({color:t,linewidth:2,depthTest:!1}),d=new k.LineSegments(a,s);return d.renderOrder=999,d.name="__section_result__",this.scene.add(d),this.needsUpdate=!0,d}addSectionPath(o,t=16776960){const a=[];for(let p=0;p<o.length-1;p++)a.push(o[p].x,o[p].y,o[p].z),a.push(o[p+1].x,o[p+1].y,o[p+1].z);const s=new k.BufferGeometry;s.setAttribute("position",new k.BufferAttribute(new Float32Array(a),3));const d=new k.LineBasicMaterial({color:t,linewidth:3,depthTest:!1}),c=new k.LineSegments(s,d);return c.renderOrder=1e3,c.name="__section_path__",this.scene.add(c),this.needsUpdate=!0,c}clearSectionResults(){const o=[];this.scene.traverse(t=>{(t.name==="__section_result__"||t.name==="__section_path__")&&o.push(t)}),o.forEach(t=>{t.removeFromParent(),t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}),this.needsUpdate=!0}setTransparency(o){this.nodeEntries.forEach(t=>{if(t.meshObj){const a=t.meshObj.material;a.transparent=o,a.opacity=o?.4:1,a.depthWrite=!o,a.needsUpdate=!0}}),this.needsUpdate=!0}pickPoint(o){const t=this.renderer.domElement.getBoundingClientRect(),a=new k.Vector2((o.clientX-t.left)/t.width*2-1,-((o.clientY-t.top)/t.height)*2+1);this.raycaster.setFromCamera(a,this.camera);const s=[];this.scene.traverse(c=>{c instanceof k.Mesh&&c.name.endsWith("_mesh")&&c.visible&&s.push(c)});const d=this.raycaster.intersectObjects(s,!1);return d.length>0?d[0].point.clone():null}addPickMarker(o,t=16711680){const a=new k.SphereGeometry(1,16,16),s=new k.MeshBasicMaterial({color:t,depthTest:!1}),d=new k.Mesh(a,s);d.position.copy(o),d.renderOrder=998,d.name="__pick_marker__";const c=this.camera.position.distanceTo(this.controls.target);return d.scale.setScalar(c*.008),this.scene.add(d),this.needsUpdate=!0,d}addPickLine(o,t){const a=new k.BufferGeometry;a.setAttribute("position",new k.BufferAttribute(new Float32Array([o.x,o.y,o.z,t.x,t.y,t.z]),3));const s=new k.LineBasicMaterial({color:16776960,linewidth:2,depthTest:!1}),d=new k.LineSegments(a,s);return d.renderOrder=998,d.name="__pick_line__",this.scene.add(d),this.needsUpdate=!0,d}clearPickMarkers(){const o=[];this.scene.traverse(t=>{(t.name==="__pick_marker__"||t.name==="__pick_line__")&&o.push(t)}),o.forEach(t=>{t.removeFromParent(),t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}),this.needsUpdate=!0}addRadarLayer(o,t,a){if(this.removeRadarLayer(o),t.length===0)return;const s=new Float32Array(t.length*3),d=new Float32Array(t.length*3);for(let E=0;E<t.length;E++){const C=t[E],g=E*3;s[g]=C.e,s[g+1]=C.n,s[g+2]=C.rl;const b=Vt(C,a);d[g]=b[0],d[g+1]=b[1],d[g+2]=b[2]}const c=new k.BufferGeometry;c.setAttribute("position",new k.BufferAttribute(s,3)),c.setAttribute("color",new k.BufferAttribute(d,3)),c.computeBoundingSphere();const p=new k.PointsMaterial({size:5,sizeAttenuation:!1,vertexColors:!0,depthWrite:!1,depthTest:!1,toneMapped:!1}),y=new k.Points(c,p);y.renderOrder=900,y.name=`__radar_layer_${o}__`,this.scene.add(y),this.radarLayers.set(o,{cloud:y,pointIndex:t}),this.needsUpdate=!0}setRadarLayerVisible(o,t){const a=this.radarLayers.get(o);a&&(a.cloud.visible=t,this.needsUpdate=!0)}updateRadarLayerColors(o,t,a){const s=this.radarLayers.get(o);if(!s)return;const d=s.cloud.geometry.getAttribute("color"),c=d.array;for(let p=0;p<t.length;p++){const y=Vt(t[p],a),E=p*3;c[E]=y[0],c[E+1]=y[1],c[E+2]=y[2]}d.needsUpdate=!0,this.needsUpdate=!0}pickRadarPoint(o){const t=this.renderer.domElement.getBoundingClientRect(),a=new k.Vector2((o.clientX-t.left)/t.width*2-1,-((o.clientY-t.top)/t.height)*2+1),s=new k.Vector3;let d=.002,c=null;for(const[p,y]of this.radarLayers){if(!y.cloud.visible)continue;const C=y.cloud.geometry.getAttribute("position").array;for(let g=0;g<C.length;g+=3){if(s.set(C[g],C[g+1],C[g+2]).project(this.camera),s.z<-1||s.z>1)continue;const b=s.x-a.x,N=s.y-a.y,w=b*b+N*N;w<d&&(d=w,c={layerId:p,point:y.pointIndex[g/3]})}}return c}removeRadarLayer(o){const t=this.radarLayers.get(o);t&&(this.scene.remove(t.cloud),t.cloud.geometry.dispose(),t.cloud.material.dispose(),this.radarLayers.delete(o),this.needsUpdate=!0)}clearAllRadarLayers(){for(const[o]of this.radarLayers)this.removeRadarLayer(o)}addDeviceMarker(o,t,a){this.removeDeviceMarker(o);const s=new bt.CSS2DObject(a);return s.position.set(t.e,t.n,t.rl),s.name=`__device_marker_${o}__`,this.scene.add(s),this.deviceMarkers.set(o,s),this.needsUpdate=!0,s}updateDeviceMarkerPosition(o,t){const a=this.deviceMarkers.get(o);a&&(a.position.set(t.e,t.n,t.rl),this.needsUpdate=!0)}removeDeviceMarker(o){const t=this.deviceMarkers.get(o);t&&(this.scene.remove(t),this.deviceMarkers.delete(o),this.needsUpdate=!0)}removeAllDeviceMarkers(){for(const[o]of this.deviceMarkers)this.removeDeviceMarker(o)}setDeviceMarkerVisible(o,t){const a=this.deviceMarkers.get(o);a&&(a.visible=t,this.needsUpdate=!0)}setDeviceMarkersVisible(o){for(const[,t]of this.deviceMarkers)t.visible=o;this.needsUpdate=!0}clearModel(){const o=[];this.scene.children.forEach(t=>{t instanceof k.Group&&o.push(t)}),o.forEach(t=>{t.traverse(a=>{if(a.geometry&&a.geometry.dispose(),a.material){const s=a.material;Array.isArray(s)?s.forEach(d=>d.dispose()):s.dispose()}}),t.removeFromParent()}),this.nodeEntries.clear(),this.clearSectionResults()}resize(){const o=this.container.clientWidth,t=this.container.clientHeight;t<1||(this.camera.aspect=o/t,this.camera.updateProjectionMatrix(),this.renderer.setSize(o,t),this.labelRenderer.setSize(o,t),this.needsUpdate=!0)}updateCameraNearFar(){const o=this.camera.position.distanceTo(this.controls.target);o<1?(this.camera.near=.001,this.camera.far=100):o<10?(this.camera.near=.01,this.camera.far=1e3):o<100?(this.camera.near=.1,this.camera.far=1e4):o<1e3?(this.camera.near=1,this.camera.far=1e5):o<1e4?(this.camera.near=10,this.camera.far=1e6):o<1e5?(this.camera.near=100,this.camera.far=1e7):(this.camera.near=1e3,this.camera.far=1e8),this.camera.updateProjectionMatrix()}requestUpdate(){this.needsUpdate=!0}dispose(){var o;cancelAnimationFrame(this.animFrameId),(o=this.resizeObserver)==null||o.disconnect(),this.clearModel(),this.clearAllRadarLayers(),this.removeAllDeviceMarkers(),this.controls.dispose(),this.renderer.dispose(),this.renderer.domElement.remove(),this.labelRenderer.domElement.remove()}}function Nn(l,o){const t=new k.Vector3().subVectors(o,l).normalize();let a=new k.Vector3().crossVectors(t,new k.Vector3(0,0,1)).normalize();return a.lengthSq()<.01&&(a=new k.Vector3().crossVectors(t,new k.Vector3(1,0,0)).normalize()),{start:l.clone(),end:o.clone(),normal:a}}function _n(l){const o=[];for(let t=0;t<l.length-1;t++)o.push(Nn(l[t],l[t+1]));return o}const Nt=new WeakMap;function Mn(l,o){if(!l.mesh||l.mesh.positions.length===0||l.mesh.indices.length===0)return new Float32Array(0);let t=Nt.get(l);t||(t=new k.BufferGeometry,t.setAttribute("position",new k.BufferAttribute(l.mesh.positions,3)),t.setIndex(new k.BufferAttribute(l.mesh.indices,1)),t.boundsTree=new nt.MeshBVH(t),Nt.set(l,t));const a=t.boundsTree,s=[],d=new k.Line3;return a.shapecast({intersectsBounds:c=>o.intersectsBox(c),intersectsTriangle:c=>(Sn(c,o,d)&&s.push(d.start.x,d.start.y,d.start.z,d.end.x,d.end.y,d.end.z),!1)}),new Float32Array(s)}function Sn(l,o,t){const a=o.distanceToPoint(l.a),s=o.distanceToPoint(l.b),d=o.distanceToPoint(l.c);if(a>0&&s>0&&d>0||a<0&&s<0&&d<0||a===0&&s===0&&d===0)return!1;const c=[];if(tt(l.a,l.b,a,s,c),tt(l.b,l.c,s,d,c),tt(l.c,l.a,d,a,c),c.length>=2){t.start.copy(c[0]);let p=0,y=1;for(let E=1;E<c.length;E++){const C=c[0].distanceToSquared(c[E]);C>p&&(p=C,y=E)}return t.end.copy(c[y]),p>=1e-10}return!1}function tt(l,o,t,a,s){if(t*a<0){const d=t/(t-a);s.push(new k.Vector3().copy(l).lerp(o,d))}else Math.abs(t)<1e-5&&(s.length===0||s[s.length-1].distanceTo(l)>1e-5)&&s.push(l.clone())}function Cn(l,o,t){const a=[],s=new k.Vector3().subVectors(t,o),d=s.lengthSq();if(d<1e-6)return[];const c=(p,y,E)=>{const C=p-o.x,g=y-o.y,b=E-o.z;return(C*s.x+g*s.y+b*s.z)/d};for(let p=0;p<l.length;p+=6){const y=l[p],E=l[p+1],C=l[p+2],g=l[p+3],b=l[p+4],N=l[p+5],w=c(y,E,C),x=c(g,b,N);if(w>=0&&w<=1&&x>=0&&x<=1){a.push(y,E,C,g,b,N);continue}if(w<0&&x<0||w>1&&x>1)continue;const G=Math.min(w,x),I=Math.max(w,x),U=w<x?{x:y,y:E,z:C}:{x:g,y:b,z:N},X=w<x?{x:g,y:b,z:N}:{x:y,y:E,z:C},me=Math.max(G,0),pe=Math.min(I,1);if(me<pe){const ve=I-G,oe=(me-G)/ve,H=(pe-G)/ve;a.push(U.x+(X.x-U.x)*oe,U.y+(X.y-U.y)*oe,U.z+(X.z-U.z)*oe,U.x+(X.x-U.x)*H,U.y+(X.y-U.y)*H,U.z+(X.z-U.z)*H)}}return a}function xn(l,o){if(o.length<2)return{results:[],allPositions:new Float32Array(0)};const t=_n(o),a=[],s=[];for(const d of l){const c=d.node;if(!c.mesh||c.mesh.positions.length===0)continue;const p=[];for(const y of t){const E=new k.Plane(y.normal.clone(),-y.normal.dot(y.start)),C=Mn(c,E);if(C.length>0){const g=Cn(C,y.start,y.end);g.length>0&&p.push(...g)}}if(p.length>0){a.push(...p);const y=[];for(let E=0;E<p.length;E+=6)y.push({start:{x:p[E],y:p[E+1],z:p[E+2]},end:{x:p[E+3],y:p[E+4],z:p[E+5]}});s.push({nodeName:c.name,nodeColor:c.color,segments:y})}}return{results:s,allPositions:new Float32Array(a)}}const Bn={class:"geo-toggle"},An=["title"],Ln=["title"],Dn=e.defineComponent({__name:"Geo3dNodeTree",props:{node:{},scene:{},depth:{default:0}},emits:["toggle-visible"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(t.depth<2);function d(){t.node.children.length>0&&(s.value=!s.value)}function c(){const p=!t.node.visible;t.node.visible=p,a("toggle-visible",t.node.id,p)}return(p,y)=>{const E=e.resolveComponent("Geo3dNodeTree",!0);return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{class:"geo-tree-item",style:e.normalizeStyle({paddingLeft:l.depth*16+8+"px"}),onClick:d},[e.createElementVNode("span",Bn,[l.node.children.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(s.value?"▼":"▶"),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" ")],64))]),e.createElementVNode("div",{class:"geo-icon",style:e.normalizeStyle({background:"#"+l.node.color.toString(16).padStart(6,"0")})},null,4),e.createElementVNode("span",{class:"geo-label",title:l.node.name},e.toDisplayString(l.node.name),9,An),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!l.node.visible}]),onClick:e.withModifiers(c,["stop"]),title:l.node.visible?"隐藏":"显示"},e.toDisplayString(l.node.visible?"👁":"👁‍🗨"),11,Ln)],4),s.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.node.children,C=>(e.openBlock(),e.createBlock(E,{key:C.id,node:C,scene:l.scene,depth:l.depth+1,onToggleVisible:y[0]||(y[0]=(g,b)=>a("toggle-visible",g,b))},null,8,["node","scene","depth"]))),128)):e.createCommentVNode("",!0)])}}}),Fn=we._export_sfc(Dn,[["__scopeId","data-v-24fac17a"]]),Rn={class:"geo-radar-tree"},zn=["onClick"],Tn={class:"geo-toggle"},$n=["title"],Un={class:"geo-count"},Pn=["onClick"],On=["title"],Gn={class:"geo-count"},In=["onClick"],Yn=["onClick"],Hn=["title"],qn={class:"geo-count"},Wn=["onClick"],jn=["onClick"],Xn={key:0,class:"geo-radar-empty"},Zn=e.defineComponent({__name:"Geo3dRadarTree",props:{layers:{},groups:{}},emits:["toggle-layer","toggle-group","remove-layer"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(new Set(t.groups.map(b=>b.id)));function d(b){return s.value.has(b)}function c(b){const N=new Set(s.value);N.has(b)?N.delete(b):N.add(b),s.value=N}const p=e.computed(()=>t.layers.filter(b=>!b.groupId));function y(b){return b.layers.length>0&&b.layers.some(N=>N.visible)}function E(b){return b.layers.reduce((N,w)=>N+w.points.length,0).toLocaleString()}function C(b){a("toggle-group",b.id,!y(b))}function g(b){if(b.points.length===0)return"#999";const N=["#2563eb","#10b981","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#ec4899","#84cc16"];let w=0;for(let x=0;x<b.name.length;x++)w=(w<<5)-w+b.name.charCodeAt(x)|0;return N[Math.abs(w)%N.length]}return(b,N)=>(e.openBlock(),e.createElementBlock("div",Rn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.groups,w=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:"geo-radar-group"},[e.createElementVNode("div",{class:"geo-radar-item group-item",onClick:x=>c(w.id)},[e.createElementVNode("span",Tn,e.toDisplayString(d(w.id)?"▼":"▶"),1),N[0]||(N[0]=e.createElementVNode("span",{class:"geo-radar-icon"},"📡",-1)),e.createElementVNode("span",{class:"geo-label",title:w.name},e.toDisplayString(w.name),9,$n),e.createElementVNode("span",Un,e.toDisplayString(E(w)),1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!y(w)}]),onClick:e.withModifiers(x=>C(w),["stop"])},e.toDisplayString(y(w)?"👁":"👁‍🗨"),11,Pn)],8,zn),d(w.id)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(w.layers,x=>(e.openBlock(),e.createElementBlock("div",{key:x.id,class:"geo-radar-item layer-item"},[N[1]||(N[1]=e.createElementVNode("span",{class:"geo-toggle"}," ",-1)),e.createElementVNode("div",{class:"geo-layer-dot",style:e.normalizeStyle({background:g(x)})},null,4),e.createElementVNode("span",{class:"geo-label",title:x.name},e.toDisplayString(x.name),9,On),e.createElementVNode("span",Gn,e.toDisplayString(x.points.length.toLocaleString()),1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!x.visible}]),onClick:e.withModifiers(G=>b.$emit("toggle-layer",x.id,!x.visible),["stop"])},e.toDisplayString(x.visible?"👁":"👁‍🗨"),11,In),e.createElementVNode("button",{class:"geo-del-btn",onClick:e.withModifiers(G=>b.$emit("remove-layer",x.id),["stop"]),title:"删除"},"×",8,Yn)]))),128)):e.createCommentVNode("",!0)]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,w=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:"geo-radar-item layer-item"},[N[2]||(N[2]=e.createElementVNode("span",{class:"geo-toggle"}," ",-1)),e.createElementVNode("div",{class:"geo-layer-dot",style:e.normalizeStyle({background:g(w)})},null,4),e.createElementVNode("span",{class:"geo-label",title:w.name},e.toDisplayString(w.name),9,Hn),e.createElementVNode("span",qn,e.toDisplayString(w.points.length.toLocaleString()),1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!w.visible}]),onClick:e.withModifiers(x=>b.$emit("toggle-layer",w.id,!w.visible),["stop"])},e.toDisplayString(w.visible?"👁":"👁‍🗨"),11,Wn),e.createElementVNode("button",{class:"geo-del-btn",onClick:e.withModifiers(x=>b.$emit("remove-layer",w.id),["stop"]),title:"删除"},"×",8,jn)]))),128)),l.groups.length===0&&p.value.length===0?(e.openBlock(),e.createElementBlock("div",Xn,"暂无雷达数据")):e.createCommentVNode("",!0)]))}}),Jn=we._export_sfc(Zn,[["__scopeId","data-v-8a9239e4"]]),Kn={class:"geo-dialog-box"},Qn={class:"geo-dialog-header"},eo={key:0,class:"geo-highlight-tag"},to={class:"geo-dialog-body"},no={key:0,class:"geo-no-result"},oo=e.defineComponent({__name:"Geo3dSectionDialog",props:{visible:{type:Boolean},results:{},startPoint:{},endPoint:{}},emits:["close"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(),d=e.ref();let c=1100,p=600;const y=e.ref(!1),E=e.ref(""),C=e.ref({}),g=e.ref(null);function b(m){const S=parseInt(m.slice(1,3),16),v=parseInt(m.slice(3,5),16),D=parseInt(m.slice(5,7),16),F=.7,B=Math.round(S*F),P=Math.round(v*F),Z=Math.round(D*F);return`#${B.toString(16).padStart(2,"0")}${P.toString(16).padStart(2,"0")}${Z.toString(16).padStart(2,"0")}`}const N=["#d32f2f","#1565c0","#2e7d32","#e65100","#6a1b9a","#00838f","#c62828","#283593","#1b5e20","#bf360c"];function w(m,S){const v=parseInt(m.slice(1,3),16),D=parseInt(m.slice(3,5),16),F=parseInt(m.slice(5,7),16);return(v*299+D*587+F*114)/1e3>180?N[S%N.length]:b(m)}e.computed(()=>{const m=new Map;return t.results.forEach((S,v)=>{const D="#"+S.nodeColor.toString(16).padStart(6,"0"),F=w(D,v);m.has(S.nodeName)?m.get(S.nodeName).count+=S.segments.length:m.set(S.nodeName,{color:F,count:S.segments.length})}),Array.from(m.entries()).map(([S,v])=>({name:S,color:v.color,count:v.count}))});function x(){a("close"),g.value=null}function G(){const m=s.value;if(!m)return;const S=m.toDataURL("image/png"),v=document.createElement("a");v.download=`剖面结果_${new Date().toISOString().slice(0,10)}.png`,v.href=S,v.click()}const I=[];e.watch(()=>t.visible,m=>_e(null,null,function*(){m&&(g.value=null,yield e.nextTick(),U())}));function U(){const m=s.value,S=d.value;if(!m||!S)return;const v=m.getContext("2d");if(!v)return;const D=S.clientWidth;c=Math.max(D,600),p=Math.round(c*.5);const F=window.devicePixelRatio||1;if(m.width=c*F,m.height=p*F,m.style.width=c+"px",m.style.height=p+"px",v.scale(F,F),v.clearRect(0,0,c,p),t.results.length===0)return;const B=t.endPoint.x-t.startPoint.x,P=t.endPoint.y-t.startPoint.y,Z=Math.sqrt(B*B+P*P);if(Z<1e-6)return;const Ve=B/Z,ce=P/Z,A=[];let re=1/0,ge=-1/0,Ne=1/0,Me=-1/0;if(t.results.forEach((M,R)=>{const Q="#"+M.nodeColor.toString(16).padStart(6,"0"),ie=w(Q,R);for(const be of M.segments){const Ce=(be.start.x-t.startPoint.x)*Ve+(be.start.y-t.startPoint.y)*ce,L=be.start.z,O=(be.end.x-t.startPoint.x)*Ve+(be.end.y-t.startPoint.y)*ce,ee=be.end.z;A.push({x1:Ce,z1:L,x2:O,z2:ee,color:ie,name:M.nodeName}),re=Math.min(re,Ce,O),ge=Math.max(ge,Ce,O),Ne=Math.min(Ne,L,ee),Me=Math.max(Me,L,ee)}}),A.length===0)return;const Le=ge-re||1,Te=Me-Ne||1,ae=70,se=30,he=30,ye=50,Se=c-ae-se,Be=p-he-ye,$e=Se/Le,He=Be/Te,J=M=>ae+(M-re)*$e,q=M=>p-ye-(M-Ne)*He;v.fillStyle="#fafafa",v.fillRect(0,0,c,p),v.strokeStyle="#bbb",v.lineWidth=1,v.strokeRect(ae,he,Se,Be);const W=fe(Le),le=fe(Te);v.strokeStyle="#e8e8e8",v.lineWidth=.5;for(let M=Math.ceil(re/W)*W;M<=ge;M+=W){const R=J(M);v.beginPath(),v.moveTo(R,he),v.lineTo(R,p-ye),v.stroke()}for(let M=Math.ceil(Ne/le)*le;M<=Me;M+=le){const R=q(M);v.beginPath(),v.moveTo(ae,R),v.lineTo(c-se,R),v.stroke()}v.fillStyle="#444",v.font="11px monospace",v.textAlign="center";for(let M=Math.ceil(re/W)*W;M<=ge;M+=W)v.fillText(M.toFixed(0),J(M),p-ye+16);v.textAlign="right";for(let M=Math.ceil(Ne/le)*le;M<=Me;M+=le)v.fillText(M.toFixed(0),ae-6,q(M)+4);v.fillStyle="#222",v.font="bold 13px sans-serif",v.textAlign="center",v.fillText("水平距离 (m)",ae+Se/2,p-4),v.save(),v.translate(14,he+Be/2),v.rotate(-Math.PI/2),v.fillText("标高 Z (m)",0,0),v.restore(),v.save(),v.beginPath(),v.rect(ae,he,Se,Be),v.clip();const K=g.value;if(K){v.lineWidth=1.5,v.globalAlpha=.2;for(const M of A)M.name!==K&&(v.strokeStyle=M.color,v.beginPath(),v.moveTo(J(M.x1),q(M.z1)),v.lineTo(J(M.x2),q(M.z2)),v.stroke());v.globalAlpha=1}v.lineWidth=K?4:1.5,v.lineCap="round";for(const M of A)K&&M.name!==K||(v.strokeStyle=M.color,v.beginPath(),v.moveTo(J(M.x1),q(M.z1)),v.lineTo(J(M.x2),q(M.z2)),v.stroke());v.restore(),I.length=0;for(const M of A)I.push({sx1:J(M.x1),sy1:q(M.z1),sx2:J(M.x2),sy2:q(M.z2),name:M.name,color:M.color})}function X(m,S,v,D,F,B){const P=F-v,Z=B-D,Ve=P*P+Z*Z;if(Ve<1e-6)return Math.hypot(m-v,S-D);let ce=((m-v)*P+(S-D)*Z)/Ve;return ce=Math.max(0,Math.min(1,ce)),Math.hypot(m-(v+ce*P),S-(D+ce*Z))}function me(m){const v=s.value.getBoundingClientRect();return{mx:(m.clientX-v.left)*(c/v.width),my:(m.clientY-v.top)*(p/v.height),rect:v}}function pe(m,S){let v=1/0,D="",F="";for(const B of I){const P=X(m,S,B.sx1,B.sy1,B.sx2,B.sy2);P<v&&(v=P,D=B.name,F=B.color)}return{bestDist:v,bestName:D,bestColor:F}}function ve(m){if(!s.value||I.length===0)return;const{mx:S,my:v,rect:D}=me(m),{bestDist:F,bestName:B,bestColor:P}=pe(S,v);F<12?(y.value=!0,E.value=B,C.value={left:m.clientX-D.left+14+"px",top:m.clientY-D.top-8+"px",borderLeft:`4px solid ${P}`},s.value.style.cursor="pointer"):(y.value=!1,s.value.style.cursor="default")}function oe(){y.value=!1}function H(m){if(!s.value||I.length===0)return;const{mx:S,my:v}=me(m),{bestDist:D,bestName:F}=pe(S,v);D<12?g.value=g.value===F?null:F:g.value=null,U()}function fe(m){const S=m/8,v=Math.pow(10,Math.floor(Math.log10(S))),D=S/v;return D<1.5?v:D<3.5?2*v:D<7.5?5*v:10*v}return(m,S)=>l.visible?(e.openBlock(),e.createElementBlock("div",{key:0,class:"geo-dialog-overlay",onClick:e.withModifiers(x,["self"])},[e.createElementVNode("div",Kn,[e.createElementVNode("div",Qn,[S[0]||(S[0]=e.createElementVNode("span",{class:"geo-dialog-title"},"剖面结果",-1)),g.value?(e.openBlock(),e.createElementBlock("span",eo,e.toDisplayString(g.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"geo-export-btn",onClick:G,title:"导出图片"},"💾 导出图片"),e.createElementVNode("button",{class:"geo-dialog-close",onClick:x},"×")]),e.createElementVNode("div",to,[e.createElementVNode("div",{class:"geo-canvas-wrap",ref_key:"canvasWrapRef",ref:d},[e.createElementVNode("canvas",{ref_key:"canvasRef",ref:s,onMousemove:ve,onMouseleave:oe,onClick:H},null,544),y.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"geo-canvas-tooltip",style:e.normalizeStyle(C.value)},e.toDisplayString(E.value),5)):e.createCommentVNode("",!0)],512),l.results.length===0?(e.openBlock(),e.createElementBlock("div",no,"该剖切线未与任何模型相交")):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0)}}),ro=we._export_sfc(oo,[["__scopeId","data-v-9d57c901"]]),ao={class:"marker-header"},so={class:"marker-icon"},lo={class:"marker-name"},io={key:0,class:"marker-rows"},co={class:"row-label"},uo={class:"row-value"},mo={class:"row-unit"},_t=e.defineComponent({__name:"Geo3dDeviceMarker",props:{deviceType:{},name:{},icon:{},rows:{},arrowAngle:{}},setup(l){const o=e.ref(!1),t=l,a=e.computed(()=>t.rows.filter(s=>s.label&&s.label.trim()!==""));return(s,d)=>(e.openBlock(),e.createElementBlock("div",{class:"geo3d-device-marker",onClick:d[0]||(d[0]=e.withModifiers(c=>o.value=!o.value,["stop"]))},[e.createElementVNode("div",ao,[e.createElementVNode("span",so,e.toDisplayString(l.icon),1),e.createElementVNode("span",lo,e.toDisplayString(l.name),1)]),o.value&&a.value.length>0?(e.openBlock(),e.createElementBlock("div",io,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(c,p)=>(e.openBlock(),e.createElementBlock("div",{key:p,class:"marker-row"},[e.createElementVNode("span",co,e.toDisplayString(c.label),1),e.createElementVNode("span",uo,e.toDisplayString(c.value),1),e.createElementVNode("span",mo,e.toDisplayString(c.unit),1)]))),128))])):e.createCommentVNode("",!0),o.value&&l.arrowAngle!=null?(e.openBlock(),e.createElementBlock("div",{key:1,class:"marker-arrow",style:e.normalizeStyle({transform:`rotate(${l.arrowAngle}deg)`})},[...d[1]||(d[1]=[e.createElementVNode("svg",{width:"48",height:"12",viewBox:"0 0 48 12",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("line",{x1:"2",y1:"6",x2:"36",y2:"6",stroke:"rgba(51,51,51,0.8)","stroke-width":"2","stroke-linecap":"round"}),e.createElementVNode("polygon",{points:"34,1 48,6 34,11",fill:"rgba(51,51,51,0.8)"})],-1)])],4)):e.createCommentVNode("",!0)]))}}),po={class:"geo-device-tree"},vo=["onClick"],fo={class:"geo-toggle"},go={class:"geo-device-icon"},ho=["title"],yo={class:"geo-count"},bo=["onClick"],ko=["title"],Eo=["onClick"],wo={key:0,class:"geo-device-empty"},Vo=e.defineComponent({__name:"Geo3dDeviceTree",props:{devices:{}},emits:["toggle-device","toggle-group"],setup(l,{emit:o}){const t=l,a=o,s=e.ref(new Set);let d=!1;const c=e.computed(()=>{const g=new Map;for(const b of t.devices){const N=b.deviceType||"未知";g.has(N)||g.set(N,{type:N,icon:b.icon,devices:[]}),g.get(N).devices.push(b)}return Array.from(g.values())});e.watch(c,g=>{!d&&g.length>0&&(s.value=new Set(g.map(b=>b.type)),d=!0)},{immediate:!0});function p(g){return s.value.has(g)}function y(g){const b=new Set(s.value);b.has(g)?b.delete(g):b.add(g),s.value=b}function E(g){return g.devices.length>0&&g.devices.some(b=>b.visible)}function C(g){a("toggle-group",g.type,!E(g))}return(g,b)=>(e.openBlock(),e.createElementBlock("div",po,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,N=>(e.openBlock(),e.createElementBlock("div",{key:N.type,class:"geo-device-group"},[e.createElementVNode("div",{class:"geo-device-item group-item",onClick:w=>y(N.type)},[e.createElementVNode("span",fo,e.toDisplayString(p(N.type)?"▼":"▶"),1),e.createElementVNode("span",go,e.toDisplayString(N.icon),1),e.createElementVNode("span",{class:"geo-label",title:N.type},e.toDisplayString(N.type),9,ho),e.createElementVNode("span",yo,e.toDisplayString(N.devices.length)+"台",1),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!E(N)}]),onClick:e.withModifiers(w=>C(N),["stop"])},e.toDisplayString(E(N)?"👁":"👁‍🗨"),11,bo)],8,vo),p(N.type)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(N.devices,w=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:"geo-device-item device-item"},[b[0]||(b[0]=e.createElementVNode("span",{class:"geo-toggle"}," ",-1)),e.createElementVNode("div",{class:"geo-device-dot",style:e.normalizeStyle({background:w.visible?"#10b981":"#ccc"})},null,4),e.createElementVNode("span",{class:"geo-label",title:w.name},e.toDisplayString(w.name),9,ko),e.createElementVNode("button",{class:e.normalizeClass(["geo-vis-btn",{hidden:!w.visible}]),onClick:e.withModifiers(x=>g.$emit("toggle-device",w.id,!w.visible),["stop"])},e.toDisplayString(w.visible?"👁":"👁‍🗨"),11,Eo)]))),128)):e.createCommentVNode("",!0)]))),128)),c.value.length===0?(e.openBlock(),e.createElementBlock("div",wo,"暂无监测设备")):e.createCommentVNode("",!0)]))}}),No=we._export_sfc(Vo,[["__scopeId","data-v-c4ab4eb8"]]),_o={class:"mix-body"},Mo={key:0,class:"geo-filter-bar"},So={class:"geo-time-btns"},Co=["onClick"],xo={class:"geo-toolbar"},Bo=["disabled"],Ao=["disabled"],Lo={class:"geo-mode-group"},Do=["onClick"],Fo={key:1,class:"geo-pick-badge"},Ro={class:"geo-doc-name"},zo={class:"geo-main"},To={key:0,class:"geo-panel-left"},$o={class:"geo-device-count"},Uo={class:"geo-panel-header geo-radar-header"},Po={class:"geo-radar-count"},Oo={class:"geo-tree-scroll"},Go={key:0,class:"geo-loading"},Io={key:1,class:"geo-drop-hint"},Yo={key:2,class:"geo-model-selector"},Ho={key:0,class:"geo-model-dropdown"},qo=["onClick"],Wo={class:"geo-model-radio"},jo={class:"geo-model-radio"},Xo={key:0,class:"geo-model-option geo-model-sub"},Zo={key:1,class:"geo-panel-right"},Jo={class:"geo-radar-stats"},Ko={class:"geo-stat-row"},Qo={class:"geo-stat-val"},er={class:"geo-stat-row"},tr={class:"geo-stat-alarm"},nr={class:"geo-legend"},or={key:0,class:"geo-point-info"},rr={class:"geo-point-title"},ar={class:"geo-point-grid"},sr={key:1,class:"geo-point-hint"},lr={class:"geo-section-controls"},ir=["disabled"],cr={key:1},dr={class:"geo-pick-hint"},ur={key:2,class:"geo-coord"},mr={key:3,class:"geo-coord"},pr=["disabled"],vr={key:0,class:"geo-section-results"},fr={class:"geo-result-count"},gr={class:"geo-section-stats"},hr={class:"geo-status-bar"},yr={key:0},br={class:"geo-group-picker"},kr={class:"geo-group-body"},Er={class:"geo-group-options"},wr=["value"],Vr={DEFAULT_ICON:kt.DEFAULT_ICON,ACTIVE_ICON:kt.ACTIVE_ICON,NAME_CN:"三维地质模型",NAME_EN:"Geo3D Viewer",ORDER:1,PLATFORM:["pc","screen"]},Nr={bgColor:"#f0f2f5",radiusSize:4,isHideTitle:!1,titleColor:"#333",textColor:"#333",fontSize:{value:12,type:"number",label:"component.geo3d.fontSize",min:10,max:24},g3dFileUrl:{value:"",type:"string",label:"component.geo3d.g3dFileUrl"},geologyModelUrl:{value:"",type:"string",label:"component.geo3d.geologyModelUrl"},dtmModelUrl:{value:"",type:"string",label:"component.geo3d.dtmModelUrl"},uavModelUrl:{value:"",type:"string",label:"component.geo3d.uavModelUrl"},satelliteMapUrl:{value:"",type:"string",label:"component.geo3d.satelliteMapUrl"},mapCenterLon:{value:119.4,type:"number",label:"component.geo3d.mapCenterLon"},mapCenterLat:{value:45.37,type:"number",label:"component.geo3d.mapCenterLat"},mapZoom:{value:13,type:"number",label:"component.geo3d.mapZoom",min:1,max:18},radarFileUrl:{value:"",type:"string",label:"component.geo3d.radarFileUrl"},defaultRadarMode:{value:"rr",type:"select",label:"component.geo3d.defaultRadarMode",options:[{label:"位移",value:"rr"},{label:"速度",value:"av"},{label:"告警",value:"cf"}]},showFilterBar:{value:!0,type:"switch",label:"component.geo3d.showFilterBar"},linkChannel:{value:"geo3d",type:"select",label:"component.linkChannel",options:[{label:"geo3d",value:"geo3d"},{label:"custom",value:"custom"}]},customChannel:{value:"",type:"string",label:"component.customChannel",showWhen:{linkChannel:"custom"}}},_r=[{dataType:"radar",name:"监测点数据",object_id:"",fieldE:"e",fieldN:"n",fieldRL:"rl",fieldRR:"rr",fieldAV:"av",fieldCF:"cf"},{dataType:"device",name:"GNSS001",object_id:"",deviceType:"GNSS",e:0,n:0,rl:0,region:"",lineName:"",row1Label:"",row1FV:"",row1Unit:"",row2Label:"",row2FV:"",row2Unit:"",row3Label:"",row3FV:"",row3Unit:"",row4Label:"",row4FV:"",row4Unit:"",row5Label:"",row5FV:"",row5Unit:"",arrowXFV:"",arrowYFV:""}],Mr=["name","object_id","dataType","fieldE","fieldN","fieldRL","fieldRR","fieldAV","fieldCF","deviceType","e","n","rl","region","lineName","row1Label","row1FV","row1Unit","row2Label","row2FV","row2Unit","row3Label","row3FV","row3Unit","row4Label","row4FV","row4Unit","row5Label","row5FV","row5Unit","arrowXFV","arrowYFV"],Sr=["mosaic"],Cr={useAlias:!0,multiObject:!0,source:"mosaic"},xr={DEFAULT:Vr,OPTIONS:Nr,DATA:_r,PARAMS:Mr,SOURCE:Sr,COMMON:Cr},Br=e.defineComponent(Qe(Ke({},xr),{__name:"geo3dViewer",props:{conf:{type:Object,default:()=>({data:[]})},uid:{type:String,default:""},mode:{type:String,default:"edit"},theme:{type:String,default:"light"}},setup(l){const o=l;class t extends mn.BaseComponent{extractStyles(){return{bgColor:this.getOptionValue("bgColor","#f0f2f5"),radiusSize:this.getOptionValue("radiusSize",4),isHideTitle:this.getOptionValue("isHideTitle",!1),titleColor:this.getOptionValue("titleColor","#333"),fontSize:this.getOptionValue("fontSize",12),g3dFileUrl:this.getOptionValue("g3dFileUrl",""),geologyModelUrl:this.getOptionValue("geologyModelUrl",""),dtmModelUrl:this.getOptionValue("dtmModelUrl",""),uavModelUrl:this.getOptionValue("uavModelUrl",""),satelliteMapUrl:this.getOptionValue("satelliteMapUrl",""),mapCenterLon:this.getOptionValue("mapCenterLon",119.4),mapCenterLat:this.getOptionValue("mapCenterLat",45.37),mapZoom:this.getOptionValue("mapZoom",14),radarFileUrl:this.getOptionValue("radarFileUrl",""),defaultRadarMode:this.getOptionValue("defaultRadarMode","rr"),showFilterBar:this.getOptionValue("showFilterBar",!0),linkChannel:(()=>{const n=this.getOptionValue("linkChannel","geo3d"),i=this.getOptionValue("customChannel","");return n==="custom"&&i?i:n})()}}needsHistoryData(){return!0}parseRecordsToPoints(n,i){var Ee,te;const f=i||((te=(Ee=this.props.conf)==null?void 0:Ee.data)==null?void 0:te[0])||{},V=f.fieldE||"e",u=f.fieldN||"n",h=f.fieldRL||"rl",_=f.fieldRR||"rr",T=f.fieldAV||"av",Y=f.fieldCF||"cf",de=[];for(let z=0;z<n.length;z++){const j=n[z];if(!j)continue;const ne=Number(j[V]),ue=Number(j[u]),ze=Number(j[h]);!Number.isFinite(ne)||!Number.isFinite(ue)||!Number.isFinite(ze)||de.push({id:j.object_id||j.id||`pt_${z}`,e:ne,n:ue,rl:ze,rr:Number(j[_])||0,av:Number(j[T])||0,vd:Number(j.vd)||0,cf:Number(j[Y])||0})}return de}setHistoryData(n){var V;if(!n)return;const i=(V=this.props.conf)==null?void 0:V.data;if(!Array.isArray(i))return;const f=n.history;Array.isArray(f)&&i.forEach((u,h)=>{if(!u||y(u)!=="radar")return;const T=Array.isArray(f[h])?f[h]:[];if(T.length===0)return;const Y=this.parseRecordsToPoints(T,u);if(Y.length>0){const de=u.object_id||`__platform_radar_${h}__`;zt(Y,u.name||"平台数据",de)}})}onPreview(){var f;const n=(f=this.props.conf)==null?void 0:f.data;if(!Array.isArray(n))return;Rt();const i=new Set;n.forEach((V,u)=>{const h=y(V),_=this.resolveObjectId(V);if(h==="device"){it(V,_||V.name||`device_${u}`),_&&!i.has(_)&&(i.add(_),this.subscribeFv(_));return}!_||i.has(_)||(i.add(_),this.subscribeFv(_))}),console.log(`[geo3dViewer] onPreview: 已订阅 ${i.size} 个对象`)}setSocketData(n){var V,u;if(!n)return;const i=n.object_id||"";if(!i)return;const f=qe.get(i);if(f)if(f.type==="radar"){const h=n.data;if(!h)return;let _=[];if(Array.isArray(h)?_=h:typeof h=="object"&&(_=[h]),_.length===0)return;const T=(u=(V=this.props.conf)==null?void 0:V.data)==null?void 0:u[f.index],Y=this.parseRecordsToPoints(_,T);Y.length>0&&Tt(Y,i)}else f.type==="device"&&$t(i,n.data)}}const a=new t(o,"geo3dViewer");a.setupLifecycle();const s=a.getStyle(),d=o.conf,c=e.computed(()=>pn.generateTitleStyle(o.conf.options)),p={GNSS:"📍",DEEP:"⚓",RADAR:"📡",SURFACE:"📐",CRACK:"🧱",FIRE:"🔥",WATER:"💧",GROUND:"🌍",STRESS:"📊",VIB:"💥",SAT:"🛸"};function y(r){return(r==null?void 0:r.dataType)==="device"?"device":"radar"}function E(r){const n=[];for(let i=1;i<=5;i++){const f=r[`row${i}Label`]||"",V=r[`row${i}FV`]||"",u=r[`row${i}Unit`]||"";f&&n.push({label:f,fv:V,unit:u})}return n}function C(r){if(r==null)return"--";const n=Number(r);return!isNaN(n)&&typeof r!="boolean"?n.toFixed(2):String(r)}function g(r,n){return r===0&&n===0?null:Math.round(Math.atan2(n,r)*180/Math.PI*10)/10}const b=e.ref(""),N=e.ref(""),w=e.ref([]),x=e.ref(1),G=e.ref(we.dayjs().subtract(1,"day").format("YYYY-MM-DD HH:mm:ss")),I=e.ref(we.dayjs().format("YYYY-MM-DD HH:mm:ss")),U=[{days:1,label:"一天内"},{days:7,label:"一周内"},{days:30,label:"一个月内"}],X=e.computed(()=>{var i;const r=(i=o.conf)==null?void 0:i.data;if(!Array.isArray(r))return[];const n=new Set;return r.forEach(f=>{f.dataType==="device"&&f.region&&n.add(f.region)}),Array.from(n)}),me=e.computed(()=>{var i;const r=(i=o.conf)==null?void 0:i.data;if(!Array.isArray(r))return[];const n=new Set;return r.forEach(f=>{f.dataType==="device"&&f.lineName&&n.add(f.lineName)}),Array.from(n)}),pe=e.computed(()=>{var n;const r=(n=o.conf)==null?void 0:n.data;return Array.isArray(r)?r.filter(i=>i.dataType==="device"&&i.name).map(i=>i.name):[]});function ve(r){x.value=r,I.value=we.dayjs().format("YYYY-MM-DD HH:mm:ss"),G.value=we.dayjs().subtract(r,"day").format("YYYY-MM-DD HH:mm:ss"),H()}function oe(){x.value=0,H()}function H(){a.publish({type:"filter",region:b.value||null,line:N.value||null,points:w.value.length>0?w.value:null,timeRange:{start:G.value,end:I.value},days:x.value})}const fe=e.ref(),m=e.ref(null),S=e.ref(!1),v=e.ref(""),D=e.ref(!1),F=e.ref(""),B=e.ref("就绪"),P=e.ref(null),Z=e.ref(0),Ve=e.ref(0),ce=e.ref();let A=null,re=[];const ge=new Map;function Ne(){A||!ce.value||(A=xe.L.map(ce.value,{zoomControl:!0,attributionControl:!1,maxZoom:17}),A.setView([s.value.mapCenterLat||45.37,s.value.mapCenterLon||119.4],s.value.mapZoom||14),xe.L.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",{maxZoom:19}).addTo(A),setTimeout(()=>{A==null||A.invalidateSize(),Le()},200))}function Me(r,n,i,f){const u=.003352810681182319,h=2*u-u*u,_=(1-Math.sqrt(1-h))/(1+Math.sqrt(1-h)),T=1,Y=r-5e5,te=n/T/(6378137*(1-h/4-3*h*h/64-5*h*h*h/256)),z=te+(3*_/2-27*_*_*_/32)*Math.sin(2*te)+(21*_*_/16-55*_*_*_*_/32)*Math.sin(4*te)+151*_*_*_/96*Math.sin(6*te),j=h/(1-h),ne=j*Math.cos(z)*Math.cos(z),ue=Math.tan(z)*Math.tan(z),ze=6378137/Math.sqrt(1-h*Math.sin(z)*Math.sin(z)),tn=6378137*(1-h)/Math.pow(1-h*Math.sin(z)*Math.sin(z),1.5),$=Y/(ze*T),nn=z-ze*Math.tan(z)/tn*($*$/2-(5+3*ue+10*ne-4*ne*ne-9*j)*$*$*$*$/24+(61+90*ue+298*ne+45*ue*ue-252*j-3*ne*ne)*$*$*$*$*$*$/720),on=120*Math.PI/180,rn=($-(1+2*ue+ne)*$*$*$/6+(5-2*ne+28*ue-3*ne*ne+8*j+24*ue*ue)*$*$*$*$*$/120)/Math.cos(z);return{lat:nn*180/Math.PI,lon:(rn+on)*180/Math.PI}}function Le(){var i;if(!A)return;re.forEach(f=>A.removeLayer(f)),re=[],ge.clear();const r=(i=o.conf)==null?void 0:i.data;if(!Array.isArray(r))return;const n=[];r.forEach(f=>{if(y(f)!=="device")return;const V=Number(f.e),u=Number(f.n);if(!Number.isFinite(V)||!Number.isFinite(u))return;let h,_;if(V>180||u>90){const te=Me(V,u);h=te.lat,_=te.lon}else h=u,_=V;const T=xe.L.divIcon({className:"geo-leaflet-marker",html:`<div class="geo-lm-pin">${p[f.deviceType]||"📍"}</div><div class="geo-lm-name">${f.name||""}</div>`,iconSize:[60,40],iconAnchor:[30,40]}),Y=f.object_id||f.name||"",de=Ae.get(Y)!==!1,Ee=xe.L.marker([h,_],{icon:T});de&&Ee.addTo(A),re.push(Ee),Y&&ge.set(Y,Ee),de&&n.push(xe.L.latLng(h,_))}),n.length>0&&A.fitBounds(xe.L.latLngBounds(n).pad(.2))}function Te(r,n){const i=ge.get(r);!i||!A||(n?i.addTo(A):A.removeLayer(i))}const ae=e.ref(!1),se=e.ref("geology"),he=e.ref(!1);let ye=null;const Se=[{value:"geology",label:"地质模型"},{value:"dtm",label:"DTM面"}],Be=e.computed(()=>{var r;return se.value==="map2d"?he.value?"卫星+无人机":"卫星地图":((r=Se.find(n=>n.value===se.value))==null?void 0:r.label)||"请选择模型"});function $e(r){se.value=r,ae.value=!1;const n=r==="map2d";m.value&&(m.value.renderer.domElement.style.display=n?"none":"",m.value.labelRenderer.domElement.style.display=n?"none":""),n&&!A&&e.nextTick(()=>Ne()),n&&A&&setTimeout(()=>{A==null||A.invalidateSize(),Le()},100),a.publish({type:"modelChange",model:r})}function He(){if(A)if(he.value){const r=s.value.uavModelUrl;r&&(ye=xe.L.tileLayer(r,{maxZoom:19,opacity:.7}).addTo(A))}else ye&&(A.removeLayer(ye),ye=null)}const J=e.ref(!1),q=e.ref(!1),W=e.reactive({x:0,y:0,z:0}),le=e.reactive({x:0,y:0,z:0}),K=e.ref([]),M=e.ref(!1),R=e.ref("none"),Q=e.ref(null),ie=e.ref(null),be=e.computed(()=>R.value==="start"?"点击选取起点":R.value==="end"?"点击选取终点":""),Ce=e.computed(()=>K.value.reduce((r,n)=>r+n.segments.length,0)),L=e.ref([]),O=e.ref("rr"),ee=e.ref(null),St=e.ref("");let Ct=0;const ot=[{id:"east",name:"东帮"},{id:"south",name:"南帮"},{id:"west",name:"西帮"},{id:"north",name:"北帮"}],De=e.ref(!1),Fe=e.ref([]),ke=e.ref(""),rt=e.ref("");let xt=0;const at=e.ref([]),Bt=e.computed(()=>[...ot,...at.value].map(n=>({id:n.id,name:n.name,layers:L.value.filter(i=>i.groupId===n.id)})).filter(n=>n.layers.length>0)),st=[{value:"rr",label:"位移"},{value:"av",label:"速度"},{value:"cf",label:"告警"}];e.computed(()=>L.value.reduce((r,n)=>r+n.points.length,0));const At=e.computed(()=>L.value.filter(r=>r.visible).reduce((r,n)=>r+n.points.length,0)),Lt=e.computed(()=>L.value.filter(r=>r.visible).reduce((r,n)=>r+n.points.filter(i=>i.cf>=300||Math.abs(i.rr)>=50||Math.abs(i.av)>=.5).length,0)),Dt=e.computed(()=>O.value==="rr"?"linear-gradient(90deg,rgb(20,35,150),rgb(0,180,255),rgb(255,230,0),rgb(180,0,0))":O.value==="av"?"linear-gradient(90deg,rgb(0,80,220),rgb(0,220,120),rgb(220,30,30))":"linear-gradient(90deg,rgb(0,170,255),rgb(255,145,0),rgb(180,0,0))"),Ue=e.reactive(new Map),Re=new Map,qe=new Map,Ae=e.reactive(new Map),Pe=e.ref(!0),We=e.computed(()=>{const r=[];return Ue.forEach((n,i)=>{r.push({id:i,name:n.name||i,deviceType:n.deviceType||"未知",icon:n.icon||"📍",visible:Ae.get(i)!==!1})}),r}),Oe=e.computed(()=>We.value.length);function lt(r,n){var i;Ae.set(r,n),(i=m.value)==null||i.setDeviceMarkerVisible(r,n),Te(r,n)}function Ft(r,n){We.value.filter(i=>i.deviceType===r).forEach(i=>lt(i.id,n))}function Rt(){var n;qe.clear();const r=(n=o.conf)==null?void 0:n.data;Array.isArray(r)&&r.forEach((i,f)=>{const V=i==null?void 0:i.object_id;V&&qe.set(V,{type:y(i),index:f})})}const Ge="__platform_radar__";function zt(r,n,i){if(!m.value||r.length===0)return;const f=i||Ge;m.value.removeRadarLayer(f),L.value=L.value.filter(V=>V.id!==f),L.value.push({id:f,name:n,points:r,visible:!0,groupId:void 0}),m.value.addRadarLayer(f,r,O.value),B.value=`平台数据: ${r.length.toLocaleString()} 个监测点已加载`}function Tt(r,n){const i=n||Ge,f=L.value.find(h=>h.id===i)||L.value.find(h=>h.id===Ge);if(!f||!m.value)return;const V=new Map;f.points.forEach((h,_)=>V.set(h.id,_));let u=0;for(const h of r){const _=V.get(h.id);_!==void 0&&(f.points[_].rr=h.rr,f.points[_].av=h.av,f.points[_].cf=h.cf,f.points[_].e=h.e,f.points[_].n=h.n,f.points[_].rl=h.rl,u++)}u>0&&(m.value.updateRadarLayerColors(Ge,f.points,O.value),B.value=`实时更新: ${u} 个点`)}function it(r,n){var te;if(!m.value)return;const i=Number(r.e),f=Number(r.n),V=Number(r.rl);if(!Number.isFinite(i)||!Number.isFinite(f)||!Number.isFinite(V)){console.warn(`[geo3dViewer] 设备 ${r.name} 坐标无效,跳过标注创建`);return}const u=E(r),h=r.deviceType||"",_=p[h]||p[(te=h.toUpperCase)==null?void 0:te.call(h)]||"📍",T={id:n,name:r.name||"",deviceType:h,icon:_,position:{e:i,n:f,rl:V},rows:u.map(z=>Qe(Ke({},z),{value:"--"})),arrowXFV:r.arrowXFV||"",arrowYFV:r.arrowYFV||"",arrowAngle:null,css2dObject:null};Ue.set(n,T);const Y=document.createElement("div"),de=e.createApp(_t,{deviceType:T.deviceType,name:T.name,icon:T.icon,rows:T.rows.map(z=>({label:z.label,value:z.value,unit:z.unit})),arrowAngle:T.arrowAngle});de.mount(Y),Re.set(n,de);const Ee=m.value.addDeviceMarker(n,{e:i,n:f,rl:V},Y);T.css2dObject=Ee,Ae.has(n)||Ae.set(n,!0)}function $t(r,n){var V;const i=Ue.get(r);if(!i||!n)return;if(i.rows.forEach(u=>{u.fv&&(u.value=C(n[u.fv]))}),i.arrowXFV||i.arrowYFV){const u=i.arrowXFV?n[i.arrowXFV]:0,h=i.arrowYFV?n[i.arrowYFV]:0,_=parseFloat(u)||0,T=parseFloat(h)||0;i.arrowAngle=g(_,T)}const f=Re.get(r);if(f&&i.css2dObject){const u=i.css2dObject.element;f.unmount();const h=e.createApp(_t,{deviceType:i.deviceType,name:i.name,icon:i.icon,rows:i.rows.map(_=>({label:_.label,value:_.value,unit:_.unit})),arrowAngle:i.arrowAngle});h.mount(u),Re.set(r,h)}(V=m.value)==null||V.requestUpdate()}function Ut(){var r;for(const[,n]of Re)n.unmount();Re.clear(),Ue.clear(),Ae.clear(),ge.clear(),(r=m.value)==null||r.removeAllDeviceMarkers()}e.onMounted(()=>{var n;if(fe.value){m.value=new Vn(fe.value);const i=m.value.renderer.domElement;i.addEventListener("mousedown",ft),i.addEventListener("mouseup",gt)}O.value=s.value.defaultRadarMode||"rr";const r=s.value.g3dFileUrl;if(r&&typeof r=="string"&&r.trim()&&ct(r.trim()),o.mode==="edit"){const i=(n=o.conf)==null?void 0:n.data;Array.isArray(i)&&i.forEach((f,V)=>{y(f)==="device"&&it(f,f.object_id||f.name||`device_${V}`)})}}),e.onBeforeUnmount(()=>{var r;if(m.value){const n=m.value.renderer.domElement;n.removeEventListener("mousedown",ft),n.removeEventListener("mouseup",gt)}Ut(),re.forEach(n=>A==null?void 0:A.removeLayer(n)),re=[],A==null||A.remove(),A=null,(r=m.value)==null||r.dispose()}),e.watch(()=>s.value.g3dFileUrl,r=>{r&&!S.value&&ct(String(r).trim())});function Pt(){const r=document.createElement("input");r.type="file",r.accept=".g3d",r.onchange=()=>{var n;(n=r.files)!=null&&n[0]&&dt(r.files[0])},r.click()}function Ot(r){var i;const n=(i=r.dataTransfer)==null?void 0:i.files[0];n!=null&&n.name.endsWith(".g3d")?dt(n):n!=null&&n.name.endsWith(".json")&&S.value&&(Fe.value=[n],ke.value="",De.value=!0)}function ct(r){return _e(this,null,function*(){if(m.value){D.value=!0,F.value="从URL加载...";try{const i=yield(yield fetch(r)).text();yield ut(Et(i))}catch(n){B.value=`加载失败: ${n.message}`}finally{D.value=!1}}})}function dt(r){return _e(this,null,function*(){if(m.value){D.value=!0,F.value=`读取 ${r.name}...`;try{const n=yield r.text();yield ut(Et(n))}catch(n){B.value=`加载失败: ${n.message}`}finally{D.value=!1}}})}function ut(r){return _e(this,null,function*(){yield m.value.loadDocument(r,V=>{F.value=V}),P.value=r.rootNode,v.value=r.name,S.value=!0;let n=0,i=0;const f=V=>{n++,V.mesh&&V.mesh.positions.length>0&&i++,V.children.forEach(f)};f(r.rootNode),Z.value=n,Ve.value=i,B.value=`已加载: ${r.name} (${i}个网格)`,a.publish({type:"modelLoaded",modelName:r.name,nodeCount:n,meshNodeCount:i})})}function Gt(r,n){var i;(i=m.value)==null||i.setNodeVisible(r,n)}function It(){J.value=!J.value}let je={x:0,y:0};function Yt(){if(!m.value)return;vt(),R.value="start",B.value="点击模型选取起点";const r=m.value.renderer.domElement;r.addEventListener("mousedown",mt),r.addEventListener("mouseup",pt)}function Ht(){var r;R.value="none",Q.value=null,ie.value=null,(r=m.value)==null||r.clearPickMarkers(),Xe(),B.value="已取消"}function Xe(){var n;const r=(n=m.value)==null?void 0:n.renderer.domElement;r&&(r.removeEventListener("mousedown",mt),r.removeEventListener("mouseup",pt))}function mt(r){je={x:r.clientX,y:r.clientY}}function pt(r){if(!m.value||R.value==="none"||Math.hypot(r.clientX-je.x,r.clientY-je.y)>5)return;const n=m.value.pickPoint(r);if(!n){B.value="未选中模型,请重试";return}R.value==="start"?(Q.value={x:n.x,y:n.y,z:n.z},Object.assign(W,{x:n.x,y:n.y,z:n.z}),m.value.addPickMarker(n,65280),R.value="end",B.value="请选取终点"):(ie.value={x:n.x,y:n.y,z:n.z},Object.assign(le,{x:n.x,y:n.y,z:n.z}),m.value.addPickMarker(n,16729156),m.value.addPickLine(new k.Vector3(W.x,W.y,W.z),n),R.value="none",Xe(),B.value="两点已选,点击计算剖面")}function qt(){return _e(this,null,function*(){if(!(!m.value||q.value||!Q.value||!ie.value)){q.value=!0,B.value="计算剖面...",yield e.nextTick();try{const r=m.value.getVisibleMeshEntries(),n=[new k.Vector3(W.x,W.y,W.z),new k.Vector3(le.x,le.y,le.z)],{results:i,allPositions:f}=yield new Promise(V=>setTimeout(()=>V(xn(r,n)),50));if(K.value=i,m.value.clearSectionResults(),m.value.setTransparency(!0),f.length>0){for(const V of i){const u=[];for(const h of V.segments)u.push(h.start.x,h.start.y,h.start.z,h.end.x,h.end.y,h.end.z);m.value.addSectionLines(new Float32Array(u),V.nodeColor)}m.value.addSectionPath(n)}B.value=`剖面完成: ${Ce.value}条线段`,M.value=!0,a.publish({type:"sectionComputed",count:Ce.value})}catch(r){B.value=`失败: ${r.message}`}finally{q.value=!1}}})}function vt(){var r,n,i;K.value=[],Q.value=null,ie.value=null,R.value="none",M.value=!1,(r=m.value)==null||r.clearSectionResults(),(n=m.value)==null||n.clearPickMarkers(),(i=m.value)==null||i.setTransparency(!1),Xe(),B.value="剖面已清除"}function Wt(){const r=document.createElement("input");r.type="file",r.accept=".json",r.multiple=!0,r.onchange=()=>{var n;(n=r.files)!=null&&n.length&&(Fe.value=Array.from(r.files),ke.value="",De.value=!0)},r.click()}function jt(){let r=ke.value;if(r==="__custom__"){const n=rt.value.trim();if(!n)return;const i=`c_${++xt}`;at.value.push({id:i,name:n}),r=i}De.value=!1,Xt(Fe.value,r),Fe.value=[],rt.value=""}function Ze(){De.value=!1,Fe.value=[]}function Xt(r,n){return _e(this,null,function*(){var i;for(const f of r)try{const V=wn(JSON.parse(yield f.text()));if(!V.points.length){B.value=`${f.name}: 空数据`;continue}const u=`r_${++Ct}`,h=f.name.replace(/\.json$/i,"");L.value.push({id:u,name:h,points:V.points,visible:!0,groupId:n||void 0}),(i=m.value)==null||i.addRadarLayer(u,V.points,O.value),B.value=`已加载「${h}」(${V.points.length.toLocaleString()}点)`}catch(V){B.value=`${f.name}失败: ${V.message}`}})}function Zt(r,n){var f;const i=L.value.find(V=>V.id===r);i&&(i.visible=n,(f=m.value)==null||f.setRadarLayerVisible(r,n))}function Jt(r,n){L.value.filter(i=>i.groupId===r).forEach(i=>{var f;i.visible=n,(f=m.value)==null||f.setRadarLayerVisible(i.id,n)})}function Kt(r){var n;(n=m.value)==null||n.removeRadarLayer(r),L.value=L.value.filter(i=>i.id!==r),L.value.length||(ee.value=null)}function Qt(r){O.value=r,L.value.forEach(n=>{var i;return(i=m.value)==null?void 0:i.updateRadarLayerColors(n.id,n.points,r)})}function en(){var r;(r=m.value)==null||r.clearAllRadarLayers(),L.value=[],ee.value=null,B.value="雷达已清除"}let Je={x:0,y:0};function ft(r){Je={x:r.clientX,y:r.clientY}}function gt(r){var i;if(!m.value||!L.value.length||R.value!=="none"||Math.hypot(r.clientX-Je.x,r.clientY-Je.y)>5)return;const n=m.value.pickRadarPoint(r);n&&(ee.value=n.point,St.value=((i=L.value.find(f=>f.id===n.layerId))==null?void 0:i.name)||"",B.value=`选中 ${n.point.id} 位移:${n.point.rr.toFixed(2)}mm`,a.publish({type:"radarPointSelected",point:n.point}))}return e.computed(()=>{var r;return((r=st.find(n=>n.value===O.value))==null?void 0:r.label)||""}),e.computed(()=>O.value==="cf"?"0":O.value==="av"?"-2.0":"-200"),e.computed(()=>O.value==="cf"?"737":O.value==="av"?"2.0":"200"),(r,n)=>{const i=et.ElOption,f=et.ElSelect,V=et.ElDatePicker;return e.openBlock(),e.createElementBlock("div",{class:"mix-component geo3d-viewer",style:e.normalizeStyle({background:e.unref(s).bgColor,borderRadius:e.unref(s).radiusSize+"px",fontSize:e.unref(s).fontSize+"px"})},[e.unref(s).isHideTitle?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:"mix-title",style:e.normalizeStyle(c.value)},e.toDisplayString(e.unref(d).caption||e.unref(d).name||"三维地质模型"),5)),e.createElementVNode("div",_o,[e.unref(s).showFilterBar?(e.openBlock(),e.createElementBlock("div",Mo,[e.createVNode(f,{modelValue:b.value,"onUpdate:modelValue":n[0]||(n[0]=u=>b.value=u),class:"geo-filter-select",size:"small",placeholder:"全部区域",onChange:H},{default:e.withCtx(()=>[e.createVNode(i,{label:"全部区域",value:""}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(X.value,u=>(e.openBlock(),e.createBlock(i,{key:u,label:u,value:u},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e.createVNode(f,{modelValue:N.value,"onUpdate:modelValue":n[1]||(n[1]=u=>N.value=u),class:"geo-filter-select",size:"small",placeholder:"全部监测线",onChange:H},{default:e.withCtx(()=>[e.createVNode(i,{label:"全部监测线",value:""}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(me.value,u=>(e.openBlock(),e.createBlock(i,{key:u,label:u,value:u},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e.createVNode(f,{modelValue:w.value,"onUpdate:modelValue":n[2]||(n[2]=u=>w.value=u),class:"geo-filter-select geo-filter-wide",size:"small",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"全部监测点",onChange:H},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(pe.value,u=>(e.openBlock(),e.createBlock(i,{key:u,label:u,value:u},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e.createElementVNode("div",So,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(U,u=>e.createElementVNode("button",{key:u.days,class:e.normalizeClass(["geo-time-btn",{active:x.value===u.days}]),onClick:h=>ve(u.days)},e.toDisplayString(u.label),11,Co)),64))]),e.createVNode(V,{modelValue:G.value,"onUpdate:modelValue":n[3]||(n[3]=u=>G.value=u),type:"datetime",size:"small",placeholder:"开始时间",format:"YYYY/MM/DD HH:mm","value-format":"YYYY-MM-DD HH:mm:ss",class:"geo-date-picker",onChange:oe},null,8,["modelValue"]),n[13]||(n[13]=e.createElementVNode("span",{class:"geo-date-sep"},"至",-1)),e.createVNode(V,{modelValue:I.value,"onUpdate:modelValue":n[4]||(n[4]=u=>I.value=u),type:"datetime",size:"small",placeholder:"结束时间",format:"YYYY/MM/DD HH:mm","value-format":"YYYY-MM-DD HH:mm:ss",class:"geo-date-picker",onChange:oe},null,8,["modelValue"])])):e.createCommentVNode("",!0),e.createElementVNode("div",xo,[e.createElementVNode("button",{class:"geo-btn",onClick:Pt},"📂 打开"),e.createElementVNode("button",{class:"geo-btn",onClick:Wt,disabled:!S.value},"📡 雷达",8,Bo),e.createElementVNode("button",{class:"geo-btn",onClick:It,disabled:!S.value},"✂️ 剖面",8,Ao),L.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Lo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(st,u=>e.createElementVNode("button",{key:u.value,class:e.normalizeClass(["geo-btn geo-btn-sm",{"geo-btn-primary":O.value===u.value}]),onClick:h=>Qt(u.value)},e.toDisplayString(u.label),11,Do)),64))]),e.createElementVNode("button",{class:"geo-btn geo-btn-sm geo-btn-danger",onClick:en},"清除雷达")],64)):e.createCommentVNode("",!0),n[14]||(n[14]=e.createElementVNode("span",{style:{flex:"1"}},null,-1)),R.value!=="none"?(e.openBlock(),e.createElementBlock("span",Fo,e.toDisplayString(be.value),1)):e.createCommentVNode("",!0),e.createElementVNode("span",Ro,e.toDisplayString(v.value),1)]),e.createElementVNode("div",zo,[S.value?(e.openBlock(),e.createElementBlock("div",To,[n[16]||(n[16]=e.createElementVNode("div",{class:"geo-panel-header"},"模型节点树",-1)),e.createElementVNode("div",{class:"geo-tree-scroll",style:e.normalizeStyle({maxHeight:Oe.value>0||L.value.length>0?Oe.value>0&&L.value.length>0?"34%":"50%":"100%"})},[e.createVNode(Fn,{node:P.value,scene:m.value,onToggleVisible:Gt},null,8,["node","scene"])],4),Oe.value>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",{class:"geo-panel-header geo-device-header",onClick:n[5]||(n[5]=u=>Pe.value=!Pe.value),style:{cursor:"pointer"}},[e.createElementVNode("span",null,e.toDisplayString(Pe.value?"▼":"▶")+" 📍 监测设备",1),e.createElementVNode("span",$o,e.toDisplayString(Oe.value)+"台",1)]),Pe.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"geo-tree-scroll",style:e.normalizeStyle({maxHeight:L.value.length>0?"33%":"50%"})},[e.createVNode(No,{devices:We.value,onToggleDevice:lt,onToggleGroup:Ft},null,8,["devices"])],4)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),L.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Uo,[n[15]||(n[15]=e.createTextVNode("📡 雷达 ",-1)),e.createElementVNode("span",Po,e.toDisplayString(L.value.length)+"层",1)]),e.createElementVNode("div",Oo,[e.createVNode(Jn,{layers:L.value,groups:Bt.value,onToggleLayer:Zt,onToggleGroup:Jt,onRemoveLayer:Kt},null,8,["layers","groups"])])],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"geo-viewport",ref_key:"viewportRef",ref:fe,onDragover:n[9]||(n[9]=e.withModifiers(()=>{},["prevent"])),onDrop:e.withModifiers(Ot,["prevent"])},[D.value?(e.openBlock(),e.createElementBlock("div",Go,[n[17]||(n[17]=e.createElementVNode("div",{class:"geo-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(F.value),1)])):e.createCommentVNode("",!0),!S.value&&!D.value?(e.openBlock(),e.createElementBlock("div",Io,[...n[18]||(n[18]=[e.createElementVNode("div",{style:{"font-size":"36px",opacity:"0.3"}},"📦",-1),e.createElementVNode("p",null,"拖拽 .g3d 到此处或点击打开",-1)])])):e.createCommentVNode("",!0),S.value?(e.openBlock(),e.createElementBlock("div",Yo,[e.createElementVNode("button",{class:"geo-model-btn",onClick:n[6]||(n[6]=u=>ae.value=!ae.value)},e.toDisplayString(Be.value)+" ▼",1),ae.value?(e.openBlock(),e.createElementBlock("div",Ho,[n[21]||(n[21]=e.createElementVNode("div",{class:"geo-model-group-title"},"三维模型",-1)),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(Se,u=>e.createElementVNode("label",{key:u.value,class:e.normalizeClass(["geo-model-option",{active:se.value===u.value}]),onClick:h=>$e(u.value)},[e.createElementVNode("span",Wo,e.toDisplayString(se.value===u.value?"●":"○"),1),e.createElementVNode("span",null,e.toDisplayString(u.label),1)],10,qo)),64)),n[22]||(n[22]=e.createElementVNode("div",{class:"geo-model-divider"},null,-1)),n[23]||(n[23]=e.createElementVNode("div",{class:"geo-model-group-title"},"二维地图",-1)),e.createElementVNode("label",{class:e.normalizeClass(["geo-model-option",{active:se.value==="map2d"}]),onClick:n[7]||(n[7]=u=>$e("map2d"))},[e.createElementVNode("span",jo,e.toDisplayString(se.value==="map2d"?"●":"○"),1),n[19]||(n[19]=e.createElementVNode("span",null,"卫星地图",-1))],2),se.value==="map2d"?(e.openBlock(),e.createElementBlock("label",Xo,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[8]||(n[8]=u=>he.value=u),onChange:He},null,544),[[e.vModelCheckbox,he.value]]),n[20]||(n[20]=e.createElementVNode("span",null,"叠加无人机地图",-1))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("div",{class:"geo-leaflet-map",ref_key:"leafletRef",ref:ce},null,512),[[e.vShow,se.value==="map2d"]])],544),L.value.length>0||J.value?(e.openBlock(),e.createElementBlock("div",Zo,[L.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[26]||(n[26]=e.createElementVNode("div",{class:"geo-panel-header"},"📡 雷达统计",-1)),e.createElementVNode("div",Jo,[e.createElementVNode("div",Ko,[n[24]||(n[24]=e.createElementVNode("span",null,"可见点",-1)),e.createElementVNode("span",Qo,e.toDisplayString(At.value.toLocaleString()),1)]),e.createElementVNode("div",er,[n[25]||(n[25]=e.createElementVNode("span",null,"高风险",-1)),e.createElementVNode("span",tr,e.toDisplayString(Lt.value.toLocaleString()),1)]),e.createElementVNode("div",nr,[e.createElementVNode("div",{class:"geo-legend-bar",style:e.normalizeStyle({background:Dt.value})},null,4)]),ee.value?(e.openBlock(),e.createElementBlock("div",or,[e.createElementVNode("div",rr,e.toDisplayString(ee.value.id),1),e.createElementVNode("div",ar,[e.createElementVNode("span",null,"位移:"+e.toDisplayString(ee.value.rr.toFixed(2))+"mm",1),e.createElementVNode("span",null,"速度:"+e.toDisplayString(ee.value.av.toFixed(3))+"mm/h",1),e.createElementVNode("span",null,"高程:"+e.toDisplayString(ee.value.rl.toFixed(2))+"m",1),e.createElementVNode("span",null,"告警:"+e.toDisplayString(ee.value.cf),1)])])):(e.openBlock(),e.createElementBlock("div",sr,"点击雷达点查看详情"))])],64)):e.createCommentVNode("",!0),J.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[n[27]||(n[27]=e.createElementVNode("div",{class:"geo-panel-header"},"✂️ 剖面工具",-1)),e.createElementVNode("div",lr,[R.value==="none"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"geo-btn geo-btn-primary",style:{width:"100%"},onClick:Yt,disabled:q.value},"选取两点",8,ir)):e.createCommentVNode("",!0),R.value!=="none"?(e.openBlock(),e.createElementBlock("div",cr,[e.createElementVNode("div",dr,e.toDisplayString(be.value),1),e.createElementVNode("button",{class:"geo-btn geo-btn-danger geo-btn-sm",onClick:Ht},"取消")])):e.createCommentVNode("",!0),Q.value?(e.openBlock(),e.createElementBlock("div",ur,"起:("+e.toDisplayString(Q.value.x.toFixed(1))+","+e.toDisplayString(Q.value.y.toFixed(1))+","+e.toDisplayString(Q.value.z.toFixed(1))+")",1)):e.createCommentVNode("",!0),ie.value?(e.openBlock(),e.createElementBlock("div",mr,"终:("+e.toDisplayString(ie.value.x.toFixed(1))+","+e.toDisplayString(ie.value.y.toFixed(1))+","+e.toDisplayString(ie.value.z.toFixed(1))+")",1)):e.createCommentVNode("",!0),Q.value&&ie.value&&R.value==="none"?(e.openBlock(),e.createElementBlock("button",{key:4,class:"geo-btn geo-btn-primary",style:{width:"100%"},onClick:qt,disabled:q.value||!Q.value||!ie.value},e.toDisplayString(q.value?"计算中...":"计算剖面"),9,pr)):e.createCommentVNode("",!0),Q.value||K.value.length>0?(e.openBlock(),e.createElementBlock("button",{key:5,class:"geo-btn geo-btn-danger geo-btn-sm",onClick:vt},"清除")):e.createCommentVNode("",!0)]),K.value.length>0?(e.openBlock(),e.createElementBlock("div",vr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(K.value,u=>(e.openBlock(),e.createElementBlock("div",{key:u.nodeName,class:"geo-result-item"},[e.createElementVNode("div",{class:"geo-color-dot",style:e.normalizeStyle({background:"#"+u.nodeColor.toString(16).padStart(6,"0")})},null,4),e.createElementVNode("span",null,e.toDisplayString(u.nodeName),1),e.createElementVNode("span",fr,e.toDisplayString(u.segments.length)+"段",1)]))),128)),e.createElementVNode("div",gr,"共"+e.toDisplayString(Ce.value)+"条线段",1)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",hr,[e.createElementVNode("span",null,e.toDisplayString(B.value),1),S.value?(e.openBlock(),e.createElementBlock("span",yr,"节点:"+e.toDisplayString(Z.value)+" 网格:"+e.toDisplayString(Ve.value),1)):e.createCommentVNode("",!0)]),e.createVNode(ro,{visible:M.value,results:K.value,startPoint:W,endPoint:le,onClose:n[10]||(n[10]=u=>M.value=!1)},null,8,["visible","results","startPoint","endPoint"])]),De.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"geo-dialog-overlay",onClick:e.withModifiers(Ze,["self"])},[e.createElementVNode("div",br,[e.createElementVNode("div",{class:"geo-group-header"},[n[28]||(n[28]=e.createElementVNode("span",null,"选择分组",-1)),e.createElementVNode("button",{class:"geo-dialog-close",onClick:Ze},"×")]),e.createElementVNode("div",kr,[e.createElementVNode("div",Er,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ot,u=>e.createElementVNode("label",{key:u.id,class:e.normalizeClass(["geo-group-option",{selected:ke.value===u.id}])},[e.withDirectives(e.createElementVNode("input",{type:"radio",value:u.id,"onUpdate:modelValue":n[11]||(n[11]=h=>ke.value=h)},null,8,wr),[[e.vModelRadio,ke.value]]),e.createElementVNode("span",null,"📡 "+e.toDisplayString(u.name),1)],2)),64)),e.createElementVNode("label",{class:e.normalizeClass(["geo-group-option",{selected:ke.value===""}])},[e.withDirectives(e.createElementVNode("input",{type:"radio",value:"","onUpdate:modelValue":n[12]||(n[12]=u=>ke.value=u)},null,512),[[e.vModelRadio,ke.value]]),n[29]||(n[29]=e.createElementVNode("span",null,"📄 不分组",-1))],2)])]),e.createElementVNode("div",{class:"geo-group-footer"},[e.createElementVNode("button",{class:"geo-btn",onClick:Ze},"取消"),e.createElementVNode("button",{class:"geo-btn geo-btn-primary",onClick:jt},"确定")])])])):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default",{},void 0,!0)],4)}}})),Ar=we._export_sfc(Br,[["__scopeId","data-v-c35e371c"]]);exports.default=Ar;
1
+ "use strict";var an=Object.defineProperty,sn=Object.defineProperties;var ln=Object.getOwnPropertyDescriptors;var ht=Object.getOwnPropertySymbols;var cn=Object.prototype.hasOwnProperty,dn=Object.prototype.propertyIsEnumerable;var Ie=Math.pow,yt=(l,o,t)=>o in l?an(l,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[o]=t,Ke=(l,o)=>{for(var t in o||(o={}))cn.call(o,t)&&yt(l,t,o[t]);if(ht)for(var t of ht(o))dn.call(o,t)&&yt(l,t,o[t]);return l},Qe=(l,o)=>sn(l,ln(o));var _e=(l,o,t)=>new Promise((a,s)=>{var d=y=>{try{p(t.next(y))}catch(E){s(E)}},c=y=>{try{p(t.throw(y))}catch(E){s(E)}},p=y=>y.done?a(y.value):Promise.resolve(y.value).then(d,c);p((t=t.apply(l,o)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const et=require("element-plus/es");require("element-plus/es/components/base/style/css");require("element-plus/es/components/date-picker/style/css");require("element-plus/es/components/select/style/css");require("element-plus/es/components/option/style/css");const e=require("vue"),k=require("./three.module-CjayKmiG.cjs"),un=require("./OrbitControls-uuLGjaqy.cjs"),bt=require("./CSS2DRenderer-nQ2DN9Uc.cjs"),nt=require("./ExtensionUtilities-ClTuwtC-.cjs"),we=require("./index-6QhTSPkL.cjs"),mn=require("./BaseComponent-bzb58Hhs.cjs"),pn=require("./titleStyle-NSnz6cUg.cjs"),xe=require("./leaflet-src-D8MF2j44.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, d as ut } from "./index-BueGUjcH.js";
40
- import { B as yo } from "./BaseComponent-DtvXBQYf.js";
39
+ import { _ as et, d as ut } from "./index-YNdVib_6.js";
40
+ import { B as yo } from "./BaseComponent-Dwhb9Mde.js";
41
41
  import { g as bo } from "./titleStyle-BT5GlpAb.js";
42
- import { L as Ge } from "./leaflet-src-BV47Q4HI.js";
42
+ import { L as Ge } from "./leaflet-src-2tPn7QVH.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) {