Merge branch 'zyl' of http://xny.yj-3d.com:3000/zhouyulong/electron-4 into zyl
This commit is contained in:
2
src/renderer/components.d.ts
vendored
2
src/renderer/components.d.ts
vendored
@ -20,10 +20,12 @@ declare module 'vue' {
|
|||||||
ElDialog: typeof import('element-plus/es')['ElDialog']
|
ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||||
ElForm: typeof import('element-plus/es')['ElForm']
|
ElForm: typeof import('element-plus/es')['ElForm']
|
||||||
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
||||||
|
ElIcon: typeof import('element-plus/es')['ElIcon']
|
||||||
ElImage: typeof import('element-plus/es')['ElImage']
|
ElImage: typeof import('element-plus/es')['ElImage']
|
||||||
ElInput: typeof import('element-plus/es')['ElInput']
|
ElInput: typeof import('element-plus/es')['ElInput']
|
||||||
ElOption: typeof import('element-plus/es')['ElOption']
|
ElOption: typeof import('element-plus/es')['ElOption']
|
||||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||||
|
ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm']
|
||||||
ElRow: typeof import('element-plus/es')['ElRow']
|
ElRow: typeof import('element-plus/es')['ElRow']
|
||||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||||
ElSlider: typeof import('element-plus/es')['ElSlider']
|
ElSlider: typeof import('element-plus/es')['ElSlider']
|
||||||
|
|||||||
@ -513,6 +513,7 @@
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
scrollbar-gutter: stable;
|
scrollbar-gutter: stable;
|
||||||
width: calc(100% + 1px);
|
width: calc(100% + 1px);
|
||||||
|
height: 194px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.YJ-custom-base-dialog>.content .table .align-center,
|
.YJ-custom-base-dialog>.content .table .align-center,
|
||||||
|
|||||||
@ -688,6 +688,9 @@
|
|||||||
},
|
},
|
||||||
nodeTitle: function (setting, node) {
|
nodeTitle: function (setting, node) {
|
||||||
var t = setting.data.key.title === '' ? setting.data.key.name : setting.data.key.title
|
var t = setting.data.key.title === '' ? setting.data.key.name : setting.data.key.title
|
||||||
|
if(!node[t]) {
|
||||||
|
t = setting.data.key.name
|
||||||
|
}
|
||||||
var rawTitle = '' + node[t]
|
var rawTitle = '' + node[t]
|
||||||
if (typeof setting.data.render.title === 'function') {
|
if (typeof setting.data.render.title === 'function') {
|
||||||
return setting.data.render.title.call(this, rawTitle, node)
|
return setting.data.render.title.call(this, rawTitle, node)
|
||||||
@ -1489,6 +1492,7 @@
|
|||||||
html.push('</a>')
|
html.push('</a>')
|
||||||
},
|
},
|
||||||
makeDOMNodeNameBefore: function (html, setting, node) {
|
makeDOMNodeNameBefore: function (html, setting, node) {
|
||||||
|
console.log('=================', setting, node)
|
||||||
var title = data.nodeTitle(setting, node),
|
var title = data.nodeTitle(setting, node),
|
||||||
url = view.makeNodeUrl(setting, node),
|
url = view.makeNodeUrl(setting, node),
|
||||||
fontcss = view.makeNodeFontCss(setting, node),
|
fontcss = view.makeNodeFontCss(setting, node),
|
||||||
|
|||||||
@ -96,6 +96,10 @@ window.newFuzzySearch = function (
|
|||||||
let str = '<span style="color: whitesmoke;background-color: darkred;">' + h + '</span>'
|
let str = '<span style="color: whitesmoke;background-color: darkred;">' + h + '</span>'
|
||||||
return str
|
return str
|
||||||
})
|
})
|
||||||
|
item.title = item.oldname.replace(F, function (h) {
|
||||||
|
let str = h
|
||||||
|
return str
|
||||||
|
})
|
||||||
|
|
||||||
// let a = item.name
|
// let a = item.name
|
||||||
// a = '<span style="color: whitesmoke;background-color: darkred;">' + a + "</span>"
|
// a = '<span style="color: whitesmoke;background-color: darkred;">' + a + "</span>"
|
||||||
|
|||||||
@ -85,8 +85,12 @@ service.interceptors.response.use(
|
|||||||
if (response.data.code == 401) {
|
if (response.data.code == 401) {
|
||||||
router.push('/')
|
router.push('/')
|
||||||
localStorage.removeItem('Authorization')
|
localStorage.removeItem('Authorization')
|
||||||
|
ElMessage({
|
||||||
|
message: "登录过期,请重新登录",
|
||||||
|
type: 'error'
|
||||||
|
})
|
||||||
}
|
}
|
||||||
if (![0, 200].includes(response.data.code)) {
|
else if (![0, 200].includes(response.data.code)) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: response.data.msg || response.data.message,
|
message: response.data.msg || response.data.message,
|
||||||
type: 'error'
|
type: 'error'
|
||||||
|
|||||||
@ -10,13 +10,22 @@ export const addMapSource = async ({type, id, sourceName = '未命名对象', op
|
|||||||
let options: any = await initMapData(type, opt, null)
|
let options: any = await initMapData(type, opt, null)
|
||||||
let selectedNodes = window.treeObj.getSelectedNodes()
|
let selectedNodes = window.treeObj.getSelectedNodes()
|
||||||
let node = selectedNodes && selectedNodes[selectedNodes.length - 1]
|
let node = selectedNodes && selectedNodes[selectedNodes.length - 1]
|
||||||
|
function getParentId(nd: any) {
|
||||||
|
if (nd.sourceType === 'directory') {
|
||||||
|
return nd.id
|
||||||
|
} else {
|
||||||
|
let parentNode = window.treeObj.getNodeByParam("id", nd.parentId, null);
|
||||||
|
if(parentNode) {
|
||||||
|
return getParentId(parentNode)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
let parentId
|
let parentId
|
||||||
if (node) {
|
if (node) {
|
||||||
if (node.sourceType === 'directory') {
|
parentId = getParentId(node)
|
||||||
parentId = node.id
|
|
||||||
} else {
|
|
||||||
parentId = node.parentId
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
delete options.host
|
delete options.host
|
||||||
if(options.attribute && options.attribute.rtmp) {
|
if(options.attribute && options.attribute.rtmp) {
|
||||||
|
|||||||
1
src/renderer/src/icons/svg/addEventTs.svg
Normal file
1
src/renderer/src/icons/svg/addEventTs.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="12" viewBox="0 0 12 12" fill="none"><path d="M5.25 0L5.25 2.25L4.5 2.25L4.5 3.75L10.5 3.75L10.5 9.75001L4.5 9.75001L4.5 12L3.75 12L3.75 9.75001L1.5 9.75001L1.5 3.75L3.75 3.75L3.75 2.25L3 2.25L3 0L5.25 0ZM3.75 4.5L2.25 4.5L2.25 9.00001L3.75 9.00001L3.75 4.5ZM9.75 4.5L4.5 4.5L4.5 9.00001L9.75 9.00001L9.75 4.5ZM0.75 4.5L0.75 9.00001L0 9.00001L0 4.5L0.75 4.5ZM12 4.5L12 9.00001L11.25 9.00001L11.25 4.5L12 4.5ZM5.625 5.5965L7.125 6.7215L5.625 7.8465L5.625 5.5965ZM4.5 0.75L3.75 0.75L3.75 1.5L4.5 1.5L4.5 0.75Z" fill="#00FFFF" ></path></svg>
|
||||||
|
After Width: | Height: | Size: 641 B |
@ -186,7 +186,7 @@ const initTreeCallBack = () => {
|
|||||||
});
|
});
|
||||||
if ((window as any).earth_ts) {
|
if ((window as any).earth_ts) {
|
||||||
for (let i = 0; i < layers.length; i++) {
|
for (let i = 0; i < layers.length; i++) {
|
||||||
// initMapData(layers[i].sourceType, layers[i].detail, null)
|
initMapData(layers[i].sourceType, layers[i].detail, null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
112
src/renderer/src/views/TS/components/MouseRight.vue
Normal file
112
src/renderer/src/views/TS/components/MouseRight.vue
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
<template>
|
||||||
|
<div class="MouseRight">
|
||||||
|
<div v-for="item in menus" class="item" @click="item.fun">
|
||||||
|
<svg-icon :name="item.icon||item.key" :size="14"></svg-icon>
|
||||||
|
{{ item.name }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import {ref} from 'vue'
|
||||||
|
import {TsApi} from "../../../api/ts";
|
||||||
|
import {ElMessage} from "element-plus";
|
||||||
|
import {useRightOperate} from './rightOperate'
|
||||||
|
|
||||||
|
let {delNode, addEvent} = useRightOperate()
|
||||||
|
|
||||||
|
const eventBus = inject("bus");
|
||||||
|
let setOrReset = ref(1)
|
||||||
|
let setView = (flag) => {
|
||||||
|
// let cusView = window['YJ'].Global.getCurrentView(window['earth_ts'])
|
||||||
|
let node = window['treeObj'].getNodeByParam("id", window['selectedIdTs'], null);
|
||||||
|
let {
|
||||||
|
id,
|
||||||
|
sourceName,
|
||||||
|
sourceType,
|
||||||
|
sourcePath,
|
||||||
|
parentId,
|
||||||
|
isShow,
|
||||||
|
detail,
|
||||||
|
params,
|
||||||
|
planId,
|
||||||
|
} = node
|
||||||
|
let entity = window['_entityMap'].get(id)
|
||||||
|
if (flag)
|
||||||
|
entity.setCustomView()
|
||||||
|
|
||||||
|
else
|
||||||
|
entity.resetCustomView()
|
||||||
|
const detailobj = {...JSON.parse(detail ?? '{}'), customView: flag ? entity.customView : null};
|
||||||
|
let obj = {
|
||||||
|
id,
|
||||||
|
sourceName,
|
||||||
|
sourceType,
|
||||||
|
sourcePath,
|
||||||
|
parentId,
|
||||||
|
treeIndex: node.getIndex(),
|
||||||
|
isShow: isShow ? 1 : 0,
|
||||||
|
detail: JSON.stringify(detailobj),
|
||||||
|
params,
|
||||||
|
planId
|
||||||
|
}
|
||||||
|
TsApi.updateTsSource(obj).then(res => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
ElMessage({type: "success", message: "操作成功"})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
let deleteNode = () => {
|
||||||
|
let node = window['treeObj'].getNodeByParam("id", window['selectedIdTs'], null);
|
||||||
|
delNode(node, eventBus)
|
||||||
|
}
|
||||||
|
let addEventTs = () => {
|
||||||
|
let node = window['treeObj'].getNodeByParam("id", window['selectedIdTs'], null);
|
||||||
|
addEvent(node, eventBus)
|
||||||
|
}
|
||||||
|
let menus = ref([
|
||||||
|
{name: "添加态势事件", key: "addEventTs", fun: addEventTs},
|
||||||
|
{},
|
||||||
|
{
|
||||||
|
name: '删除', key: "delModel", fun: deleteNode
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
eventBus.on("initMenus", () => {
|
||||||
|
let customView = null
|
||||||
|
let entity = window['_entityMap'].get(window['selectedIdTs'])
|
||||||
|
customView = Boolean(entity.customView && entity.customView.orientation)
|
||||||
|
setOrReset.value = customView ? 0 : 1
|
||||||
|
menus.value[1] =
|
||||||
|
{
|
||||||
|
name: setOrReset.value ? "视角设定" : "重置视角", key: setOrReset.value ? "setView" : "resetView", fun: () => {
|
||||||
|
setView(setOrReset.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.MouseRight {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 999;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background: rgba(0, 0, 0, 0.6);
|
||||||
|
//width: 110px;
|
||||||
|
padding: 5px;
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
padding: 0 5px;
|
||||||
|
font-size: 15px;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: #0ff;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -137,7 +137,10 @@ onMounted(() => {
|
|||||||
for (let i = 0; i < doms.length; i++) {
|
for (let i = 0; i < doms.length; i++) {
|
||||||
doms[i].style.lineHeight = "19px"
|
doms[i].style.lineHeight = "19px"
|
||||||
}*/
|
}*/
|
||||||
let panelHeight = window['tsObj']._Store.getDomElement(".chart", 0).getBoundingClientRect().height
|
let panel = window['tsObj']._Store.getDomElement(".chart", 0)
|
||||||
|
if (!panel)
|
||||||
|
return
|
||||||
|
let panelHeight = panel.getBoundingClientRect().height
|
||||||
|
|
||||||
// 转为字符串并按 "." 分割
|
// 转为字符串并按 "." 分割
|
||||||
const [whole, decimalStr] = String(panelHeight).split('.');
|
const [whole, decimalStr] = String(panelHeight).split('.');
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
@click="itemClicks(item)"
|
@click="itemClicks(item)"
|
||||||
>
|
>
|
||||||
<div class="itemIcon">
|
<div class="itemIcon">
|
||||||
<svg-icon :name="item.key" :size="14"></svg-icon>
|
<svg-icon :name="item.icon||item.key" :size="14"></svg-icon>
|
||||||
</div>
|
</div>
|
||||||
<div class="itemText">
|
<div class="itemText">
|
||||||
{{ t(`rightMenu.${item.key}`) }}
|
{{ t(`rightMenu.${item.key}`) }}
|
||||||
|
|||||||
@ -128,6 +128,8 @@ export const useRightOperate = () => {
|
|||||||
}
|
}
|
||||||
let detail = JSON.parse(res.data.detail)
|
let detail = JSON.parse(res.data.detail)
|
||||||
let mapParams = {...detail, ...res.data.params}
|
let mapParams = {...detail, ...res.data.params}
|
||||||
|
if (res.data.sourceType)
|
||||||
|
sourceType = res.data.sourceType
|
||||||
initMapData(sourceType, mapParams, entity => {
|
initMapData(sourceType, mapParams, entity => {
|
||||||
entity.flyTo()
|
entity.flyTo()
|
||||||
|
|
||||||
@ -205,11 +207,12 @@ export const useRightOperate = () => {
|
|||||||
},
|
},
|
||||||
addEvent: {
|
addEvent: {
|
||||||
key: 'addEvent',
|
key: 'addEvent',
|
||||||
|
icon: 'addEventTs',
|
||||||
callback: addEvent
|
callback: addEvent
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
return {
|
return {
|
||||||
rightMenus
|
rightMenus, delNode, addEvent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,6 +39,7 @@
|
|||||||
<deduction :TSOBJ="tsOBJ"></deduction>
|
<deduction :TSOBJ="tsOBJ"></deduction>
|
||||||
<newEvent></newEvent>
|
<newEvent></newEvent>
|
||||||
<addDirectory class="adddirectoryBox absolute zIndex999"></addDirectory>
|
<addDirectory class="adddirectoryBox absolute zIndex999"></addDirectory>
|
||||||
|
<mouseRight></mouseRight>
|
||||||
|
|
||||||
<!-- 方案描述编辑框 -->
|
<!-- 方案描述编辑框 -->
|
||||||
<!--<div class="dialogBox">-->
|
<!--<div class="dialogBox">-->
|
||||||
@ -110,13 +111,14 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
//@ts-nocheck
|
//@ts-nocheck
|
||||||
import {ref, reactive, onMounted, nextTick, onUnmounted} from "vue";
|
import {ref, reactive, onMounted, nextTick, onUnmounted,} from "vue";
|
||||||
import {useRouter, useRoute} from "vue-router";
|
import {useRouter, useRoute} from "vue-router";
|
||||||
import Cabin from "./cabin.vue"
|
import Cabin from "./cabin.vue"
|
||||||
import Element from "./element.vue"
|
import Element from "./element.vue"
|
||||||
import NewEvent from "./newEvent.vue"
|
import NewEvent from "./newEvent.vue"
|
||||||
import Deduction from "./deduction.vue";
|
import Deduction from "./deduction.vue";
|
||||||
import AddDirectory from './components/tsdirectory.vue'
|
import AddDirectory from './components/tsdirectory.vue'
|
||||||
|
import MouseRight from './components/MouseRight.vue'
|
||||||
import {TS} from "./sdk";
|
import {TS} from "./sdk";
|
||||||
import * as domain from "domain";
|
import * as domain from "domain";
|
||||||
import {TsApi} from "../../api/ts";
|
import {TsApi} from "../../api/ts";
|
||||||
@ -246,6 +248,8 @@ onMounted(async () => {
|
|||||||
// getAuthInfo()
|
// getAuthInfo()
|
||||||
await YJ.on({host: baseURL})
|
await YJ.on({host: baseURL})
|
||||||
createEarth()
|
createEarth()
|
||||||
|
window.addEventListener('click', handleClick)
|
||||||
|
// window.addEventListener('contextmenu', handleClick)
|
||||||
})
|
})
|
||||||
const createEarth = async () => {
|
const createEarth = async () => {
|
||||||
(window as any).earth_ts = await new YJ.YJEarth('earthContainer', {navigationHelpButton: false})
|
(window as any).earth_ts = await new YJ.YJEarth('earthContainer', {navigationHelpButton: false})
|
||||||
@ -296,10 +300,20 @@ const timer = setInterval(() => {
|
|||||||
}).replace(/\//g, '-');
|
}).replace(/\//g, '-');
|
||||||
stamp.value = formattedDate
|
stamp.value = formattedDate
|
||||||
}, 1000)
|
}, 1000)
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
clearInterval(timer)
|
clearInterval(timer)
|
||||||
|
window.removeEventListener('click', handleClick)
|
||||||
|
// window.removeEventListener('contextmenu', handleClick)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 定义可复用的回调函数
|
||||||
|
const handleClick = (e) => {
|
||||||
|
console.log('点击事件触发', e)
|
||||||
|
let dom = $('.MouseRight')[0]
|
||||||
|
if (dom) dom.style.display = "none"
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import {TsApi} from "../../api/ts";
|
import {TsApi} from "../../api/ts";
|
||||||
import {useTreeNode} from '@/views/components/tree/hooks/treeNode'
|
import {useTreeNode} from '@/views/components/tree/hooks/treeNode'
|
||||||
import {rightClick} from "../components/tree/entityClick";
|
import {bus} from "../../utils/bus"
|
||||||
|
|
||||||
const {cusAddNodes, getSelectedNode} = useTreeNode()
|
const {cusAddNodes, getSelectedNode} = useTreeNode()
|
||||||
|
|
||||||
@ -40,6 +40,11 @@ export function initMapData(type, data, cb: any = null) {
|
|||||||
cb && cb(entityObject)
|
cb && cb(entityObject)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
break
|
||||||
|
case 'layer':
|
||||||
|
data.host = baseURL
|
||||||
|
entityObject = new YJ.Obj.Layer(window['earth_ts'], data)
|
||||||
|
cb && cb(entityObject)
|
||||||
break
|
break
|
||||||
case "guiji":
|
case "guiji":
|
||||||
entityObject = new YJ.Obj.TrajectoryMotionObject(
|
entityObject = new YJ.Obj.TrajectoryMotionObject(
|
||||||
@ -69,13 +74,20 @@ export function initMapData(type, data, cb: any = null) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
//鼠标右键点击事件
|
//鼠标右键点击事件
|
||||||
entityObject.onRightClick = () => {
|
entityObject.onRightClick = (event) => {
|
||||||
// rightClick(getOptions());
|
// rightClick(getOptions());
|
||||||
console.log("鼠标右键点击事件")
|
console.log("鼠标右键点击事件", options.id, event)
|
||||||
let id = options.id;
|
let id = options.id;
|
||||||
|
|
||||||
let node = window.treeObj.getNodeByParam("id", id, null);
|
let node = window.treeObj.getNodeByParam("id", id, null);
|
||||||
if (node) window.treeObj.selectNode(node);
|
if (node) window.treeObj.selectNode(node);
|
||||||
YJ.Global.splitScreen.setActiveId([id]);
|
window['selectedIdTs'] = id
|
||||||
|
// YJ.Global.splitScreen.setActiveId([id]);
|
||||||
|
$('.MouseRight')[0].style.display = "block"
|
||||||
|
$('.MouseRight')[0].style.top = event.position.y + "px"
|
||||||
|
$('.MouseRight')[0].style.left = event.position.x + "px"
|
||||||
|
|
||||||
|
bus.emit("initMenus")
|
||||||
};
|
};
|
||||||
return options
|
return options
|
||||||
|
|
||||||
|
|||||||
@ -150,7 +150,7 @@ let pageSize: any = ref(10)
|
|||||||
let pageNum: any = ref(1)
|
let pageNum: any = ref(1)
|
||||||
let total: any = ref(0)
|
let total: any = ref(0)
|
||||||
const back = () => {
|
const back = () => {
|
||||||
ipcRenderer.send('toggle-fullscreen', false)
|
// ipcRenderer.send('toggle-fullscreen', false)
|
||||||
router.push({path: '/home'})
|
router.push({path: '/home'})
|
||||||
}
|
}
|
||||||
const handleSizeChange = (val) => {
|
const handleSizeChange = (val) => {
|
||||||
|
|||||||
@ -41,7 +41,8 @@ export const showRightMenuTs = (event: any, treeObj: any, selectedNodes, nodeTyp
|
|||||||
try {
|
try {
|
||||||
arr = [...nodeType[selectedNodes[0].sourceType].rightMenus]
|
arr = [...nodeType[selectedNodes[0].sourceType].rightMenus]
|
||||||
console.log("rightMenus", nodeType[selectedNodes[0].sourceType].rightMenus)
|
console.log("rightMenus", nodeType[selectedNodes[0].sourceType].rightMenus)
|
||||||
arr.push('addEvent')
|
if (!['tileset', 'directory', 'layer', 'terrain',].includes(selectedNodes[0].sourceType))
|
||||||
|
arr.push('addEvent')
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log('e', e, selectedNodes[0].sourceType)
|
console.log('e', e, selectedNodes[0].sourceType)
|
||||||
arr = []
|
arr = []
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="bottomMenuBox zIndex9" ref="bottomMenuBox">
|
<div class="bottomMenuBox zIndex9" ref="bottomMenuBox">
|
||||||
<div class="animate__animated bottomMenu">
|
<div class="animate__animated bottomMenu">
|
||||||
<div class="bottom_box" v-for="(item, i) of bottomMenuList" :key="i" :title="t('bottomMenu.' + item.sourceType)">
|
<div class="bottom_box" v-for="(item, i) of bottomMenuList" :key="i">
|
||||||
<div class="bottom_box_content" @click="addMarker(item, $event)">
|
<div class="bottom_box_content" @click="addMarker(item, $event)" :title="t('bottomMenu.' + item.sourceType)">
|
||||||
<svg class="bottom_box_bg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
<svg class="bottom_box_bg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
width="117.030029296875" height="44" viewBox="0 0 117.030029296875 44" fill="none"
|
width="117.030029296875" height="44" viewBox="0 0 117.030029296875 44" fill="none"
|
||||||
preserveAspectRatio="none">
|
preserveAspectRatio="none">
|
||||||
@ -40,7 +40,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="bottom_children" v-if="item.children" v-show="item.childrenShow">
|
<div class="bottom_children" v-if="item.children" v-show="item.childrenShow">
|
||||||
<div class="bottom_childre_box" v-for="(item2, m) of item.children" :key="m"
|
<div class="bottom_childre_box" v-for="(item2, m) of item.children" :key="m"
|
||||||
@click="addMarker(item2, $event)">
|
@click="addMarker(item2, $event)" :title="t('bottomMenu.' + item2.sourceType)">
|
||||||
<svg class="bottom_childre_box_bg" xmlns="http://www.w3.org/2000/svg"
|
<svg class="bottom_childre_box_bg" xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink" width="6vw" height="44.5" viewBox="0 0 119 35.5" fill="none"
|
xmlns:xlink="http://www.w3.org/1999/xlink" width="6vw" height="44.5" viewBox="0 0 119 35.5" fill="none"
|
||||||
preserveAspectRatio="none">
|
preserveAspectRatio="none">
|
||||||
@ -595,6 +595,7 @@ const fold = () => {
|
|||||||
const itemDuration = 300
|
const itemDuration = 300
|
||||||
if (isFolded.value) {
|
if (isFolded.value) {
|
||||||
// 展开状态
|
// 展开状态
|
||||||
|
bottomMenuBox.value.style.pointerEvents = 'unset'
|
||||||
items.forEach((item: any, index) => {
|
items.forEach((item: any, index) => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
item.style.transition = 'transform 0.3s ease'
|
item.style.transition = 'transform 0.3s ease'
|
||||||
@ -606,6 +607,7 @@ const fold = () => {
|
|||||||
bottom_left.style.transform = 'rotate(270deg)'
|
bottom_left.style.transform = 'rotate(270deg)'
|
||||||
} else {
|
} else {
|
||||||
// 折叠状态
|
// 折叠状态
|
||||||
|
bottomMenuBox.value.style.pointerEvents = 'none'
|
||||||
items.forEach((item: any, index: any) => {
|
items.forEach((item: any, index: any) => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
item.style.transition = 'transform 0.3s ease'
|
item.style.transition = 'transform 0.3s ease'
|
||||||
@ -817,6 +819,7 @@ document.addEventListener('click', (e: any) => {
|
|||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
transform: rotate(270deg);
|
transform: rotate(270deg);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
pointer-events: all;
|
||||||
|
|
||||||
>svg {
|
>svg {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="leftBox">
|
<div class="leftBox" ref="leftBoxRef">
|
||||||
<div class="left animate__animated">
|
<div class="left animate__animated">
|
||||||
<div class="menus">
|
<div class="menus">
|
||||||
<div class="menus_itemBox" v-for="(item, index) in menuList" :title="t(`firstMenu.${item.name}`)">
|
<div class="menus_itemBox" v-for="(item, index) in menuList" :title="t(`firstMenu.${item.name}`)">
|
||||||
@ -19,34 +19,34 @@
|
|||||||
stroke-linejoin="round" />
|
stroke-linejoin="round" />
|
||||||
</svg> -->
|
</svg> -->
|
||||||
<svg class="item_icon_bg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
<svg class="item_icon_bg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
width="162" height="44" viewBox="0 0 162 44" fill="none" preserveAspectRatio="none">
|
width="162" height="44" viewBox="0 0 162 44" fill="none" preserveAspectRatio="none">
|
||||||
<path fill="#000000" fill-opacity="0.5" d="M0 44L136.639 44L162 18L162 0L0 0L0 44Z"/>
|
<path fill="#000000" fill-opacity="0.5" d="M0 44L136.639 44L162 18L162 0L0 0L0 44Z" />
|
||||||
<path fill-rule="evenodd" fill="url(#linear_border_2218_109_0)"
|
<path fill-rule="evenodd" fill="url(#linear_border_2218_109_0)"
|
||||||
d="M136.006 42.5L1.5 42.5L1.5 1.5L160.5 1.5L160.5 17.3896L136.006 42.5ZM136.639 44L0 44L0 0L162 0L162 18L136.639 44Z"/>
|
d="M136.006 42.5L1.5 42.5L1.5 1.5L160.5 1.5L160.5 17.3896L136.006 42.5ZM136.639 44L0 44L0 0L162 0L162 18L136.639 44Z" />
|
||||||
<path d="M0 0L15.0533 0L49.1742 41L98.4484 41.2681L102 44L0 44L0 0Z"
|
<path d="M0 0L15.0533 0L49.1742 41L98.4484 41.2681L102 44L0 44L0 0Z"
|
||||||
fill="rgba(var(--color-base1), 0.2)"/>
|
fill="rgba(var(--color-base1), 0.2)" />
|
||||||
<path d="M3 34L3 41L10 41L3 34Z" stroke="rgba(var(--color-base2), 1)" stroke-width="0.5"
|
<path d="M3 34L3 41L10 41L3 34Z" stroke="rgba(var(--color-base2), 1)" stroke-width="0.5"
|
||||||
stroke-linejoin="round"/>
|
stroke-linejoin="round" />
|
||||||
<path d="M159 10L159 3L152 3L159 10Z" stroke="rgba(var(--color-base2), 1)" stroke-width="0.5"
|
<path d="M159 10L159 3L152 3L159 10Z" stroke="rgba(var(--color-base2), 1)" stroke-width="0.5"
|
||||||
stroke-linejoin="round"/>
|
stroke-linejoin="round" />
|
||||||
<defs>
|
<defs>
|
||||||
<linearGradient id="linear_border_2218_109_0" x1="0" y1="-1.7520751953125" x2="140.2142333984375"
|
<linearGradient id="linear_border_2218_109_0" x1="0" y1="-1.7520751953125" x2="140.2142333984375"
|
||||||
y2="40.473846435546875" gradientUnits="userSpaceOnUse">
|
y2="40.473846435546875" gradientUnits="userSpaceOnUse">
|
||||||
<stop offset="0.0625" stop-color="rgba(var(--color-base1), 1)"/>
|
<stop offset="0.0625" stop-color="rgba(var(--color-base1), 1)" />
|
||||||
<stop offset="1" stop-color="var(--color-border1)"/>
|
<stop offset="1" stop-color="var(--color-border1)" />
|
||||||
</linearGradient>
|
</linearGradient>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
<svg class="item_icon_bg item_icon_bg_hover" style="opacity: 0;" xmlns="http://www.w3.org/2000/svg"
|
<svg class="item_icon_bg item_icon_bg_hover" style="opacity: 0;" xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink" width="163" height="45" viewBox="0 0 163 45" fill="none"
|
xmlns:xlink="http://www.w3.org/1999/xlink" width="163" height="45" viewBox="0 0 163 45" fill="none"
|
||||||
preserveAspectRatio="none">
|
preserveAspectRatio="none">
|
||||||
<path fill="url(#linear_fill_2218_82_1)"
|
<path fill="url(#linear_fill_2218_82_1)"
|
||||||
d="M0.5 44.5L137.139 44.5L162.5 18.5L162.5 0.5L0.5 0.5L0.5 44.5Z"/>
|
d="M0.5 44.5L137.139 44.5L162.5 18.5L162.5 0.5L0.5 0.5L0.5 44.5Z" />
|
||||||
<defs>
|
<defs>
|
||||||
<linearGradient id="linear_fill_2218_82_1" x1="84.9554443359375" y1="44.49997329711914"
|
<linearGradient id="linear_fill_2218_82_1" x1="84.9554443359375" y1="44.49997329711914"
|
||||||
x2="84.95498657226562" y2="0.5" gradientUnits="userSpaceOnUse">
|
x2="84.95498657226562" y2="0.5" gradientUnits="userSpaceOnUse">
|
||||||
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0.6"/>
|
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0.6" />
|
||||||
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0"/>
|
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
|
||||||
</linearGradient>
|
</linearGradient>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
@ -62,41 +62,41 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="left_bottom" @click="fold">
|
<div class="left_bottom" @click="fold">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"
|
||||||
viewBox="0 0 32 32" fill="none">
|
viewBox="0 0 32 32" fill="none">
|
||||||
<path fill="#000000" fill-opacity="0.6"
|
<path fill="#000000" fill-opacity="0.6"
|
||||||
d="M16 0C24.835 0 32 7.16496 32 16C32 24.835 24.835 32 16 32C7.16496 32 0 24.835 0 16C0 7.16496 7.16496 0 16 0Z"/>
|
d="M16 0C24.835 0 32 7.16496 32 16C32 24.835 24.835 32 16 32C7.16496 32 0 24.835 0 16C0 7.16496 7.16496 0 16 0Z" />
|
||||||
<path fill="url(#linear_fill_2442_491_1)"
|
<path fill="url(#linear_fill_2442_491_1)"
|
||||||
d="M16 0C24.835 0 32 7.16496 32 16C32 24.835 24.835 32 16 32C7.16496 32 0 24.835 0 16C0 7.16496 7.16496 0 16 0Z"/>
|
d="M16 0C24.835 0 32 7.16496 32 16C32 24.835 24.835 32 16 32C7.16496 32 0 24.835 0 16C0 7.16496 7.16496 0 16 0Z" />
|
||||||
<path fill-rule="evenodd" fill="url(#linear_border_2442_491_0)"
|
<path fill-rule="evenodd" fill="url(#linear_border_2442_491_0)"
|
||||||
d="M32 16C32 7.16496 24.835 0 16 0C7.16496 0 0 7.16496 0 16C0 24.835 7.16496 32 16 32C24.835 32 32 24.835 32 16ZM30.5 16C30.5 7.99187 24.0081 1.5 16 1.5C7.99187 1.5 1.5 7.99187 1.5 16C1.5 24.0081 7.99187 30.5 16 30.5C24.0081 30.5 30.5 24.0081 30.5 16Z"/>
|
d="M32 16C32 7.16496 24.835 0 16 0C7.16496 0 0 7.16496 0 16C0 24.835 7.16496 32 16 32C24.835 32 32 24.835 32 16ZM30.5 16C30.5 7.99187 24.0081 1.5 16 1.5C7.99187 1.5 1.5 7.99187 1.5 16C1.5 24.0081 7.99187 30.5 16 30.5C24.0081 30.5 30.5 24.0081 30.5 16Z" />
|
||||||
<g filter="url(#filter_2442_492)">
|
<g filter="url(#filter_2442_492)">
|
||||||
<path
|
<path
|
||||||
d="M10.4025 16.1283L19.1887 9.77097C19.1941 9.76721 19.1995 9.76361 19.205 9.76018C19.2106 9.75678 19.2162 9.75356 19.222 9.75054C19.2278 9.74754 19.2337 9.74473 19.2396 9.74211C19.2456 9.73947 19.2517 9.73705 19.2578 9.73486C19.2639 9.73265 19.2701 9.73065 19.2764 9.72886C19.2827 9.72708 19.289 9.7255 19.2954 9.72415C19.3017 9.72279 19.3082 9.72166 19.3146 9.72075C19.3211 9.71985 19.3275 9.71916 19.334 9.71868C19.3405 9.71821 19.347 9.71794 19.3535 9.7179C19.3601 9.71787 19.3666 9.71808 19.3731 9.7185C19.3796 9.71891 19.3861 9.71954 19.3925 9.7204C19.399 9.72125 19.4054 9.72234 19.4118 9.72365C19.4182 9.72493 19.4245 9.72645 19.4308 9.72818C19.4371 9.7299 19.4433 9.73184 19.4495 9.734C19.4556 9.73615 19.4617 9.7385 19.4677 9.74108C19.4737 9.74365 19.4795 9.74641 19.4854 9.74936C19.4912 9.75234 19.4969 9.7555 19.5024 9.75886C19.508 9.76222 19.5135 9.76577 19.5188 9.7695C19.5242 9.77322 19.5294 9.77712 19.5345 9.78122C19.5395 9.78531 19.5445 9.78956 19.5492 9.79397C19.554 9.7984 19.5587 9.80298 19.5631 9.80772C19.5676 9.81246 19.5719 9.81735 19.5761 9.8224C19.5802 9.82742 19.5842 9.83259 19.588 9.8379C19.5917 9.84318 19.5953 9.8486 19.5987 9.85415C19.6022 9.8597 19.6054 9.86536 19.6084 9.87115C19.6115 9.87691 19.6143 9.88277 19.6169 9.88872C19.6196 9.8947 19.622 9.90074 19.6242 9.90686C19.6264 9.913 19.6284 9.91921 19.6302 9.92547C19.632 9.93173 19.6336 9.93805 19.635 9.94443C19.6363 9.95079 19.6375 9.9572 19.6384 9.96365C19.6393 9.9701 19.64 9.97658 19.6405 9.98308C19.641 9.98958 19.6413 9.99609 19.6413 10.0026L19.6413 11.6788C19.6413 12.0415 19.4676 12.3889 19.1705 12.6022L13.9773 16.3599L19.1705 20.1176C19.1887 20.1308 19.2065 20.1445 19.2239 20.1587C19.2413 20.1729 19.2583 20.1876 19.2749 20.2028C19.2914 20.218 19.3075 20.2337 19.3231 20.2499C19.3387 20.266 19.3539 20.2826 19.3685 20.2997C19.3831 20.3167 19.3972 20.3342 19.4109 20.3521C19.4245 20.37 19.4375 20.3883 19.45 20.407C19.4625 20.4256 19.4745 20.4446 19.4859 20.464C19.4973 20.4834 19.5081 20.5031 19.5183 20.5231C19.5285 20.5431 19.5381 20.5634 19.5471 20.584C19.5562 20.6046 19.5646 20.6254 19.5724 20.6465C19.5801 20.6676 19.5873 20.6889 19.5938 20.7104C19.6003 20.7319 19.6062 20.7536 19.6115 20.7754C19.6167 20.7973 19.6213 20.8193 19.6252 20.8414C19.6292 20.8635 19.6325 20.8858 19.6351 20.9081C19.6377 20.9304 19.6396 20.9528 19.6409 20.9752C19.6422 20.9977 19.6429 21.0201 19.6428 21.0426L19.6428 22.7173C19.6428 22.9489 19.3777 23.0845 19.1887 22.9489L10.4025 16.5915C10.3979 16.5882 10.3935 16.5848 10.3892 16.5812C10.3849 16.5776 10.3807 16.5739 10.3766 16.57C10.3725 16.5662 10.3686 16.5623 10.3647 16.5582C10.3608 16.5541 10.3571 16.5499 10.3535 16.5456C10.3499 16.5414 10.3464 16.537 10.343 16.5325C10.3396 16.528 10.3364 16.5234 10.3334 16.5187C10.3302 16.514 10.3273 16.5093 10.3245 16.5044C10.3217 16.4996 10.319 16.4946 10.3165 16.4896C10.3139 16.4846 10.3116 16.4796 10.3094 16.4744C10.3071 16.4693 10.305 16.464 10.3031 16.4588C10.3012 16.4535 10.2994 16.4482 10.2978 16.4428C10.2962 16.4375 10.2948 16.4321 10.2934 16.4266C10.2921 16.4211 10.291 16.4156 10.29 16.4101C10.2891 16.4046 10.2882 16.3991 10.2876 16.3935C10.2869 16.3879 10.2864 16.3824 10.2861 16.3768C10.2858 16.3711 10.2856 16.3655 10.2856 16.3599C10.2856 16.3543 10.2858 16.3487 10.2861 16.3431C10.2864 16.3375 10.2869 16.3319 10.2876 16.3264C10.2882 16.3208 10.2891 16.3153 10.29 16.3097C10.291 16.3042 10.2921 16.2987 10.2934 16.2933C10.2948 16.2878 10.2962 16.2824 10.2978 16.277C10.2994 16.2716 10.3012 16.2663 10.3031 16.2611C10.305 16.2558 10.3071 16.2506 10.3094 16.2455C10.3116 16.2403 10.3139 16.2352 10.3165 16.2302C10.319 16.2252 10.3217 16.2203 10.3245 16.2154C10.3273 16.2106 10.3302 16.2058 10.3334 16.2011C10.3364 16.1965 10.3396 16.1919 10.343 16.1874C10.3464 16.1829 10.3499 16.1785 10.3535 16.1742C10.3571 16.1699 10.3608 16.1658 10.3647 16.1617C10.3686 16.1576 10.3725 16.1536 10.3766 16.1498C10.3807 16.146 10.3849 16.1423 10.3892 16.1387C10.3935 16.1351 10.3979 16.1316 10.4025 16.1283Z"
|
d="M10.4025 16.1283L19.1887 9.77097C19.1941 9.76721 19.1995 9.76361 19.205 9.76018C19.2106 9.75678 19.2162 9.75356 19.222 9.75054C19.2278 9.74754 19.2337 9.74473 19.2396 9.74211C19.2456 9.73947 19.2517 9.73705 19.2578 9.73486C19.2639 9.73265 19.2701 9.73065 19.2764 9.72886C19.2827 9.72708 19.289 9.7255 19.2954 9.72415C19.3017 9.72279 19.3082 9.72166 19.3146 9.72075C19.3211 9.71985 19.3275 9.71916 19.334 9.71868C19.3405 9.71821 19.347 9.71794 19.3535 9.7179C19.3601 9.71787 19.3666 9.71808 19.3731 9.7185C19.3796 9.71891 19.3861 9.71954 19.3925 9.7204C19.399 9.72125 19.4054 9.72234 19.4118 9.72365C19.4182 9.72493 19.4245 9.72645 19.4308 9.72818C19.4371 9.7299 19.4433 9.73184 19.4495 9.734C19.4556 9.73615 19.4617 9.7385 19.4677 9.74108C19.4737 9.74365 19.4795 9.74641 19.4854 9.74936C19.4912 9.75234 19.4969 9.7555 19.5024 9.75886C19.508 9.76222 19.5135 9.76577 19.5188 9.7695C19.5242 9.77322 19.5294 9.77712 19.5345 9.78122C19.5395 9.78531 19.5445 9.78956 19.5492 9.79397C19.554 9.7984 19.5587 9.80298 19.5631 9.80772C19.5676 9.81246 19.5719 9.81735 19.5761 9.8224C19.5802 9.82742 19.5842 9.83259 19.588 9.8379C19.5917 9.84318 19.5953 9.8486 19.5987 9.85415C19.6022 9.8597 19.6054 9.86536 19.6084 9.87115C19.6115 9.87691 19.6143 9.88277 19.6169 9.88872C19.6196 9.8947 19.622 9.90074 19.6242 9.90686C19.6264 9.913 19.6284 9.91921 19.6302 9.92547C19.632 9.93173 19.6336 9.93805 19.635 9.94443C19.6363 9.95079 19.6375 9.9572 19.6384 9.96365C19.6393 9.9701 19.64 9.97658 19.6405 9.98308C19.641 9.98958 19.6413 9.99609 19.6413 10.0026L19.6413 11.6788C19.6413 12.0415 19.4676 12.3889 19.1705 12.6022L13.9773 16.3599L19.1705 20.1176C19.1887 20.1308 19.2065 20.1445 19.2239 20.1587C19.2413 20.1729 19.2583 20.1876 19.2749 20.2028C19.2914 20.218 19.3075 20.2337 19.3231 20.2499C19.3387 20.266 19.3539 20.2826 19.3685 20.2997C19.3831 20.3167 19.3972 20.3342 19.4109 20.3521C19.4245 20.37 19.4375 20.3883 19.45 20.407C19.4625 20.4256 19.4745 20.4446 19.4859 20.464C19.4973 20.4834 19.5081 20.5031 19.5183 20.5231C19.5285 20.5431 19.5381 20.5634 19.5471 20.584C19.5562 20.6046 19.5646 20.6254 19.5724 20.6465C19.5801 20.6676 19.5873 20.6889 19.5938 20.7104C19.6003 20.7319 19.6062 20.7536 19.6115 20.7754C19.6167 20.7973 19.6213 20.8193 19.6252 20.8414C19.6292 20.8635 19.6325 20.8858 19.6351 20.9081C19.6377 20.9304 19.6396 20.9528 19.6409 20.9752C19.6422 20.9977 19.6429 21.0201 19.6428 21.0426L19.6428 22.7173C19.6428 22.9489 19.3777 23.0845 19.1887 22.9489L10.4025 16.5915C10.3979 16.5882 10.3935 16.5848 10.3892 16.5812C10.3849 16.5776 10.3807 16.5739 10.3766 16.57C10.3725 16.5662 10.3686 16.5623 10.3647 16.5582C10.3608 16.5541 10.3571 16.5499 10.3535 16.5456C10.3499 16.5414 10.3464 16.537 10.343 16.5325C10.3396 16.528 10.3364 16.5234 10.3334 16.5187C10.3302 16.514 10.3273 16.5093 10.3245 16.5044C10.3217 16.4996 10.319 16.4946 10.3165 16.4896C10.3139 16.4846 10.3116 16.4796 10.3094 16.4744C10.3071 16.4693 10.305 16.464 10.3031 16.4588C10.3012 16.4535 10.2994 16.4482 10.2978 16.4428C10.2962 16.4375 10.2948 16.4321 10.2934 16.4266C10.2921 16.4211 10.291 16.4156 10.29 16.4101C10.2891 16.4046 10.2882 16.3991 10.2876 16.3935C10.2869 16.3879 10.2864 16.3824 10.2861 16.3768C10.2858 16.3711 10.2856 16.3655 10.2856 16.3599C10.2856 16.3543 10.2858 16.3487 10.2861 16.3431C10.2864 16.3375 10.2869 16.3319 10.2876 16.3264C10.2882 16.3208 10.2891 16.3153 10.29 16.3097C10.291 16.3042 10.2921 16.2987 10.2934 16.2933C10.2948 16.2878 10.2962 16.2824 10.2978 16.277C10.2994 16.2716 10.3012 16.2663 10.3031 16.2611C10.305 16.2558 10.3071 16.2506 10.3094 16.2455C10.3116 16.2403 10.3139 16.2352 10.3165 16.2302C10.319 16.2252 10.3217 16.2203 10.3245 16.2154C10.3273 16.2106 10.3302 16.2058 10.3334 16.2011C10.3364 16.1965 10.3396 16.1919 10.343 16.1874C10.3464 16.1829 10.3499 16.1785 10.3535 16.1742C10.3571 16.1699 10.3608 16.1658 10.3647 16.1617C10.3686 16.1576 10.3725 16.1536 10.3766 16.1498C10.3807 16.146 10.3849 16.1423 10.3892 16.1387C10.3935 16.1351 10.3979 16.1316 10.4025 16.1283Z"
|
||||||
fill="rgba(var(--color-base2), 1)"/>
|
fill="rgba(var(--color-base2), 1)" />
|
||||||
</g>
|
</g>
|
||||||
<defs>
|
<defs>
|
||||||
<linearGradient id="linear_fill_2442_491_1" x1="14.793701171875" y1="16.00537109375" x2="14.7939453125"
|
<linearGradient id="linear_fill_2442_491_1" x1="14.793701171875" y1="16.00537109375" x2="14.7939453125"
|
||||||
y2="-6.678619384765625" gradientUnits="userSpaceOnUse">
|
y2="-6.678619384765625" gradientUnits="userSpaceOnUse">
|
||||||
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0.2"/>
|
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0.2" />
|
||||||
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0"/>
|
<stop offset="1" stop-color="rgb(var(--color-base1))" stop-opacity="0" />
|
||||||
</linearGradient>
|
</linearGradient>
|
||||||
<linearGradient id="linear_border_2442_491_0" x1="32" y1="-1.27423095703125" x2="4.303466796875"
|
<linearGradient id="linear_border_2442_491_0" x1="32" y1="-1.27423095703125" x2="4.303466796875"
|
||||||
y2="29.435516357421875" gradientUnits="userSpaceOnUse">
|
y2="29.435516357421875" gradientUnits="userSpaceOnUse">
|
||||||
<stop offset="0.0625" stop-color="rgb(var(--color-base1))"/>
|
<stop offset="0.0625" stop-color="rgb(var(--color-base1))" />
|
||||||
<stop offset="1" stop-color="var(--color-border1)"/>
|
<stop offset="1" stop-color="var(--color-border1)" />
|
||||||
</linearGradient>
|
</linearGradient>
|
||||||
<filter id="filter_2442_492" x="6.28564453125" y="5.717864990234375" width="17.357177734375"
|
<filter id="filter_2442_492" x="6.28564453125" y="5.717864990234375" width="17.357177734375"
|
||||||
height="21.36663818359375" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
height="21.36663818359375" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||||
<feFlood flood-opacity="0" result="feFloodId_2442_492"/>
|
<feFlood flood-opacity="0" result="feFloodId_2442_492" />
|
||||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
|
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
|
||||||
result="hardAlpha_2442_492"/>
|
result="hardAlpha_2442_492" />
|
||||||
<feOffset dx="0" dy="0"/>
|
<feOffset dx="0" dy="0" />
|
||||||
<feGaussianBlur stdDeviation="2"/>
|
<feGaussianBlur stdDeviation="2" />
|
||||||
<feComposite in2="hardAlpha_2442_492" operator="out"/>
|
<feComposite in2="hardAlpha_2442_492" operator="out" />
|
||||||
<feColorMatrix type="matrix"
|
<feColorMatrix type="matrix"
|
||||||
values="0 0 0 0 0.1450980392156863 0 0 0 0 0.7686274509803922 0 0 0 0 0.7686274509803922 0 0 0 1 0"/>
|
values="0 0 0 0 0.1450980392156863 0 0 0 0 0.7686274509803922 0 0 0 0 0.7686274509803922 0 0 0 1 0" />
|
||||||
<feBlend mode="normal" in2="feFloodId_2442_492" result="dropShadow_1_2442_492"/>
|
<feBlend mode="normal" in2="feFloodId_2442_492" result="dropShadow_1_2442_492" />
|
||||||
<feBlend mode="normal" in="SourceGraphic" in2="dropShadow_1_2442_492" result="shape_2442_492"/>
|
<feBlend mode="normal" in="SourceGraphic" in2="dropShadow_1_2442_492" result="shape_2442_492" />
|
||||||
</filter>
|
</filter>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
@ -105,16 +105,16 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import {useI18n} from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
import {useRouter} from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
|
|
||||||
import {bus} from '@/utils/bus'
|
import { bus } from '@/utils/bus'
|
||||||
import leftSideSecond from '@/views/components/leftSide/leftSideSecond.vue'
|
import leftSideSecond from '@/views/components/leftSide/leftSideSecond.vue'
|
||||||
import {ElMessage, ElLoading} from 'element-plus'
|
import { ElMessage, ElLoading } from 'element-plus'
|
||||||
|
|
||||||
const {ipcRenderer} = require('electron')
|
const { ipcRenderer } = require('electron')
|
||||||
const router = useRouter() // 路由实例
|
const router = useRouter() // 路由实例
|
||||||
const {t} = useI18n()
|
const { t } = useI18n()
|
||||||
const eventBus: any = inject('bus')
|
const eventBus: any = inject('bus')
|
||||||
const menuList: any = ref([
|
const menuList: any = ref([
|
||||||
// 方案推演
|
// 方案推演
|
||||||
@ -249,6 +249,7 @@ const menuList: any = ref([
|
|||||||
const isFolded: any = ref(false) // 添加折叠状态
|
const isFolded: any = ref(false) // 添加折叠状态
|
||||||
const initialPositions: any = ref({}) // 保存初始位置
|
const initialPositions: any = ref({}) // 保存初始位置
|
||||||
const isAnimating: any = ref(false) // 添加动画状态
|
const isAnimating: any = ref(false) // 添加动画状态
|
||||||
|
const leftBoxRef = ref()
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
let menusHeight = menuList.value.length * 65 + 'px'
|
let menusHeight = menuList.value.length * 65 + 'px'
|
||||||
let height = menuList.value.length * 65 + 30 + 'px'
|
let height = menuList.value.length * 65 + 30 + 'px'
|
||||||
@ -259,6 +260,8 @@ onMounted(() => {
|
|||||||
items.forEach((item: any, index: any) => {
|
items.forEach((item: any, index: any) => {
|
||||||
initialPositions.value[index] = item.style.transform || 'translateX(0)'
|
initialPositions.value[index] = item.style.transform || 'translateX(0)'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
document.addEventListener('click', handleClickOutside, true);
|
||||||
})
|
})
|
||||||
const leftSideSecondRef = ref()
|
const leftSideSecondRef = ref()
|
||||||
const handleClick = (item: any, e) => {
|
const handleClick = (item: any, e) => {
|
||||||
@ -276,7 +279,7 @@ const handleClick = (item: any, e) => {
|
|||||||
ipcRenderer.send('toggle-fullscreen', true)
|
ipcRenderer.send('toggle-fullscreen', true)
|
||||||
window['earth'].destroy()
|
window['earth'].destroy()
|
||||||
window['earth'] = null
|
window['earth'] = null
|
||||||
router.push({path: '/ts'})
|
router.push({ path: '/ts' })
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
@ -325,6 +328,7 @@ const fold = () => {
|
|||||||
const itemDelay = 100
|
const itemDelay = 100
|
||||||
const itemDuration = 300
|
const itemDuration = 300
|
||||||
if (isFolded.value) {
|
if (isFolded.value) {
|
||||||
|
leftBoxRef.value.style.pointerEvents = 'unset'
|
||||||
left_bottom.style.bottom = '6.5vw'
|
left_bottom.style.bottom = '6.5vw'
|
||||||
left_bottom.style.left = '72px'
|
left_bottom.style.left = '72px'
|
||||||
left_bottom.style.transform = 'rotate(0deg)'
|
left_bottom.style.transform = 'rotate(0deg)'
|
||||||
@ -337,6 +341,7 @@ const fold = () => {
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
// 折叠状态
|
// 折叠状态
|
||||||
|
leftBoxRef.value.style.pointerEvents = 'none'
|
||||||
items.forEach((item: any, index: any) => {
|
items.forEach((item: any, index: any) => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
item.style.transition = 'transform 0.3s ease'
|
item.style.transition = 'transform 0.3s ease'
|
||||||
@ -364,23 +369,16 @@ const fold = () => {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const clickMenu = (item: any) => {
|
// 外部点击的处理函数
|
||||||
console.log(item, 'item')
|
const handleClickOutside = (e) => {
|
||||||
switch (item.key) {
|
if (leftSideSecondRef.value && leftSideSecondRef.value.leftSideSecondRef && !leftSideSecondRef.value.leftSideSecondRef.contains(e.target)) {
|
||||||
case 'analysis':
|
$('.leftSideSecond')[0].style.display = 'none'
|
||||||
console.log('analysis')
|
|
||||||
// eventBus.emit('analysisDialog')
|
|
||||||
eventBus.emit('circleViewShedDialog') //添加高程后测试
|
|
||||||
// eventBus.emit('submergeDialog')
|
|
||||||
// eventBus.emit('profileDialog')
|
|
||||||
// eventBus.emit('viewShedDialog')
|
|
||||||
// eventBus.emit('cutFillDialog')
|
|
||||||
// eventBus.emit('contourDialog')
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
document.removeEventListener('click', handleClickOutside, true);
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@ -449,7 +447,7 @@ const clickMenu = (item: any) => {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
> .item_icon_bg {
|
>.item_icon_bg {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -461,7 +459,7 @@ const clickMenu = (item: any) => {
|
|||||||
// background: url('../../../assets/images/hongse/left1.png') no-repeat;
|
// background: url('../../../assets/images/hongse/left1.png') no-repeat;
|
||||||
// background-size: 100% 100%;
|
// background-size: 100% 100%;
|
||||||
|
|
||||||
> .item_icon_bg_hover {
|
>.item_icon_bg_hover {
|
||||||
opacity: 1 !important;
|
opacity: 1 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -495,8 +493,9 @@ const clickMenu = (item: any) => {
|
|||||||
// background-size: 100% 100%;
|
// background-size: 100% 100%;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
pointer-events: all;
|
||||||
|
|
||||||
> svg {
|
>svg {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="leftSideSecond">
|
<div ref="leftSideSecondRef" class="leftSideSecond">
|
||||||
<svg
|
<svg
|
||||||
class="leftSideSecond_bg"
|
class="leftSideSecond_bg"
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
@ -144,7 +144,7 @@ ipcRenderer.invoke('get-available-port').then((port) => {
|
|||||||
availablePort.value = port
|
availablePort.value = port
|
||||||
})
|
})
|
||||||
const obj: any = ref(null)
|
const obj: any = ref(null)
|
||||||
const isclick = ref(false)
|
const leftSideSecondRef = ref(null)
|
||||||
const eventBus: any = inject('bus')
|
const eventBus: any = inject('bus')
|
||||||
const initList = (value) => {
|
const initList = (value) => {
|
||||||
obj.value = value
|
obj.value = value
|
||||||
@ -1029,7 +1029,8 @@ const handleClick = (value = 'projectionDistanceMeasure') => {
|
|||||||
methodMap[value]()
|
methodMap[value]()
|
||||||
}
|
}
|
||||||
defineExpose({
|
defineExpose({
|
||||||
initList
|
initList,
|
||||||
|
leftSideSecondRef
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<Dialog ref="baseDialog" :title="t('bottomMenu.groundText')" left="calc(50% - 198px)" top="calc(50% - 120px)" :closeCallback="closeCallBack">
|
<Dialog ref="baseDialog" :title="t('bottomMenu.groundText')" left="calc(50% - 198px)" top="calc(50% - 120px)"
|
||||||
|
:closeCallback="closeCallBack">
|
||||||
<template #content>
|
<template #content>
|
||||||
<textarea style="height: 40px; width: 348px;" v-model="text"></textarea>
|
<textarea style="height: 40px; width: 348px;" v-model="text"></textarea>
|
||||||
</template>
|
</template>
|
||||||
@ -31,7 +32,11 @@ const open = () => {
|
|||||||
baseDialog.value?.open()
|
baseDialog.value?.open()
|
||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
if(!text.value) {
|
if (!text.value) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
text.value = text.value.trim()
|
||||||
|
if (!text.value) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let name = text.value
|
let name = text.value
|
||||||
@ -56,13 +61,22 @@ const confirm = () => {
|
|||||||
delete options.positions
|
delete options.positions
|
||||||
let selectedNodes = window.treeObj.getSelectedNodes()
|
let selectedNodes = window.treeObj.getSelectedNodes()
|
||||||
let node = selectedNodes && selectedNodes[selectedNodes.length - 1]
|
let node = selectedNodes && selectedNodes[selectedNodes.length - 1]
|
||||||
|
function getParentId(nd: any) {
|
||||||
|
if (nd.sourceType === 'directory') {
|
||||||
|
return nd.id
|
||||||
|
} else {
|
||||||
|
let parentNode = window.treeObj.getNodeByParam("id", nd.parentId, null);
|
||||||
|
if (parentNode) {
|
||||||
|
return getParentId(parentNode)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
let parentId
|
let parentId
|
||||||
if (node) {
|
if (node) {
|
||||||
if (node.sourceType === 'directory') {
|
parentId = getParentId(node)
|
||||||
parentId = node.id
|
|
||||||
} else {
|
|
||||||
parentId = node.parentId
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
let params: any = {
|
let params: any = {
|
||||||
id: id,
|
id: id,
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<Dialog ref="baseDialog" :title="t('bottomMenu.standText')" left="calc(50% - 198px)" top="calc(50% - 120px)" :closeCallback="closeCallBack">
|
<Dialog ref="baseDialog" :title="t('bottomMenu.standText')" left="calc(50% - 198px)" top="calc(50% - 120px)"
|
||||||
|
:closeCallback="closeCallBack">
|
||||||
<template #content>
|
<template #content>
|
||||||
<textarea style="height: 40px; width: 348px;" v-model="text"></textarea>
|
<textarea style="height: 40px; width: 348px;" v-model="text"></textarea>
|
||||||
</template>
|
</template>
|
||||||
@ -31,7 +32,11 @@ const open = () => {
|
|||||||
baseDialog.value?.open()
|
baseDialog.value?.open()
|
||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
if(!text.value) {
|
if (!text.value) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
text.value = text.value.trim()
|
||||||
|
if (!text.value) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let name = text.value
|
let name = text.value
|
||||||
@ -52,17 +57,25 @@ const confirm = () => {
|
|||||||
delete options.name
|
delete options.name
|
||||||
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
|
function getParentId(nd: any) {
|
||||||
if (node) {
|
if (nd.sourceType === 'directory') {
|
||||||
if (node.sourceType === 'directory') {
|
return nd.id
|
||||||
parentId = node.id
|
} else {
|
||||||
}
|
let parentNode = window.treeObj.getNodeByParam("id", nd.parentId, null);
|
||||||
else {
|
if (parentNode) {
|
||||||
parentId = node.parentId
|
return getParentId(parentNode)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
let parentId
|
||||||
|
if (node) {
|
||||||
|
parentId = getParentId(node)
|
||||||
|
}
|
||||||
|
|
||||||
let params:any = {
|
let params: any = {
|
||||||
id: id,
|
id: id,
|
||||||
sourceName: name,
|
sourceName: name,
|
||||||
sourceType: 'standText',
|
sourceType: 'standText',
|
||||||
|
|||||||
@ -47,9 +47,9 @@ const props = defineProps({
|
|||||||
|
|
||||||
const setInitialStyle = () => {
|
const setInitialStyle = () => {
|
||||||
let style = getdefaultLabelStyle(props.sourceType)
|
let style = getdefaultLabelStyle(props.sourceType)
|
||||||
let defaultStyle = JSON.parse(localStorage.getItem('defaultStyle') || '{}')
|
let defaultStyle = JSON.parse(localStorage.getItem('defaultLabelStyle') || '{}')
|
||||||
defaultStyle[props.sourceType] = style
|
defaultStyle[props.sourceType] = style
|
||||||
localStorage.setItem('defaultStyle', JSON.stringify(defaultStyle))
|
localStorage.setItem('defaultLabelStyle', JSON.stringify(defaultStyle))
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: `新增${props.type}风格设置成功!`,
|
message: `新增${props.type}风格设置成功!`,
|
||||||
type: "success",
|
type: "success",
|
||||||
|
|||||||
@ -7,6 +7,6 @@ let defaultLabelStyle = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
export const getdefaultLabelStyle = (type) => {
|
export const getdefaultLabelStyle = (type:any) => {
|
||||||
return (type ? defaultLabelStyle[type] : defaultLabelStyle)
|
return (type ? defaultLabelStyle[type] : defaultLabelStyle)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,6 +48,6 @@ let defaultStyle = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
export const getdefaultStyle = (type) => {
|
export const getdefaultStyle = (type:any) => {
|
||||||
return (type ? defaultStyle[type] : defaultStyle)
|
return (type ? defaultStyle[type] : defaultStyle)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -126,6 +126,7 @@ const open = async (id: any) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.text = entityOptions.value.text.trim()
|
||||||
entityOptions.value.text = entityOptions.value.text || t("default.untitled")
|
entityOptions.value.text = entityOptions.value.text || t("default.untitled")
|
||||||
originalOptions = structuredClone(that.options)
|
originalOptions = structuredClone(that.options)
|
||||||
let params = structuredClone(that.options)
|
let params = structuredClone(that.options)
|
||||||
|
|||||||
@ -22,7 +22,8 @@
|
|||||||
<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="$handleInputLimit">
|
<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>
|
||||||
@ -46,10 +47,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);
|
||||||
@ -83,6 +87,8 @@ const open = async (id: any) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
entityOptions.value.text = entityOptions.value.text.trim()
|
||||||
|
entityOptions.value.text = entityOptions.value.text || 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()
|
||||||
@ -104,31 +110,31 @@ const close = () => {
|
|||||||
const remove = () => {
|
const remove = () => {
|
||||||
close()
|
close()
|
||||||
ElMessageBox.confirm('此操作将永久删除节点及所有子节点, 是否继续?', '提示', {
|
ElMessageBox.confirm('此操作将永久删除节点及所有子节点, 是否继续?', '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
})
|
})
|
||||||
.then(async () => {
|
.then(async () => {
|
||||||
let node = window.treeObj.getNodeByParam('id', that.options.id, null)
|
let node = window.treeObj.getNodeByParam('id', that.options.id, null)
|
||||||
let source_ids = cusRemoveNode(window.treeObj, [node])
|
let source_ids = cusRemoveNode(window.treeObj, [node])
|
||||||
const res = await TreeApi.removeDirectory({ ids: source_ids })
|
const res = await TreeApi.removeDirectory({ ids: source_ids })
|
||||||
if (res.code == 0 || res.code == 200) {
|
if (res.code == 0 || res.code == 200) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '删除成功',
|
message: '删除成功',
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
that.remove()
|
that.remove()
|
||||||
(window as any)._entityMap.delete(source_ids[0])
|
(window as any)._entityMap.delete(source_ids[0])
|
||||||
} else {
|
} else {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: res.msg || '删除失败',
|
message: res.msg || '删除失败',
|
||||||
type: 'error'
|
type: 'error'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
// 用户点击取消,不执行任何操作
|
// 用户点击取消,不执行任何操作
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const nodeEdit = () => {
|
const nodeEdit = () => {
|
||||||
that.nodeEdit()
|
that.nodeEdit()
|
||||||
|
|||||||
@ -26,7 +26,7 @@ export function renderVector(node, ifFly = true) {
|
|||||||
sourceName: it.name,
|
sourceName: it.name,
|
||||||
isShow: true
|
isShow: true
|
||||||
}
|
}
|
||||||
cusAddNodes(window.treeObj, node.id, [childNode])
|
cusAddNodes(window.treeObj, node.id, [childNode], true)
|
||||||
let zijiNodes: any = [];
|
let zijiNodes: any = [];
|
||||||
if (it.features && it.features.length) {
|
if (it.features && it.features.length) {
|
||||||
it.features.forEach((item) => {
|
it.features.forEach((item) => {
|
||||||
@ -45,7 +45,7 @@ export function renderVector(node, ifFly = true) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
cusAddNodes(window.treeObj, childNode.id, zijiNodes)
|
cusAddNodes(window.treeObj, childNode.id, zijiNodes, true)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -512,6 +512,7 @@ export const useTree = () => {
|
|||||||
key: {
|
key: {
|
||||||
//zdatas数据中表示节点name的属性key
|
//zdatas数据中表示节点name的属性key
|
||||||
name: 'sourceName',
|
name: 'sourceName',
|
||||||
|
title: 'title',
|
||||||
checked: 'isShow'
|
checked: 'isShow'
|
||||||
},
|
},
|
||||||
simpleData: {
|
simpleData: {
|
||||||
|
|||||||
@ -532,7 +532,10 @@ export const useTreeNode = () => {
|
|||||||
parentNode = treeObj.getNodeByParam('id', parentNodeId, null)
|
parentNode = treeObj.getNodeByParam('id', parentNodeId, null)
|
||||||
}
|
}
|
||||||
let arr = treeObj.addNodes(parentNode, newNodes, isSilent)
|
let arr = treeObj.addNodes(parentNode, newNodes, isSilent)
|
||||||
treeObj.selectNode(arr[arr.length - 1])
|
if(!isSilent) {
|
||||||
|
treeObj.selectNode(arr[arr.length - 1])
|
||||||
|
}
|
||||||
|
|
||||||
// 确保window.AllNodes存在并为数组
|
// 确保window.AllNodes存在并为数组
|
||||||
window.AllNodes = (window.AllNodes || []).concat(arr)
|
window.AllNodes = (window.AllNodes || []).concat(arr)
|
||||||
return arr
|
return arr
|
||||||
|
|||||||
@ -265,7 +265,9 @@ const isShowTree = debounce(() => {
|
|||||||
isShow.value = !isShow.value
|
isShow.value = !isShow.value
|
||||||
const box1: any = document.querySelector('.box1')
|
const box1: any = document.querySelector('.box1')
|
||||||
const arrow: any = document.querySelector('.arrowTree')
|
const arrow: any = document.querySelector('.arrowTree')
|
||||||
|
const TreeIndex: any = document.querySelector('.TreeIndex')
|
||||||
if (isShow.value) {
|
if (isShow.value) {
|
||||||
|
TreeIndex.style.pointerEvents = 'none'
|
||||||
// 隐藏box1
|
// 隐藏box1
|
||||||
box1.style.transform = 'translateX(110%)'
|
box1.style.transform = 'translateX(110%)'
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@ -275,6 +277,7 @@ const isShowTree = debounce(() => {
|
|||||||
arrow.style.right = '1em'
|
arrow.style.right = '1em'
|
||||||
}, 100)
|
}, 100)
|
||||||
} else {
|
} else {
|
||||||
|
TreeIndex.style.pointerEvents = 'unset'
|
||||||
// 显示box1
|
// 显示box1
|
||||||
arrow.style.transform = 'rotate(180deg)'
|
arrow.style.transform = 'rotate(180deg)'
|
||||||
arrow.style.bottom = '-5px'
|
arrow.style.bottom = '-5px'
|
||||||
@ -582,6 +585,7 @@ defineExpose({
|
|||||||
// background-size: 100% 100%;
|
// background-size: 100% 100%;
|
||||||
transition: transform 0.5s ease;
|
transition: transform 0.5s ease;
|
||||||
transform: rotate(180deg);
|
transform: rotate(180deg);
|
||||||
|
pointer-events: all;
|
||||||
|
|
||||||
> svg {
|
> svg {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@ -126,6 +126,8 @@ import addMaterials from '../components/propertyBox/addMaterials.vue'
|
|||||||
|
|
||||||
import { GisApi } from '@/api/gisApi'
|
import { GisApi } from '@/api/gisApi'
|
||||||
import { sysChange as utilsSysChange } from '@/utils/sysChange'
|
import { sysChange as utilsSysChange } from '@/utils/sysChange'
|
||||||
|
import { getdefaultStyle } from '../components/propertyBox/defaultStyle/style'
|
||||||
|
import { getdefaultLabelStyle } from '../components/propertyBox/defaultLabelStyle/style'
|
||||||
|
|
||||||
const { rightMenus } = useRightOperate()
|
const { rightMenus } = useRightOperate()
|
||||||
const firstMenuRef = ref(null)
|
const firstMenuRef = ref(null)
|
||||||
@ -137,6 +139,23 @@ let addStandTextRef = ref()
|
|||||||
let tree = ref()
|
let tree = ref()
|
||||||
let selectImgRef = ref()
|
let selectImgRef = ref()
|
||||||
let editdirectoryBox = ref()
|
let editdirectoryBox = ref()
|
||||||
|
|
||||||
|
// 标注标绘默认样式
|
||||||
|
if (!localStorage.getItem('defaultStyle')) {
|
||||||
|
let defaultStyle = getdefaultStyle(null)
|
||||||
|
localStorage.setItem('defaultStyle', JSON.stringify(defaultStyle))
|
||||||
|
}
|
||||||
|
if (!localStorage.getItem('defaultLabelStyle')) {
|
||||||
|
let defaultLabelStyle = getdefaultLabelStyle(null)
|
||||||
|
localStorage.setItem('defaultLabelStyle', JSON.stringify(defaultLabelStyle))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
eventBus.on('openDialog', async (sourceType: any, id: any) => {
|
eventBus.on('openDialog', async (sourceType: any, id: any) => {
|
||||||
if (dynamicComponentRef.value && dynamicComponentRef.value.close) {
|
if (dynamicComponentRef.value && dynamicComponentRef.value.close) {
|
||||||
dynamicComponentRef.value.close()
|
dynamicComponentRef.value.close()
|
||||||
@ -455,30 +474,30 @@ const createEarth = async () => {
|
|||||||
window.earth = await new YJ.YJEarth('earthContainer')
|
window.earth = await new YJ.YJEarth('earthContainer')
|
||||||
let openLeftClick = await new YJ.Global.openLeftClick(window.earth)
|
let openLeftClick = await new YJ.Global.openLeftClick(window.earth)
|
||||||
let openRightClick = await new YJ.Global.openRightClick(window.earth)
|
let openRightClick = await new YJ.Global.openRightClick(window.earth)
|
||||||
// YJ.Global.MouseRightMenu(window.earth, true, (text, object) => {
|
YJ.Global.MouseRightMenu(window.earth, true, (text, object) => {
|
||||||
// switch (text) {
|
switch (text) {
|
||||||
// case 'rotateAround':
|
case 'rotateAround':
|
||||||
// YJ.Global.rotateAround(window.earth, object.position)
|
YJ.Global.rotateAround(window.earth, object.position)
|
||||||
// break
|
break
|
||||||
// case 'textBox':
|
case 'textBox':
|
||||||
// let id = new YJ.Tools().randomString()
|
let id = new YJ.Tools().randomString()
|
||||||
// let name = '文本框'
|
let name = '文本框'
|
||||||
// addMapSource({
|
addMapSource({
|
||||||
// type: 'textBox',
|
type: 'textBox',
|
||||||
// id: id,
|
id: id,
|
||||||
// sourceName: name,
|
sourceName: name,
|
||||||
// opt: {
|
opt: {
|
||||||
// id: id,
|
id: id,
|
||||||
// position: object.position
|
position: object.position
|
||||||
// }
|
}
|
||||||
// })
|
})
|
||||||
// break
|
break
|
||||||
// case 'attribute':
|
case 'attribute':
|
||||||
// let node = window.treeObj.getNodeByParam('id', object.id, null)
|
let node = window.treeObj.getNodeByParam('id', object.id, null)
|
||||||
// rightMenus.edit.callback(eventBus, node)
|
rightMenus.edit.callback(eventBus, node)
|
||||||
// break
|
break
|
||||||
// }
|
}
|
||||||
// })
|
})
|
||||||
|
|
||||||
tree.value.initTreeCallBack()
|
tree.value.initTreeCallBack()
|
||||||
utilsSysChange(eventBus)
|
utilsSysChange(eventBus)
|
||||||
|
|||||||
Reference in New Issue
Block a user