diff --git a/resources/java/app/yjearth.jar b/resources/java/app/yjearth.jar
index 7897bba..26f501e 100644
Binary files a/resources/java/app/yjearth.jar and b/resources/java/app/yjearth.jar differ
diff --git a/src/renderer/components.d.ts b/src/renderer/components.d.ts
index 257698b..abc516c 100644
--- a/src/renderer/components.d.ts
+++ b/src/renderer/components.d.ts
@@ -16,6 +16,7 @@ declare module 'vue' {
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
ElCol: typeof import('element-plus/es')['ElCol']
+ ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDialog: typeof import('element-plus/es')['ElDialog']
ElForm: typeof import('element-plus/es')['ElForm']
@@ -27,6 +28,7 @@ declare module 'vue' {
ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm']
+ ElPopover: typeof import('element-plus/es')['ElPopover']
ElRow: typeof import('element-plus/es')['ElRow']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSlider: typeof import('element-plus/es')['ElSlider']
diff --git a/src/renderer/src/I18n/zh-CN.ts b/src/renderer/src/I18n/zh-CN.ts
index ef51b9e..fb61737 100644
--- a/src/renderer/src/I18n/zh-CN.ts
+++ b/src/renderer/src/I18n/zh-CN.ts
@@ -338,5 +338,66 @@ export default {
show: '文字显示',
},
},
+ },
+// 态势部分
+ ts: {
+ historyDeduce: "历史推演",
+ deduceName: "推演名称",
+ deduceNamePlaceholder: "请输入推演名称",
+ creator: "创建人",
+ creatorPlaceholder: "请输入创建人姓名",
+ creationTime: "创建日期",
+ startPlaceholder: "开始日期",
+ endPlaceholder: "结束日期",
+ search: "搜索",
+ reset: "重置",
+ deduceDesc: "推演描述",
+ operation: "操作",
+ tooltipEdit: "编辑推演",
+ tooltipDetail: "详情",
+ tooltipDelete: "删除",
+ createPlan: "新建推演",
+ deduceDetail: "推演详情",
+ startTime: "仿真开始时间",
+ startTimePlaceholder: "请选择日期时间",
+ deduceDescPlaceholder: "请输入内容描述",
+ operationalTime: "作战时间",
+ enterTuiyan: "进入推演页面",
+ ersanwei: "二三维模式",
+ back: "返回",
+ exitTs: "退出方案库",
+ save: "保存",
+ cancel: "取消",
+ confirm: "确定",
+ standText: "立体文字",
+ layerCabin: "仿真演练图层指挥舱",
+ unfoldCabin: "展开指挥舱",
+ unfoldElement: "展开元素库",
+ fold: "收起",
+ element: "元素库",
+ model: "人工模型",
+ graph: "军事标绘",
+ baseLabel: "基础标绘",
+ effects: "特效",
+ "事件名称": "事件名称",
+ "开始时间": "开始时间",
+ "持续时间": "持续时间",
+ "删除": "删除",
+ "定位": "定位",
+ popconfirmTitle: "确定要删除吗?",
+ numberOfFlicker: "闪烁次数",
+ numberPlaceholder: "请输入闪烁次数",
+ selectEventToUpdate: "选中事件调整属性",
+ situationEvent: "态势事件",
+ hour: "时",
+ minute: "分",
+ second: "秒",
+ isContainModelPosition: "路径是否包含元素点位",
+ drawPath: "绘制路径",
+ directoryNamePlaceholder: "请输入文件夹名称",
+ name: "名称",
+ "添加态势事件": "添加态势事件",
+ "视角设定": "视角设定",
+ "重置视角": "重置视角",
}
} as const
diff --git a/src/renderer/src/I18n/zh-EN.ts b/src/renderer/src/I18n/zh-EN.ts
index 77eeebf..e2b4380 100644
--- a/src/renderer/src/I18n/zh-EN.ts
+++ b/src/renderer/src/I18n/zh-EN.ts
@@ -338,5 +338,66 @@ export default {
show: 'Text show',
},
},
+ },
+ // 态势部分
+ ts: {
+ historyDeduce: "History Deduction",
+ deduceName: "Deduction Name",
+ deduceNamePlaceholder: "Please enter the name of the deduction",
+ creator: "creator",
+ creatorPlaceholder: "Please enter the name of the creator",
+ creationTime: "creation time",
+ startPlaceholder: "start time",
+ endPlaceholder: "end time",
+ search: "search",
+ reset: "reset",
+ deduceDesc: "Deduction Description",
+ operation: "operation",
+ tooltipEdit: "Edit Deduction",
+ tooltipDetail: "Detail",
+ tooltipDelete: "Delete",
+ createPlan: "Create Plan",
+ deduceDetail: "Deduction Detail",
+ startTime: "Start Time",
+ startTimePlaceholder: "Please select Time",
+ deduceDescPlaceholder: "Please enter the description of the deduction",
+ operationalTime: "Operational Time",
+ enterTuiyan: "Enter play page",
+ ersanwei: "Two-dimensional and three-dimensional",
+ back: "back",
+ exitTs: "exit",
+ save: "save",
+ cancel: "cancel",
+ confirm: "confirm",
+ standText: "Stand Text",
+ layerCabin: "Layer Cabin",
+ unfoldCabin: "Unfold Cabin",
+ unfoldElement: "Unfold Element",
+ fold: "fold",
+ element: "element",
+ model: "model",
+ graph: "Military plotting",
+ baseLabel: "Base Label",
+ effects: "Effects",
+ "事件名称": "Event Name",
+ "开始时间": "Start Time",
+ "持续时间": "time of duration",
+ "删除": "delete",
+ "定位": "location",
+ popconfirmTitle: "Are you sure you want to delete it?",
+ numberOfFlicker: "Number Of Flicker",
+ numberPlaceholder: "Place enter number of flicker",
+ selectEventToUpdate: "Select Event To Update it",
+ situationEvent: "Situation Event",
+ hour: "hour",
+ minute: "minute",
+ second: "second",
+ isContainModelPosition: "Is Contain Position Of Model",
+ drawPath: "Draw Path",
+ directoryNamePlaceholder: "Place enter name of directory",
+ name: "name",
+ "添加态势事件": "Add situation event",
+ "视角设定": "Set View",
+ "重置视角": "Reset View",
}
} as const
diff --git a/src/renderer/src/I18n/zh-TW.ts b/src/renderer/src/I18n/zh-TW.ts
index 23816a9..871d752 100644
--- a/src/renderer/src/I18n/zh-TW.ts
+++ b/src/renderer/src/I18n/zh-TW.ts
@@ -336,5 +336,65 @@ export default {
show: '文字顯示',
},
},
+ },
+ ts: {
+ historyDeduce: "歷史推演",
+ deduceName: "推演名稱",
+ deduceNamePlaceholder: "請輸入推演名稱",
+ creator: "建立人",
+ creatorPlaceholder: "請輸入建立人姓名",
+ creationTime: "建立日期",
+ startPlaceholder: "開始日期",
+ endPlaceholder: "結束日期",
+ search: "搜尋",
+ reset: "重置",
+ deduceDesc: "推演描述",
+ operation: "操作",
+ tooltipEdit: "編輯推演",
+ tooltipDetail: "詳情",
+ tooltipDelete: "刪除",
+ createPlan: "新增推演",
+ deduceDetail: "推演詳情",
+ startTime: "模擬開始時間",
+ startTimePlaceholder: "請選擇日期時間",
+ deduceDescPlaceholder: "請輸入內容描述",
+ operationalTime: "作戰時間",
+ enterTuiyan: "進入推演頁面",
+ ersanwei: "二三維模式",
+ back: "返回",
+ exitTs: "退出方案庫",
+ save: "儲存",
+ cancel: "取消",
+ confirm: "確定",
+ standText: "立體文字",
+ layerCabin: "模擬演練圖層指揮艙",
+ unfoldCabin: "展開指揮艙",
+ unfoldElement: "展開元素庫",
+ fold: "收起",
+ element: "元素庫",
+ model: "人工模型",
+ graph: "軍事標繪",
+ baseLabel: "基礎標繪",
+ effects: "特效",
+ "事件名称": "事件名稱",
+ "开始时间": "開始時間",
+ "持续时间": "持續時間",
+ "删除": "刪除",
+ "定位": "定位",
+ popconfirmTitle: "確定要刪除嗎?",
+ numberOfFlicker: "閃爍次數",
+ numberPlaceholder: "請輸入閃爍次數",
+ selectEventToUpdate: "選中事件調整屬性",
+ situationEvent: "態勢事件",
+ hour: "時",
+ minute: "分",
+ second: "秒",
+ isContainModelPosition: "路徑是否包含元素點位",
+ drawPath: "繪製路徑",
+ directoryNamePlaceholder: "請輸入資料夾名稱",
+ name: "名稱",
+ "添加态势事件": "新增態勢事件",
+ "视角设定": "視角設定",
+ "重置视角": "重置視角",
}
} as const
diff --git a/src/renderer/src/views/TS/cabin.vue b/src/renderer/src/views/TS/cabin.vue
index 23cf2f8..9f9148b 100644
--- a/src/renderer/src/views/TS/cabin.vue
+++ b/src/renderer/src/views/TS/cabin.vue
@@ -3,22 +3,22 @@
- 展开指挥舱
+ {{ t('ts.unfoldCabin') }}
- 仿真演练图层指挥舱
+ {{ t('ts.layerCabin') }}
- 收起
+ {{ t('ts.fold') }}
搜索
+ >{{ t('ts.search') }}
@@ -56,7 +56,9 @@ import {showRightMenuTs} from "./tree"
import {TsApi} from "../../api/ts";
import {initMapData} from "./entity";
import {ElMessage} from "element-plus";
+import {useI18n} from "vue-i18n";
+const {t} = useI18n()
const rightMenuRef: any = ref()
const treeObj = ref() //树形的实例
let zNodes: any = ref([])//树形结构数据
@@ -356,6 +358,7 @@ let rightClick = (event: MouseEvent, treeId: string, treeNode: any) => {
return;
}
let selectNodes = getSelectedNodes(treeObj.value)
+ // console.log("selectNodes", selectNodes)
let isnewSelect = true //是否为新选中
selectNodes.forEach((item: any) => {
if (treeNode && item.id == treeNode.id) isnewSelect = false
@@ -363,14 +366,15 @@ let rightClick = (event: MouseEvent, treeId: string, treeNode: any) => {
if (!event.ctrlKey && (selectNodes.length < 2 || isnewSelect))
cusSelectNode(treeObj.value, treeNode)
let menus = showRightMenuTs(event, treeObj.value, getSelectedNodes(treeObj.value), nodeType)
- if (canCheckType.includes(treeNode.sourceType) && treeNode.sourceType != 'directory') {
+ // console.log("menus", menus)
+ if (treeNode && canCheckType.includes(treeNode.sourceType) && treeNode.sourceType != 'directory') {
let customView
let entity = window['_entityMap'].get(treeNode.id)
customView = Boolean(entity.customView && entity.customView.orientation)
menus = [...menus, customView ? 'resetView' : 'setView']
}
- console.log('menus', menus)
+ // console.log('menus', menus)
if (menus.length == 0) {
// $changeComponentShow('.rightMenu', false)
return
@@ -378,7 +382,7 @@ let rightClick = (event: MouseEvent, treeId: string, treeNode: any) => {
nextTick(() => {
rightMenuRef.value.initMenus(menus, treeNode)
})
- console.log("树形节点右键点击", treeNode)
+ // console.log("树形节点右键点击", treeNode)
}
const setting = {
edit: {
diff --git a/src/renderer/src/views/TS/components/MouseRight.vue b/src/renderer/src/views/TS/components/MouseRight.vue
index 33aa9de..985ec6b 100644
--- a/src/renderer/src/views/TS/components/MouseRight.vue
+++ b/src/renderer/src/views/TS/components/MouseRight.vue
@@ -2,7 +2,7 @@
- {{ item.name }}
+ {{ t(`ts.${item.name}`) }}
@@ -12,7 +12,9 @@ import {ref} from 'vue'
import {TsApi} from "../../../api/ts";
import {ElMessage} from "element-plus";
import {useRightOperate} from './rightOperate'
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
let {delNode, addEvent} = useRightOperate()
const eventBus: any = inject("bus");
diff --git a/src/renderer/src/views/TS/components/eventParams.vue b/src/renderer/src/views/TS/components/eventParams.vue
index ce6c193..7acba96 100644
--- a/src/renderer/src/views/TS/components/eventParams.vue
+++ b/src/renderer/src/views/TS/components/eventParams.vue
@@ -11,22 +11,22 @@
秒
-->
- 闪烁次数
-
+ {{ t('ts.numberOfFlicker') }}
+
次
- 确定
- 取消
+ {{ t('ts.confirm') }}
+ {{ t('ts.cancel') }}

-
选中事件调整属性
+
{{ t('ts.selectEventToUpdate') }}
@@ -36,7 +36,9 @@
import {inject, ref} from 'vue'
import {TsApi} from "../../../api/ts";
import {ElMessage} from "element-plus";
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
const times = ref(0)
const numbers = ref(0)
diff --git a/src/renderer/src/views/TS/components/grid.vue b/src/renderer/src/views/TS/components/grid.vue
index 6a6b2d5..8176dbd 100644
--- a/src/renderer/src/views/TS/components/grid.vue
+++ b/src/renderer/src/views/TS/components/grid.vue
@@ -1,12 +1,15 @@
{rightClick(e,event)}">
- {{
+ {{
format(item.key, event[item.key])
}}
@@ -17,31 +20,52 @@
@@ -54,7 +78,10 @@ import {computed, onMounted, ref, nextTick} from "vue"
import {TsApi} from "../../../api/ts";
import {ElMessage} from "element-plus";
import * as electron from "electron";
+import {useI18n} from "vue-i18n";
+const visible = ref(false)
+const {t} = useI18n()
const eventBus: any = inject('bus')
const props = defineProps(['eventList',])
const menus = ref([
@@ -86,6 +113,12 @@ const menus = ref([
}
},]
)
+// 1. 必加:绑定显示状态(之前缺失的核心)
+const isPopconfirmShow = ref(false);
+// 2. 手动触发气泡框显示(确保点击一定触发)
+const triggerPopconfirm = () => {
+ isPopconfirmShow.value = true;
+};
const clicked = ref(false)
const delEvent = (ids, cb) => {
TsApi.delEvent(ids).then(res => {
@@ -105,10 +138,15 @@ function onCancel() {
clicked.value = true
}
-
+const confirmEvent = () => {
+ console.log('confirm!')
+}
+const cancelEvent = () => {
+ console.log('cancel!')
+}
let eventObj = ref(null)
let rightClickEvent = ref(null)
-let columns = ref([{name: '事件名称', key: "name", style: "flex:auto"},
+let columns = ref([{name: '事件名称', key: "name", style: "width:210px"},
{name: '开始时间', key: "startTime", style: "width:120px"},
{name: '持续时间', key: "duration_time", style: "width:70px"}])
// let eventList = ref([])
diff --git a/src/renderer/src/views/TS/components/rightOperate.ts b/src/renderer/src/views/TS/components/rightOperate.ts
index f0117de..3d7cfe3 100644
--- a/src/renderer/src/views/TS/components/rightOperate.ts
+++ b/src/renderer/src/views/TS/components/rightOperate.ts
@@ -183,8 +183,11 @@ export const useRightOperate = () => {
})*/
}
- const editNode = () => {
- console.log("编辑节点")
+ const editNode = (node, eventBus) => {
+ console.log("编辑节点", node)
+ if (node) {
+ eventBus.emit("openDialog", node.sourceType, node.id);
+ }
}
const addEvent = (node, eventBus) => {
eventBus.emit('openAddEvent', node)
diff --git a/src/renderer/src/views/TS/components/tsdirectory.vue b/src/renderer/src/views/TS/components/tsdirectory.vue
index 1d58a72..5c09b92 100644
--- a/src/renderer/src/views/TS/components/tsdirectory.vue
+++ b/src/renderer/src/views/TS/components/tsdirectory.vue
@@ -12,14 +12,14 @@
-
+
-
+
- 确定
- 取消
+ {{ t('ts.confirm') }}
+ {{ t('ts.cancel') }}
@@ -35,7 +35,9 @@ import {ElMessage, FormInstance} from 'element-plus'
import {TreeApi} from '@/api/tree'
import {useTreeNode} from '@/views/components/tree/hooks/treeNode'
import {addMapSource} from "../entity";
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n()
const {getKeyOfSelectedNode, getSelectedNode, cusAddNodes, getSameLevel} = useTreeNode()
const title = ref('添加文件夹')
let form: any = reactive({
diff --git a/src/renderer/src/views/TS/edit.vue b/src/renderer/src/views/TS/edit.vue
index e1bbba4..d018ba0 100644
--- a/src/renderer/src/views/TS/edit.vue
+++ b/src/renderer/src/views/TS/edit.vue
@@ -1,11 +1,11 @@
-
作战时间:{{ stamp }}
+
{{ t('ts.operationalTime') }}:{{ stamp }}
@@ -21,7 +21,7 @@
@@ -36,11 +36,12 @@
+
-
+
@@ -100,8 +101,8 @@
- 保存
- 取消
+ {{ t('ts.save') }}
+ {{ t('ts.cancel') }}
@@ -155,7 +156,7 @@
- 立体文字
+ {{ t('ts.standText') }}
@@ -163,8 +164,8 @@
- {submitStandText(true)}">保存
- {submitStandText(false)}">取消
+ {submitStandText(true)}">{{ t('ts.save') }}
+ {submitStandText(false)}">{{ t('ts.cancel') }}
@@ -172,7 +173,7 @@
diff --git a/src/renderer/src/views/TS/edit/billboardObjectTs.vue b/src/renderer/src/views/TS/edit/billboardObjectTs.vue
new file mode 100644
index 0000000..62c605d
--- /dev/null
+++ b/src/renderer/src/views/TS/edit/billboardObjectTs.vue
@@ -0,0 +1,922 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/views/TS/edit/polygonObjectTs.vue b/src/renderer/src/views/TS/edit/polygonObjectTs.vue
new file mode 100644
index 0000000..4b6900a
--- /dev/null
+++ b/src/renderer/src/views/TS/edit/polygonObjectTs.vue
@@ -0,0 +1,393 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/views/TS/edit/polylineObjectTs.vue b/src/renderer/src/views/TS/edit/polylineObjectTs.vue
new file mode 100644
index 0000000..d003de0
--- /dev/null
+++ b/src/renderer/src/views/TS/edit/polylineObjectTs.vue
@@ -0,0 +1,574 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/views/TS/element.vue b/src/renderer/src/views/TS/element.vue
index 39d7166..3d5f8c3 100644
--- a/src/renderer/src/views/TS/element.vue
+++ b/src/renderer/src/views/TS/element.vue
@@ -3,29 +3,30 @@
- 展开元素库
+ {{ t('ts.unfoldElement') }}
- 元素库
+ {{ t("ts.element") }}
- 收起
+ {{ t("ts.fold") }}
-
- {{ item.name }}
+
+ {{ t('ts.' + item.name) }}
@@ -75,10 +76,12 @@ import {GraphApi} from "../../api/graphLabel";
import {addMapSource} from "./entity";
import {useTreeNode} from "../components/tree/hooks/treeNode";
import {ElMessage, TreeInstance} from "element-plus";
+import {useI18n} from "vue-i18n";
const {getSelectedNodes} = useTreeNode()
const service = ref(localStorage.getItem('ip'))
let mini = ref(false)
+const {t} = useI18n()
interface Tree {
name: string
@@ -94,10 +97,10 @@ const defaultProps = {
const activIndex = ref(0)
const tabs = [
- {name: "人工模型", dataType: 'tree', key: "model",},
- {name: "军事标绘", dataType: 'tree', key: "graph", funName: 'DrawPoint',},
+ {name: "model", dataType: 'tree', key: "model",},
+ {name: "graph", dataType: 'tree', key: "graph", funName: 'DrawPoint',},
{
- name: "基础标绘", dataType: 'list', children:
+ name: "baseLabel", dataType: 'list', children:
[
{name: "点", source_name: "点标注", funName: 'DrawPoint', type: "point"},
{name: "线", source_name: "线标注", funName: 'DrawPolyline', type: "line", positionLength: 2},
@@ -108,7 +111,7 @@ const tabs = [
]
},
{
- name: "特效", dataType: 'list', children: [
+ name: "effects", dataType: 'list', children: [
{name: "火焰", source_name: "火焰", funName: 'DrawPoint', type: "fire"},
{name: "喷射水柱", source_name: "喷射水柱", funName: 'DrawPolyline', type: "waterL", option: {number: 2}},
{name: "立体文字", source_name: "", funName: 'DrawPolyline', type: "standText", positionLength: 2}
diff --git a/src/renderer/src/views/TS/list.vue b/src/renderer/src/views/TS/list.vue
index bfc811e..9a6c15b 100644
--- a/src/renderer/src/views/TS/list.vue
+++ b/src/renderer/src/views/TS/list.vue
@@ -5,7 +5,7 @@
{{ date.hms }}
{{ date.ymd }}
- 星期{{ date.week }}
+ {{ t(`week.${date.week}`) }}
实景三维态势推演系统
@@ -17,44 +17,45 @@
- 历史推演
+ {{ t('ts.historyDeduce') }}
- 推演名称 {{ t('ts.deduceName') }}
- 创建人 {{ t('ts.creator') }}
- 创建时间
+
+ {{ t('ts.creationTime') }}
- 搜索
- 重置
+ {{ t('ts.search') }}
+ {{ t('ts.reset') }}
- {addPlan()}">新建推演
- 导入
- 导出
+ {addPlan()}">{{ t('ts.createPlan') }}
+
-
-
+
+
{{ scope.row.desc }}
-
-
-
+
+
+
@@ -93,7 +94,7 @@
@@ -101,7 +102,7 @@
@@ -136,12 +137,13 @@
-->
-
-
-
+
+
+
+
@@ -149,19 +151,29 @@