number输入框最大值最小值限制;标绘默认名称
This commit is contained in:
@ -149,6 +149,7 @@ export default {
|
|||||||
curve: '曲线标注',
|
curve: '曲线标注',
|
||||||
panel: '面标注',
|
panel: '面标注',
|
||||||
roam: '漫游路径',
|
roam: '漫游路径',
|
||||||
|
untitled: '未命名对象'
|
||||||
},
|
},
|
||||||
system: {
|
system: {
|
||||||
systemTitle: '系统面板',
|
systemTitle: '系统面板',
|
||||||
|
|||||||
@ -149,6 +149,7 @@ export default {
|
|||||||
curve: 'Curve',
|
curve: 'Curve',
|
||||||
panel: 'Panel',
|
panel: 'Panel',
|
||||||
roam: 'roam',
|
roam: 'roam',
|
||||||
|
untitled: 'untitled'
|
||||||
},
|
},
|
||||||
system: {
|
system: {
|
||||||
systemTitle: 'Settings',
|
systemTitle: 'Settings',
|
||||||
|
|||||||
@ -148,6 +148,7 @@ export default {
|
|||||||
curve: '曲線標注',
|
curve: '曲線標注',
|
||||||
panel: '面標注',
|
panel: '面標注',
|
||||||
roam: '漫遊路徑',
|
roam: '漫遊路徑',
|
||||||
|
untitled: '未命名對象'
|
||||||
},
|
},
|
||||||
system: {
|
system: {
|
||||||
systemTitle: '系統面板',
|
systemTitle: '系統面板',
|
||||||
|
|||||||
@ -47,7 +47,6 @@ export const initMapData = async (type, data, cd) => {
|
|||||||
entityObject = new YJ.Obj.SectorObject(window.earth, data)
|
entityObject = new YJ.Obj.SectorObject(window.earth, data)
|
||||||
break
|
break
|
||||||
case 'model':
|
case 'model':
|
||||||
console.log('model', data)
|
|
||||||
entityObject = new YJ.Obj.Model(window.earth, data)
|
entityObject = new YJ.Obj.Model(window.earth, data)
|
||||||
break
|
break
|
||||||
case 'military':
|
case 'military':
|
||||||
|
|||||||
@ -67,6 +67,10 @@ export function getNamefromPath(path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function handleInputLimit(e) {
|
export function handleInputLimit(e) {
|
||||||
|
if (e.data === '-') {
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
e.target.value = e.target.value || 0
|
||||||
const minValue = parseFloat(e.target.min);
|
const minValue = parseFloat(e.target.min);
|
||||||
const maxValue = parseFloat(e.target.max);
|
const maxValue = parseFloat(e.target.max);
|
||||||
if (!isNaN(maxValue) && e.target.value > maxValue) {
|
if (!isNaN(maxValue) && e.target.value > maxValue) {
|
||||||
@ -77,4 +81,5 @@ export function handleInputLimit(e) {
|
|||||||
e.target.value = minValue
|
e.target.value = minValue
|
||||||
e.target.dispatchEvent(new Event('input'))
|
e.target.dispatchEvent(new Event('input'))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,7 +43,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">Z值统一增加</span>
|
<span class="label">Z值统一增加</span>
|
||||||
<div class="input-number input-number-unit-1 height-box" :class="{ 'disabled': heightMode == 2 }">
|
<div class="input-number input-number-unit-1 height-box" :class="{ 'disabled': heightMode == 2 }">
|
||||||
<input class="input height" type="number" title="" min="-9999999" max="999999999" v-model="height">
|
<input class="input height" type="number" title="" min="-9999999" max="999999999" v-model="height" @input="$handleInputLimit">
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -66,18 +66,18 @@
|
|||||||
<div class="td">圆心坐标</div>
|
<div class="td">圆心坐标</div>
|
||||||
<div class="td lng align-center" @dblclick="inputDblclick($event, 1, 'lng')">
|
<div class="td lng align-center" @dblclick="inputDblclick($event, 1, 'lng')">
|
||||||
<input class="input" @blur="inputBlurCallBack($event, 1, 'lng', 8)" type="number"
|
<input class="input" @blur="inputBlurCallBack($event, 1, 'lng', 8)" type="number"
|
||||||
v-model="entityOptions.center.lng" min="-180" max="180" v-if="activeTd.index == 1 && activeTd.name == 'lng'">
|
v-model="entityOptions.center.lng" min="-180" max="180" v-if="activeTd.index == 1 && activeTd.name == 'lng'" @input="$handleInputLimit">
|
||||||
<span style="pointer-events: none;" v-else>{{ entityOptions.center.lng.toFixed(8) }}</span>
|
<span style="pointer-events: none;" v-else>{{ entityOptions.center.lng.toFixed(8) }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="td lat align-center" @dblclick="inputDblclick($event, 1, 'lat')">
|
<div class="td lat align-center" @dblclick="inputDblclick($event, 1, 'lat')">
|
||||||
<input class="input" @blur="inputBlurCallBack($event, 1, 'lat', 8)" type="number"
|
<input class="input" @blur="inputBlurCallBack($event, 1, 'lat', 8)" type="number"
|
||||||
v-model="entityOptions.center.lat" min="-180" max="180" v-if="activeTd.index == 1 && activeTd.name == 'lat'">
|
v-model="entityOptions.center.lat" min="-180" max="180" v-if="activeTd.index == 1 && activeTd.name == 'lat'" @input="$handleInputLimit">
|
||||||
<span style="pointer-events: none;" v-else>{{ entityOptions.center.lat.toFixed(8) }}</span>
|
<span style="pointer-events: none;" v-else>{{ entityOptions.center.lat.toFixed(8) }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="td alt align-center" @dblclick="inputDblclick($event, 1, 'alt')">
|
<div class="td alt align-center" @dblclick="inputDblclick($event, 1, 'alt')">
|
||||||
<input class="input" @blur="inputBlurCallBack($event, 1, 'alt', 2)" type="number"
|
<input class="input" @blur="inputBlurCallBack($event, 1, 'alt', 2)" type="number"
|
||||||
v-model="entityOptions.height" min="-9999999" max="999999999"
|
v-model="entityOptions.height" min="-9999999" max="999999999"
|
||||||
v-if="activeTd.index == 1 && activeTd.name == 'alt'">
|
v-if="activeTd.index == 1 && activeTd.name == 'alt'" @input="$handleInputLimit">
|
||||||
<span style="pointer-events: none;" v-else>{{ entityOptions.height.toFixed(2) }}</span>
|
<span style="pointer-events: none;" v-else>{{ entityOptions.height.toFixed(2) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -98,7 +98,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">描边宽度</span>
|
<span class="label">描边宽度</span>
|
||||||
<div class="input-number input-number-unit-2">
|
<div class="input-number input-number-unit-2">
|
||||||
<input class="input" type="number" title="" min="0" max="99" v-model="entityOptions.lineWidth">
|
<input class="input" type="number" title="" min="0" max="99" v-model="entityOptions.lineWidth" @input="$handleInputLimit">
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -132,6 +132,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { inject } from "vue";
|
import { inject } from "vue";
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||||
@ -139,6 +140,7 @@ import attribute from './attribute.vue'
|
|||||||
import labelStyle from './labelStyle.vue'
|
import labelStyle from './labelStyle.vue'
|
||||||
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||||
|
|
||||||
|
const { t } = useI18n()
|
||||||
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
const title = ref('圆')
|
const title = ref('圆')
|
||||||
@ -312,9 +314,10 @@ const nodeEdit = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.name = entityOptions.value.name || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
baseDialog.value?.close()
|
|
||||||
let params = structuredClone(that.options)
|
let params = structuredClone(that.options)
|
||||||
|
baseDialog.value?.close()
|
||||||
delete params.host
|
delete params.host
|
||||||
let params2 = {
|
let params2 = {
|
||||||
"id": params.id,
|
"id": params.id,
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<Dialog ref="baseDialog" :title="t('bottomMenu.groundText')" left="calc(50% - 160px)" top="calc(50% - 120px)">
|
<Dialog ref="baseDialog" :title="t('bottomMenu.groundText')" left="calc(50% - 160px)" top="calc(50% - 120px)" :closeCallback="closeCallBack">
|
||||||
<template #content>
|
<template #content>
|
||||||
<textarea style="height: 76px; width: 270px" v-model="text"></textarea>
|
<textarea style="height: 76px; width: 270px" v-model="text"></textarea>
|
||||||
</template>
|
</template>
|
||||||
@ -34,9 +34,9 @@ const confirm = () => {
|
|||||||
if(!text.value) {
|
if(!text.value) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
baseDialog.value?.close()
|
|
||||||
let name = text.value
|
let name = text.value
|
||||||
text.value = ''
|
text.value = ''
|
||||||
|
baseDialog.value?.close()
|
||||||
let Draw = new YJ.Draw.DrawPolyline(window.earth, { number: 2 })
|
let Draw = new YJ.Draw.DrawPolyline(window.earth, { number: 2 })
|
||||||
Draw.start(async (a, positions) => {
|
Draw.start(async (a, positions) => {
|
||||||
if (!positions || positions.length < 2) {
|
if (!positions || positions.length < 2) {
|
||||||
@ -78,6 +78,9 @@ const confirm = () => {
|
|||||||
cusAddNodes(window.treeObj, params.parentId, [params])
|
cusAddNodes(window.treeObj, params.parentId, [params])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const closeCallBack = () => {
|
||||||
|
text.value = ''
|
||||||
|
}
|
||||||
defineExpose({
|
defineExpose({
|
||||||
open
|
open
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<Dialog ref="baseDialog" :title="t('bottomMenu.standText')" left="calc(50% - 160px)" top="calc(50% - 120px)">
|
<Dialog ref="baseDialog" :title="t('bottomMenu.standText')" left="calc(50% - 160px)" top="calc(50% - 120px)" :closeCallback="closeCallBack">
|
||||||
<template #content>
|
<template #content>
|
||||||
<textarea style="height: 76px; width: 270px" v-model="text"></textarea>
|
<textarea style="height: 76px; width: 270px" v-model="text"></textarea>
|
||||||
</template>
|
</template>
|
||||||
@ -34,9 +34,9 @@ const confirm = () => {
|
|||||||
if(!text.value) {
|
if(!text.value) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
baseDialog.value?.close()
|
|
||||||
let name = text.value
|
let name = text.value
|
||||||
text.value = ''
|
text.value = ''
|
||||||
|
baseDialog.value?.close()
|
||||||
let Draw = new YJ.Draw.DrawPolyline(window.earth)
|
let Draw = new YJ.Draw.DrawPolyline(window.earth)
|
||||||
Draw.start(async (a, positions) => {
|
Draw.start(async (a, positions) => {
|
||||||
if (!positions || positions.length < 2) {
|
if (!positions || positions.length < 2) {
|
||||||
@ -50,7 +50,6 @@ const confirm = () => {
|
|||||||
}, null)
|
}, null)
|
||||||
delete options.host
|
delete options.host
|
||||||
delete options.name
|
delete options.name
|
||||||
console.log('options', options)
|
|
||||||
let selectedNodes = window.treeObj.getSelectedNodes()
|
let selectedNodes = window.treeObj.getSelectedNodes()
|
||||||
let node = selectedNodes && selectedNodes[selectedNodes.length - 1]
|
let node = selectedNodes && selectedNodes[selectedNodes.length - 1]
|
||||||
let parentId
|
let parentId
|
||||||
@ -77,6 +76,9 @@ const confirm = () => {
|
|||||||
cusAddNodes(window.treeObj, params.parentId, [params])
|
cusAddNodes(window.treeObj, params.parentId, [params])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const closeCallBack = () => {
|
||||||
|
text.value = ''
|
||||||
|
}
|
||||||
defineExpose({
|
defineExpose({
|
||||||
open
|
open
|
||||||
})
|
})
|
||||||
|
|||||||
@ -155,12 +155,14 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { inject } from "vue";
|
import { inject } from "vue";
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||||
import attribute from './attribute.vue'
|
import attribute from './attribute.vue'
|
||||||
import labelStyle from './labelStyle.vue'
|
import labelStyle from './labelStyle.vue'
|
||||||
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||||
|
|
||||||
|
const { t } = useI18n()
|
||||||
const { cusUpdateNode, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
const title = ref('箭头')
|
const title = ref('箭头')
|
||||||
@ -334,6 +336,7 @@ const nodeEdit = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.name = entityOptions.value.name || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
let params = structuredClone(that.options)
|
let params = structuredClone(that.options)
|
||||||
baseDialog.value?.close()
|
baseDialog.value?.close()
|
||||||
|
|||||||
@ -211,7 +211,7 @@
|
|||||||
<div class="td" style="width: 60px; flex: 0 60px;min-width: 60px;">{{ index + 1 }}</div>
|
<div class="td" style="width: 60px; flex: 0 60px;min-width: 60px;">{{ index + 1 }}</div>
|
||||||
<div class="td" style="flex: 0 0 280px;">{{ item.name }}</div>
|
<div class="td" style="flex: 0 0 280px;">{{ item.name }}</div>
|
||||||
<div class="td"><input class="input" type="number" title="" min="0" max="999999999" v-model="item.cnt"
|
<div class="td"><input class="input" type="number" title="" min="0" max="999999999" v-model="item.cnt"
|
||||||
@blur="changeAttributeGoods(item)">
|
@blur="changeAttributeGoods(item)" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -531,7 +531,7 @@ const _addRr = () => {
|
|||||||
ipcRenderer.once('selectedItem', (event, filePaths) => {
|
ipcRenderer.once('selectedItem', (event, filePaths) => {
|
||||||
if (filePaths.length > 0) {
|
if (filePaths.length > 0) {
|
||||||
filePaths.forEach((item) => {
|
filePaths.forEach((item) => {
|
||||||
attribute.value.link.content.push({
|
attribute.value.vr.content.push({
|
||||||
name: '全景图',
|
name: '全景图',
|
||||||
url: item
|
url: item
|
||||||
})
|
})
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label" style="flex: unset">{{ t('dialog.name') }}</span>
|
<span class="label" style="flex: unset">{{ t('dialog.name') }}</span>
|
||||||
<input class="input" type="text" v-model="entityOptions.name" @change="changeName" />
|
<input class="input" type="text" v-model="entityOptions.labelText" @change="changeName" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col"></div>
|
<div class="col"></div>
|
||||||
</div>
|
</div>
|
||||||
@ -36,6 +36,7 @@
|
|||||||
max="180"
|
max="180"
|
||||||
v-model="entityOptions.lng"
|
v-model="entityOptions.lng"
|
||||||
@change="changLng"
|
@change="changLng"
|
||||||
|
@input="$handleInputLimit"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -50,6 +51,7 @@
|
|||||||
max="90"
|
max="90"
|
||||||
v-model="entityOptions.lat"
|
v-model="entityOptions.lat"
|
||||||
@change="changLat"
|
@change="changLat"
|
||||||
|
@input="$handleInputLimit"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -68,6 +70,7 @@
|
|||||||
max="999999999"
|
max="999999999"
|
||||||
v-model="entityOptions.alt"
|
v-model="entityOptions.alt"
|
||||||
@change="changAlt"
|
@change="changAlt"
|
||||||
|
@input="$handleInputLimit"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -149,6 +152,7 @@
|
|||||||
min="1"
|
min="1"
|
||||||
max="99999999"
|
max="99999999"
|
||||||
v-model="entityOptions.near"
|
v-model="entityOptions.near"
|
||||||
|
@input="$handleInputLimit"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -164,6 +168,7 @@
|
|||||||
min="1"
|
min="1"
|
||||||
max="99999999"
|
max="99999999"
|
||||||
v-model="entityOptions.far"
|
v-model="entityOptions.far"
|
||||||
|
@input="$handleInputLimit"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -206,6 +211,7 @@
|
|||||||
max="999999999"
|
max="999999999"
|
||||||
v-model="height"
|
v-model="height"
|
||||||
@change="changHeight"
|
@change="changHeight"
|
||||||
|
@input="$handleInputLimit"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -384,6 +390,7 @@
|
|||||||
min="0.1"
|
min="0.1"
|
||||||
max="99"
|
max="99"
|
||||||
v-model="entityOptions.billboardScale"
|
v-model="entityOptions.billboardScale"
|
||||||
|
@input="$handleInputLimit"
|
||||||
/>
|
/>
|
||||||
<span class="unit">倍</span>
|
<span class="unit">倍</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -425,6 +432,7 @@
|
|||||||
max="99"
|
max="99"
|
||||||
v-model="entityOptions.labelFontSize"
|
v-model="entityOptions.labelFontSize"
|
||||||
style="width: 70px"
|
style="width: 70px"
|
||||||
|
@input="$handleInputLimit"
|
||||||
/>
|
/>
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -581,9 +589,9 @@ const coordinateChange = () => {
|
|||||||
let position = window.earth.proj.convert(
|
let position = window.earth.proj.convert(
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
x: entityOptions.value.lng,
|
x: entityOptions.value.lng || 0,
|
||||||
y: entityOptions.value.lat,
|
y: entityOptions.value.lat || 0,
|
||||||
z: entityOptions.value.alt
|
z: entityOptions.value.alt || 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
'EPSG:4326',
|
'EPSG:4326',
|
||||||
@ -598,7 +606,7 @@ const heightModeChange = (val) => {
|
|||||||
switch (val) {
|
switch (val) {
|
||||||
case 0:
|
case 0:
|
||||||
case '0':
|
case '0':
|
||||||
height.value = entityOptions.value.alt
|
height.value = entityOptions.value.alt || 0
|
||||||
break
|
break
|
||||||
case 1:
|
case 1:
|
||||||
case '1':
|
case '1':
|
||||||
@ -606,10 +614,10 @@ const heightModeChange = (val) => {
|
|||||||
window.Cesium.sampleTerrainMostDetailed(window.earth.viewer.scene.terrainProvider, [
|
window.Cesium.sampleTerrainMostDetailed(window.earth.viewer.scene.terrainProvider, [
|
||||||
window.Cesium.Cartographic.fromDegrees(entityOptions.value.lng, entityOptions.value.lat)
|
window.Cesium.Cartographic.fromDegrees(entityOptions.value.lng, entityOptions.value.lat)
|
||||||
]).then((position) => {
|
]).then((position) => {
|
||||||
height.value = entityOptions.value.alt - Number(position[0].height.toFixed(2))
|
height.value = (entityOptions.value.alt || 0) - Number(position[0].height.toFixed(2))
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
height.value = entityOptions.value.alt
|
height.value = entityOptions.value.alt || 0
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case 2:
|
case 2:
|
||||||
@ -635,14 +643,17 @@ const heightModeChange = (val) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const changLng = () => {
|
const changLng = () => {
|
||||||
|
entityOptions.value.lng = entityOptions.value.lng || 0
|
||||||
projConvert()
|
projConvert()
|
||||||
coordinateChange()
|
coordinateChange()
|
||||||
}
|
}
|
||||||
const changLat = () => {
|
const changLat = () => {
|
||||||
|
entityOptions.value.lat = entityOptions.value.lat || 0
|
||||||
projConvert()
|
projConvert()
|
||||||
coordinateChange()
|
coordinateChange()
|
||||||
}
|
}
|
||||||
const changAlt = () => {
|
const changAlt = () => {
|
||||||
|
entityOptions.value.alt = entityOptions.value.alt || 0
|
||||||
heightModeChange(heightMode.value)
|
heightModeChange(heightMode.value)
|
||||||
coordinateChange()
|
coordinateChange()
|
||||||
}
|
}
|
||||||
@ -707,8 +718,8 @@ const projConvert = () => {
|
|||||||
latdnsArr1,
|
latdnsArr1,
|
||||||
latdnsArr2,
|
latdnsArr2,
|
||||||
latdnsArr3
|
latdnsArr3
|
||||||
lng = entityOptions.value.lng
|
lng = entityOptions.value.lng || 0
|
||||||
lat = entityOptions.value.lat
|
lat = entityOptions.value.lat || 0
|
||||||
lngDM = that._proj.degreesToDMS(lng, true)
|
lngDM = that._proj.degreesToDMS(lng, true)
|
||||||
latDM = that._proj.degreesToDMS(lat, true)
|
latDM = that._proj.degreesToDMS(lat, true)
|
||||||
lngdnArr1 = lngDM.split('°')
|
lngdnArr1 = lngDM.split('°')
|
||||||
@ -746,6 +757,7 @@ const translate = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.labelText = entityOptions.value.labelText || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
baseDialog.value?.close()
|
baseDialog.value?.close()
|
||||||
let params = structuredClone(that.options)
|
let params = structuredClone(that.options)
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">透明度</span>
|
<span class="label">透明度</span>
|
||||||
<input type="range" min="0" max="1" step="0.01" v-model="entityOptions.transparency">
|
<input type="range" min="0" max="1" step="0.01" v-model="entityOptions.transparency" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -20,12 +20,12 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">经度</span>
|
<span class="label">经度</span>
|
||||||
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lng">
|
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lng" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">波纹层数</span>
|
<span class="label">波纹层数</span>
|
||||||
<div class="input-number input-number-unit">
|
<div class="input-number input-number-unit">
|
||||||
<input class="input" type="number" title="" min="1" max="10" v-model="entityOptions.count">
|
<input class="input" type="number" title="" min="1" max="10" v-model="entityOptions.count" @input="$handleInputLimit">
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -33,12 +33,12 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">纬度</span>
|
<span class="label">纬度</span>
|
||||||
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lat">
|
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lat" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">扩散速度</span>
|
<span class="label">扩散速度</span>
|
||||||
<div class="input-number input-number-unit">
|
<div class="input-number input-number-unit">
|
||||||
<input class="input" type="number" title="" min="0" max="20" v-model="entityOptions.speed">
|
<input class="input" type="number" title="" min="0" max="20" v-model="entityOptions.speed" @input="$handleInputLimit">
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -64,7 +64,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">半径</span>
|
<span class="label">半径</span>
|
||||||
<input class="input" type="number" title="" min="0" max="999999" v-model="item.radius"
|
<input class="input" type="number" title="" min="0" max="999999" v-model="item.radius"
|
||||||
@input="changeRadius(index)">
|
@input="changeRadius">
|
||||||
</div>
|
</div>
|
||||||
<div class="col" style="flex-direction: row-reverse;">
|
<div class="col" style="flex-direction: row-reverse;">
|
||||||
<div class="color" :ref="el => colorRefs[index] = el"></div>
|
<div class="color" :ref="el => colorRefs[index] = el"></div>
|
||||||
@ -110,7 +110,7 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { inject } from "vue";
|
import { inject, getCurrentInstance } from "vue";
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||||
@ -118,7 +118,7 @@ import attribute from './attribute.vue'
|
|||||||
import labelStyle from './labelStyle.vue'
|
import labelStyle from './labelStyle.vue'
|
||||||
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||||
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||||
|
const { proxy } = getCurrentInstance()!
|
||||||
const baseDialog: any = ref(null);
|
const baseDialog: any = ref(null);
|
||||||
const eventBus: any = inject("bus");
|
const eventBus: any = inject("bus");
|
||||||
|
|
||||||
@ -213,7 +213,8 @@ const minusCircle = async (index) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const changeRadius = async (index) => {
|
const changeRadius = async (e) => {
|
||||||
|
proxy.$handleInputLimit(e)
|
||||||
let newCircle = JSON.parse(JSON.stringify(circle.value))
|
let newCircle = JSON.parse(JSON.stringify(circle.value))
|
||||||
if (radiusUnit.value == 'km') {
|
if (radiusUnit.value == 'km') {
|
||||||
for (let i = 0; i < newCircle.length; i++) {
|
for (let i = 0; i < newCircle.length; i++) {
|
||||||
|
|||||||
@ -73,6 +73,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="-9999999"
|
min="-9999999"
|
||||||
max="999999999"
|
max="999999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="height"
|
v-model="height"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
@ -109,6 +110,7 @@
|
|||||||
v-model="item.lng"
|
v-model="item.lng"
|
||||||
min="-180"
|
min="-180"
|
||||||
max="180"
|
max="180"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-if="activeTd.index == i && activeTd.name == 'lng'"
|
v-if="activeTd.index == i && activeTd.name == 'lng'"
|
||||||
/>
|
/>
|
||||||
<span style="pointer-events: none" v-else>{{ item.lng.toFixed(8) }}</span>
|
<span style="pointer-events: none" v-else>{{ item.lng.toFixed(8) }}</span>
|
||||||
@ -121,6 +123,7 @@
|
|||||||
v-model="item.lat"
|
v-model="item.lat"
|
||||||
min="-180"
|
min="-180"
|
||||||
max="180"
|
max="180"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-if="activeTd.index == i && activeTd.name == 'lat'"
|
v-if="activeTd.index == i && activeTd.name == 'lat'"
|
||||||
/>
|
/>
|
||||||
<span style="pointer-events: none" v-else>{{ item.lat.toFixed(8) }}</span>
|
<span style="pointer-events: none" v-else>{{ item.lat.toFixed(8) }}</span>
|
||||||
@ -133,6 +136,7 @@
|
|||||||
v-model="item.alt"
|
v-model="item.alt"
|
||||||
min="-9999999"
|
min="-9999999"
|
||||||
max="999999999"
|
max="999999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-if="activeTd.index == i && activeTd.name == 'alt'"
|
v-if="activeTd.index == i && activeTd.name == 'alt'"
|
||||||
/>
|
/>
|
||||||
<span style="pointer-events: none" v-else>{{ item.alt.toFixed(2) }}</span>
|
<span style="pointer-events: none" v-else>{{ item.alt.toFixed(2) }}</span>
|
||||||
@ -157,6 +161,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="999"
|
max="999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.lineWidth"
|
v-model="entityOptions.lineWidth"
|
||||||
/>
|
/>
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
@ -198,6 +203,7 @@
|
|||||||
min="0"
|
min="0"
|
||||||
data-min="0.01"
|
data-min="0.01"
|
||||||
max="999999"
|
max="999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.extendWidth"
|
v-model="entityOptions.extendWidth"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
@ -224,6 +230,7 @@
|
|||||||
min="0"
|
min="0"
|
||||||
max="999999"
|
max="999999"
|
||||||
step="1"
|
step="1"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.speed"
|
v-model="entityOptions.speed"
|
||||||
/>
|
/>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -247,6 +254,7 @@
|
|||||||
min="0"
|
min="0"
|
||||||
max="4.5"
|
max="4.5"
|
||||||
step="0.1"
|
step="0.1"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.space"
|
v-model="entityOptions.space"
|
||||||
/>
|
/>
|
||||||
<span class="unit">倍</span>
|
<span class="unit">倍</span>
|
||||||
@ -287,6 +295,7 @@
|
|||||||
import { ref, getCurrentInstance } from 'vue'
|
import { ref, getCurrentInstance } from 'vue'
|
||||||
import { inject } from 'vue'
|
import { inject } from 'vue'
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||||
import { getFontList } from './fontSelect'
|
import { getFontList } from './fontSelect'
|
||||||
@ -294,6 +303,7 @@ import attribute from './attribute.vue'
|
|||||||
import labelStyle from './labelStyle.vue'
|
import labelStyle from './labelStyle.vue'
|
||||||
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||||
|
|
||||||
|
const { t } = useI18n()
|
||||||
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
const baseDialog: any = ref(null)
|
const baseDialog: any = ref(null)
|
||||||
@ -537,9 +547,10 @@ const closeCallback = () => {
|
|||||||
eventBus.emit('destroyComponent')
|
eventBus.emit('destroyComponent')
|
||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.name = entityOptions.value.name || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
baseDialog.value?.close()
|
|
||||||
let params = structuredClone(that.options)
|
let params = structuredClone(that.options)
|
||||||
|
baseDialog.value?.close()
|
||||||
delete params.host
|
delete params.host
|
||||||
let params2 = {
|
let params2 = {
|
||||||
id: params.id,
|
id: params.id,
|
||||||
|
|||||||
@ -20,12 +20,12 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">经度</span>
|
<span class="label">经度</span>
|
||||||
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lng">
|
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lng" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">爆炸范围</span>
|
<span class="label">爆炸范围</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" min="1" max="999999" v-model="entityOptions.size">
|
<input class="input" type="number" title="" min="1" max="999999" v-model="entityOptions.size" @input="$handleInputLimit">
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -34,12 +34,12 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">纬度</span>
|
<span class="label">纬度</span>
|
||||||
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.lat">
|
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.lat" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">高度</span>
|
<span class="label">高度</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" min="-9999999" max="999999999" v-model="entityOptions.alt">
|
<input class="input" type="number" title="" min="-9999999" max="999999999" v-model="entityOptions.alt" @input="$handleInputLimit">
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -21,14 +21,14 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">飞线数量</span>
|
<span class="label">飞线数量</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" min="1" max="99999" v-model="entityOptions.pointNumber">
|
<input class="input" type="number" title="" min="1" max="99999" v-model="entityOptions.pointNumber" @input="$handleInputLimit">
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">飞线宽度</span>
|
<span class="label">飞线宽度</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" max="99999" min="1" step="1" v-model="entityOptions.width">
|
<input class="input" type="number" title="" max="99999" min="1" step="1" v-model="entityOptions.width" @input="$handleInputLimit">
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -40,14 +40,14 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">飞线高度</span>
|
<span class="label">飞线高度</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" min="0" max="999999" step="1" v-model="entityOptions.height">
|
<input class="input" type="number" title="" min="0" max="999999" step="1" v-model="entityOptions.height" @input="$handleInputLimit">
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">飞线高度差</span>
|
<span class="label">飞线高度差</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" max="99999" min="0" step="1" v-model="entityOptions.heightDifference">
|
<input class="input" type="number" title="" max="99999" min="0" step="1" v-model="entityOptions.heightDifference" @input="$handleInputLimit">
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -58,14 +58,14 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">单次运动时长(s)</span>
|
<span class="label">单次运动时长(s)</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" max="999999999" min="1" step="1" v-model="entityOptions.duration">
|
<input class="input" type="number" title="" max="999999999" min="1" step="1" v-model="entityOptions.duration" @input="$handleInputLimit">
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">轨迹透明度</span>
|
<span class="label">轨迹透明度</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" max="1" min="0.01" step="0.01" v-model="entityOptions.lineBackAlpha">
|
<input class="input" type="number" title="" max="1" min="0.01" step="0.01" v-model="entityOptions.lineBackAlpha" @input="$handleInputLimit">
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -26,7 +26,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">旋转角度</span>
|
<span class="label">旋转角度</span>
|
||||||
<input type="range" min="0" max="360" step="0.01" v-model="entityOptions.angle" />
|
<input type="range" min="0" max="360" step="0.01" v-model="entityOptions.angle" @input="$handleInputLimit"/>
|
||||||
<div class="input-number input-number-unit-1" style="width: auto; margin-left: 10px">
|
<div class="input-number input-number-unit-1" style="width: auto; margin-left: 10px">
|
||||||
<input
|
<input
|
||||||
style="width: 100px"
|
style="width: 100px"
|
||||||
@ -35,6 +35,7 @@
|
|||||||
min="0"
|
min="0"
|
||||||
max="360"
|
max="360"
|
||||||
step="0.1"
|
step="0.1"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.angle"
|
v-model="entityOptions.angle"
|
||||||
/>
|
/>
|
||||||
<span class="unit">°</span>
|
<span class="unit">°</span>
|
||||||
@ -50,6 +51,7 @@
|
|||||||
min="0.001"
|
min="0.001"
|
||||||
max="200"
|
max="200"
|
||||||
step="0.001"
|
step="0.001"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.scale.x"
|
v-model="entityOptions.scale.x"
|
||||||
/>
|
/>
|
||||||
<div class="input-number input-number-unit-1" style="width: auto; margin-left: 10px">
|
<div class="input-number input-number-unit-1" style="width: auto; margin-left: 10px">
|
||||||
@ -60,6 +62,7 @@
|
|||||||
min="0.001"
|
min="0.001"
|
||||||
max="200"
|
max="200"
|
||||||
step="0.001"
|
step="0.001"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.scale.x"
|
v-model="entityOptions.scale.x"
|
||||||
/>
|
/>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -74,6 +77,7 @@
|
|||||||
min="0.001"
|
min="0.001"
|
||||||
max="200"
|
max="200"
|
||||||
step="0.001"
|
step="0.001"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.scale.y"
|
v-model="entityOptions.scale.y"
|
||||||
/>
|
/>
|
||||||
<div class="input-number input-number-unit-1" style="width: auto; margin-left: 10px">
|
<div class="input-number input-number-unit-1" style="width: auto; margin-left: 10px">
|
||||||
@ -84,6 +88,7 @@
|
|||||||
min="0.001"
|
min="0.001"
|
||||||
max="200"
|
max="200"
|
||||||
step="0.001"
|
step="0.001"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.scale.y"
|
v-model="entityOptions.scale.y"
|
||||||
/>
|
/>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -120,6 +125,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="99"
|
max="99"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.textFontSize"
|
v-model="entityOptions.textFontSize"
|
||||||
/>
|
/>
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
@ -147,6 +153,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="99999999"
|
max="99999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.textNear"
|
v-model="entityOptions.textNear"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
@ -162,6 +169,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="99999999"
|
max="99999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.textFar"
|
v-model="entityOptions.textFar"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
|
|||||||
@ -20,12 +20,12 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">经度</span>
|
<span class="label">经度</span>
|
||||||
<input class="input" type="number" title="" min="-180" max="180"
|
<input class="input" type="number" title="" min="-180" max="180" @input="$handleInputLimit"
|
||||||
v-model="entityOptions.lng">
|
v-model="entityOptions.lng">
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">纬度</span>
|
<span class="label">纬度</span>
|
||||||
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.lat">
|
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.lat" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -37,7 +37,7 @@
|
|||||||
<input type="range" max="360" min="0" step="1" v-model="entityOptions.angle">
|
<input type="range" max="360" min="0" step="1" v-model="entityOptions.angle">
|
||||||
<div class="input-number input-number-unit"
|
<div class="input-number input-number-unit"
|
||||||
style="width: 100px;flex: 0 0 100px;margin-left: 10px;">
|
style="width: 100px;flex: 0 0 100px;margin-left: 10px;">
|
||||||
<input class="input" type="number" title="" min="0" max="360" step="1"
|
<input class="input" type="number" title="" min="0" max="360" step="1" @input="$handleInputLimit"
|
||||||
v-model="entityOptions.angle">
|
v-model="entityOptions.angle">
|
||||||
<span class="unit">°</span>
|
<span class="unit">°</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -60,7 +60,7 @@
|
|||||||
<span class="label">滚动速度</span>
|
<span class="label">滚动速度</span>
|
||||||
<input type="range" max="100" min="0" step="1" v-model="entityOptions.speed">
|
<input type="range" max="100" min="0" step="1" v-model="entityOptions.speed">
|
||||||
<div class="input-number" style="width: 100px;flex: 0 0 100px;margin-left: 10px;">
|
<div class="input-number" style="width: 100px;flex: 0 0 100px;margin-left: 10px;">
|
||||||
<input class="input" type="number" title="" min="0" max="100" step="1"
|
<input class="input" type="number" title="" min="0" max="100" step="1" @input="$handleInputLimit"
|
||||||
v-model="entityOptions.speed">
|
v-model="entityOptions.speed">
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -85,10 +85,13 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { inject } from "vue";
|
import { inject } from "vue";
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||||
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||||
|
|
||||||
|
const { t } = useI18n()
|
||||||
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
const baseDialog: any = ref(null);
|
const baseDialog: any = ref(null);
|
||||||
@ -123,9 +126,10 @@ const open = async (id: any) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.text = entityOptions.value.text || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
baseDialog.value?.close()
|
|
||||||
let params = structuredClone(that.options)
|
let params = structuredClone(that.options)
|
||||||
|
baseDialog.value?.close()
|
||||||
// 删除不必要的属性
|
// 删除不必要的属性
|
||||||
delete params.host
|
delete params.host
|
||||||
delete params.name
|
delete params.name
|
||||||
|
|||||||
@ -30,6 +30,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="99999999"
|
max="99999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.labelNear"
|
v-model="entityOptions.labelNear"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
@ -45,6 +46,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="99999999"
|
max="99999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.labelFar"
|
v-model="entityOptions.labelFar"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
@ -73,6 +75,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="99"
|
max="99"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.labelFontSize"
|
v-model="entityOptions.labelFontSize"
|
||||||
/>
|
/>
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
@ -126,6 +129,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="999"
|
max="999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.labelLineWidth"
|
v-model="entityOptions.labelLineWidth"
|
||||||
/>
|
/>
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
@ -141,6 +145,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="0"
|
min="0"
|
||||||
max="999"
|
max="999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.labelPixelOffset"
|
v-model="entityOptions.labelPixelOffset"
|
||||||
/>
|
/>
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
|
|||||||
@ -32,6 +32,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="-180"
|
min="-180"
|
||||||
max="180"
|
max="180"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.lng"
|
v-model="entityOptions.lng"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -44,6 +45,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="0.1"
|
min="0.1"
|
||||||
max="99999"
|
max="99999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.maximumScale"
|
v-model="entityOptions.maximumScale"
|
||||||
/>
|
/>
|
||||||
<span class="unit">倍</span>
|
<span class="unit">倍</span>
|
||||||
@ -60,6 +62,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="-90"
|
min="-90"
|
||||||
max="90"
|
max="90"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.lat"
|
v-model="entityOptions.lat"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -72,6 +75,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="99999"
|
max="99999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.minimumPixelSize"
|
v-model="entityOptions.minimumPixelSize"
|
||||||
/>
|
/>
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
@ -89,6 +93,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="-99999"
|
min="-99999"
|
||||||
max="9999999"
|
max="9999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.alt"
|
v-model="entityOptions.alt"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
@ -133,6 +138,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="0"
|
min="0"
|
||||||
max="360"
|
max="360"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.rotateX"
|
v-model="entityOptions.rotateX"
|
||||||
/>
|
/>
|
||||||
<span class="unit">°</span>
|
<span class="unit">°</span>
|
||||||
@ -160,6 +166,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="0"
|
min="0"
|
||||||
max="360"
|
max="360"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.rotateY"
|
v-model="entityOptions.rotateY"
|
||||||
/>
|
/>
|
||||||
<span class="unit">°</span>
|
<span class="unit">°</span>
|
||||||
@ -187,6 +194,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="0"
|
min="0"
|
||||||
max="360"
|
max="360"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.rotateZ"
|
v-model="entityOptions.rotateZ"
|
||||||
/>
|
/>
|
||||||
<span class="unit">°</span>
|
<span class="unit">°</span>
|
||||||
@ -225,6 +233,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="0"
|
min="0"
|
||||||
max="360"
|
max="360"
|
||||||
|
@input="$handleInputLimit"
|
||||||
@change="scaleChange"
|
@change="scaleChange"
|
||||||
v-model="entityOptions.scaleX"
|
v-model="entityOptions.scaleX"
|
||||||
/>
|
/>
|
||||||
@ -254,6 +263,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="0"
|
min="0"
|
||||||
max="360"
|
max="360"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.scaleX"
|
v-model="entityOptions.scaleX"
|
||||||
/>
|
/>
|
||||||
<span class="unit">°</span>
|
<span class="unit">°</span>
|
||||||
@ -281,6 +291,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="0"
|
min="0"
|
||||||
max="360"
|
max="360"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.scaleY"
|
v-model="entityOptions.scaleY"
|
||||||
/>
|
/>
|
||||||
<span class="unit">°</span>
|
<span class="unit">°</span>
|
||||||
@ -308,6 +319,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="0"
|
min="0"
|
||||||
max="360"
|
max="360"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.scaleZ"
|
v-model="entityOptions.scaleZ"
|
||||||
/>
|
/>
|
||||||
<span class="unit">°</span>
|
<span class="unit">°</span>
|
||||||
@ -340,6 +352,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="0"
|
min="0"
|
||||||
max="360"
|
max="360"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.alt"
|
v-model="entityOptions.alt"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
@ -386,6 +399,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="99"
|
max="99"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.labelFontSize"
|
v-model="entityOptions.labelFontSize"
|
||||||
/>
|
/>
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
@ -413,6 +427,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="99999999"
|
max="99999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.labelNear"
|
v-model="entityOptions.labelNear"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
@ -428,6 +443,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="99999999"
|
max="99999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.labelFar"
|
v-model="entityOptions.labelFar"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
@ -462,6 +478,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="999"
|
max="999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.labelLineWidth"
|
v-model="entityOptions.labelLineWidth"
|
||||||
/>
|
/>
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
@ -477,6 +494,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="0"
|
min="0"
|
||||||
max="999"
|
max="999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.labelPixelOffset"
|
v-model="entityOptions.labelPixelOffset"
|
||||||
/>
|
/>
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
@ -514,6 +532,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import { inject } from 'vue'
|
import { inject } from 'vue'
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||||
import attribute from './attribute.vue'
|
import attribute from './attribute.vue'
|
||||||
@ -521,6 +540,7 @@ import labelStyle from './labelStyle.vue'
|
|||||||
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||||
import { getFontList } from './fontSelect'
|
import { getFontList } from './fontSelect'
|
||||||
|
|
||||||
|
const { t } = useI18n()
|
||||||
const { cusUpdateNode, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
const fontList = ref(getFontList())
|
const fontList = ref(getFontList())
|
||||||
@ -713,9 +733,10 @@ const nodeEdit = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.name = entityOptions.value.name || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
baseDialog.value?.close()
|
|
||||||
let params = structuredClone(that.options)
|
let params = structuredClone(that.options)
|
||||||
|
baseDialog.value?.close()
|
||||||
delete params.attributeType
|
delete params.attributeType
|
||||||
delete params.attribute.ISC
|
delete params.attribute.ISC
|
||||||
delete params.attribute.camera
|
delete params.attribute.camera
|
||||||
|
|||||||
@ -15,18 +15,18 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">经度</span>
|
<span class="label">经度</span>
|
||||||
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lng" />
|
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lng" @input="$handleInputLimit" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">纬度</span>
|
<span class="label">纬度</span>
|
||||||
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.lat" />
|
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.lat" @input="$handleInputLimit" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">高度</span>
|
<span class="label">高度</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" v-model="entityOptions.alt">
|
<input class="input" type="number" title="" v-model="entityOptions.alt" @input="$handleInputLimit" />
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -43,7 +43,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">Z值统一增加</span>
|
<span class="label">Z值统一增加</span>
|
||||||
<div class="input-number input-number-unit-1 height-box" :class="{ 'disabled': heightMode == 2 }">
|
<div class="input-number input-number-unit-1 height-box" :class="{ 'disabled': heightMode == 2 }">
|
||||||
<input class="input height" type="number" title="" min="-9999999" max="999999999" v-model="height">
|
<input class="input height" type="number" title="" min="-9999999" max="999999999" v-model="height" @input="$handleInputLimit" />
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -66,15 +66,15 @@
|
|||||||
<div class="td">{{ i + 1 }}</div>
|
<div class="td">{{ i + 1 }}</div>
|
||||||
<div class="td lng align-center" @dblclick="inputDblclick($event, i, 'lng')">
|
<div class="td lng align-center" @dblclick="inputDblclick($event, i, 'lng')">
|
||||||
<input class="input" @blur="inputBlurCallBack($event, i, 'lng', 8)" type="number"
|
<input class="input" @blur="inputBlurCallBack($event, i, 'lng', 8)" type="number"
|
||||||
v-model="item.lng" min="-180" max="180" v-if="activeTd.index == i && activeTd.name == 'lng'">
|
v-model="item.lng" min="-180" max="180" v-if="activeTd.index == i && activeTd.name == 'lng'" @input="$handleInputLimit" />
|
||||||
<span style="pointer-events: none;" v-else>{{ (item.lng).toFixed(8) }}</span>
|
<span style="pointer-events: none;" v-else>{{ (item.lng).toFixed(8) }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="td lat align-center" @dblclick="inputDblclick($event, i, 'lat')">
|
<div class="td lat align-center" @dblclick="inputDblclick($event, i, 'lat')">
|
||||||
<input class="input" @blur="inputBlurCallBack($event, i, 'lat', 8)" type="number"
|
<input class="input" @blur="inputBlurCallBack($event, i, 'lat', 8)" type="number"
|
||||||
v-model="item.lat" min="-180" max="180" v-if="activeTd.index == i && activeTd.name == 'lat'">
|
v-model="item.lat" min="-180" max="180" v-if="activeTd.index == i && activeTd.name == 'lat'" @input="$handleInputLimit">
|
||||||
<span style="pointer-events: none;" v-else>{{ (item.lat).toFixed(8) }}</span>
|
<span style="pointer-events: none;" v-else>{{ (item.lat).toFixed(8) }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="td alt align-center" @dblclick="inputDblclick($event, i, 'alt')">
|
<div class="td alt align-center" @dblclick="inputDblclick($event, i, 'alt')" @input="$handleInputLimit">
|
||||||
<input class="input" @blur="inputBlurCallBack($event, i, 'alt', 2)" type="number"
|
<input class="input" @blur="inputBlurCallBack($event, i, 'alt', 2)" type="number"
|
||||||
v-model="entityOptions.height" min="-9999999" max="999999999"
|
v-model="entityOptions.height" min="-9999999" max="999999999"
|
||||||
v-if="activeTd.index == i && activeTd.name == 'alt'">
|
v-if="activeTd.index == i && activeTd.name == 'alt'">
|
||||||
@ -98,7 +98,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">描边宽度</span>
|
<span class="label">描边宽度</span>
|
||||||
<div class="input-number input-number-unit-2">
|
<div class="input-number input-number-unit-2">
|
||||||
<input class="input" type="number" title="" min="0" max="99" v-model="entityOptions.lineWidth">
|
<input class="input" type="number" title="" min="0" max="99" v-model="entityOptions.lineWidth" @input="$handleInputLimit">
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -132,6 +132,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { inject } from "vue";
|
import { inject } from "vue";
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||||
@ -139,6 +140,7 @@ import attribute from './attribute.vue'
|
|||||||
import labelStyle from './labelStyle.vue'
|
import labelStyle from './labelStyle.vue'
|
||||||
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||||
|
|
||||||
|
const { t } = useI18n()
|
||||||
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
const title = ref('面')
|
const title = ref('面')
|
||||||
@ -310,9 +312,10 @@ const nodeEdit = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.name = entityOptions.value.name || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
baseDialog.value?.close()
|
|
||||||
let params = structuredClone(that.options)
|
let params = structuredClone(that.options)
|
||||||
|
baseDialog.value?.close()
|
||||||
delete params.host
|
delete params.host
|
||||||
let params2 = {
|
let params2 = {
|
||||||
"id": params.id,
|
"id": params.id,
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
<div class="col" style="flex: 0 0 60%;">
|
<div class="col" style="flex: 0 0 60%;">
|
||||||
<span class="label">多面体高度</span>
|
<span class="label">多面体高度</span>
|
||||||
<div class="input-number input-number-unit-2" style="width: 100px;">
|
<div class="input-number input-number-unit-2" style="width: 100px;">
|
||||||
<input class="input" type="number" title="" min="0" max="99" v-model="entityOptions.height">
|
<input class="input" type="number" title="" min="0" max="99" v-model="entityOptions.height" @input="$handleInputLimit" />
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -74,6 +74,7 @@
|
|||||||
min="-9999999"
|
min="-9999999"
|
||||||
max="999999999"
|
max="999999999"
|
||||||
v-model="height"
|
v-model="height"
|
||||||
|
@input="$handleInputLimit"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -109,6 +110,7 @@
|
|||||||
v-model="item.lng"
|
v-model="item.lng"
|
||||||
min="-180"
|
min="-180"
|
||||||
max="180"
|
max="180"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-if="activeTd.index == i && activeTd.name == 'lng'"
|
v-if="activeTd.index == i && activeTd.name == 'lng'"
|
||||||
/>
|
/>
|
||||||
<span style="pointer-events: none" v-else>{{ item.lng.toFixed(8) }}</span>
|
<span style="pointer-events: none" v-else>{{ item.lng.toFixed(8) }}</span>
|
||||||
@ -121,6 +123,7 @@
|
|||||||
v-model="item.lat"
|
v-model="item.lat"
|
||||||
min="-180"
|
min="-180"
|
||||||
max="180"
|
max="180"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-if="activeTd.index == i && activeTd.name == 'lat'"
|
v-if="activeTd.index == i && activeTd.name == 'lat'"
|
||||||
/>
|
/>
|
||||||
<span style="pointer-events: none" v-else>{{ item.lat.toFixed(8) }}</span>
|
<span style="pointer-events: none" v-else>{{ item.lat.toFixed(8) }}</span>
|
||||||
@ -133,6 +136,7 @@
|
|||||||
v-model="item.alt"
|
v-model="item.alt"
|
||||||
min="-9999999"
|
min="-9999999"
|
||||||
max="999999999"
|
max="999999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-if="activeTd.index == i && activeTd.name == 'alt'"
|
v-if="activeTd.index == i && activeTd.name == 'alt'"
|
||||||
/>
|
/>
|
||||||
<span style="pointer-events: none" v-else>{{ item.alt.toFixed(2) }}</span>
|
<span style="pointer-events: none" v-else>{{ item.alt.toFixed(2) }}</span>
|
||||||
@ -157,6 +161,7 @@
|
|||||||
title=""
|
title=""
|
||||||
min="1"
|
min="1"
|
||||||
max="999"
|
max="999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.lineWidth"
|
v-model="entityOptions.lineWidth"
|
||||||
/>
|
/>
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
@ -209,6 +214,7 @@
|
|||||||
min="0"
|
min="0"
|
||||||
data-min="0.01"
|
data-min="0.01"
|
||||||
max="999999"
|
max="999999"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.extendWidth"
|
v-model="entityOptions.extendWidth"
|
||||||
/>
|
/>
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
@ -235,6 +241,7 @@
|
|||||||
min="0"
|
min="0"
|
||||||
max="999999"
|
max="999999"
|
||||||
step="1"
|
step="1"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.speed"
|
v-model="entityOptions.speed"
|
||||||
/>
|
/>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
@ -258,6 +265,7 @@
|
|||||||
min="0"
|
min="0"
|
||||||
max="4.5"
|
max="4.5"
|
||||||
step="0.1"
|
step="0.1"
|
||||||
|
@input="$handleInputLimit"
|
||||||
v-model="entityOptions.space"
|
v-model="entityOptions.space"
|
||||||
/>
|
/>
|
||||||
<span class="unit">倍</span>
|
<span class="unit">倍</span>
|
||||||
@ -294,6 +302,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, getCurrentInstance } from 'vue'
|
import { ref, getCurrentInstance } from 'vue'
|
||||||
import { inject } from 'vue'
|
import { inject } from 'vue'
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||||
@ -301,6 +310,7 @@ import attribute from './attribute.vue'
|
|||||||
import labelStyle from './labelStyle.vue'
|
import labelStyle from './labelStyle.vue'
|
||||||
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||||
|
|
||||||
|
const { t } = useI18n()
|
||||||
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
const baseDialog: any = ref(null)
|
const baseDialog: any = ref(null)
|
||||||
@ -479,6 +489,7 @@ const heightConfirm = () => {
|
|||||||
(entityOptions.value.options.positions[i].alt + Number(height.value)).toFixed(2)
|
(entityOptions.value.options.positions[i].alt + Number(height.value)).toFixed(2)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
that.positionEditing = false
|
||||||
that.smooth = that.smooth
|
that.smooth = that.smooth
|
||||||
}
|
}
|
||||||
const inputDblclick = async (event, i, anme) => {
|
const inputDblclick = async (event, i, anme) => {
|
||||||
@ -542,9 +553,10 @@ const closeCallback = () => {
|
|||||||
eventBus.emit('destroyComponent')
|
eventBus.emit('destroyComponent')
|
||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.name = entityOptions.value.name || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
baseDialog.value?.close()
|
|
||||||
let params = structuredClone(that.options)
|
let params = structuredClone(that.options)
|
||||||
|
baseDialog.value?.close()
|
||||||
delete params.host
|
delete params.host
|
||||||
let params2 = {
|
let params2 = {
|
||||||
id: params.id,
|
id: params.id,
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">经度</span>
|
<span class="label">经度</span>
|
||||||
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lng">
|
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lng" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">扫描半径</span>
|
<span class="label">扫描半径</span>
|
||||||
@ -38,11 +38,11 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">纬度</span>
|
<span class="label">纬度</span>
|
||||||
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.lat">
|
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.lat" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">扫描速度</span>
|
<span class="label">扫描速度</span>
|
||||||
<input class="input" type="number" title="" min="0" max="100" v-model="entityOptions.speed">
|
<input class="input" type="number" title="" min="0" max="100" v-model="entityOptions.speed" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -72,7 +72,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { ref, getCurrentInstance } from 'vue';
|
||||||
import { inject } from "vue";
|
import { inject } from "vue";
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
@ -82,6 +82,7 @@ import labelStyle from './labelStyle.vue'
|
|||||||
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||||
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
|
const { proxy } = getCurrentInstance()!
|
||||||
const baseDialog: any = ref(null);
|
const baseDialog: any = ref(null);
|
||||||
const eventBus: any = inject("bus");
|
const eventBus: any = inject("bus");
|
||||||
|
|
||||||
@ -166,7 +167,8 @@ const remove = () => {
|
|||||||
// 用户点击取消,不执行任何操作
|
// 用户点击取消,不执行任何操作
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const changeRadius = (val)=>{
|
const changeRadius = (e)=>{
|
||||||
|
proxy.$handleInputLimit(e)
|
||||||
if (radiusUnit.value == 'km') {
|
if (radiusUnit.value == 'km') {
|
||||||
entityOptions.value.radius = radius.value * 1000
|
entityOptions.value.radius = radius.value * 1000
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">经度</span>
|
<span class="label">经度</span>
|
||||||
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lng">
|
<input class="input" type="number" title="" min="-180" max="180" v-model="entityOptions.lng" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">扫描半径</span>
|
<span class="label">扫描半径</span>
|
||||||
@ -36,17 +36,17 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">纬度</span>
|
<span class="label">纬度</span>
|
||||||
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.lat">
|
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.lat" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">持续时间</span>
|
<span class="label">持续时间</span>
|
||||||
<input class="input" type="number" title="" min="0" max="100" v-model="entityOptions.duration">
|
<input class="input" type="number" title="" min="0" max="100" v-model="entityOptions.duration" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">高度</span>
|
<span class="label">高度</span>
|
||||||
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.alt">
|
<input class="input" type="number" title="" min="-90" max="90" v-model="entityOptions.alt" @input="$handleInputLimit">
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -88,7 +88,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { ref, getCurrentInstance } from 'vue';
|
||||||
import { inject } from "vue";
|
import { inject } from "vue";
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
@ -98,6 +98,7 @@ import labelStyle from './labelStyle.vue'
|
|||||||
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
import { useTreeNode } from '@/views/components/tree/hooks/treeNode'
|
||||||
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
|
const { proxy } = getCurrentInstance()!
|
||||||
const baseDialog: any = ref(null);
|
const baseDialog: any = ref(null);
|
||||||
const eventBus: any = inject("bus");
|
const eventBus: any = inject("bus");
|
||||||
|
|
||||||
@ -197,7 +198,8 @@ const remove = () => {
|
|||||||
// 用户点击取消,不执行任何操作
|
// 用户点击取消,不执行任何操作
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const changeRadius = (val) => {
|
const changeRadius = (e) => {
|
||||||
|
proxy.$handleInputLimit(e)
|
||||||
if (radiusUnit.value == 'km') {
|
if (radiusUnit.value == 'km') {
|
||||||
entityOptions.value.radius = radius.value * 1000
|
entityOptions.value.radius = radius.value * 1000
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
<span class="label">滚动速度</span>
|
<span class="label">滚动速度</span>
|
||||||
<input type="range" max="100" min="0" step="1" v-model="entityOptions.speed">
|
<input type="range" max="100" min="0" step="1" v-model="entityOptions.speed">
|
||||||
<div class="input-number" style="width: 100px;flex: 0 0 100px;margin-left: 10px;">
|
<div class="input-number" style="width: 100px;flex: 0 0 100px;margin-left: 10px;">
|
||||||
<input class="input" type="number" title="" min="0" max="100" step="1" v-model="entityOptions.speed">
|
<input class="input" type="number" title="" min="0" max="100" step="1" v-model="entityOptions.speed" @input="$handleInputLimit">
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -84,8 +84,8 @@ const open = async (id: any) => {
|
|||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
baseDialog.value?.close()
|
|
||||||
let params = structuredClone(that.options)
|
let params = structuredClone(that.options)
|
||||||
|
baseDialog.value?.close()
|
||||||
// 删除不必要的属性
|
// 删除不必要的属性
|
||||||
delete params.host
|
delete params.host
|
||||||
delete params.name
|
delete params.name
|
||||||
|
|||||||
@ -22,11 +22,13 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import { inject } from 'vue'
|
import { inject } from 'vue'
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||||
import { useTreeNode } from '../tree/hooks/treeNode'
|
import { useTreeNode } from '../tree/hooks/treeNode'
|
||||||
|
|
||||||
|
const { t } = useI18n()
|
||||||
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
const baseDialog: any = ref(null)
|
const baseDialog: any = ref(null)
|
||||||
@ -52,6 +54,7 @@ const open = async (id: any) => {
|
|||||||
await nextTick()
|
await nextTick()
|
||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.name = entityOptions.value.name || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
baseDialog.value?.close()
|
baseDialog.value?.close()
|
||||||
let params = {
|
let params = {
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<Dialog ref="baseDialog" title="倾斜摄影属性" left="calc(50% - 160px)" top="calc(50% - 120px)" :closeCallback="closeCallback">
|
<Dialog ref="baseDialog" title="倾斜摄影属性" left="180px" top="100px" :closeCallback="closeCallback">
|
||||||
<template #content>
|
<template #content>
|
||||||
<span class="custom-divider"></span>
|
<span class="custom-divider"></span>
|
||||||
<div class="div-item">
|
<div class="div-item">
|
||||||
@ -24,7 +24,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">精度</span>
|
<span class="label">精度</span>
|
||||||
<div class="input-number input-number-unit-3">
|
<div class="input-number input-number-unit-3">
|
||||||
<input class="input" type="number" title="" min="0.1" max="10" step="0.1" v-model="entityOptions.accuracy">
|
<input class="input" type="number" title="" min="0.1" max="10" step="0.1" v-model="entityOptions.accuracy" @input="$handleInputLimit">
|
||||||
<span class="unit">倍</span>
|
<span class="unit">倍</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -57,11 +57,13 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import { inject } from 'vue'
|
import { inject } from 'vue'
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||||
import { useTreeNode } from '../tree/hooks/treeNode'
|
import { useTreeNode } from '../tree/hooks/treeNode'
|
||||||
|
|
||||||
|
const { t } = useI18n()
|
||||||
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
const baseDialog: any = ref(null)
|
const baseDialog: any = ref(null)
|
||||||
@ -87,6 +89,7 @@ const open = async (id: any) => {
|
|||||||
await nextTick()
|
await nextTick()
|
||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.name = entityOptions.value.name || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.newData)
|
originalOptions = structuredClone(that.newData)
|
||||||
baseDialog.value?.close()
|
baseDialog.value?.close()
|
||||||
let params = {
|
let params = {
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label" style="flex: 0 0 70px;">起始点高度</span>
|
<span class="label" style="flex: 0 0 70px;">起始点高度</span>
|
||||||
<div class="input-number input-number-unit-1 height-box">
|
<div class="input-number input-number-unit-1 height-box">
|
||||||
<input class="input" type="number" title="" min="-9999999" max="999999999" v-model="entityOptions.height">
|
<input class="input" type="number" title="" min="-9999999" max="999999999" v-model="entityOptions.height" @input="$handleInputLimit">
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -27,7 +27,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">模型倍数</span>
|
<span class="label">模型倍数</span>
|
||||||
<div class="input-number input-number-unit-2">
|
<div class="input-number input-number-unit-2">
|
||||||
<input class="input" type="number" title="" min="0" max="99999" step="1" v-model="entityOptions.scale">
|
<input class="input" type="number" title="" min="0" max="99999" step="1" v-model="entityOptions.scale" @input="$handleInputLimit">
|
||||||
<span class="unit">倍</span>
|
<span class="unit">倍</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -37,7 +37,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label" style="flex: 0 0 70px;">运行速度</span>
|
<span class="label" style="flex: 0 0 70px;">运行速度</span>
|
||||||
<div class="input-number input-number-unit-3">
|
<div class="input-number input-number-unit-3">
|
||||||
<input class="input" type="number" title="" min="0" max="99999999" step="1" v-model="entityOptions.speed">
|
<input class="input" type="number" title="" min="0" max="99999999" step="1" v-model="entityOptions.speed" @input="$handleInputLimit">
|
||||||
<span class="unit">m/s</span>
|
<span class="unit">m/s</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -45,7 +45,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">延迟运动</span>
|
<span class="label">延迟运动</span>
|
||||||
<div class="input-number input-number-unit-3">
|
<div class="input-number input-number-unit-3">
|
||||||
<input class="input" type="number" title="" min="0" max="9999999" v-model="entityOptions.delay">
|
<input class="input" type="number" title="" min="0" max="9999999" v-model="entityOptions.delay" @input="$handleInputLimit">
|
||||||
<span class="unit">ms</span>
|
<span class="unit">ms</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -171,7 +171,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">字体大小</span>
|
<span class="label">字体大小</span>
|
||||||
<div class="input-number input-number-unit-2" style="width: 82px;">
|
<div class="input-number input-number-unit-2" style="width: 82px;">
|
||||||
<input class="input" type="number" title="" min="1" max="99" v-model="entityOptions.labelFontSize">
|
<input class="input" type="number" title="" min="1" max="99" v-model="entityOptions.labelFontSize" @input="$handleInputLimit">
|
||||||
<span class="unit">px</span>
|
<span class="unit">px</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -185,7 +185,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">最近距离</span>
|
<span class="label">最近距离</span>
|
||||||
<div class="input-number input-number-unit-1" style="width: 82px;">
|
<div class="input-number input-number-unit-1" style="width: 82px;">
|
||||||
<input class="input" type="number" title="" min="1" max="99999999" v-model="entityOptions.labelNear">
|
<input class="input" type="number" title="" min="1" max="99999999" v-model="entityOptions.labelNear" @input="$handleInputLimit">
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -193,7 +193,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<span class="label">最远距离</span>
|
<span class="label">最远距离</span>
|
||||||
<div class="input-number input-number-unit-1" style="width: 82px;">
|
<div class="input-number input-number-unit-1" style="width: 82px;">
|
||||||
<input class="input" type="number" title="" min="1" max="99999999" v-model="entityOptions.labelFar">
|
<input class="input" type="number" title="" min="1" max="99999999" v-model="entityOptions.labelFar" @input="$handleInputLimit">
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -217,12 +217,14 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import { inject } from 'vue'
|
import { inject } from 'vue'
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
import { TreeApi } from '@/api/tree'
|
import { TreeApi } from '@/api/tree'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import Dialog from '@/components/dialog/baseDialog.vue'
|
import Dialog from '@/components/dialog/baseDialog.vue'
|
||||||
import { useTreeNode } from '../tree/hooks/treeNode'
|
import { useTreeNode } from '../tree/hooks/treeNode'
|
||||||
import { getFontList } from './fontSelect'
|
import { getFontList } from './fontSelect'
|
||||||
|
|
||||||
|
const { t } = useI18n()
|
||||||
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
const { cusUpdateNode, getSelectedNodes, cusRemoveNode } = useTreeNode()
|
||||||
|
|
||||||
const baseDialog: any = ref(null)
|
const baseDialog: any = ref(null)
|
||||||
@ -265,9 +267,10 @@ const open = async (id: any) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.name = entityOptions.value.name || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
baseDialog.value?.close()
|
|
||||||
let params = structuredClone(that.options)
|
let params = structuredClone(that.options)
|
||||||
|
baseDialog.value?.close()
|
||||||
// 删除不必要的属性
|
// 删除不必要的属性
|
||||||
delete params.host
|
delete params.host
|
||||||
delete params.label.text
|
delete params.label.text
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
<span class="label">宽度</span>
|
<span class="label">宽度</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" data-min="0.01" min="0.01" max="999999"
|
<input class="input" type="number" title="" data-min="0.01" min="0.01" max="999999"
|
||||||
v-model="entityOptions.width">
|
v-model="entityOptions.width" @input="$handleInputLimit">
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -31,7 +31,7 @@
|
|||||||
<span class="label">拉伸高度</span>
|
<span class="label">拉伸高度</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" min="0" max="999999999"
|
<input class="input" type="number" title="" min="0" max="999999999"
|
||||||
v-model="entityOptions.extrudedHeight">
|
v-model="entityOptions.extrudedHeight" @input="$handleInputLimit">
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
<span class="label">拉伸高度</span>
|
<span class="label">拉伸高度</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" min="0" max="999999999"
|
<input class="input" type="number" title="" min="0" max="999999999"
|
||||||
v-model="entityOptions.extrudedHeight">
|
v-model="entityOptions.extrudedHeight" @input="$handleInputLimit">
|
||||||
<span class="unit">m</span>
|
<span class="unit">m</span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
<span class="label">水面振幅</span>
|
<span class="label">水面振幅</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" min="0" max="100" step="1"
|
<input class="input" type="number" title="" min="0" max="100" step="1"
|
||||||
v-model="entityOptions.amplitude">
|
v-model="entityOptions.amplitude" @input="$handleInputLimit">
|
||||||
<span class="unit"></span>
|
<span class="unit"></span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -41,7 +41,7 @@
|
|||||||
<span class="label">动画速度</span>
|
<span class="label">动画速度</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" min="0" max="10" step="0.1"
|
<input class="input" type="number" title="" min="0" max="10" step="0.1"
|
||||||
v-model="entityOptions.animationSpeed">
|
v-model="entityOptions.animationSpeed" @input="$handleInputLimit">
|
||||||
<span class="unit"></span>
|
<span class="unit"></span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
@ -50,7 +50,7 @@
|
|||||||
<span class="label">水面振幅</span>
|
<span class="label">水面振幅</span>
|
||||||
<div class="input-number input-number-unit-1">
|
<div class="input-number input-number-unit-1">
|
||||||
<input class="input" type="number" title="" min="0" max="100" step="1"
|
<input class="input" type="number" title="" min="0" max="100" step="1"
|
||||||
v-model="entityOptions.frequency">
|
v-model="entityOptions.frequency" @input="$handleInputLimit">
|
||||||
<span class="unit"></span>
|
<span class="unit"></span>
|
||||||
<span class="arrow"></span>
|
<span class="arrow"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -429,9 +429,13 @@ export const useRightOperate = () => {
|
|||||||
let entityObject = (window as any)._entityMap.get(params.id)
|
let entityObject = (window as any)._entityMap.get(params.id)
|
||||||
entityObject.resetCustomView()
|
entityObject.resetCustomView()
|
||||||
params.customView = entityObject.customView
|
params.customView = entityObject.customView
|
||||||
|
let sourceName = params.name
|
||||||
|
if(node.sourceType == 'standText' || node.sourceType == 'groundText') {
|
||||||
|
sourceName = params.text
|
||||||
|
}
|
||||||
let params2 = {
|
let params2 = {
|
||||||
"id": node.id,
|
"id": node.id,
|
||||||
"sourceName": params.name,
|
"sourceName": sourceName,
|
||||||
// "sourceType": node.sourceType,
|
// "sourceType": node.sourceType,
|
||||||
// "parentId": node.parentId,
|
// "parentId": node.parentId,
|
||||||
// "treeIndex": node.treeIndex,
|
// "treeIndex": node.treeIndex,
|
||||||
|
|||||||
@ -72,7 +72,9 @@ function leftClick(options) {
|
|||||||
// item.previewUrl = res.url;
|
// item.previewUrl = res.url;
|
||||||
// });
|
// });
|
||||||
// });
|
// });
|
||||||
if (node) {
|
if (node && (node.sourceType === "point" || node.sourceType === "linkImage" || node.sourceType === "vrImage" || node.sourceType === "line" || node.sourceType === "curve" || node.sourceType === "panel" || node.sourceType === "rectangle"
|
||||||
|
|| node.sourceType === "circle" || node.sourceType === "ellipse" || node.sourceType === "sector" || node.sourceType === "rendezvous" || node.sourceType === "attackArrow" || node.sourceType === "pincerArrow" || node.sourceType === "straightArrow"
|
||||||
|
|| node.sourceType === "model" || node.sourceType === "military" || node.sourceType === "wallStereoscopic" || node.sourceType === "entityWall" || node.sourceType === "diffuseScan" || node.sourceType === "radarScan" || node.sourceType === "scanStereoscopic")) {
|
||||||
if (
|
if (
|
||||||
!options.richTextContent &&
|
!options.richTextContent &&
|
||||||
!info.hrefs.length &&
|
!info.hrefs.length &&
|
||||||
|
|||||||
@ -783,9 +783,11 @@ defineExpose({
|
|||||||
|
|
||||||
.el-select-dropdown__wrap {
|
.el-select-dropdown__wrap {
|
||||||
max-height: 260px !important;
|
max-height: 260px !important;
|
||||||
width: 380px !important;
|
|
||||||
}
|
}
|
||||||
.custom-dropdown {
|
.custom-dropdown {
|
||||||
margin-top: 75px;
|
margin-top: 75px;
|
||||||
}
|
}
|
||||||
|
.custom-dropdown2 {
|
||||||
|
width: 380px !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user