diff --git a/resources/java/app/application.yml b/resources/java/app/application.yml index 7536787..e353dfa 100644 --- a/resources/java/app/application.yml +++ b/resources/java/app/application.yml @@ -1,7 +1,7 @@ server: host: 127.0.0.1 port: 8849 - path: C:\Users\MSI\AppData\Roaming\dzsp_shijingjun_offline_Y_save + path: C:\Users\Administrator\AppData\Roaming\dzsp_shijingjun_offline_Y_save poi: global: enabled: false diff --git a/src/main/index.ts b/src/main/index.ts index ceaac1e..befd4ff 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -12,9 +12,10 @@ import { GetHomeDir } from './config' import { start, getServer } from "./app"; const http = require("http"); const yaml = require("js-yaml"); -let Store = require('electron-store') -Store.initRenderer(); -const store = new Store() +// 移除 electron-store,使用 Electron 提供的用户数据目录 +// let Store = require('electron-store') +// Store.initRenderer(); +// const store = new Store() process.on('unhandledRejection', (reason) => { @@ -147,7 +148,8 @@ function createWindow(): void { ymlBatPath = process.platform === 'win32' ? ymlBatPath.replace(/^(\w:)/, '/$1') : ymlBatPath let ymlPath = ymlBatPath.substring(1, 200) const ymlContent = yaml.load(fs.readFileSync(ymlPath, 'utf8')); - ymlContent.server.path = path.dirname(store.path) + ymlContent.server.path = app.getPath('userData') + // ymlContent.server.path = path.dirname(store.path) fs.writeFileSync(ymlPath, yaml.dump(ymlContent)); ipcMain.on("getIniConfig", (event, option) => { let ymlPath = ymlBatPath.substring(1, 200) @@ -215,6 +217,38 @@ function createWindow(): void { event.sender.send("selectedItem", arr); }); }); + ipcMain.handle('get-user-data-path', () => { + return app.getPath('userData') + }); + ipcMain.on('import-project-override', async (event, { srcZip, dst }) => { + try { + const compressing = require('compressing') + await compressing.zip.uncompress(srcZip, dst) + event.sender.send('import-project-override-res', { ok: true }) + } catch (e: any) { + event.sender.send('import-project-override-res', { ok: false, error: e.message }) + } + }); + ipcMain.on("export-project", (event, { dst }) => { + try { + const archiver = require('archiver'); + const output = fs.createWriteStream(dst); + const archive = archiver('zip', { zlib: { level: 9 } }); + output.on('close', () => { + event.sender.send('export-project-res', { ok: true }); + }); + archive.on('error', (err) => { + event.sender.send('export-project-res', { ok: false, error: err.message }); + }); + archive.pipe(output); + const dbPath = path.join(app.getPath('userData'), 'app.db'); + console.log('dbPath', dbPath); + archive.file(dbPath, { name: 'app.db' }); + archive.finalize(); + } catch (e: any) { + event.sender.send('export-project-res', { ok: false, error: e.message }); + } + }); ipcMain.on("saveFile", (event, { title, filename, filters }) => { dialog .showSaveDialog({ diff --git a/src/renderer/src/common/addMapSource.ts b/src/renderer/src/common/addMapSource.ts index c648528..f155818 100644 --- a/src/renderer/src/common/addMapSource.ts +++ b/src/renderer/src/common/addMapSource.ts @@ -11,54 +11,56 @@ export const addMapSource = async ({ type, id, sourceName = '未命名对象', o if (window.earth.entityMap.get(id)) { window.earth.entityMap.get(id).remove() } - let options: any = await initMapData(type, opt, cd) - let selectedNodes = window.treeObj.getSelectedNodes() - 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 + setTimeout(async () => { + let options: any = await initMapData(type, opt, cd) + let selectedNodes = window.treeObj.getSelectedNodes() + 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 - if (node) { - parentId = getParentId(node) - } - delete options.host - if (options.attribute && options.attribute.rtmp) { - delete options.attribute.rtmp - } - switch (type) { - case 'rendezvous': - case 'attackArrow': - case 'pincerArrow': - delete options.label.ground - delete options.label.position - break; - case 'path': - delete options.label.text - break; - } - console.log('options', options) - let params: any = { - id: id, - sourceName: sourceName, - sourceType: type, - // isShow: 1, - parentId: parentId, - // "treeIndex": 0, - params: options - } - TreeApi.addOtherSource(params) - params.params = JSON.stringify(params.params) - params.isShow = true + let parentId + if (node) { + parentId = getParentId(node) + } + delete options.host + if (options.attribute && options.attribute.rtmp) { + delete options.attribute.rtmp + } + switch (type) { + case 'rendezvous': + case 'attackArrow': + case 'pincerArrow': + delete options.label.ground + delete options.label.position + break; + case 'path': + delete options.label.text + break; + } + console.log('options', options) + let params: any = { + id: id, + sourceName: sourceName, + sourceType: type, + // isShow: 1, + parentId: parentId, + // "treeIndex": 0, + params: options + } + TreeApi.addOtherSource(params) + params.params = JSON.stringify(params.params) + params.isShow = true - cusAddNodes(window.treeObj, params.parentId, [params]) + cusAddNodes(window.treeObj, params.parentId, [params]) + }, 10); } diff --git a/src/renderer/src/views/TS/cabin.vue b/src/renderer/src/views/TS/cabin.vue index f2da2c7..5cb64cc 100644 --- a/src/renderer/src/views/TS/cabin.vue +++ b/src/renderer/src/views/TS/cabin.vue @@ -156,7 +156,7 @@ const initTreeCallBack = () => { } } if (layerTypes.includes(arr[i].sourceType)) { - console.log(detail, params) + // console.log(detail, params) if (!detail && !params) { detail = { id: arr[i].id, @@ -168,10 +168,10 @@ const initTreeCallBack = () => { sourceType: arr[i].sourceType, detail: {...detail, ...params, layerIndex: layers.length + 1} } - console.log(layer) + // console.log(layer) layers.push(layer) } else { - console.log({...detail, ...params}) + // console.log({...detail, ...params}) let details = {...detail, ...params} details.show = Boolean(arr[i].isShow) initMapData(arr[i].sourceType, details) @@ -188,6 +188,7 @@ const initTreeCallBack = () => { let speed = (distance / duration_S) * window['tsObj']._Store._multiplier detail.speed = speed console.log("event的detail", detail) + // detail.viewFollow = true initMapData("guiji", detail, (TrajectoryMotionObject) => { TrajectoryMotionObject.state = false; TrajectoryMotionObject.oldSpeed = distance / duration_S * multiplier; @@ -359,7 +360,7 @@ const onCheck = async (event: any, treeId: any, treeNode: any) => { sourceStatus(treeNode) console.log("ids", ids) - return + // return const res = await TsApi.updateTreeShow(ids) if (res.code == 0 || res.code == 200) { ElMessage({ diff --git a/src/renderer/src/views/TS/components/chart.vue b/src/renderer/src/views/TS/components/chart.vue index bf24c01..8044e5a 100644 --- a/src/renderer/src/views/TS/components/chart.vue +++ b/src/renderer/src/views/TS/components/chart.vue @@ -24,7 +24,7 @@ const selectedEventId = ref(null) const eventBus: any = inject('bus') const props = defineProps(['eventList', 'hr', 'originHrOffset', 'scrollLeft']) let clickEventBar = (event) => { - console.log("点击事件块", selectedEventId.value, event.id) + console.log("点击事件块", selectedEventId.value, event) let entity = window['_entityMap'].get(event.sourceId) entity && entity.flyTo() selectedEventId.value = (selectedEventId.value == null || selectedEventId.value != event.id) ? event.id : null @@ -90,6 +90,7 @@ let getWidth = (durationTime) => { // 6. 让 progressStyle 间接依赖 refreshKey(通过 getWidth) let progressStyle = (task) => { let taskLeft = task.startTime - window['tsObj']._Store._startTimestamp; + console.log("taskLeft", task, taskLeft, getWidth(taskLeft)) let width = 1 if (!['display', 'hide'].includes(task.callback)) width = getWidth(task.duration_time) * 1000 diff --git a/src/renderer/src/views/TS/components/eventParams.vue b/src/renderer/src/views/TS/components/eventParams.vue index 7acba96..adecaf2 100644 --- a/src/renderer/src/views/TS/components/eventParams.vue +++ b/src/renderer/src/views/TS/components/eventParams.vue @@ -4,6 +4,22 @@
{{ eventObj.name }}
+