|
@@ -28,7 +28,7 @@
|
|
<el-option key="2d" label="矢量图" :value="0" />
|
|
<el-option key="2d" label="矢量图" :value="0" />
|
|
<el-option key="state" label="卫星图" :value="1" />
|
|
<el-option key="state" label="卫星图" :value="1" />
|
|
</el-select>
|
|
</el-select>
|
|
- <el-select style="width: 100px" v-model:modelValue="current">
|
|
|
|
|
|
+ <el-select style="width: 100px" v-model:modelValue="current" @change="handleModeChange">
|
|
<el-option key="map" label="地图" :value="0" />
|
|
<el-option key="map" label="地图" :value="0" />
|
|
<el-option key="card" label="卡片" :value="1" />
|
|
<el-option key="card" label="卡片" :value="1" />
|
|
</el-select>
|
|
</el-select>
|
|
@@ -76,7 +76,7 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
-import { onMounted, ref, computed, onBeforeMount } from "vue";
|
|
|
|
|
|
+import { onMounted, ref, computed, onBeforeMount, nextTick } from "vue";
|
|
import { getSysSetting } from "@/request";
|
|
import { getSysSetting } from "@/request";
|
|
// import { useRouteQuery } from "@vueuse/router";
|
|
// import { useRouteQuery } from "@vueuse/router";
|
|
import AMapLoader from "@amap/amap-jsapi-loader";
|
|
import AMapLoader from "@amap/amap-jsapi-loader";
|
|
@@ -122,6 +122,22 @@ const handleSelect = (type: number) => {
|
|
current.value = type;
|
|
current.value = type;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+// 处理模式切换
|
|
|
|
+const handleModeChange = (value: number) => {
|
|
|
|
+ // 如果切换到地图模式
|
|
|
|
+ if (value === 0) {
|
|
|
|
+ // 使用nextTick确保DOM已更新
|
|
|
|
+ nextTick(() => {
|
|
|
|
+ if (map) {
|
|
|
|
+ // 重新调整地图大小
|
|
|
|
+ map.resize();
|
|
|
|
+ // 重新设置地图视图以显示所有标记
|
|
|
|
+ map.setFitView(markers.value);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
const markers = ref<any>([]);
|
|
const markers = ref<any>([]);
|
|
|
|
|
|
const getQuery = (
|
|
const getQuery = (
|