feat(menu): implement right-click menu functions for model operations

- Add i18n translations for quick select menu (zh-CN, en-US)
- Add 8 model operation methods to Engine layer
- Add 8 proxy methods to EngineManager layer
- Implement right-click menu handlers for hide/translucent/isolate/show all
- Add quick select submenu (same type/level/level+type)
- Replace console.log placeholders with actual API calls
This commit is contained in:
yuding
2026-02-03 18:01:31 +08:00
parent 7a1a44bb5c
commit 89783d0a9b
5 changed files with 550 additions and 117 deletions

View File

@@ -41,7 +41,11 @@ export const enUS: TranslationDictionary = {
hideOthers: 'Hide Others',
transparentOthers: 'Transparent Others',
fitSectionBox: 'Fit Section Box',
showAll: 'Show All'
showAll: 'Show All',
quickSelect: 'Quick Select',
selectSameType: 'Select Same Type',
selectSameLevel: 'Select Same Level',
selectSameLevelType: 'Select Same Level & Type'
},
tree: {
searchPlaceholder: 'Please enter content to search',
@@ -107,15 +111,6 @@ export const enUS: TranslationDictionary = {
slope: 'Slope:',
}
},
units: {
mm: 'mm',
cm: 'cm',
m: 'm',
km: 'km',
deg: '°',
m2: 'm²',
percent: '%',
},
settings: {
title: 'Settings',
unit: 'Unit:',
@@ -173,11 +168,23 @@ export const enUS: TranslationDictionary = {
},
exit: 'Exit',
path: {
dialogTitle: 'Path Walk'
dialogTitle: 'Path Roaming',
duration: 'Duration',
durationUnit: 's',
loop: 'Loop',
addPoint: 'Add Point',
deleteAll: 'Delete All',
point: 'Point',
play: 'Play',
stop: 'Stop',
noPoints: 'No points yet'
}
},
map: {
dialogTitle: 'Map'
info: {
dialogTitle: 'Basic Info',
meshCount: 'Mesh Count',
totalTriangles: 'Total Triangles',
totalVertices: 'Total Vertices',
},
aiChat: {
title: 'AI Assistant',

View File

@@ -61,6 +61,14 @@ export interface TranslationDictionary {
transparentOthers: string;
fitSectionBox: string;
showAll: string;
/** 快速选择 */
quickSelect: string;
/** 选择同类模型 */
selectSameType: string;
/** 选择同层模型 */
selectSameLevel: string;
/** 选择同层同类模型 */
selectSameLevelType: string;
};
tree: {
searchPlaceholder: string;
@@ -111,16 +119,6 @@ export interface TranslationDictionary {
slope: string;
};
};
units: {
mm: string;
cm: string;
m: string;
km: string;
deg: string;
m2: string;
percent: string;
};
/**
* 设置面板(单位/精度)
*/
@@ -181,11 +179,33 @@ export interface TranslationDictionary {
};
exit: string;
path: {
/** 对话框标题 */
dialogTitle: string;
/** 漫游时间标签 */
duration: string;
/** 时间单位 */
durationUnit: string;
/** 循环播放 */
loop: string;
/** 添加漫游点按钮 */
addPoint: string;
/** 删除全部按钮 */
deleteAll: string;
/** 漫游点前缀 */
point: string;
/** 播放按钮 */
play: string;
/** 停止按钮 */
stop: string;
/** 无漫游点提示 */
noPoints: string;
};
};
map: {
info: {
dialogTitle: string;
meshCount: string;
totalTriangles: string;
totalVertices: string;
};
aiChat: {
title: string;

View File

@@ -41,7 +41,11 @@ export const zhCN: TranslationDictionary = {
hideOthers: '其他构件隐藏',
transparentOthers: '其他构件半透明',
fitSectionBox: '剖切盒适应',
showAll: '显示全部'
showAll: '显示全部',
quickSelect: '快速选择',
selectSameType: '选择同类模型',
selectSameLevel: '选择同层模型',
selectSameLevelType: '选择同层同类模型'
},
tree: {
searchPlaceholder: '请输入要搜索的内容',
@@ -107,15 +111,6 @@ export const zhCN: TranslationDictionary = {
slope: '坡度:',
}
},
units: {
mm: 'mm',
cm: 'cm',
m: 'm',
km: 'km',
deg: '°',
m2: 'm²',
percent: '%',
},
settings: {
title: '设置',
unit: '单位:',
@@ -173,11 +168,23 @@ export const zhCN: TranslationDictionary = {
},
exit: '退出',
path: {
dialogTitle: '路径漫游'
dialogTitle: '路径漫游',
duration: '漫游时间',
durationUnit: '秒',
loop: '循环播放',
addPoint: '添加漫游点',
deleteAll: '删除全部',
point: '漫游点',
play: '播放漫游',
stop: '停止漫游',
noPoints: '暂无漫游点,请添加'
}
},
map: {
dialogTitle: '地图'
info: {
dialogTitle: '基本信息',
meshCount: '构件数量',
totalTriangles: '三角面数量',
totalVertices: '顶点数量',
},
aiChat: {
title: 'AI 助手',