|
@@ -53,8 +53,9 @@
|
|
|
<!-- 范围选择滑动条 -->
|
|
|
<el-slider
|
|
|
class="slider-bg range-slider"
|
|
|
- :class="{ disabled: form.meshRange === '自适应' }"
|
|
|
+ :class="{ disabled: form.meshRange === '自适应' && form.meshLevel !== 23 }"
|
|
|
v-model="form.meshHeights"
|
|
|
+ @change="handleSlide"
|
|
|
:min="0"
|
|
|
:max="600"
|
|
|
range
|
|
@@ -65,7 +66,7 @@
|
|
|
|
|
|
<script setup>
|
|
|
import { ref, onBeforeUnmount, watch, reactive, nextTick } from 'vue'
|
|
|
-import { addKysgScale, DrawPolygon, QueryDistrict, QueryCube, clearDraw } from '@/utils/map/addLayer.js'
|
|
|
+import { addKysgScale, DrawPolygon, QueryDistrict, QueryCube, clearDraw, setKysgHeight } from '@/utils/map/addLayer.js'
|
|
|
import useLayoutStore from '@/store/layout'
|
|
|
import { useMapStore } from '@/store/map'
|
|
|
import { GetDistrictTree } from '@/service/http'
|
|
@@ -180,9 +181,19 @@ watch(
|
|
|
(val) => {
|
|
|
if (val) {
|
|
|
form.value.meshLevel = val
|
|
|
- const maxHeight =
|
|
|
- Number(val) > 20 ? 30 : Math.min(600, Number(DenseData.find((d) => d.level == val).des.slice(1, -2)))
|
|
|
- form.value.meshHeights = [0, maxHeight]
|
|
|
+ let maxHeight
|
|
|
+ let minHeight = 0
|
|
|
+ if (val === 23) {
|
|
|
+ minHeight = 90
|
|
|
+ maxHeight = 120
|
|
|
+ } else if (val > 20) {
|
|
|
+ maxHeight = 30
|
|
|
+ } else {
|
|
|
+ maxHeight = Math.min(600, Number(DenseData.find((d) => d.level == val).des.slice(1, -2)))
|
|
|
+ }
|
|
|
+ form.value.meshHeights = [minHeight, maxHeight]
|
|
|
+
|
|
|
+ lastMeshHeights = [minHeight, maxHeight]
|
|
|
}
|
|
|
}
|
|
|
)
|
|
@@ -346,6 +357,39 @@ function getMesh(status) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+let lastMeshHeights
|
|
|
+
|
|
|
+function handleSlide(val) {
|
|
|
+ console.log('lastMeshHeights:', lastMeshHeights)
|
|
|
+ console.log('handleSlide:', val)
|
|
|
+ // form.value.meshHeights[1] = Math.min(val[0] + 30, 120)
|
|
|
+
|
|
|
+ let minHeight
|
|
|
+ let maxHeight
|
|
|
+
|
|
|
+ if (val[0] === lastMeshHeights[0]) {
|
|
|
+ maxHeight = Math.min(120, val[1])
|
|
|
+ minHeight = Math.max(0, maxHeight - 30)
|
|
|
+ } else if (val[1] === lastMeshHeights[1]) {
|
|
|
+ minHeight = val[0]
|
|
|
+ maxHeight = Math.min(120, minHeight + 30)
|
|
|
+ } else if (val[0] === lastMeshHeights[1]) {
|
|
|
+ minHeight = Math.min(120, val[1])
|
|
|
+ if (minHeight + 30 > 120) {
|
|
|
+ maxHeight = minHeight
|
|
|
+ minHeight = minHeight - 30
|
|
|
+ } else {
|
|
|
+ maxHeight = Math.min(120, minHeight + 30)
|
|
|
+ }
|
|
|
+ } else if (val[1] === lastMeshHeights[0]) {
|
|
|
+ maxHeight = Math.min(120, val[0])
|
|
|
+ minHeight = Math.max(0, maxHeight - 30)
|
|
|
+ }
|
|
|
+
|
|
|
+ form.value.meshHeights = [minHeight, maxHeight]
|
|
|
+ lastMeshHeights = [minHeight, maxHeight]
|
|
|
+}
|
|
|
+
|
|
|
onBeforeUnmount(() => {
|
|
|
addKysgScale(false)
|
|
|
getMesh('hide')
|