vue-openlayers-plugin 1.0.82 → 1.0.85

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 (233) hide show
  1. package/lib/BasemapPanel-3f78db9f.mjs +280 -0
  2. package/lib/CoordinateLocationDialog-d265fbae.mjs +263 -0
  3. package/lib/FilterPanel-136dc7d8.mjs +6 -0
  4. package/lib/LayerPanel-58997ef0.mjs +6 -0
  5. package/lib/MapPrintDialog-6ed0e095.mjs +6 -0
  6. package/lib/MeasurementDialog-b86c21c6.mjs +369 -0
  7. package/lib/MyMarkersDialog-fbbd0aeb.mjs +584 -0
  8. package/lib/RegionNavigationDialog-0808549f.mjs +1320 -0
  9. package/lib/ViewBookmarksDialog-94010687.mjs +723 -0
  10. package/lib/index-14efa785.mjs +756 -0
  11. package/lib/{index-61901e1f.mjs → index-5a13e877.mjs} +50503 -53903
  12. package/lib/index-5b1583d0.mjs +839 -0
  13. package/lib/{index.es-c17b5917.mjs → index.es-0c397170.mjs} +1 -1
  14. package/lib/index.esm.js +65 -56
  15. package/lib/index.umd.js +73180 -71503
  16. package/lib/style.css +1705 -1704
  17. package/package.json +11 -5
  18. package/types/src/assets/index.d.ts +9 -0
  19. package/types/src/assets/index.d.ts.map +1 -0
  20. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts +16 -16
  21. package/types/src/components/CustomDialog/icons/index.d.ts +14 -0
  22. package/types/src/components/CustomDialog/icons/index.d.ts.map +1 -0
  23. package/types/src/components/OlBaseLayerSwitcher.vue.d.ts +19 -0
  24. package/types/src/components/OlBaseLayerSwitcher.vue.d.ts.map +1 -0
  25. package/types/src/components/OlControlPanel.vue.d.ts +63 -0
  26. package/types/src/components/OlControlPanel.vue.d.ts.map +1 -0
  27. package/types/src/components/OlDialogs/BasemapPanel.vue.d.ts +20 -0
  28. package/types/src/components/OlDialogs/BasemapPanel.vue.d.ts.map +1 -0
  29. package/types/src/components/OlDialogs/CoordinateLocationDialog.vue.d.ts +21 -0
  30. package/types/src/components/OlDialogs/CoordinateLocationDialog.vue.d.ts.map +1 -0
  31. package/types/src/components/OlDialogs/DialogManager.d.ts +58 -0
  32. package/types/src/components/OlDialogs/DialogManager.d.ts.map +1 -0
  33. package/types/src/components/OlDialogs/FilterPanel.vue.d.ts +33 -0
  34. package/types/src/components/OlDialogs/FilterPanel.vue.d.ts.map +1 -0
  35. package/types/src/components/OlDialogs/LayerPanel.vue.d.ts +1345 -0
  36. package/types/src/components/OlDialogs/LayerPanel.vue.d.ts.map +1 -0
  37. package/types/src/components/OlDialogs/LayerStyleConfig.vue.d.ts +23 -0
  38. package/types/src/components/OlDialogs/LayerStyleConfig.vue.d.ts.map +1 -0
  39. package/types/src/components/OlDialogs/LayerTreeNode.vue.d.ts +28 -0
  40. package/types/src/components/OlDialogs/LayerTreeNode.vue.d.ts.map +1 -0
  41. package/types/src/components/OlDialogs/MapDrawingDialog/components/ListTab.vue.d.ts +3 -0
  42. package/types/src/components/OlDialogs/MapDrawingDialog/components/ListTab.vue.d.ts.map +1 -0
  43. package/types/src/components/OlDialogs/MapDrawingDialog/components/MarkTab.vue.d.ts +3 -0
  44. package/types/src/components/OlDialogs/MapDrawingDialog/components/MarkTab.vue.d.ts.map +1 -0
  45. package/types/src/components/OlDialogs/MapDrawingDialog/index.vue.d.ts +3 -0
  46. package/types/src/components/OlDialogs/MapDrawingDialog/index.vue.d.ts.map +1 -0
  47. package/types/src/components/OlDialogs/MapPrintDialog.vue.d.ts +24 -0
  48. package/types/src/components/OlDialogs/MapPrintDialog.vue.d.ts.map +1 -0
  49. package/types/src/components/OlDialogs/MeasurementDialog.vue.d.ts +41 -0
  50. package/types/src/components/OlDialogs/MeasurementDialog.vue.d.ts.map +1 -0
  51. package/types/src/components/OlDialogs/MyMarkersDialog.vue.d.ts +21 -0
  52. package/types/src/components/OlDialogs/MyMarkersDialog.vue.d.ts.map +1 -0
  53. package/types/src/components/OlDialogs/RegionNavigationDialog.vue.d.ts +25 -0
  54. package/types/src/components/OlDialogs/RegionNavigationDialog.vue.d.ts.map +1 -0
  55. package/types/src/components/OlDialogs/ViewBookmarksDialog.vue.d.ts +21 -0
  56. package/types/src/components/OlDialogs/ViewBookmarksDialog.vue.d.ts.map +1 -0
  57. package/types/src/components/OlDialogs/registry.d.ts +39 -0
  58. package/types/src/components/OlDialogs/registry.d.ts.map +1 -0
  59. package/types/src/components/OlDrawToolbar.vue.d.ts +61 -0
  60. package/types/src/components/OlDrawToolbar.vue.d.ts.map +1 -0
  61. package/types/src/components/OlLegendPanel.vue.d.ts +69 -0
  62. package/types/src/components/OlLegendPanel.vue.d.ts.map +1 -0
  63. package/types/src/components/OlMapContainer.vue.d.ts +112 -0
  64. package/types/src/components/OlMapContainer.vue.d.ts.map +1 -0
  65. package/types/src/components/OlMapPopup/ArrayPopup.vue.d.ts +47 -0
  66. package/types/src/components/OlMapPopup/ArrayPopup.vue.d.ts.map +1 -0
  67. package/types/src/components/OlMapPopup/BasePopup.vue.d.ts +63 -0
  68. package/types/src/components/OlMapPopup/BasePopup.vue.d.ts.map +1 -0
  69. package/types/src/components/OlMapPopup/HtmlPopup.vue.d.ts +45 -0
  70. package/types/src/components/OlMapPopup/HtmlPopup.vue.d.ts.map +1 -0
  71. package/types/src/components/OlMapPopup/ImagePopup.vue.d.ts +45 -0
  72. package/types/src/components/OlMapPopup/ImagePopup.vue.d.ts.map +1 -0
  73. package/types/src/components/OlMapPopup/index.d.ts +9 -0
  74. package/types/src/components/OlMapPopup/index.d.ts.map +1 -0
  75. package/types/src/components/OlMapPopup/types.d.ts +118 -0
  76. package/types/src/components/OlMapPopup/types.d.ts.map +1 -0
  77. package/types/src/components/OlMapSearch.vue.d.ts +126 -0
  78. package/types/src/components/OlMapSearch.vue.d.ts.map +1 -0
  79. package/types/src/components/OlMapTooltip.vue.d.ts +70 -0
  80. package/types/src/components/OlMapTooltip.vue.d.ts.map +1 -0
  81. package/types/src/core/EventBus.d.ts +66 -0
  82. package/types/src/core/EventBus.d.ts.map +1 -0
  83. package/types/src/core/EventManager.d.ts +147 -0
  84. package/types/src/core/EventManager.d.ts.map +1 -0
  85. package/types/src/core/FeatureHighlightManager.d.ts +103 -0
  86. package/types/src/core/FeatureHighlightManager.d.ts.map +1 -0
  87. package/types/src/core/GlobalStyleManager.d.ts +76 -0
  88. package/types/src/core/GlobalStyleManager.d.ts.map +1 -0
  89. package/types/src/core/LayerConfigManager.d.ts +66 -0
  90. package/types/src/core/LayerConfigManager.d.ts.map +1 -0
  91. package/types/src/core/LayerManager.d.ts +198 -0
  92. package/types/src/core/LayerManager.d.ts.map +1 -0
  93. package/types/src/core/LayerTreeManager.d.ts +125 -0
  94. package/types/src/core/LayerTreeManager.d.ts.map +1 -0
  95. package/types/src/core/MapManager.d.ts +203 -0
  96. package/types/src/core/MapManager.d.ts.map +1 -0
  97. package/types/src/core/MarkerDrawingAdapter.d.ts +125 -0
  98. package/types/src/core/MarkerDrawingAdapter.d.ts.map +1 -0
  99. package/types/src/core/PluginManager.d.ts +158 -0
  100. package/types/src/core/PluginManager.d.ts.map +1 -0
  101. package/types/src/core/PopupManager.d.ts +110 -0
  102. package/types/src/core/PopupManager.d.ts.map +1 -0
  103. package/types/src/core/SearchMarkerManager.d.ts +96 -0
  104. package/types/src/core/SearchMarkerManager.d.ts.map +1 -0
  105. package/types/src/core/TooltipHelper.d.ts +134 -0
  106. package/types/src/core/TooltipHelper.d.ts.map +1 -0
  107. package/types/src/core/amapSearchApi.d.ts +57 -0
  108. package/types/src/core/amapSearchApi.d.ts.map +1 -0
  109. package/types/src/core/basemapManager.d.ts +63 -0
  110. package/types/src/core/basemapManager.d.ts.map +1 -0
  111. package/types/src/core/configLoader.d.ts +159 -0
  112. package/types/src/core/configLoader.d.ts.map +1 -0
  113. package/types/src/core/drawing/BaseDrawing.d.ts +255 -0
  114. package/types/src/core/drawing/BaseDrawing.d.ts.map +1 -0
  115. package/types/src/core/drawing/DrawingManager.d.ts +394 -0
  116. package/types/src/core/drawing/DrawingManager.d.ts.map +1 -0
  117. package/types/src/core/drawing/IconDrawing.d.ts +188 -0
  118. package/types/src/core/drawing/IconDrawing.d.ts.map +1 -0
  119. package/types/src/core/drawing/ImageDrawing.d.ts +193 -0
  120. package/types/src/core/drawing/ImageDrawing.d.ts.map +1 -0
  121. package/types/src/core/drawing/LineDrawing.d.ts +193 -0
  122. package/types/src/core/drawing/LineDrawing.d.ts.map +1 -0
  123. package/types/src/core/drawing/MilitaryDrawing.d.ts +175 -0
  124. package/types/src/core/drawing/MilitaryDrawing.d.ts.map +1 -0
  125. package/types/src/core/drawing/MultiLineStringDrawing.d.ts +294 -0
  126. package/types/src/core/drawing/MultiLineStringDrawing.d.ts.map +1 -0
  127. package/types/src/core/drawing/MultiPointDrawing.d.ts +244 -0
  128. package/types/src/core/drawing/MultiPointDrawing.d.ts.map +1 -0
  129. package/types/src/core/drawing/MultiPolygonDrawing.d.ts +206 -0
  130. package/types/src/core/drawing/MultiPolygonDrawing.d.ts.map +1 -0
  131. package/types/src/core/drawing/PointDrawing.d.ts +175 -0
  132. package/types/src/core/drawing/PointDrawing.d.ts.map +1 -0
  133. package/types/src/core/drawing/PointWithTextDrawing.d.ts +183 -0
  134. package/types/src/core/drawing/PointWithTextDrawing.d.ts.map +1 -0
  135. package/types/src/core/drawing/PolygonDrawing.d.ts +240 -0
  136. package/types/src/core/drawing/PolygonDrawing.d.ts.map +1 -0
  137. package/types/src/core/drawing/TextDrawing.d.ts +164 -0
  138. package/types/src/core/drawing/TextDrawing.d.ts.map +1 -0
  139. package/types/src/core/drawing/index.d.ts +525 -0
  140. package/types/src/core/drawing/index.d.ts.map +1 -0
  141. package/types/src/core/geoJsonLocationTool.d.ts +116 -0
  142. package/types/src/core/geoJsonLocationTool.d.ts.map +1 -0
  143. package/types/src/core/layers/BaseLayer.d.ts +162 -0
  144. package/types/src/core/layers/BaseLayer.d.ts.map +1 -0
  145. package/types/src/core/layers/CanvasLayerHandler.d.ts +65 -0
  146. package/types/src/core/layers/CanvasLayerHandler.d.ts.map +1 -0
  147. package/types/src/core/layers/ClusterLayerHandler.d.ts +122 -0
  148. package/types/src/core/layers/ClusterLayerHandler.d.ts.map +1 -0
  149. package/types/src/core/layers/GMLLayerHandler.d.ts +107 -0
  150. package/types/src/core/layers/GMLLayerHandler.d.ts.map +1 -0
  151. package/types/src/core/layers/GeoJSONLayerHandler.d.ts +125 -0
  152. package/types/src/core/layers/GeoJSONLayerHandler.d.ts.map +1 -0
  153. package/types/src/core/layers/HeatmapLayerHandler.d.ts +86 -0
  154. package/types/src/core/layers/HeatmapLayerHandler.d.ts.map +1 -0
  155. package/types/src/core/layers/ImageVectorLayerHandler.d.ts +77 -0
  156. package/types/src/core/layers/ImageVectorLayerHandler.d.ts.map +1 -0
  157. package/types/src/core/layers/KMLLayerHandler.d.ts +95 -0
  158. package/types/src/core/layers/KMLLayerHandler.d.ts.map +1 -0
  159. package/types/src/core/layers/LayerFactory.d.ts +63 -0
  160. package/types/src/core/layers/LayerFactory.d.ts.map +1 -0
  161. package/types/src/core/layers/SuperMapServiceTester.d.ts +54 -0
  162. package/types/src/core/layers/SuperMapServiceTester.d.ts.map +1 -0
  163. package/types/src/core/layers/SuperMapTiledMapServiceHandler.d.ts +35 -0
  164. package/types/src/core/layers/SuperMapTiledMapServiceHandler.d.ts.map +1 -0
  165. package/types/src/core/layers/TiandituConfigHelper.d.ts +120 -0
  166. package/types/src/core/layers/TiandituConfigHelper.d.ts.map +1 -0
  167. package/types/src/core/layers/TiandituLayerHandler.d.ts +75 -0
  168. package/types/src/core/layers/TiandituLayerHandler.d.ts.map +1 -0
  169. package/types/src/core/layers/TileLayerHandler.d.ts +42 -0
  170. package/types/src/core/layers/TileLayerHandler.d.ts.map +1 -0
  171. package/types/src/core/layers/TileSuperMapRestHandler.d.ts +161 -0
  172. package/types/src/core/layers/TileSuperMapRestHandler.d.ts.map +1 -0
  173. package/types/src/core/layers/VectorTileLayerHandler.d.ts +126 -0
  174. package/types/src/core/layers/VectorTileLayerHandler.d.ts.map +1 -0
  175. package/types/src/core/layers/WFSLayerHandler.d.ts +80 -0
  176. package/types/src/core/layers/WFSLayerHandler.d.ts.map +1 -0
  177. package/types/src/core/layers/WKTLayerHandler.d.ts +123 -0
  178. package/types/src/core/layers/WKTLayerHandler.d.ts.map +1 -0
  179. package/types/src/core/layers/WMSLayerHandler.d.ts +78 -0
  180. package/types/src/core/layers/WMSLayerHandler.d.ts.map +1 -0
  181. package/types/src/core/layers/WMTSLayerHandler.d.ts +44 -0
  182. package/types/src/core/layers/WMTSLayerHandler.d.ts.map +1 -0
  183. package/types/src/core/layers/index.d.ts +20 -0
  184. package/types/src/core/layers/index.d.ts.map +1 -0
  185. package/types/src/core/layers/interfaces.d.ts +95 -0
  186. package/types/src/core/layers/interfaces.d.ts.map +1 -0
  187. package/types/src/core/mapOperationTool.d.ts +145 -0
  188. package/types/src/core/mapOperationTool.d.ts.map +1 -0
  189. package/types/src/core/measurementTool.d.ts +136 -0
  190. package/types/src/core/measurementTool.d.ts.map +1 -0
  191. package/types/src/core/overviewMapUtil.d.ts +62 -0
  192. package/types/src/core/overviewMapUtil.d.ts.map +1 -0
  193. package/types/src/core/proxyHelper.d.ts +66 -0
  194. package/types/src/core/proxyHelper.d.ts.map +1 -0
  195. package/types/src/core/storage.d.ts +139 -0
  196. package/types/src/core/storage.d.ts.map +1 -0
  197. package/types/src/core/styles/StyleFactory.d.ts +74 -0
  198. package/types/src/core/styles/StyleFactory.d.ts.map +1 -0
  199. package/types/src/core/styles/StyleManager.d.ts +77 -0
  200. package/types/src/core/styles/StyleManager.d.ts.map +1 -0
  201. package/types/src/core/styles/index.d.ts +67 -0
  202. package/types/src/core/styles/index.d.ts.map +1 -0
  203. package/types/src/core/styles/interfaces.d.ts +221 -0
  204. package/types/src/core/styles/interfaces.d.ts.map +1 -0
  205. package/types/src/core/tiandituSearchApi.d.ts +51 -0
  206. package/types/src/core/tiandituSearchApi.d.ts.map +1 -0
  207. package/types/src/data-old/testLayers.d.ts +84 -0
  208. package/types/src/data-old/testLayers.d.ts.map +1 -0
  209. package/types/src/examples-old/FilterExamples.d.ts +104 -0
  210. package/types/src/examples-old/FilterExamples.d.ts.map +1 -0
  211. package/types/src/hooks/useMap.d.ts +5 -0
  212. package/types/src/hooks/useMap.d.ts.map +1 -0
  213. package/types/src/services/searchService.d.ts +106 -0
  214. package/types/src/services/searchService.d.ts.map +1 -0
  215. package/types/src/test-old/FilterSystemTest.d.ts +57 -0
  216. package/types/src/test-old/FilterSystemTest.d.ts.map +1 -0
  217. package/types/src/types/index.d.ts +2 -11
  218. package/types/src/types/index.d.ts.map +1 -1
  219. package/types/src/types/map.d.ts +819 -0
  220. package/types/src/types/map.d.ts.map +1 -0
  221. package/types/src/types/plugin.d.ts +202 -0
  222. package/types/src/types/plugin.d.ts.map +1 -0
  223. package/types/src/utils/DiffusionAnimationHelper.d.ts +60 -0
  224. package/types/src/utils/DiffusionAnimationHelper.d.ts.map +1 -0
  225. package/types/src/utils/GifAnimationHelper.d.ts +31 -0
  226. package/types/src/utils/GifAnimationHelper.d.ts.map +1 -0
  227. package/types/src/utils/coordinateTransform.d.ts +28 -0
  228. package/types/src/utils/coordinateTransform.d.ts.map +1 -0
  229. package/types/src/utils/index.d.ts +8 -8
  230. package/types/src/utils/index.d.ts.map +1 -1
  231. package/types/src/utils/unitConverter.d.ts +36 -0
  232. package/types/src/utils/unitConverter.d.ts.map +1 -0
  233. package/types/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,1320 @@
1
+ import { defineComponent, computed, ref, reactive, resolveComponent, openBlock, createBlock, withCtx, createElementVNode, createVNode, createElementBlock, Fragment, renderList, createTextVNode, toDisplayString, normalizeClass } from "vue";
2
+ const _hoisted_1 = { class: "region-content" };
3
+ const _hoisted_2 = {
4
+ key: 0,
5
+ class: "region-categories"
6
+ };
7
+ const _hoisted_3 = { class: "region-group" };
8
+ const _hoisted_4 = { class: "region-items" };
9
+ const _hoisted_5 = { class: "region-group" };
10
+ const _hoisted_6 = { class: "region-items" };
11
+ const _hoisted_7 = { class: "region-group" };
12
+ const _hoisted_8 = { class: "region-items" };
13
+ const _hoisted_9 = { class: "region-group" };
14
+ const _hoisted_10 = { class: "region-items" };
15
+ const _hoisted_11 = { class: "region-group" };
16
+ const _hoisted_12 = { class: "region-items" };
17
+ const _hoisted_13 = { class: "region-group" };
18
+ const _hoisted_14 = { class: "region-items" };
19
+ const _hoisted_15 = { class: "region-group" };
20
+ const _hoisted_16 = { class: "region-items" };
21
+ const _hoisted_17 = { class: "region-group" };
22
+ const _hoisted_18 = { class: "region-items" };
23
+ const _hoisted_19 = {
24
+ key: 1,
25
+ class: "sub-regions"
26
+ };
27
+ const _hoisted_20 = { class: "district-grid" };
28
+ const _sfc_main = /* @__PURE__ */ defineComponent({
29
+ __name: "RegionNavigationDialog",
30
+ props: {
31
+ modelValue: { type: Boolean }
32
+ },
33
+ emits: ["update:modelValue", "navigation-action", "flyToRegion", "drawBoundary"],
34
+ setup(__props, { emit: __emit }) {
35
+ const props = __props;
36
+ const emit = __emit;
37
+ const dialogVisible = computed({
38
+ get: () => props.modelValue,
39
+ set: (value) => emit("update:modelValue", value)
40
+ });
41
+ const activeTab = ref("china");
42
+ const selectedDistrict = ref("");
43
+ const tabs = ref([
44
+ {
45
+ name: "china",
46
+ label: "全国",
47
+ districts: []
48
+ }
49
+ ]);
50
+ const provinceDistricts = {
51
+ "110000": [
52
+ // 北京市
53
+ {
54
+ code: "110101",
55
+ name: "东城区",
56
+ center: [116.418757, 39.917544],
57
+ boundary: [
58
+ [
59
+ [116.38, 39.88],
60
+ [116.46, 39.88],
61
+ [116.46, 39.96],
62
+ [116.38, 39.96],
63
+ [116.38, 39.88]
64
+ ]
65
+ ]
66
+ },
67
+ {
68
+ code: "110102",
69
+ name: "西城区",
70
+ center: [116.366794, 39.915309],
71
+ boundary: [
72
+ [
73
+ [116.33, 39.88],
74
+ [116.4, 39.88],
75
+ [116.4, 39.95],
76
+ [116.33, 39.95],
77
+ [116.33, 39.88]
78
+ ]
79
+ ]
80
+ },
81
+ {
82
+ code: "110105",
83
+ name: "朝阳区",
84
+ center: [116.443108, 39.921489],
85
+ boundary: [
86
+ [
87
+ [116.35, 39.85],
88
+ [116.6, 39.85],
89
+ [116.6, 40.05],
90
+ [116.35, 40.05],
91
+ [116.35, 39.85]
92
+ ]
93
+ ]
94
+ },
95
+ {
96
+ code: "110106",
97
+ name: "丰台区",
98
+ center: [116.286968, 39.858427],
99
+ boundary: [
100
+ [
101
+ [116.1, 39.75],
102
+ [116.45, 39.75],
103
+ [116.45, 39.95],
104
+ [116.1, 39.95],
105
+ [116.1, 39.75]
106
+ ]
107
+ ]
108
+ },
109
+ {
110
+ code: "110107",
111
+ name: "石景山区",
112
+ center: [116.195445, 39.914601],
113
+ boundary: [
114
+ [
115
+ [116.13, 39.86],
116
+ [116.26, 39.86],
117
+ [116.26, 39.97],
118
+ [116.13, 39.97],
119
+ [116.13, 39.86]
120
+ ]
121
+ ]
122
+ },
123
+ {
124
+ code: "110108",
125
+ name: "海淀区",
126
+ center: [116.298262, 39.959912],
127
+ boundary: [
128
+ [
129
+ [116.05, 39.88],
130
+ [116.45, 39.88],
131
+ [116.45, 40.15],
132
+ [116.05, 40.15],
133
+ [116.05, 39.88]
134
+ ]
135
+ ]
136
+ },
137
+ {
138
+ code: "110109",
139
+ name: "门头沟区",
140
+ center: [116.105381, 39.937183],
141
+ boundary: [
142
+ [
143
+ [115.8, 39.7],
144
+ [116.3, 39.7],
145
+ [116.3, 40.1],
146
+ [115.8, 40.1],
147
+ [115.8, 39.7]
148
+ ]
149
+ ]
150
+ },
151
+ {
152
+ code: "110111",
153
+ name: "房山区",
154
+ center: [115.988654, 39.735535],
155
+ boundary: [
156
+ [
157
+ [115.4, 39.4],
158
+ [116.3, 39.4],
159
+ [116.3, 39.9],
160
+ [115.4, 39.9],
161
+ [115.4, 39.4]
162
+ ]
163
+ ]
164
+ },
165
+ {
166
+ code: "110112",
167
+ name: "通州区",
168
+ center: [116.658603, 39.902486],
169
+ boundary: [
170
+ [
171
+ [116.45, 39.7],
172
+ [116.9, 39.7],
173
+ [116.9, 40.1],
174
+ [116.45, 40.1],
175
+ [116.45, 39.7]
176
+ ]
177
+ ]
178
+ },
179
+ {
180
+ code: "110113",
181
+ name: "顺义区",
182
+ center: [116.653525, 40.128936],
183
+ boundary: [
184
+ [
185
+ [116.42, 40],
186
+ [116.9, 40],
187
+ [116.9, 40.3],
188
+ [116.42, 40.3],
189
+ [116.42, 40]
190
+ ]
191
+ ]
192
+ },
193
+ {
194
+ code: "110114",
195
+ name: "昌平区",
196
+ center: [116.235906, 40.218085],
197
+ boundary: [
198
+ [
199
+ [115.95, 40.05],
200
+ [116.5, 40.05],
201
+ [116.5, 40.4],
202
+ [115.95, 40.4],
203
+ [115.95, 40.05]
204
+ ]
205
+ ]
206
+ },
207
+ {
208
+ code: "110115",
209
+ name: "大兴区",
210
+ center: [116.338033, 39.728908],
211
+ boundary: [
212
+ [
213
+ [116.1, 39.5],
214
+ [116.6, 39.5],
215
+ [116.6, 39.9],
216
+ [116.1, 39.9],
217
+ [116.1, 39.5]
218
+ ]
219
+ ]
220
+ },
221
+ {
222
+ code: "110116",
223
+ name: "怀柔区",
224
+ center: [116.637122, 40.324272],
225
+ boundary: [
226
+ [
227
+ [116.35, 40.15],
228
+ [116.95, 40.15],
229
+ [116.95, 40.5],
230
+ [116.35, 40.5],
231
+ [116.35, 40.15]
232
+ ]
233
+ ]
234
+ },
235
+ {
236
+ code: "110117",
237
+ name: "平谷区",
238
+ center: [117.112335, 40.144783],
239
+ boundary: [
240
+ [
241
+ [116.85, 40],
242
+ [117.4, 40],
243
+ [117.4, 40.3],
244
+ [116.85, 40.3],
245
+ [116.85, 40]
246
+ ]
247
+ ]
248
+ },
249
+ {
250
+ code: "110118",
251
+ name: "密云区",
252
+ center: [116.843352, 40.377362],
253
+ boundary: [
254
+ [
255
+ [116.4, 40.15],
256
+ [117.3, 40.15],
257
+ [117.3, 40.6],
258
+ [116.4, 40.6],
259
+ [116.4, 40.15]
260
+ ]
261
+ ]
262
+ },
263
+ {
264
+ code: "110119",
265
+ name: "延庆区",
266
+ center: [115.985006, 40.465325],
267
+ boundary: [
268
+ [
269
+ [115.7, 40.3],
270
+ [116.3, 40.3],
271
+ [116.3, 40.65],
272
+ [115.7, 40.65],
273
+ [115.7, 40.3]
274
+ ]
275
+ ]
276
+ }
277
+ ],
278
+ "120000": [
279
+ // 天津市
280
+ {
281
+ code: "120101",
282
+ name: "和平区",
283
+ center: [117.195907, 39.118327],
284
+ boundary: [
285
+ [
286
+ [117.17, 39.1],
287
+ [117.22, 39.1],
288
+ [117.22, 39.14],
289
+ [117.17, 39.14],
290
+ [117.17, 39.1]
291
+ ]
292
+ ]
293
+ },
294
+ {
295
+ code: "120102",
296
+ name: "河东区",
297
+ center: [117.226568, 39.122125],
298
+ boundary: [
299
+ [
300
+ [117.2, 39.1],
301
+ [117.26, 39.1],
302
+ [117.26, 39.15],
303
+ [117.2, 39.15],
304
+ [117.2, 39.1]
305
+ ]
306
+ ]
307
+ },
308
+ {
309
+ code: "120103",
310
+ name: "河西区",
311
+ center: [117.223372, 39.101897],
312
+ boundary: [
313
+ [
314
+ [117.19, 39.08],
315
+ [117.26, 39.08],
316
+ [117.26, 39.13],
317
+ [117.19, 39.13],
318
+ [117.19, 39.08]
319
+ ]
320
+ ]
321
+ },
322
+ {
323
+ code: "120104",
324
+ name: "南开区",
325
+ center: [117.164143, 39.120474],
326
+ boundary: [
327
+ [
328
+ [117.13, 39.1],
329
+ [117.2, 39.1],
330
+ [117.2, 39.15],
331
+ [117.13, 39.15],
332
+ [117.13, 39.1]
333
+ ]
334
+ ]
335
+ },
336
+ {
337
+ code: "120105",
338
+ name: "河北区",
339
+ center: [117.201569, 39.156632],
340
+ boundary: [
341
+ [
342
+ [117.17, 39.13],
343
+ [117.24, 39.13],
344
+ [117.24, 39.18],
345
+ [117.17, 39.18],
346
+ [117.17, 39.13]
347
+ ]
348
+ ]
349
+ },
350
+ {
351
+ code: "120106",
352
+ name: "红桥区",
353
+ center: [117.161143, 39.175066],
354
+ boundary: [
355
+ [
356
+ [117.14, 39.15],
357
+ [117.19, 39.15],
358
+ [117.19, 39.2],
359
+ [117.14, 39.2],
360
+ [117.14, 39.15]
361
+ ]
362
+ ]
363
+ },
364
+ {
365
+ code: "120110",
366
+ name: "东丽区",
367
+ center: [117.31404, 39.087764],
368
+ boundary: [
369
+ [
370
+ [117.25, 39.05],
371
+ [117.38, 39.05],
372
+ [117.38, 39.13],
373
+ [117.25, 39.13],
374
+ [117.25, 39.05]
375
+ ]
376
+ ]
377
+ },
378
+ {
379
+ code: "120111",
380
+ name: "西青区",
381
+ center: [117.012247, 39.139446],
382
+ boundary: [
383
+ [
384
+ [116.95, 39.1],
385
+ [117.08, 39.1],
386
+ [117.08, 39.18],
387
+ [116.95, 39.18],
388
+ [116.95, 39.1]
389
+ ]
390
+ ]
391
+ },
392
+ {
393
+ code: "120112",
394
+ name: "津南区",
395
+ center: [117.385889, 38.989577],
396
+ boundary: [
397
+ [
398
+ [117.3, 38.95],
399
+ [117.47, 38.95],
400
+ [117.47, 39.03],
401
+ [117.3, 39.03],
402
+ [117.3, 38.95]
403
+ ]
404
+ ]
405
+ },
406
+ {
407
+ code: "120113",
408
+ name: "北辰区",
409
+ center: [117.134888, 39.225555],
410
+ boundary: [
411
+ [
412
+ [117.05, 39.18],
413
+ [117.22, 39.18],
414
+ [117.22, 39.27],
415
+ [117.05, 39.27],
416
+ [117.05, 39.18]
417
+ ]
418
+ ]
419
+ },
420
+ {
421
+ code: "120114",
422
+ name: "武清区",
423
+ center: [117.044387, 39.384119],
424
+ boundary: [
425
+ [
426
+ [116.85, 39.25],
427
+ [117.24, 39.25],
428
+ [117.24, 39.52],
429
+ [116.85, 39.52],
430
+ [116.85, 39.25]
431
+ ]
432
+ ]
433
+ },
434
+ {
435
+ code: "120115",
436
+ name: "宝坻区",
437
+ center: [117.308094, 39.717439],
438
+ boundary: [
439
+ [
440
+ [117.1, 39.55],
441
+ [117.52, 39.55],
442
+ [117.52, 39.89],
443
+ [117.1, 39.89],
444
+ [117.1, 39.55]
445
+ ]
446
+ ]
447
+ },
448
+ {
449
+ code: "120116",
450
+ name: "滨海新区",
451
+ center: [117.654173, 39.032846],
452
+ boundary: [
453
+ [
454
+ [117.4, 38.85],
455
+ [118, 38.85],
456
+ [118, 39.22],
457
+ [117.4, 39.22],
458
+ [117.4, 38.85]
459
+ ]
460
+ ]
461
+ },
462
+ {
463
+ code: "120117",
464
+ name: "宁河区",
465
+ center: [117.826977, 39.328886],
466
+ boundary: [
467
+ [
468
+ [117.6, 39.2],
469
+ [118.05, 39.2],
470
+ [118.05, 39.46],
471
+ [117.6, 39.46],
472
+ [117.6, 39.2]
473
+ ]
474
+ ]
475
+ },
476
+ {
477
+ code: "120118",
478
+ name: "静海区",
479
+ center: [116.925304, 38.935671],
480
+ boundary: [
481
+ [
482
+ [116.7, 38.8],
483
+ [117.15, 38.8],
484
+ [117.15, 39.07],
485
+ [116.7, 39.07],
486
+ [116.7, 38.8]
487
+ ]
488
+ ]
489
+ },
490
+ {
491
+ code: "120119",
492
+ name: "蓟州区",
493
+ center: [117.407449, 40.045342],
494
+ boundary: [
495
+ [
496
+ [117.15, 39.85],
497
+ [117.67, 39.85],
498
+ [117.67, 40.24],
499
+ [117.15, 40.24],
500
+ [117.15, 39.85]
501
+ ]
502
+ ]
503
+ }
504
+ ]
505
+ // 可以继续添加其他省份的区县数据
506
+ };
507
+ const regions = reactive({
508
+ north: [
509
+ {
510
+ code: "110000",
511
+ name: "北京市",
512
+ center: [116.407526, 39.90403],
513
+ zoom: 10,
514
+ boundary: [
515
+ [
516
+ [116.2, 39.7],
517
+ [116.6, 39.7],
518
+ [116.6, 40.1],
519
+ [116.2, 40.1],
520
+ [116.2, 39.7]
521
+ ]
522
+ ]
523
+ },
524
+ {
525
+ code: "120000",
526
+ name: "天津市",
527
+ center: [117.200983, 39.084158],
528
+ zoom: 10,
529
+ boundary: [
530
+ [
531
+ [116.8, 38.8],
532
+ [117.6, 38.8],
533
+ [117.6, 39.4],
534
+ [116.8, 39.4],
535
+ [116.8, 38.8]
536
+ ]
537
+ ]
538
+ },
539
+ {
540
+ code: "130000",
541
+ name: "河北省",
542
+ center: [114.469851, 38.035713],
543
+ zoom: 7,
544
+ boundary: [
545
+ [
546
+ [113.5, 36],
547
+ [119.5, 36],
548
+ [119.5, 42.5],
549
+ [113.5, 42.5],
550
+ [113.5, 36]
551
+ ]
552
+ ]
553
+ },
554
+ {
555
+ code: "140000",
556
+ name: "山西省",
557
+ center: [112.562398, 37.873532],
558
+ zoom: 7,
559
+ boundary: [
560
+ [
561
+ [110.2, 34.5],
562
+ [114.5, 34.5],
563
+ [114.5, 40.7],
564
+ [110.2, 40.7],
565
+ [110.2, 34.5]
566
+ ]
567
+ ]
568
+ },
569
+ {
570
+ code: "150000",
571
+ name: "内蒙古自治区",
572
+ center: [111.765617, 40.817498],
573
+ zoom: 6,
574
+ boundary: [
575
+ [
576
+ [97, 37.5],
577
+ [126, 37.5],
578
+ [126, 53.3],
579
+ [97, 53.3],
580
+ [97, 37.5]
581
+ ]
582
+ ]
583
+ }
584
+ ],
585
+ northeast: [
586
+ {
587
+ code: "210000",
588
+ name: "辽宁省",
589
+ center: [123.42944, 41.835441],
590
+ zoom: 7,
591
+ boundary: [
592
+ [
593
+ [118.8, 38.7],
594
+ [125.5, 38.7],
595
+ [125.5, 43.5],
596
+ [118.8, 43.5],
597
+ [118.8, 38.7]
598
+ ]
599
+ ]
600
+ },
601
+ {
602
+ code: "220000",
603
+ name: "吉林省",
604
+ center: [125.32357, 43.897016],
605
+ zoom: 7,
606
+ boundary: [
607
+ [
608
+ [121.5, 40.8],
609
+ [131.2, 40.8],
610
+ [131.2, 46.3],
611
+ [121.5, 46.3],
612
+ [121.5, 40.8]
613
+ ]
614
+ ]
615
+ },
616
+ {
617
+ code: "230000",
618
+ name: "黑龙江省",
619
+ center: [126.661669, 45.742347],
620
+ zoom: 6,
621
+ boundary: [
622
+ [
623
+ [121.2, 43.4],
624
+ [135.1, 43.4],
625
+ [135.1, 53.6],
626
+ [121.2, 53.6],
627
+ [121.2, 43.4]
628
+ ]
629
+ ]
630
+ }
631
+ ],
632
+ east: [
633
+ {
634
+ code: "310000",
635
+ name: "上海市",
636
+ center: [121.473701, 31.230416],
637
+ zoom: 10,
638
+ boundary: [
639
+ [
640
+ [120.85, 30.67],
641
+ [122.12, 30.67],
642
+ [122.12, 31.87],
643
+ [120.85, 31.87],
644
+ [120.85, 30.67]
645
+ ]
646
+ ]
647
+ },
648
+ {
649
+ code: "320000",
650
+ name: "江苏省",
651
+ center: [118.763232, 32.061707],
652
+ zoom: 8,
653
+ boundary: [
654
+ [
655
+ [116.2, 30.7],
656
+ [121.9, 30.7],
657
+ [121.9, 35.3],
658
+ [116.2, 35.3],
659
+ [116.2, 30.7]
660
+ ]
661
+ ]
662
+ },
663
+ {
664
+ code: "330000",
665
+ name: "浙江省",
666
+ center: [120.152792, 30.267447],
667
+ zoom: 8,
668
+ boundary: [
669
+ [
670
+ [118, 27],
671
+ [123, 27],
672
+ [123, 31.5],
673
+ [118, 31.5],
674
+ [118, 27]
675
+ ]
676
+ ]
677
+ },
678
+ {
679
+ code: "340000",
680
+ name: "安徽省",
681
+ center: [117.329772, 31.733471],
682
+ zoom: 7,
683
+ boundary: [
684
+ [
685
+ [114.9, 29.4],
686
+ [119.6, 29.4],
687
+ [119.6, 34.7],
688
+ [114.9, 34.7],
689
+ [114.9, 29.4]
690
+ ]
691
+ ]
692
+ },
693
+ {
694
+ code: "350000",
695
+ name: "福建省",
696
+ center: [119.296494, 26.099834],
697
+ zoom: 8,
698
+ boundary: [
699
+ [
700
+ [115.8, 23.5],
701
+ [120.7, 23.5],
702
+ [120.7, 28.4],
703
+ [115.8, 28.4],
704
+ [115.8, 23.5]
705
+ ]
706
+ ]
707
+ },
708
+ {
709
+ code: "360000",
710
+ name: "江西省",
711
+ center: [115.909228, 28.675696],
712
+ zoom: 7,
713
+ boundary: [
714
+ [
715
+ [113.6, 24.5],
716
+ [118.5, 24.5],
717
+ [118.5, 30.1],
718
+ [113.6, 30.1],
719
+ [113.6, 24.5]
720
+ ]
721
+ ]
722
+ },
723
+ {
724
+ code: "370000",
725
+ name: "山东省",
726
+ center: [117.020359, 36.670201],
727
+ zoom: 7,
728
+ boundary: [
729
+ [
730
+ [114.8, 34.4],
731
+ [122.7, 34.4],
732
+ [122.7, 38.4],
733
+ [114.8, 38.4],
734
+ [114.8, 34.4]
735
+ ]
736
+ ]
737
+ }
738
+ ],
739
+ central: [
740
+ {
741
+ code: "410000",
742
+ name: "河南省",
743
+ center: [113.753094, 34.767052],
744
+ zoom: 7,
745
+ boundary: [
746
+ [
747
+ [110.3, 31.4],
748
+ [116.7, 31.4],
749
+ [116.7, 36.4],
750
+ [110.3, 36.4],
751
+ [110.3, 31.4]
752
+ ]
753
+ ]
754
+ },
755
+ {
756
+ code: "420000",
757
+ name: "湖北省",
758
+ center: [114.341861, 30.546498],
759
+ zoom: 7,
760
+ boundary: [
761
+ [
762
+ [108.3, 29],
763
+ [116.1, 29],
764
+ [116.1, 33.3],
765
+ [108.3, 33.3],
766
+ [108.3, 29]
767
+ ]
768
+ ]
769
+ },
770
+ {
771
+ code: "430000",
772
+ name: "湖南省",
773
+ center: [112.98381, 28.112444],
774
+ zoom: 7,
775
+ boundary: [
776
+ [
777
+ [108.8, 24.6],
778
+ [114.3, 24.6],
779
+ [114.3, 30.1],
780
+ [108.8, 30.1],
781
+ [108.8, 24.6]
782
+ ]
783
+ ]
784
+ }
785
+ ],
786
+ south: [
787
+ {
788
+ code: "440000",
789
+ name: "广东省",
790
+ center: [113.26641, 23.132191],
791
+ zoom: 7,
792
+ boundary: [
793
+ [
794
+ [109.7, 20.2],
795
+ [117.2, 20.2],
796
+ [117.2, 25.5],
797
+ [109.7, 25.5],
798
+ [109.7, 20.2]
799
+ ]
800
+ ]
801
+ },
802
+ {
803
+ code: "450000",
804
+ name: "广西壮族自治区",
805
+ center: [108.327546, 22.815478],
806
+ zoom: 7,
807
+ boundary: [
808
+ [
809
+ [104.4, 20.9],
810
+ [112, 20.9],
811
+ [112, 26.4],
812
+ [104.4, 26.4],
813
+ [104.4, 20.9]
814
+ ]
815
+ ]
816
+ },
817
+ {
818
+ code: "460000",
819
+ name: "海南省",
820
+ center: [110.349228, 20.017377],
821
+ zoom: 8,
822
+ boundary: [
823
+ [
824
+ [108.6, 18.1],
825
+ [111, 18.1],
826
+ [111, 20.1],
827
+ [108.6, 20.1],
828
+ [108.6, 18.1]
829
+ ]
830
+ ]
831
+ }
832
+ ],
833
+ southwest: [
834
+ {
835
+ code: "500000",
836
+ name: "重庆市",
837
+ center: [106.551556, 29.56301],
838
+ zoom: 9,
839
+ boundary: [
840
+ [
841
+ [105.2, 28.1],
842
+ [110.1, 28.1],
843
+ [110.1, 32.2],
844
+ [105.2, 32.2],
845
+ [105.2, 28.1]
846
+ ]
847
+ ]
848
+ },
849
+ {
850
+ code: "510000",
851
+ name: "四川省",
852
+ center: [104.075739, 30.651652],
853
+ zoom: 6,
854
+ boundary: [
855
+ [
856
+ [97.3, 26],
857
+ [108.5, 26],
858
+ [108.5, 34.3],
859
+ [97.3, 34.3],
860
+ [97.3, 26]
861
+ ]
862
+ ]
863
+ },
864
+ {
865
+ code: "520000",
866
+ name: "贵州省",
867
+ center: [106.70546, 26.598194],
868
+ zoom: 8,
869
+ boundary: [
870
+ [
871
+ [103.6, 24.5],
872
+ [109.6, 24.5],
873
+ [109.6, 29.2],
874
+ [103.6, 29.2],
875
+ [103.6, 24.5]
876
+ ]
877
+ ]
878
+ },
879
+ {
880
+ code: "530000",
881
+ name: "云南省",
882
+ center: [102.710002, 25.045806],
883
+ zoom: 6,
884
+ boundary: [
885
+ [
886
+ [97.5, 21.1],
887
+ [106.2, 21.1],
888
+ [106.2, 29.2],
889
+ [97.5, 29.2],
890
+ [97.5, 21.1]
891
+ ]
892
+ ]
893
+ },
894
+ {
895
+ code: "540000",
896
+ name: "西藏自治区",
897
+ center: [91.117212, 29.647535],
898
+ zoom: 5,
899
+ boundary: [
900
+ [
901
+ [78.4, 26.8],
902
+ [99.1, 26.8],
903
+ [99.1, 36.5],
904
+ [78.4, 36.5],
905
+ [78.4, 26.8]
906
+ ]
907
+ ]
908
+ }
909
+ ],
910
+ northwest: [
911
+ {
912
+ code: "610000",
913
+ name: "陕西省",
914
+ center: [108.954239, 34.265472],
915
+ zoom: 7,
916
+ boundary: [
917
+ [
918
+ [105.5, 31.4],
919
+ [111.2, 31.4],
920
+ [111.2, 39.6],
921
+ [105.5, 39.6],
922
+ [105.5, 31.4]
923
+ ]
924
+ ]
925
+ },
926
+ {
927
+ code: "620000",
928
+ name: "甘肃省",
929
+ center: [103.826777, 36.05956],
930
+ zoom: 6,
931
+ boundary: [
932
+ [
933
+ [92.1, 32.1],
934
+ [108.7, 32.1],
935
+ [108.7, 42.8],
936
+ [92.1, 42.8],
937
+ [92.1, 32.1]
938
+ ]
939
+ ]
940
+ },
941
+ {
942
+ code: "630000",
943
+ name: "青海省",
944
+ center: [101.76792, 36.640739],
945
+ zoom: 6,
946
+ boundary: [
947
+ [
948
+ [89.4, 31.6],
949
+ [103, 31.6],
950
+ [103, 39.2],
951
+ [89.4, 39.2],
952
+ [89.4, 31.6]
953
+ ]
954
+ ]
955
+ },
956
+ {
957
+ code: "640000",
958
+ name: "宁夏回族自治区",
959
+ center: [106.259126, 38.472641],
960
+ zoom: 8,
961
+ boundary: [
962
+ [
963
+ [104.2, 35.2],
964
+ [107.6, 35.2],
965
+ [107.6, 39.4],
966
+ [104.2, 39.4],
967
+ [104.2, 35.2]
968
+ ]
969
+ ]
970
+ },
971
+ {
972
+ code: "650000",
973
+ name: "新疆维吾尔自治区",
974
+ center: [87.627704, 43.793026],
975
+ zoom: 5,
976
+ boundary: [
977
+ [
978
+ [73.5, 34.3],
979
+ [96.4, 34.3],
980
+ [96.4, 49.2],
981
+ [73.5, 49.2],
982
+ [73.5, 34.3]
983
+ ]
984
+ ]
985
+ }
986
+ ],
987
+ hmt: [
988
+ {
989
+ code: "710000",
990
+ name: "台湾省",
991
+ center: [121.520076, 25.030724],
992
+ zoom: 8,
993
+ boundary: [
994
+ [
995
+ [119.3, 21.9],
996
+ [122, 21.9],
997
+ [122, 25.3],
998
+ [119.3, 25.3],
999
+ [119.3, 21.9]
1000
+ ]
1001
+ ]
1002
+ },
1003
+ {
1004
+ code: "810000",
1005
+ name: "香港特别行政区",
1006
+ center: [114.165469, 22.27534],
1007
+ zoom: 11,
1008
+ boundary: [
1009
+ [
1010
+ [113.83, 22.15],
1011
+ [114.44, 22.15],
1012
+ [114.44, 22.56],
1013
+ [113.83, 22.56],
1014
+ [113.83, 22.15]
1015
+ ]
1016
+ ]
1017
+ },
1018
+ {
1019
+ code: "820000",
1020
+ name: "澳门特别行政区",
1021
+ center: [113.559834, 22.199578],
1022
+ zoom: 13,
1023
+ boundary: [
1024
+ [
1025
+ [113.53, 22.1],
1026
+ [113.6, 22.1],
1027
+ [113.6, 22.22],
1028
+ [113.53, 22.22],
1029
+ [113.53, 22.1]
1030
+ ]
1031
+ ]
1032
+ }
1033
+ ]
1034
+ });
1035
+ const handleTabClick = (tab) => {
1036
+ activeTab.value = tab.name;
1037
+ selectedDistrict.value = "";
1038
+ const currentIndex = tabs.value.findIndex((t) => t.name === tab.name);
1039
+ if (currentIndex < tabs.value.length - 1) {
1040
+ tabs.value = tabs.value.slice(0, currentIndex + 1);
1041
+ }
1042
+ };
1043
+ const handleTabRemove = (targetName) => {
1044
+ const targetIndex = tabs.value.findIndex((tab) => tab.name === targetName);
1045
+ if (targetIndex > 0) {
1046
+ tabs.value.splice(targetIndex, 1);
1047
+ if (activeTab.value === targetName) {
1048
+ activeTab.value = tabs.value[targetIndex - 1].name;
1049
+ }
1050
+ }
1051
+ };
1052
+ const navigateToRegion = (region) => {
1053
+ emit("navigation-action", {
1054
+ type: "flyToRegion",
1055
+ region,
1056
+ center: region.center,
1057
+ zoom: region.zoom || 7
1058
+ });
1059
+ emit("navigation-action", {
1060
+ type: "drawBoundary",
1061
+ code: region.code,
1062
+ name: region.name,
1063
+ level: "province"
1064
+ });
1065
+ console.log(`正在导航到${region.name}`);
1066
+ const subDistricts = provinceDistricts[region.code];
1067
+ if (subDistricts && subDistricts.length > 0) {
1068
+ const newTab = {
1069
+ name: region.code,
1070
+ label: region.name,
1071
+ districts: subDistricts
1072
+ };
1073
+ tabs.value.push(newTab);
1074
+ activeTab.value = region.code;
1075
+ } else {
1076
+ dialogVisible.value = false;
1077
+ }
1078
+ };
1079
+ const navigateToDistrict = (district) => {
1080
+ selectedDistrict.value = district.code;
1081
+ emit("navigation-action", {
1082
+ type: "flyToRegion",
1083
+ region: district,
1084
+ center: district.center,
1085
+ zoom: 12,
1086
+ boundary: district.boundary
1087
+ });
1088
+ emit("navigation-action", {
1089
+ type: "drawBoundary",
1090
+ code: district.code,
1091
+ name: district.name,
1092
+ level: "district"
1093
+ });
1094
+ console.log(`正在导航到${district.name}`);
1095
+ dialogVisible.value = false;
1096
+ };
1097
+ const handleClose = () => {
1098
+ dialogVisible.value = false;
1099
+ tabs.value = [
1100
+ {
1101
+ name: "china",
1102
+ label: "全国",
1103
+ districts: []
1104
+ }
1105
+ ];
1106
+ activeTab.value = "china";
1107
+ selectedDistrict.value = "";
1108
+ };
1109
+ return (_ctx, _cache) => {
1110
+ const _component_el_button = resolveComponent("el-button");
1111
+ const _component_el_tab_pane = resolveComponent("el-tab-pane");
1112
+ const _component_el_tabs = resolveComponent("el-tabs");
1113
+ const _component_EPlusDialog = resolveComponent("EPlusDialog");
1114
+ return openBlock(), createBlock(_component_EPlusDialog, {
1115
+ modelValue: dialogVisible.value,
1116
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => dialogVisible.value = $event),
1117
+ title: "地区导航",
1118
+ width: "500px",
1119
+ "before-close": handleClose,
1120
+ "show-modal": false,
1121
+ cacheId: "region-dialog",
1122
+ class: "region-dialog"
1123
+ }, {
1124
+ default: withCtx(() => [
1125
+ createElementVNode("div", _hoisted_1, [
1126
+ createVNode(_component_el_tabs, {
1127
+ modelValue: activeTab.value,
1128
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
1129
+ onTabClick: handleTabClick,
1130
+ onTabRemove: handleTabRemove,
1131
+ type: "card",
1132
+ class: "region-tabs"
1133
+ }, {
1134
+ default: withCtx(() => [
1135
+ (openBlock(true), createElementBlock(Fragment, null, renderList(tabs.value, (tab, index) => {
1136
+ return openBlock(), createBlock(_component_el_tab_pane, {
1137
+ key: tab.name,
1138
+ label: tab.label,
1139
+ name: tab.name,
1140
+ closable: index > 0
1141
+ }, {
1142
+ default: withCtx(() => [
1143
+ tab.name === "china" ? (openBlock(), createElementBlock("div", _hoisted_2, [
1144
+ createElementVNode("div", _hoisted_3, [
1145
+ _cache[2] || (_cache[2] = createElementVNode("div", { class: "group-title" }, "华北", -1)),
1146
+ createElementVNode("div", _hoisted_4, [
1147
+ (openBlock(true), createElementBlock(Fragment, null, renderList(regions.north, (region) => {
1148
+ return openBlock(), createBlock(_component_el_button, {
1149
+ key: region.code,
1150
+ type: "text",
1151
+ onClick: ($event) => navigateToRegion(region),
1152
+ class: "region-btn"
1153
+ }, {
1154
+ default: withCtx(() => [
1155
+ createTextVNode(toDisplayString(region.name), 1)
1156
+ ]),
1157
+ _: 2
1158
+ }, 1032, ["onClick"]);
1159
+ }), 128))
1160
+ ])
1161
+ ]),
1162
+ createElementVNode("div", _hoisted_5, [
1163
+ _cache[3] || (_cache[3] = createElementVNode("div", { class: "group-title" }, "东北", -1)),
1164
+ createElementVNode("div", _hoisted_6, [
1165
+ (openBlock(true), createElementBlock(Fragment, null, renderList(regions.northeast, (region) => {
1166
+ return openBlock(), createBlock(_component_el_button, {
1167
+ key: region.code,
1168
+ type: "text",
1169
+ onClick: ($event) => navigateToRegion(region),
1170
+ class: "region-btn"
1171
+ }, {
1172
+ default: withCtx(() => [
1173
+ createTextVNode(toDisplayString(region.name), 1)
1174
+ ]),
1175
+ _: 2
1176
+ }, 1032, ["onClick"]);
1177
+ }), 128))
1178
+ ])
1179
+ ]),
1180
+ createElementVNode("div", _hoisted_7, [
1181
+ _cache[4] || (_cache[4] = createElementVNode("div", { class: "group-title" }, "华东", -1)),
1182
+ createElementVNode("div", _hoisted_8, [
1183
+ (openBlock(true), createElementBlock(Fragment, null, renderList(regions.east, (region) => {
1184
+ return openBlock(), createBlock(_component_el_button, {
1185
+ key: region.code,
1186
+ type: "text",
1187
+ onClick: ($event) => navigateToRegion(region),
1188
+ class: "region-btn"
1189
+ }, {
1190
+ default: withCtx(() => [
1191
+ createTextVNode(toDisplayString(region.name), 1)
1192
+ ]),
1193
+ _: 2
1194
+ }, 1032, ["onClick"]);
1195
+ }), 128))
1196
+ ])
1197
+ ]),
1198
+ createElementVNode("div", _hoisted_9, [
1199
+ _cache[5] || (_cache[5] = createElementVNode("div", { class: "group-title" }, "华中", -1)),
1200
+ createElementVNode("div", _hoisted_10, [
1201
+ (openBlock(true), createElementBlock(Fragment, null, renderList(regions.central, (region) => {
1202
+ return openBlock(), createBlock(_component_el_button, {
1203
+ key: region.code,
1204
+ type: "text",
1205
+ onClick: ($event) => navigateToRegion(region),
1206
+ class: "region-btn"
1207
+ }, {
1208
+ default: withCtx(() => [
1209
+ createTextVNode(toDisplayString(region.name), 1)
1210
+ ]),
1211
+ _: 2
1212
+ }, 1032, ["onClick"]);
1213
+ }), 128))
1214
+ ])
1215
+ ]),
1216
+ createElementVNode("div", _hoisted_11, [
1217
+ _cache[6] || (_cache[6] = createElementVNode("div", { class: "group-title" }, "华南", -1)),
1218
+ createElementVNode("div", _hoisted_12, [
1219
+ (openBlock(true), createElementBlock(Fragment, null, renderList(regions.south, (region) => {
1220
+ return openBlock(), createBlock(_component_el_button, {
1221
+ key: region.code,
1222
+ type: "text",
1223
+ onClick: ($event) => navigateToRegion(region),
1224
+ class: "region-btn"
1225
+ }, {
1226
+ default: withCtx(() => [
1227
+ createTextVNode(toDisplayString(region.name), 1)
1228
+ ]),
1229
+ _: 2
1230
+ }, 1032, ["onClick"]);
1231
+ }), 128))
1232
+ ])
1233
+ ]),
1234
+ createElementVNode("div", _hoisted_13, [
1235
+ _cache[7] || (_cache[7] = createElementVNode("div", { class: "group-title" }, "西南", -1)),
1236
+ createElementVNode("div", _hoisted_14, [
1237
+ (openBlock(true), createElementBlock(Fragment, null, renderList(regions.southwest, (region) => {
1238
+ return openBlock(), createBlock(_component_el_button, {
1239
+ key: region.code,
1240
+ type: "text",
1241
+ onClick: ($event) => navigateToRegion(region),
1242
+ class: "region-btn"
1243
+ }, {
1244
+ default: withCtx(() => [
1245
+ createTextVNode(toDisplayString(region.name), 1)
1246
+ ]),
1247
+ _: 2
1248
+ }, 1032, ["onClick"]);
1249
+ }), 128))
1250
+ ])
1251
+ ]),
1252
+ createElementVNode("div", _hoisted_15, [
1253
+ _cache[8] || (_cache[8] = createElementVNode("div", { class: "group-title" }, "西北", -1)),
1254
+ createElementVNode("div", _hoisted_16, [
1255
+ (openBlock(true), createElementBlock(Fragment, null, renderList(regions.northwest, (region) => {
1256
+ return openBlock(), createBlock(_component_el_button, {
1257
+ key: region.code,
1258
+ type: "text",
1259
+ onClick: ($event) => navigateToRegion(region),
1260
+ class: "region-btn"
1261
+ }, {
1262
+ default: withCtx(() => [
1263
+ createTextVNode(toDisplayString(region.name), 1)
1264
+ ]),
1265
+ _: 2
1266
+ }, 1032, ["onClick"]);
1267
+ }), 128))
1268
+ ])
1269
+ ]),
1270
+ createElementVNode("div", _hoisted_17, [
1271
+ _cache[9] || (_cache[9] = createElementVNode("div", { class: "group-title" }, "港澳台", -1)),
1272
+ createElementVNode("div", _hoisted_18, [
1273
+ (openBlock(true), createElementBlock(Fragment, null, renderList(regions.hmt, (region) => {
1274
+ return openBlock(), createBlock(_component_el_button, {
1275
+ key: region.code,
1276
+ type: "text",
1277
+ onClick: ($event) => navigateToRegion(region),
1278
+ class: "region-btn"
1279
+ }, {
1280
+ default: withCtx(() => [
1281
+ createTextVNode(toDisplayString(region.name), 1)
1282
+ ]),
1283
+ _: 2
1284
+ }, 1032, ["onClick"]);
1285
+ }), 128))
1286
+ ])
1287
+ ])
1288
+ ])) : (openBlock(), createElementBlock("div", _hoisted_19, [
1289
+ createElementVNode("div", _hoisted_20, [
1290
+ (openBlock(true), createElementBlock(Fragment, null, renderList(tab.districts, (district) => {
1291
+ return openBlock(), createBlock(_component_el_button, {
1292
+ key: district.code,
1293
+ class: normalizeClass(["district-btn", { active: selectedDistrict.value === district.code }]),
1294
+ onClick: ($event) => navigateToDistrict(district)
1295
+ }, {
1296
+ default: withCtx(() => [
1297
+ createTextVNode(toDisplayString(district.name), 1)
1298
+ ]),
1299
+ _: 2
1300
+ }, 1032, ["class", "onClick"]);
1301
+ }), 128))
1302
+ ])
1303
+ ]))
1304
+ ]),
1305
+ _: 2
1306
+ }, 1032, ["label", "name", "closable"]);
1307
+ }), 128))
1308
+ ]),
1309
+ _: 1
1310
+ }, 8, ["modelValue"])
1311
+ ])
1312
+ ]),
1313
+ _: 1
1314
+ }, 8, ["modelValue"]);
1315
+ };
1316
+ }
1317
+ });
1318
+ export {
1319
+ _sfc_main as default
1320
+ };