"点标注创建,渲染,添加接口,上树"
This commit is contained in:
Binary file not shown.
@ -20,4 +20,16 @@ export const TsApi = {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
addTsSource: async (data: any) => {
|
||||||
|
return await request.post({
|
||||||
|
url: '/tsSource/add',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
queryTsSource: async (data: any) => {
|
||||||
|
return await request.post({
|
||||||
|
url: '/tsSource/query',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,21 +27,83 @@ import {$changeComponentShow} from "../../utils/communication";
|
|||||||
|
|
||||||
const {getSelectedNodes, cusSelectNode, getSameLevel, cusNodeIcon, nodeType} = useTreeNode()
|
const {getSelectedNodes, cusSelectNode, getSameLevel, cusNodeIcon, nodeType} = useTreeNode()
|
||||||
import {showRightMenuTs} from "./tree"
|
import {showRightMenuTs} from "./tree"
|
||||||
|
import {TsApi} from "../../api/ts";
|
||||||
|
import {initMapData} from "./entity";
|
||||||
|
|
||||||
const rightMenuRef: any = ref()
|
const rightMenuRef: any = ref()
|
||||||
const treeObj = ref() //树形的实例
|
const treeObj = ref() //树形的实例
|
||||||
const nodes: any = ref([])
|
let zNodes: any = ref([])//树形结构数据
|
||||||
|
let nodes: any = ref([])//选中的node节点
|
||||||
let input2 = ref('')
|
let input2 = ref('')
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
let data = [
|
let formData = new FormData()
|
||||||
{
|
// let data = []
|
||||||
name: "88",
|
formData.append('id', window["planId"])
|
||||||
sourceType: "directory"
|
TsApi.queryTsSource(formData).then(async res => {
|
||||||
|
console.log('queryTsSource', res)
|
||||||
|
if (res.code == 200) {
|
||||||
|
for (let i = res.data.length - 1; i >= 0; i--) {
|
||||||
|
res.data[i].icon = await cusNodeIcon(res.data[i]);
|
||||||
}
|
}
|
||||||
]
|
zNodes.value = res.data
|
||||||
treeObj.value = $.fn.zTree.init($(`#treeDemos`), setting, data)
|
console.log("data", zNodes.value)
|
||||||
|
|
||||||
|
treeObj.value = $.fn.zTree.init($(`#treeDemos`), setting, zNodes.value)
|
||||||
window.treeObj = treeObj.value
|
window.treeObj = treeObj.value
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
const initTreeCallBack = () => {
|
||||||
|
let arr = zNodes.value
|
||||||
|
let layerTypes = [
|
||||||
|
"arcgisWximagery",
|
||||||
|
"arcgisBlueImagery",
|
||||||
|
"ArcgisLWImagery",
|
||||||
|
"gdlwImagery",
|
||||||
|
"gdwxImagery",
|
||||||
|
"gdslImagery",
|
||||||
|
"layer",
|
||||||
|
];
|
||||||
|
let layers: any = []
|
||||||
|
for (let i = 0; i < arr.length; i++) {
|
||||||
|
if (arr[i].sourceType === 'directory') {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
let detail = JSON.parse(arr[i].detail || '{}')
|
||||||
|
let params = JSON.parse(arr[i].params || '{}')
|
||||||
|
if (!detail.name) {
|
||||||
|
detail.name = arr[i].sourceName
|
||||||
|
}
|
||||||
|
if (!detail.id) {
|
||||||
|
detail.id = arr[i].id
|
||||||
|
}
|
||||||
|
if (layerTypes.includes(arr[i].sourceType)) {
|
||||||
|
layers.push(
|
||||||
|
{
|
||||||
|
sourceType: arr[i].sourceType,
|
||||||
|
detail: {...detail, ...params}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
initMapData(arr[i].sourceType, {...detail, ...params})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
layers.sort((obj1, obj2) => {
|
||||||
|
return obj1.detail.layerIndex - obj2.detail.layerIndex;
|
||||||
|
});
|
||||||
|
if (window.earth_ts) {
|
||||||
|
for (let i = 0; i < layers.length; i++) {
|
||||||
|
// initMapData(layers[i].sourceType, layers[i].detail, null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const onDblClick = (event: MouseEvent, treeId: string, treeNode: any) => {
|
||||||
|
let entityObject
|
||||||
|
entityObject = (window as any)._entityMap.get(treeNode.id)
|
||||||
|
entityObject.flyTo()
|
||||||
|
}
|
||||||
const onClick = (event: MouseEvent, treeId: string, treeNode: any) => {
|
const onClick = (event: MouseEvent, treeId: string, treeNode: any) => {
|
||||||
console.log('selectNode', treeNode)
|
console.log('selectNode', treeNode)
|
||||||
|
|
||||||
@ -131,20 +193,21 @@ const setting = {
|
|||||||
data: {
|
data: {
|
||||||
key: {
|
key: {
|
||||||
//zdatas数据中表示节点name的属性key
|
//zdatas数据中表示节点name的属性key
|
||||||
name: "name",
|
name: "sourceName",
|
||||||
checked: "is_show",
|
checked: "isShow",
|
||||||
},
|
},
|
||||||
simpleData: {
|
simpleData: {
|
||||||
enable: true,
|
enable: true,
|
||||||
idKey: "id",
|
idKey: "id",
|
||||||
pIdKey: "p_id",
|
pIdKey: "parentId",
|
||||||
nameKey: "name",
|
nameKey: "sourceName",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
callback: {
|
callback: {
|
||||||
onMouseDown: onMouseDown,
|
onMouseDown: onMouseDown,
|
||||||
onRightClick: rightClick,
|
onRightClick: rightClick,
|
||||||
onClick: onClick,
|
onClick: onClick,
|
||||||
|
onDblClick: onDblClick
|
||||||
/*
|
/*
|
||||||
onClick: this.onClick,
|
onClick: this.onClick,
|
||||||
onDblClick: this.onDblClick,
|
onDblClick: this.onDblClick,
|
||||||
@ -162,8 +225,11 @@ const setting = {
|
|||||||
beforeClick: this.zTreeBeforeClick,
|
beforeClick: this.zTreeBeforeClick,
|
||||||
onCheck: this.onCheck*/
|
onCheck: this.onCheck*/
|
||||||
},
|
},
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
defineExpose({
|
||||||
|
initTreeCallBack
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@ -189,6 +255,19 @@ const setting = {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep("li a.curSelectedNode") {
|
||||||
|
background-color: #ffe6b0 !important;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.ztree {
|
||||||
|
li {
|
||||||
|
a.curSelectedNode {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.el-input__wrapper), :deep(.el-input__inner ) {
|
:deep(.el-input__wrapper), :deep(.el-input__inner ) {
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
|
import {$changeComponentPop} from "../../../utils/communication";
|
||||||
|
|
||||||
export const useRightOperate = () => {
|
export const useRightOperate = () => {
|
||||||
const addDirectory = () => {
|
const addDirectory = () => {
|
||||||
// $changeComponentPop('.adddirectoryBox', true)
|
$changeComponentPop('.adddirectoryBox', true)
|
||||||
console.log("addDirectory")
|
console.log("addDirectory")
|
||||||
}
|
}
|
||||||
const addResource = () => {
|
const addResource = () => {
|
||||||
|
|||||||
@ -4,10 +4,11 @@
|
|||||||
<use xlink:href="#icon-tuichu"></use>
|
<use xlink:href="#icon-tuichu"></use>
|
||||||
</svg>
|
</svg>
|
||||||
<div id="earthContainer" class="fullSize"></div>
|
<div id="earthContainer" class="fullSize"></div>
|
||||||
<cabin></cabin>
|
<cabin ref="cabin"></cabin>
|
||||||
<element></element>
|
<element></element>
|
||||||
<deduction :TSOBJ="tsOBJ"></deduction>
|
<deduction :TSOBJ="tsOBJ"></deduction>
|
||||||
<newEvent></newEvent>
|
<newEvent></newEvent>
|
||||||
|
<addDirectory class="adddirectoryBox absolute zIndex999"></addDirectory>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -18,9 +19,11 @@ 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 {TS} from "./sdk";
|
import {TS} from "./sdk";
|
||||||
import * as domain from "domain";
|
import * as domain from "domain";
|
||||||
|
|
||||||
|
let cabin = ref()
|
||||||
let tsOBJ = reactive({})
|
let tsOBJ = reactive({})
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
@ -33,6 +36,7 @@ for (const routeQueryKey in route.query) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log("params", params)
|
console.log("params", params)
|
||||||
|
window.planId = params.id
|
||||||
|
|
||||||
// 通过planID获取方案包含的所有事件
|
// 通过planID获取方案包含的所有事件
|
||||||
let getEventList = () => {
|
let getEventList = () => {
|
||||||
@ -79,6 +83,7 @@ const createEarth = async () => {
|
|||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
new YJ.Tools(window.earth_ts).flyHome()
|
new YJ.Tools(window.earth_ts).flyHome()
|
||||||
}, 1000)
|
}, 1000)
|
||||||
|
cabin.value.initTreeCallBack()
|
||||||
}
|
}
|
||||||
const closeSituationEdit = () => {
|
const closeSituationEdit = () => {
|
||||||
router.back()
|
router.back()
|
||||||
@ -96,5 +101,9 @@ const closeSituationEdit = () => {
|
|||||||
height: 2.2222222222vh !important;
|
height: 2.2222222222vh !important;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.adddirectoryBox {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -55,8 +55,11 @@ import {ref, onMounted} from "vue";
|
|||||||
import {Search} from '@element-plus/icons-vue'
|
import {Search} from '@element-plus/icons-vue'
|
||||||
import {ModelApi} from "../../api/model";
|
import {ModelApi} from "../../api/model";
|
||||||
import {GraphApi} from "../../api/graphLabel";
|
import {GraphApi} from "../../api/graphLabel";
|
||||||
import {addMapSource} from "./entity";
|
|
||||||
|
|
||||||
|
import {addMapSource} from "./entity";
|
||||||
|
import {useTreeNode} from "../components/tree/hooks/treeNode";
|
||||||
|
|
||||||
|
const {getSelectedNodes} = useTreeNode()
|
||||||
const service = ref(localStorage.getItem('ip'))
|
const service = ref(localStorage.getItem('ip'))
|
||||||
|
|
||||||
interface Tree {
|
interface Tree {
|
||||||
@ -158,11 +161,15 @@ let getGraphTypeList = async () => {
|
|||||||
}
|
}
|
||||||
// 添加标绘
|
// 添加标绘
|
||||||
let addMarker = (item) => {
|
let addMarker = (item) => {
|
||||||
|
let nodes = getSelectedNodes(window['treeObj'])
|
||||||
console.log("绘制" + item.name)
|
console.log("绘制" + item.name)
|
||||||
|
console.log("获取选中的节点", nodes)
|
||||||
|
let id = new YJ.Tools().randomString()
|
||||||
|
let pId = nodes.length >= 1 ? nodes[0].id : -1
|
||||||
window.draw = new YJ.Draw[item.funName](earth_ts)
|
window.draw = new YJ.Draw[item.funName](earth_ts)
|
||||||
window.draw.start((a, position) => {
|
window.draw.start((a, position) => {
|
||||||
console.log(position)
|
console.log(position)
|
||||||
addMapSource({id: 777, type: item.type, name: item.source_name, position})
|
addMapSource({id, type: item.type, name: item.source_name, position, pId})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,9 @@
|
|||||||
export function addMapSource(option) {
|
import {TsApi} from "../../api/ts";
|
||||||
|
import {useTreeNode} from '@/views/components/tree/hooks/treeNode'
|
||||||
|
|
||||||
|
const {cusAddNodes, getSelectedNode} = useTreeNode()
|
||||||
|
|
||||||
|
export function addMapSource(option, cb: any = null) {
|
||||||
console.log("添加到地球上", option)
|
console.log("添加到地球上", option)
|
||||||
let id = option.id || new YJ.Tools().randomString()
|
let id = option.id || new YJ.Tools().randomString()
|
||||||
let name = option.name
|
let name = option.name
|
||||||
@ -24,5 +29,37 @@ export function addMapSource(option) {
|
|||||||
}
|
}
|
||||||
console.log('options', options)
|
console.log('options', options)
|
||||||
// 进数据库
|
// 进数据库
|
||||||
// 上树
|
let dbOption = {
|
||||||
|
"id": option.id,
|
||||||
|
"sourceName": name,
|
||||||
|
"sourceType": option.type,
|
||||||
|
"sourcePath": "",
|
||||||
|
"parentId": option.pId,
|
||||||
|
"treeIndex": 0,
|
||||||
|
"isShow": 1,
|
||||||
|
"detail": JSON.stringify(options) || '{}',
|
||||||
|
"params": "",
|
||||||
|
"planId": window['planId']
|
||||||
|
}
|
||||||
|
console.log('dbOption', dbOption)
|
||||||
|
TsApi.addTsSource(dbOption).then(res => {
|
||||||
|
console.log("addTsSource", res)
|
||||||
|
cb && cb(res)
|
||||||
|
// 上树
|
||||||
|
cusAddNodes(window.treeObj, getSelectedNode(window.treeObj), [dbOption], true)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function initMapData(type, data) {
|
||||||
|
let entityObject
|
||||||
|
switch (type) {
|
||||||
|
case 'point':
|
||||||
|
console.log("ssssssss+++", window['earth_ts'])
|
||||||
|
entityObject = new YJ.Obj.BillboardObject(window['earth_ts'], data)
|
||||||
|
}
|
||||||
|
if (entityObject) {
|
||||||
|
if (entityObject.options.id) {
|
||||||
|
(window as any)._entityMap.set(entityObject.options.id, entityObject)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -151,7 +151,10 @@ const getList = (params = null) => {
|
|||||||
formData.append(paramsKey, params[paramsKey])
|
formData.append(paramsKey, params[paramsKey])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
formData.append('username', params["createdBy"])
|
||||||
|
|
||||||
}
|
}
|
||||||
TsApi.planList(formData).then(res => {
|
TsApi.planList(formData).then(res => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
@ -175,7 +178,7 @@ const toTSEdit = (row) => {
|
|||||||
console.log("当前推演方案", row)
|
console.log("当前推演方案", row)
|
||||||
router.push({
|
router.push({
|
||||||
name: 'tsEdit', // 必须用 name 匹配路由,不能用 path
|
name: 'tsEdit', // 必须用 name 匹配路由,不能用 path
|
||||||
query: {id: 123, name: "战时推演", start_time: 946684800000}
|
query: {id: row.id, name: row.name, start_time: new Date(row.simulationStartTime).getTime()}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const delPlan = (id) => {
|
const delPlan = (id) => {
|
||||||
|
|||||||
@ -11,28 +11,31 @@
|
|||||||
</template>
|
</template>
|
||||||
<div class="set_detail">
|
<div class="set_detail">
|
||||||
<el-form
|
<el-form
|
||||||
|
ref="ruleFormRef"
|
||||||
style="max-width: 600px"
|
style="max-width: 600px"
|
||||||
:model="sizeForm"
|
:model="sizeForm"
|
||||||
label-width="auto"
|
label-width="auto"
|
||||||
:label-position="'top'"
|
:label-position="'top'"
|
||||||
|
:rules="rules"
|
||||||
>
|
>
|
||||||
<el-form-item label="推演名称">
|
<el-form-item label="推演名称" prop="name" required>
|
||||||
<el-input v-model="sizeForm.name" placeholder="请填写名称"/>
|
<el-input v-model="sizeForm.name" placeholder="请填写名称"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="仿真开始时间">
|
<el-form-item label="仿真开始时间" prop="simulationStartTime" required>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="sizeForm.date1"
|
v-model="sizeForm.simulationStartTime"
|
||||||
type="datetime"
|
type="datetime"
|
||||||
|
timezone="Asia/Shanghai"
|
||||||
|
value-format="YYYY-MM-DDTHH:mm:ss"
|
||||||
placeholder="请选择日期时间"
|
placeholder="请选择日期时间"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="推演描述" prop="desc">
|
<el-form-item label="推演描述" prop="desc" required>
|
||||||
<el-input v-model="sizeForm.desc" type="textarea" placeholder="请输入内容描述"/>
|
<el-input v-model="sizeForm.desc" type="textarea" placeholder="请输入内容描述"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<div class="optionbtn">
|
<div class="optionbtn">
|
||||||
<el-button @click="addPlan">确定</el-button>
|
<el-button @click="addPlan(ruleFormRef)">确定</el-button>
|
||||||
<el-button>取消</el-button>
|
<el-button>取消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -45,19 +48,53 @@
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import {ref, reactive,} from "vue";
|
import {ref, reactive,} from "vue";
|
||||||
import {ElMessage} from 'element-plus'
|
import {ElMessage, FormInstance, FormRules} from 'element-plus'
|
||||||
import {TsApi} from "../../api/ts";
|
import {TsApi} from "../../api/ts";
|
||||||
|
|
||||||
const eventBus: any = inject('bus')
|
const eventBus: any = inject('bus')
|
||||||
const emit = defineEmits(['addCallback']);
|
const emit = defineEmits(['addCallback']);
|
||||||
const isShowPup = ref(false)
|
const isShowPup = ref(false)
|
||||||
const sizeForm = reactive({
|
|
||||||
|
|
||||||
|
interface RuleForm {
|
||||||
|
name: string,
|
||||||
|
simulationStartTime: string,
|
||||||
|
desc: string,
|
||||||
|
}
|
||||||
|
|
||||||
|
const ruleFormRef = ref<FormInstance>()
|
||||||
|
const sizeForm = reactive<RuleForm>({
|
||||||
name: '',
|
name: '',
|
||||||
// date1: '',
|
simulationStartTime: '',
|
||||||
desc: '',
|
desc: '',
|
||||||
})
|
})
|
||||||
const addPlan = () => {
|
|
||||||
TsApi.addPlan({name: sizeForm.name, desc: sizeForm.desc}).then(res => {
|
const rules = reactive<FormRules<RuleForm>>({
|
||||||
|
name: [
|
||||||
|
{required: true, message: '推演名称不能为空', trigger: 'blur'},
|
||||||
|
],
|
||||||
|
desc: [
|
||||||
|
{required: true, message: '推演描述不能为空', trigger: 'blur'},
|
||||||
|
],
|
||||||
|
simulationStartTime: [
|
||||||
|
{required: true, message: '仿真开始时间不能为空', trigger: 'blur'},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
const submitForm = async (formEl: FormInstance | undefined) => {
|
||||||
|
if (!formEl) return
|
||||||
|
await formEl.validate((valid, fields) => {
|
||||||
|
if (valid) {
|
||||||
|
console.log('submit!')
|
||||||
|
} else {
|
||||||
|
console.log('error submit!', fields)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const addPlan = async (formEl: FormInstance | undefined) => {
|
||||||
|
if (!formEl) return
|
||||||
|
await formEl.validate((valid, fields) => {
|
||||||
|
if (valid) {
|
||||||
|
TsApi.addPlan(sizeForm).then(res => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
@ -68,6 +105,11 @@ const addPlan = () => {
|
|||||||
}
|
}
|
||||||
$(".newPlan")[0].style.display = "none"
|
$(".newPlan")[0].style.display = "none"
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
console.log('提交失败', fields)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
eventBus.on('openAddPlan', (data, cb, type) => {
|
eventBus.on('openAddPlan', (data, cb, type) => {
|
||||||
// selectCallback = cb
|
// selectCallback = cb
|
||||||
|
|||||||
@ -274,6 +274,8 @@ const handleClick = (item: any, e) => {
|
|||||||
if ((window as any).checkAuthIsValid) {
|
if ((window as any).checkAuthIsValid) {
|
||||||
console.log('打开态势推演')
|
console.log('打开态势推演')
|
||||||
ipcRenderer.send('toggle-fullscreen', true)
|
ipcRenderer.send('toggle-fullscreen', true)
|
||||||
|
window['earth'].destroy()
|
||||||
|
window['earth'] = null
|
||||||
router.push({path: '/ts'})
|
router.push({path: '/ts'})
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -493,6 +495,7 @@ 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;
|
||||||
|
|
||||||
> svg {
|
> svg {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|||||||
@ -7,7 +7,15 @@ import { ElMessage } from 'element-plus'
|
|||||||
export const useTree = () => {
|
export const useTree = () => {
|
||||||
const rightMenuRef: any = ref() //右键菜单的实例
|
const rightMenuRef: any = ref() //右键菜单的实例
|
||||||
const treeObj = ref() //树形的实例
|
const treeObj = ref() //树形的实例
|
||||||
const { getSelectedNodes, showRightMenu, cusUpdateNode, cusSelectNode, getSameLevel, cusNodeIcon, nodeType } = useTreeNode() //树上一系列的方法hooks
|
const {
|
||||||
|
getSelectedNodes,
|
||||||
|
showRightMenu,
|
||||||
|
cusUpdateNode,
|
||||||
|
cusSelectNode,
|
||||||
|
getSameLevel,
|
||||||
|
cusNodeIcon,
|
||||||
|
nodeType
|
||||||
|
} = useTreeNode() //树上一系列的方法hooks
|
||||||
const nodes: any = ref([])
|
const nodes: any = ref([])
|
||||||
/**
|
/**
|
||||||
* 用于捕获zTree上鼠标按键按下后的事件回调函数
|
* 用于捕获zTree上鼠标按键按下后的事件回调函数
|
||||||
@ -79,8 +87,7 @@ export const useTree = () => {
|
|||||||
let t = window.earth.entityMap.get(n.id)
|
let t = window.earth.entityMap.get(n.id)
|
||||||
if (t) {
|
if (t) {
|
||||||
return t
|
return t
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (n.parentId) {
|
if (n.parentId) {
|
||||||
return getEntityObject(window.treeObj.getNodeByParam("id", n.parentId, null))
|
return getEntityObject(window.treeObj.getNodeByParam("id", n.parentId, null))
|
||||||
}
|
}
|
||||||
@ -89,8 +96,7 @@ export const useTree = () => {
|
|||||||
}
|
}
|
||||||
entityObject = getEntityObject(treeNode)
|
entityObject = getEntityObject(treeNode)
|
||||||
entityObject.flyTo(treeNode.id)
|
entityObject.flyTo(treeNode.id)
|
||||||
}
|
} else if (treeNode.sourceType === "roam") {
|
||||||
else if (treeNode.sourceType === "roam") {
|
|
||||||
// 飞行漫游
|
// 飞行漫游
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '单击鼠标右键可结束当前漫游',
|
message: '单击鼠标右键可结束当前漫游',
|
||||||
@ -99,8 +105,7 @@ export const useTree = () => {
|
|||||||
let params = JSON.parse(treeNode.params)
|
let params = JSON.parse(treeNode.params)
|
||||||
YJ.Global.FlyRoam.flyTo((window as any).earth, params.points);
|
YJ.Global.FlyRoam.flyTo((window as any).earth, params.points);
|
||||||
return;
|
return;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (treeNode.sourceType == 'pressModel') {
|
if (treeNode.sourceType == 'pressModel') {
|
||||||
entityObject = (window as any).pressModelEntities.get(treeNode.id)
|
entityObject = (window as any).pressModelEntities.get(treeNode.id)
|
||||||
} else {
|
} else {
|
||||||
@ -289,8 +294,7 @@ export const useTree = () => {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
window.treeObj.checkNode(parentNode, false, true);
|
window.treeObj.checkNode(parentNode, false, true);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
p_ids.push(
|
p_ids.push(
|
||||||
{
|
{
|
||||||
id: parentNode.id,
|
id: parentNode.id,
|
||||||
@ -307,6 +311,7 @@ export const useTree = () => {
|
|||||||
|
|
||||||
|
|
||||||
let ids = [...p_ids]
|
let ids = [...p_ids]
|
||||||
|
|
||||||
// 更新节点状态修改地图资源状态
|
// 更新节点状态修改地图资源状态
|
||||||
function sourceStatus(node) {
|
function sourceStatus(node) {
|
||||||
ids.push({id: node.id, isShow: node.isShow ? 1 : 0})
|
ids.push({id: node.id, isShow: node.isShow ? 1 : 0})
|
||||||
@ -316,8 +321,7 @@ export const useTree = () => {
|
|||||||
sourceStatus(item)
|
sourceStatus(item)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
let params = JSON.parse(node.params)
|
let params = JSON.parse(node.params)
|
||||||
let entityObject
|
let entityObject
|
||||||
if (node.sourceType == 'pressModel') {
|
if (node.sourceType == 'pressModel') {
|
||||||
@ -368,7 +372,6 @@ export const useTree = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// let source_ids = [];
|
// let source_ids = [];
|
||||||
// nodes.forEach((item) => {
|
// nodes.forEach((item) => {
|
||||||
// if (item.isHidden == false) {
|
// if (item.isHidden == false) {
|
||||||
@ -604,7 +607,7 @@ export const useTree = () => {
|
|||||||
brightness: 1
|
brightness: 1
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
res.data.list[i].svg = await cusNodeIcon(res.data.list[i]);
|
res.data.list[i].icon = await cusNodeIcon(res.data.list[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
zNodes.value = res.data.list
|
zNodes.value = res.data.list
|
||||||
@ -686,8 +689,7 @@ export const useTree = () => {
|
|||||||
params: {...detail, ...params}
|
params: {...detail, ...params}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
initMapData(zNodes.value[i].sourceType, {...detail, ...params}, null)
|
initMapData(zNodes.value[i].sourceType, {...detail, ...params}, null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user