This commit is contained in:
zh
2025-09-11 20:51:39 +08:00
parent 3474759fdc
commit a0499b9b35
8 changed files with 76 additions and 55 deletions

View File

@ -91,7 +91,7 @@ export default {
cutFill: "土方分析", cutFill: "土方分析",
globalContour: "全局等高线", globalContour: "全局等高线",
contour: "等高线", contour: "等高线",
clear: "清除", clearAnalysis: "清除",
}, },
measure: { measure: {
projectionArea: "投影面积", projectionArea: "投影面积",

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

View File

@ -10,14 +10,15 @@ import type {
const pendingRequests = new Map<string, AbortController>() const pendingRequests = new Map<string, AbortController>()
let baseURL: any let baseURL: any
if (window && window.process && window.process.type === 'renderer') { if (window && window.process && window.process.type === 'renderer') {
baseURL = localStorage.getItem('ip') || 'http://192.168.110.25:8848' || 'http://127.0.0.1:8808' // baseURL = localStorage.getItem('ip') ||'http://192.168.110.25:8848'|| 'http://127.0.0.1:8808'
baseURL = 'http://127.0.0.1:8848'
} else { } else {
baseURL = 'http://192.168.110.25:8848' baseURL = 'http://192.168.110.25:8848'
} }
// 创建自定义配置的axios实例 // 创建自定义配置的axios实例
const service: AxiosInstance = axios.create({ const service: AxiosInstance = axios.create({
baseURL: 'http://192.168.110.25:8848', baseURL: baseURL,
timeout: 10000, timeout: 10000,
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',

View File

@ -1,6 +1,13 @@
export const initMapData = async (type, data) => { export const initMapData = async (type, data) => {
let entityObject let entityObject
let options let options
let baseURL
if (window && window.process && window.process.type === 'renderer') {
// baseURL = localStorage.getItem('ip') ||'http://192.168.110.25:8848'|| 'http://127.0.0.1:8808'
baseURL = 'http://127.0.0.1:8848'
} else {
baseURL = 'http://192.168.110.25:8848'
}
switch (type) { switch (type) {
case 'groundText': case 'groundText':
entityObject = new YJ.Obj.GroundText(window.earth, data) entityObject = new YJ.Obj.GroundText(window.earth, data)
@ -40,20 +47,21 @@ export const initMapData = async (type, data) => {
entityObject = new YJ.Obj.ModelObject(window.earth, data) entityObject = new YJ.Obj.ModelObject(window.earth, data)
break break
case 'terrain': case 'terrain':
data.host = 'http://192.168.110.25:8848' data.host = baseURL
entityObject = new YJ.Obj.Terrain(window.earth, data) entityObject = new YJ.Obj.Terrain(window.earth, data)
break break
case 'layer': case 'layer':
data.host = 'http://192.168.110.25:8848' data.host = baseURL
console.log('data',data)
entityObject = new YJ.Obj.Layer(window.earth, data) entityObject = new YJ.Obj.Layer(window.earth, data)
break break
case 'tileset': case 'tileset':
data.host = 'http://192.168.110.25:8848' data.host = baseURL
entityObject = new YJ.Obj.Tileset(window.earth, data) entityObject = new YJ.Obj.Tileset(window.earth, data)
entityObject.load((res) => { entityObject.load((res) => {
// 等模型加载完后再加载压平模型 // 等模型加载完后再加载压平模型
Array.from((window as any).pressModelMap.keys()).forEach((key:any) => { 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 as any).pressModelMap.get(key); const nodes = (window as any).pressModelMap.get(key);
if (nodes) { if (nodes) {
@ -61,7 +69,7 @@ export const initMapData = async (type, data) => {
// 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:any = 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
@ -74,16 +82,16 @@ export const initMapData = async (type, data) => {
}) })
break break
case 'path': case 'path':
entityObject = new YJ.Obj.TrajectoryMotion(window.earth, data) entityObject = new YJ.Obj.TrajectoryMotion(window.earth, data)
break break
case 'wallStereoscopic': case 'wallStereoscopic':
entityObject = new YJ.Obj.WallStereoscopic(window.earth, data) entityObject = new YJ.Obj.WallStereoscopic(window.earth, data)
break break
case 'diffuseScan': case 'diffuseScan':
entityObject = new YJ.Obj.CircleDiffuse(window.earth, data) entityObject = new YJ.Obj.CircleDiffuse(window.earth, data)
break break
case 'radarScan': case 'radarScan':
entityObject = new YJ.Obj.RadarScan(window.earth, data) entityObject = new YJ.Obj.RadarScan(window.earth, data)
break break
default: default:

View File

@ -97,7 +97,7 @@ const menuList: any = ref([
'cutFill', 'cutFill',
'contour', 'contour',
'globalContour', 'globalContour',
'clear' 'clearAnalysis'
] ]
}, },
// 测量 // 测量

View File

@ -245,7 +245,7 @@ const methodMap = {
}) })
}, },
//分析清除 //分析清除
clear() { clearAnalysis() {
YJ.Analysis.Clear() YJ.Analysis.Clear()
}, },
//----------------工具------------------ //----------------工具------------------

View File

@ -36,14 +36,40 @@ export const useRightOperate = () => {
} }
ipcRenderer.send('open-directory-dialog', options); ipcRenderer.send('open-directory-dialog', options);
// 监听主进程返回的结果 // 监听主进程返回的结果
//@ts-ignore
ipcRenderer.once('selectedItem', async (event, filePaths) => { ipcRenderer.once('selectedItem', async (event, filePaths) => {
if (filePaths.length > 0) { if (filePaths.length > 0) {
let id = new YJ.Tools().randomString() let id = new YJ.Tools().randomString()
// 检查文件名是否有效
if (typeof filePaths[0] !== 'string' || filePaths[0].trim() === '') {
return false;
}
// 获取最后一个点的位置
const lastDotIndex = filePaths[0].lastIndexOf('.');
// 如果没有点或者点是最后一个字符,则不是有效的文件后缀
if (lastDotIndex === -1 || lastDotIndex === filePaths[0].length - 1) {
return false;
}
// 提取后缀并转换为小写进行比较
const extension = filePaths[0].slice(lastDotIndex + 1).toLowerCase();
let params2:any = {}
if(extension === 'mbtiles') {
params2.alpha = 1
params2.brightness = 1
}
let params: any = { let params: any = {
id: id, id: id,
sourcePath: filePaths[0], sourcePath: filePaths[0],
parentId: parentId, parentId: parentId,
params: '', params: JSON.stringify(params2),
} }
// filePaths[0].split('\\').pop() // filePaths[0].split('\\').pop()
let res = await TreeApi.addModelSource(params) let res = await TreeApi.addModelSource(params)
@ -54,25 +80,16 @@ export const useRightOperate = () => {
type: 'success' type: 'success'
}) })
res.data.id = id res.data.id = id
if (res.data.params) { let params = JSON.parse(res.data.params)
let params = JSON.parse(res.data.params) let detail = JSON.parse(res.data.detail)
if (!params.id) { if (!params.id) {
params.id = res.data.id params.id = res.data.id
}
initMapData(res.data.sourceType, params)
} }
else { if (!params.name) {
//@ts-ignore params.name = res.data.sourceName
if (res.data.detail) {
//@ts-ignore
let detail = JSON.parse(res.data.detail)
if (!detail.id) {
detail.id = res.data.id
}
initMapData(res.data.sourceType, detail)
}
} }
cusAddNodes(window.treeObj, params.parentId, [res.data]) initMapData(res.data.sourceType, {...detail, ...params})
cusAddNodes(window.treeObj, params.parentId, [{...detail, ...params}])
} }
} }
}); });
@ -196,7 +213,7 @@ export const useRightOperate = () => {
.then(async () => { .then(async () => {
let selectNodes = getSelectedNodes(window.treeObj) let selectNodes = getSelectedNodes(window.treeObj)
let source_ids = cusRemoveNode(window.treeObj, selectNodes) let source_ids = cusRemoveNode(window.treeObj, selectNodes)
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: '删除成功',

View File

@ -238,7 +238,7 @@ export const useTree = () => {
height: params.height, height: params.height,
name: treeNode.sourceName name: treeNode.sourceName
}) })
(window as any).pressModelEntities.set(treeNode.id, entityObject) (window as any).pressModelEntities.set(treeNode.id, entityObject)
} }
} else { } else {
@ -466,15 +466,15 @@ export const useTree = () => {
function generateRandomString(length = 10, includeSpecial = true) { function generateRandomString(length = 10, includeSpecial = true) {
// 基础字符集:大小写字母和数字 // 基础字符集:大小写字母和数字
let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
// 如果需要包含特殊字符,则添加到字符集中 // 如果需要包含特殊字符,则添加到字符集中
if (includeSpecial) { if (includeSpecial) {
chars += '!@#$%^&*()_+-=[]{}|;:,.<>?'; chars += '!@#$%^&*()_+-=[]{}|;:,.<>?';
} }
let result = ''; let result = '';
const charsLength = chars.length; const charsLength = chars.length;
// 循环生成指定长度的随机字符 // 循环生成指定长度的随机字符
for (let i = 0; i < length; i++) { for (let i = 0; i < length; i++) {
// 生成0到字符集长度之间的随机索引 // 生成0到字符集长度之间的随机索引
@ -482,32 +482,27 @@ export const useTree = () => {
// 将对应索引的字符添加到结果中 // 将对应索引的字符添加到结果中
result += chars.charAt(randomIndex); result += chars.charAt(randomIndex);
} }
return result; return result;
} }
const initTreeCallBack = () => { const initTreeCallBack = () => {
if (window.earth) { if (window.earth) {
for (let i = 0; i < zNodes.value.length; i++) { for (let i = 0; i < zNodes.value.length; i++) {
if (zNodes.value[i].params) { if(zNodes.value[i].sourceType === 'directory') {
let params = JSON.parse(zNodes.value[i].params) continue
if (!params.id) {
params.id = zNodes.value[i].id
}
initMapData(zNodes.value[i].sourceType, params)
} }
else { //@ts-ignore
//@ts-ignore let params = JSON.parse(zNodes.value[i].params||'{}')
if (zNodes.value[i].detail) { //@ts-ignore
//@ts-ignore let detail = JSON.parse(zNodes.value[i].detail||'{}')
let detail = JSON.parse(zNodes.value[i].detail) if (!params.id) {
if (!detail.id) { params.id = zNodes.value[i].id
detail.id = zNodes.value[i].id
}
initMapData(zNodes.value[i].sourceType, detail)
}
} }
if (!params.name) {
params.name = zNodes.value[i].sourceName
}
initMapData(zNodes.value[i].sourceType, { ...detail, ...params })
} }
} }
} }