|
@@ -59,9 +59,7 @@
|
|
|
:max="600"
|
|
|
range
|
|
|
:marks="marks"
|
|
|
- tooltip-class="range-tooltip"
|
|
|
- placement="bottom"
|
|
|
- :format-tooltip="(val) => val + 'm'" />
|
|
|
+ :show-tooltip="false" />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -182,12 +180,9 @@ watch(
|
|
|
(val) => {
|
|
|
if (val) {
|
|
|
form.value.meshLevel = val
|
|
|
- const maxHeight = Number(DenseData.find((d) => d.level == val).des.slice(1, -2))
|
|
|
- form.value.meshHeights = [0, Math.min(600, maxHeight)]
|
|
|
- // const toolsTips = document.getElementsByClassName('range-tooltip')
|
|
|
- // for (let i = 0; i < toolsTips.length; i++) {
|
|
|
- // toolsTips[i].style.visibility = 'visible'
|
|
|
- // }
|
|
|
+ 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]
|
|
|
}
|
|
|
}
|
|
|
)
|
|
@@ -246,21 +241,32 @@ const DenseData = reactive([
|
|
|
// { label: '2′网格', level: 14, size: { x: 2984.4, y: 2984.4, z: 2984.4 }, des: '(2984.4m)'},
|
|
|
])
|
|
|
|
|
|
+watch(
|
|
|
+ () => form.value.meshHeights,
|
|
|
+ (val) => {
|
|
|
+ nextTick(() => {
|
|
|
+ const sliderBtns = document.querySelectorAll('.el-slider__button-wrapper')
|
|
|
+ sliderBtns.forEach((ele, index) => {
|
|
|
+ // 删除旧的tooltip
|
|
|
+ const tooltips_old = ele.querySelectorAll('.tooltip')
|
|
|
+ tooltips_old.forEach((t) => ele.removeChild(t))
|
|
|
+ if (!val.every((v) => v === 0)) {
|
|
|
+ // 创建tooltip元素
|
|
|
+ let tooltip_ele = document.createElement('div')
|
|
|
+ tooltip_ele.className = 'tooltip'
|
|
|
+ tooltip_ele.innerText = val[index] + 'm'
|
|
|
+ // 添加新的
|
|
|
+ ele.appendChild(tooltip_ele)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ { deep: true, immediate: true }
|
|
|
+)
|
|
|
+
|
|
|
function clearPoints() {
|
|
|
form.value.meshLevel = ''
|
|
|
form.value.meshHeights = [0, 0]
|
|
|
- nextTick(() => {
|
|
|
- const toolsTips = document.getElementsByClassName('range-tooltip')
|
|
|
- for (let i = 0; i < toolsTips.length; i++) {
|
|
|
- toolsTips[i].style.visibility = 'hidden'
|
|
|
- }
|
|
|
- const sliderBtns = document.getElementsByClassName('el-slider__button-wrapper')
|
|
|
- for (let i = 0; i < toolsTips.length; i++) {
|
|
|
- sliderBtns[i].addEventListener('mousedown', () => {
|
|
|
- toolsTips[i].style.visibility = 'visible'
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
}
|
|
|
|
|
|
// 单点选择逻辑
|
|
@@ -512,6 +518,14 @@ onBeforeUnmount(() => {
|
|
|
border-color: #fffcf5;
|
|
|
border-width: 2px;
|
|
|
}
|
|
|
+
|
|
|
+ .tooltip {
|
|
|
+ position: absolute;
|
|
|
+ bottom: -20px;
|
|
|
+ left: -13px;
|
|
|
+ width: 60px;
|
|
|
+ font-size: 15px;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.el-slider__marks .el-slider__marks-text {
|
|
@@ -532,22 +546,3 @@ onBeforeUnmount(() => {
|
|
|
}
|
|
|
}
|
|
|
</style>
|
|
|
-
|
|
|
-<style lang="scss">
|
|
|
-.range-tooltip {
|
|
|
- display: block !important;
|
|
|
- background: none !important;
|
|
|
- border: none !important;
|
|
|
- margin-top: -7px;
|
|
|
- visibility: hidden;
|
|
|
-
|
|
|
- span {
|
|
|
- color: #ddd;
|
|
|
- font-size: 16px;
|
|
|
- }
|
|
|
-
|
|
|
- .el-popper__arrow {
|
|
|
- display: none;
|
|
|
- }
|
|
|
-}
|
|
|
-</style>
|