This commit is contained in:
zh
2025-09-11 19:17:52 +08:00
parent 6e237f2fd1
commit 515ce45992
13 changed files with 57 additions and 61 deletions

View File

@ -167,12 +167,12 @@ function createWindow(): void {
}); });
let recorder; let recorder;
ipcMain.on("startRecoder", (event) => { ipcMain.on("startRecoder", () => {
console.log("开始录制"); console.log("开始录制");
recorder = new Recorder(); recorder = new Recorder();
recorder.start(); recorder.start();
}); });
ipcMain.on("endRecoder", (event) => { ipcMain.on("endRecoder", () => {
console.log("结束录制"); console.log("结束录制");
// 判断是否存在recorder是否有recorder.end方法 // 判断是否存在recorder是否有recorder.end方法
if (!recorder) { if (!recorder) {

View File

@ -53,20 +53,20 @@ export const initMapData = async (type, data) => {
entityObject.load((res) => { entityObject.load((res) => {
// 等模型加载完后再加载压平模型 // 等模型加载完后再加载压平模型
Array.from(window.pressModelMap.keys()).forEach((key) => { Array.from((window as any).pressModelMap.keys()).forEach((key:any) => {
if (key.indexOf("_" + data.id) > -1) { if (key.indexOf("_" + data.id) > -1) {
const nodes = window.pressModelMap.get(key); const nodes = (window as any).pressModelMap.get(key);
if (nodes) { if (nodes) {
if (nodes.isShow == 1) { if (nodes.isShow == 1) {
// nodeType[nodes.source_type].render(nodes); // nodeType[nodes.source_type].render(nodes);
const flatData = JSON.parse(nodes.params) const flatData = JSON.parse(nodes.params)
const entity = window.earth.entityMap.get(flatData.modelId).entity const entity = window.earth.entityMap.get(flatData.modelId).entity
let flat = new YJ.Analysis.Flat(window.earth, entity, { let flat:any = new YJ.Analysis.Flat(window.earth, entity, {
positions: flatData.positions, positions: flatData.positions,
height: flatData.height, height: flatData.height,
name: nodes.sourceName name: nodes.sourceName
}) });
window.pressModelEntities.set(nodes.id, flat) (window as any).pressModelEntities.set(nodes.id, flat)
} }
} }
} }

View File

@ -19,7 +19,7 @@ export function processBase64Images(base64Data1, base64Data2, callback) {
resultCanvas.height = maxHeight; resultCanvas.height = maxHeight;
// 获取Canvas绘图上下文 // 获取Canvas绘图上下文
const ctx = resultCanvas.getContext("2d"); const ctx:any = resultCanvas.getContext("2d");
// 绘制第一个图像(左上角开始) // 绘制第一个图像(左上角开始)
ctx.drawImage(img1, 0, 0); ctx.drawImage(img1, 0, 0);
@ -57,7 +57,7 @@ export function combineBase64Images(
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// 创建canvas元素 // 创建canvas元素
const canvas = document.createElement("canvas"); const canvas = document.createElement("canvas");
const ctx = canvas.getContext("2d"); const ctx:any = canvas.getContext("2d");
// 设置canvas宽度和高度 // 设置canvas宽度和高度
canvas.width = width1 + width2; canvas.width = width1 + width2;

View File

@ -43,7 +43,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import uploadFiles from '@/components/upload/uploadFiles.vue' import uploadFiles from '@/components/upload/uploadFiles.vue'
import { AuthApi } from '@/api/setting/auth.ts' import { AuthApi } from '@/api/setting/auth'
const { t } = useI18n() const { t } = useI18n()
const authInfo = ref({ const authInfo = ref({
license_code: '', license_code: '',

View File

@ -31,7 +31,7 @@ import dayjs from 'dayjs'
const { t } = useI18n() const { t } = useI18n()
const { findParentId, findTreeIndex, cusAddNodes } = useTreeNode() const { findParentId, findTreeIndex, cusAddNodes } = useTreeNode()
const fs = require('fs') const fs = require('fs')
const obj = ref(null) const obj:any = ref(null)
const isclick = ref(false) const isclick = ref(false)
const eventBus: any = inject('bus') const eventBus: any = inject('bus')
const initList = (value) => { const initList = (value) => {
@ -50,7 +50,7 @@ eventBus.on('graffitiObj', (data: never) => {
function openLoading( function openLoading(
text = '拼命加载中...', text = '拼命加载中...',
option = { option:any = {
fullscreen: true, fullscreen: true,
background: 'rgba(0,0,0,0.63)', background: 'rgba(0,0,0,0.63)',
lock: true lock: true
@ -308,11 +308,11 @@ const methodMap = {
}) })
} }
if (window.splitScreen || window.multiViewportMode) { if ((window as any).splitScreen || (window as any).multiViewportMode) {
let res = '' let res = ''
let res2 = '' let res2 = ''
let sdk let sdk
if (window.splitScreen) { if ((window as any).splitScreen) {
sdk = YJ.Global.splitScreen.getSdk() sdk = YJ.Global.splitScreen.getSdk()
} else { } else {
sdk = YJ.Global.multiViewportMode.getSdk() sdk = YJ.Global.multiViewportMode.getSdk()
@ -323,13 +323,13 @@ const methodMap = {
await new YJ.Global.ScreenShot(sdk.sdkP, (data) => { await new YJ.Global.ScreenShot(sdk.sdkP, (data) => {
res2 = data res2 = data
}) })
if (window.multiViewportMode) { if ((window as any).multiViewportMode) {
processBase64Images(res, res2, (mergedBase64) => { processBase64Images(res, res2, (mergedBase64) => {
downloadScreen(mergedBase64) downloadScreen(mergedBase64)
// window.multiViewportMode = false; // window.multiViewportMode = false;
}) })
} else { } else {
let doms = document.querySelectorAll('.cesium-widget') let doms:any = document.querySelectorAll('.cesium-widget')
let leftWidth = doms[0].offsetWidth let leftWidth = doms[0].offsetWidth
let rightWidth = doms[1].offsetWidth let rightWidth = doms[1].offsetWidth
combineBase64Images(res2, leftWidth, res, rightWidth) combineBase64Images(res2, leftWidth, res, rightWidth)
@ -356,16 +356,16 @@ const methodMap = {
videoRecord() { videoRecord() {
clickChange.videoRecord = !clickChange.videoRecord clickChange.videoRecord = !clickChange.videoRecord
let time = 3 let time:any = 3
$changeComponentShow('#secondMenu', false) $changeComponentShow('#secondMenu', false)
if (clickChange.videoRecord) { if (clickChange.videoRecord) {
// document.addEventListener("keydown", onKeyDown); // document.addEventListener("keydown", onKeyDown);
let loading = openLoading(time, { let loading:any = openLoading(time, {
background: 'rgba(0,0,0,0)', background: 'rgba(0,0,0,0)',
fullscreen: false, fullscreen: false,
customClass: 'timer' customClass: 'timer'
}) })
let timer = '' let timer:any = ''
const p = document.createElement('p') const p = document.createElement('p')
p.style.color = '#fff' p.style.color = '#fff'
p.innerHTML = '再次点击录制结束' p.innerHTML = '再次点击录制结束'
@ -424,7 +424,7 @@ const methodMap = {
height: flat.height height: flat.height
} }
let id = new YJ.Tools().randomString() let id = new YJ.Tools().randomString()
let paramsData = { let paramsData:any = {
params: detailOption, params: detailOption,
id, id,
sourceName: '压平面', sourceName: '压平面',
@ -435,10 +435,10 @@ const methodMap = {
} }
TreeApi.addOtherSource(paramsData) TreeApi.addOtherSource(paramsData)
paramsData.isShow = true paramsData.isShow = true;
paramsData.params = JSON.stringify(paramsData.params) paramsData.params = JSON.stringify(paramsData.params);
pressModelMap.set(id + '_' + selectedNode.id, paramsData) (window as any).pressModelMap.set(id + '_' + selectedNode.id, paramsData)
window.pressModelEntities.set(id, flat) (window as any).pressModelEntities.set(id, flat)
cusAddNodes(window.treeObj, paramsData.parentId, [paramsData]) cusAddNodes(window.treeObj, paramsData.parentId, [paramsData])
// //鼠标右键点击事件 // //鼠标右键点击事件
flat.onRightClick = () => {} flat.onRightClick = () => {}

View File

@ -70,7 +70,7 @@ eventBus.on('goodsSearchCircleDialog', () => {
function booleanOverlaps(positions1, flag = 'circle') { function booleanOverlaps(positions1, flag = 'circle') {
let cross = undefined let cross = undefined
function set3Array(positions) { function set3Array(positions) {
let arr = [] let arr:any = []
positions.forEach((item) => { positions.forEach((item) => {
arr.push([item.lng, item.lat]) arr.push([item.lng, item.lat])
}) })
@ -94,19 +94,19 @@ function booleanOverlaps(positions1, flag = 'circle') {
// 获取物资处(特定的标注类型) // 获取物资处(特定的标注类型)
let allNodes = getNode(['point', 'vr', 'picture', 'Feature']) let allNodes = getNode(['point', 'vr', 'picture', 'Feature'])
console.log('allNodes', allNodes) console.log('allNodes', allNodes)
let itemInArea = [] //区域内的类型符合的标注 let itemInArea:any = [] //区域内的类型符合的标注
for (let i = 0; i < allNodes.length; i++) { for (let i = 0; i < allNodes.length; i++) {
let item = allNodes[i] let item:any = allNodes[i]
let getAllItemInArea = (lng, lat) => { let getAllItemInArea = (lng, lat) => {
if (flag == 'circle') { if (flag == 'circle') {
let { center, radius } = positions1 let { center, radius } = positions1
let distance = new YJ.Tools().randomString(center, { lng, lat }) let distance = new YJ.Tools().randomString(center, { lng, lat })
distance < radius && itemInArea.push(item) distance < radius && itemInArea.push(item)
} else { } else {
let polygon1 = turf.polygon([set3Array(positions1)]) let polygon1 = (window as any).turf.polygon([set3Array(positions1)]);
let pt = turf.point([lng, lat]) let pt = (window as any).turf.point([lng, lat]);
turf.booleanPointInPolygon(pt, polygon1) && itemInArea.push(item) (window as any).turf.booleanPointInPolygon(pt, polygon1) && itemInArea.push(item)
} }
} }
console.log(item, item.sourceType, 'ooooo') console.log(item, item.sourceType, 'ooooo')
@ -178,8 +178,8 @@ function renderCanvas(nodes) {
console.log('x,y') console.log('x,y')
console.log(x) console.log(x)
console.log(y) console.log(y)
let notZeroX = [] let notZeroX:any = []
let notZeroY = [] let notZeroY:any = []
for (let i = 0; i < y.length; i++) { for (let i = 0; i < y.length; i++) {
if (y[i] != 0) { if (y[i] != 0) {
notZeroX.push(x[i]) notZeroX.push(x[i])
@ -193,7 +193,7 @@ function renderCanvas(nodes) {
if (!x.length) show.value = false if (!x.length) show.value = false
if (show.value) { if (show.value) {
nextTick(() => { nextTick(() => {
let option = { let option:any = {
grid: { grid: {
top: '20%', top: '20%',
left: '5%', left: '5%',

View File

@ -66,8 +66,8 @@ eventBus.on('goodsSearchPolgonDialog', () => {
function booleanOverlaps(positions1, flag = 'circle') { function booleanOverlaps(positions1, flag = 'circle') {
let cross = undefined let cross = undefined
function set3Array(positions) { function set3Array(positions) {
let arr = [] let arr:any = []
positions.forEach((item) => { positions.forEach((item:any) => {
arr.push([item.lng, item.lat]) arr.push([item.lng, item.lat])
}) })
arr.push(arr[0]) arr.push(arr[0])
@ -87,19 +87,19 @@ function booleanOverlaps(positions1, flag = 'circle') {
//绘制的区域 //绘制的区域
// 获取物资处(特定的标注类型) // 获取物资处(特定的标注类型)
let allNodes = getNode(['point', 'vr', 'picture', 'Feature']) let allNodes = getNode(['point', 'vr', 'picture', 'Feature'])
let itemInArea = [] //区域内的类型符合的标注 let itemInArea:any = [] //区域内的类型符合的标注
for (let i = 0; i < allNodes.length; i++) { for (let i = 0; i < allNodes.length; i++) {
let item = allNodes[i] let item:any = allNodes[i]
let getAllItemInArea = (lng, lat) => { let getAllItemInArea = (lng, lat) => {
if (flag == 'circle') { if (flag == 'circle') {
let { center, radius } = positions1 let { center, radius } = positions1
let distance = new YJ.Tools().randomString(center, { lng, lat }) let distance = new YJ.Tools().randomString(center, { lng, lat })
distance < radius && itemInArea.push(item) distance < radius && itemInArea.push(item)
} else { } else {
let polygon1 = turf.polygon([set3Array(positions1)]) let polygon1 = (window as any).turf.polygon([set3Array(positions1)]);
let pt = turf.point([lng, lat]) let pt = (window as any).turf.point([lng, lat]);
turf.booleanPointInPolygon(pt, polygon1) && itemInArea.push(item) (window as any).turf.booleanPointInPolygon(pt, polygon1) && itemInArea.push(item)
} }
} }
switch (item.sourceType) { switch (item.sourceType) {
@ -166,8 +166,8 @@ function renderCanvas(nodes) {
console.log('x,y') console.log('x,y')
console.log(x) console.log(x)
console.log(y) console.log(y)
let notZeroX = [] let notZeroX:any = []
let notZeroY = [] let notZeroY:any = []
for (let i = 0; i < y.length; i++) { for (let i = 0; i < y.length; i++) {
if (y[i] != 0) { if (y[i] != 0) {
notZeroX.push(x[i]) notZeroX.push(x[i])
@ -181,7 +181,7 @@ function renderCanvas(nodes) {
if (!x.length) show.value = false if (!x.length) show.value = false
if (show.value) { if (show.value) {
nextTick(() => { nextTick(() => {
let option = { let option:any = {
grid: { grid: {
top: '20%', top: '20%',
left: '5%', left: '5%',

View File

@ -231,8 +231,6 @@
import { ref, reactive } from 'vue' import { ref, reactive } from 'vue'
import { inject } from 'vue' import { inject } from 'vue'
import Dialog from '@/components/dialog/baseDialog.vue' import Dialog from '@/components/dialog/baseDialog.vue'
import Clipboard from 'clipboard'
import { ElMessage } from 'element-plus'
const baseDialog: any = ref(null) const baseDialog: any = ref(null)
const eventBus: any = inject('bus') const eventBus: any = inject('bus')
@ -260,7 +258,7 @@ const closeCallBack = (e) => {
status1.value = false status1.value = false
} }
const reset = () => { const reset = () => {
let contentElm = document let contentElm:any = document
.getElementsByClassName('proj-convert')[0] .getElementsByClassName('proj-convert')[0]
.getElementsByClassName('content')[0] .getElementsByClassName('content')[0]
contentElm.getElementsByClassName('lng-dms-d')[0].value = null contentElm.getElementsByClassName('lng-dms-d')[0].value = null

View File

@ -91,11 +91,11 @@
</div> </div>
<div style="display: flex; margin-bottom: 12px; align-items: center"> <div style="display: flex; margin-bottom: 12px; align-items: center">
<span class="label" style="flex: 0 0 60px">经度(x)</span> <span class="label" style="flex: 0 0 60px">经度(x)</span>
<input class="input right-x" readonly="readonly" /> <input class="input right-x" readonly />
</div> </div>
<div style="display: flex; margin-bottom: 10px; align-items: center"> <div style="display: flex; margin-bottom: 10px; align-items: center">
<span class="label" style="flex: 0 0 60px">纬度(y)</span> <span class="label" style="flex: 0 0 60px">纬度(y)</span>
<input class="input right-y" readonly="readonly" /> <input class="input right-y" readonly />
</div> </div>
</div> </div>
</div> </div>
@ -112,8 +112,6 @@
import { ref, reactive } from 'vue' import { ref, reactive } from 'vue'
import { inject } from 'vue' import { inject } from 'vue'
import Dialog from '@/components/dialog/baseDialog.vue' import Dialog from '@/components/dialog/baseDialog.vue'
import Clipboard from 'clipboard'
import { ElMessage } from 'element-plus'
const baseDialog: any = ref(null) const baseDialog: any = ref(null)
const eventBus: any = inject('bus') const eventBus: any = inject('bus')
@ -141,7 +139,7 @@ const closeCallBack = (e) => {
tools && tools.projectionConvert(status1.value, () => {}) tools && tools.projectionConvert(status1.value, () => {})
} }
const reset = () => { const reset = () => {
let contentElm = document let contentElm:any = document
.getElementsByClassName('projection-convert')[0] .getElementsByClassName('projection-convert')[0]
.getElementsByClassName('content')[0] .getElementsByClassName('content')[0]
contentElm.getElementsByClassName('left-x')[0].value = null contentElm.getElementsByClassName('left-x')[0].value = null

View File

@ -69,7 +69,7 @@ const changeHeight = () => {
excavation.height = height.value excavation.height = height.value
} }
const heightInput = () => { const heightInput = () => {
let dom = document.getElementById('height') let dom:any = document.getElementById('height')
if (height.value < dom.min * 1) { if (height.value < dom.min * 1) {
height.value = dom.min * 1 height.value = dom.min * 1
} else if (height.value > dom.max * 1) { } else if (height.value > dom.max * 1) {

View File

@ -60,10 +60,10 @@ eventBus.on('flatDialog', (id) => {
}) })
const open = (data) => { const open = (data) => {
baseDialog.value?.open() baseDialog.value?.open()
flat = window.pressModelEntities.get(data.id) flat = (window as any).pressModelEntities.get(data.id)
let params = JSON.parse(data.params) let params = JSON.parse(data.params)
flatMsg = pressModelMap.get(data.id + '_' + params.modelId) flatMsg = (window as any).pressModelMap.get(data.id + '_' + params.modelId)
setTimeout(() => { setTimeout(() => {
flat.edit(true) flat.edit(true)
}, 100) }, 100)

View File

@ -71,7 +71,7 @@ export const useTree = () => {
const onDblClick = (event: MouseEvent, treeId: string, treeNode: any) => { const onDblClick = (event: MouseEvent, treeId: string, treeNode: any) => {
let entityObject let entityObject
if (treeNode.sourceType == 'pressModel') { if (treeNode.sourceType == 'pressModel') {
entityObject = window.pressModelEntities.get(treeNode.id) entityObject = (window as any).pressModelEntities.get(treeNode.id)
} else { } else {
entityObject = window.earth.entityMap.get(treeNode.id) entityObject = window.earth.entityMap.get(treeNode.id)
} }
@ -227,9 +227,9 @@ export const useTree = () => {
if (treeNode.sourceType == 'pressModel') { if (treeNode.sourceType == 'pressModel') {
let params = JSON.parse(treeNode.params) let params = JSON.parse(treeNode.params)
let id = treeNode.id + '_' + params.modelId let id = treeNode.id + '_' + params.modelId
let data = window.pressModelMap.get(id) let data = (window as any).pressModelMap.get(id)
data.isShow = treeNode.isShow data.isShow = treeNode.isShow
entityObject = window.pressModelEntities.get(treeNode.id) entityObject = (window as any).pressModelEntities.get(treeNode.id)
if (!entityObject && treeNode.isShow) { if (!entityObject && treeNode.isShow) {
const entity = window.earth.entityMap.get(params.modelId).entity const entity = window.earth.entityMap.get(params.modelId).entity
@ -238,7 +238,7 @@ export const useTree = () => {
height: params.height, height: params.height,
name: treeNode.sourceName name: treeNode.sourceName
}) })
window.pressModelEntities.set(treeNode.id, entityObject) (window as any).pressModelEntities.set(treeNode.id, entityObject)
} }
} else { } else {
@ -443,8 +443,8 @@ export const useTree = () => {
return 0; return 0;
}) })
//将模型压平 //将模型压平
window.pressModelMap = new Map(); (window as any).pressModelMap = new Map();
window.pressModelEntities = new Map(); (window as any).pressModelEntities = new Map();
for (let i = res.data.length - 1; i >= 0; i--) { for (let i = res.data.length - 1; i >= 0; i--) {
if (!res.data[i].id) { if (!res.data[i].id) {
// res.data.splice(i, 1); // res.data.splice(i, 1);
@ -452,7 +452,7 @@ export const useTree = () => {
} }
if (res.data[i].sourceType == "pressModel") { if (res.data[i].sourceType == "pressModel") {
const obj = JSON.parse(res.data[i].params); const obj = JSON.parse(res.data[i].params);
pressModelMap.set(res.data[i].id + "_" + obj.modelId, res.data[i]); (window as any).pressModelMap.set(res.data[i].id + "_" + obj.modelId, res.data[i]);
} }
} }
zNodes.value = res.data zNodes.value = res.data