fix:修改测试出的问题

This commit is contained in:
he-zhi-cheng
2025-09-18 17:23:05 +08:00
parent 77ed33e66c
commit c414e66e2b
11 changed files with 794 additions and 312 deletions

View File

@ -49,9 +49,22 @@ export default {
},
mounted() {
window.addEventListener("keydown",this.handlekeydown)
// 仅在挂载时注册总线,不在这里绑定全局键盘事件(避免 KeepAlive 导致的重复/遗留绑定)
EventBus.on('SetMenubutton',this.setbutton);
},
activated() {
// 仅在当前页面处于激活状态时绑定
window.addEventListener("keydown", this.handlekeydown);
},
deactivated() {
// 从可见切换为缓存(隐藏)时,解绑,避免隐藏页误触发
window.removeEventListener("keydown", this.handlekeydown);
},
beforeUnmount() {
// 彻底卸载时,兜底解绑
window.removeEventListener("keydown", this.handlekeydown);
EventBus.off && EventBus.off('SetMenubutton', this.setbutton);
},
methods: {
setbutton(command){
if (command.name == "DC"){
@ -83,7 +96,21 @@ export default {
this.$emit("menubalclicked", command)
},
handlekeydown(event) {
// console.log(event.key);
// 在可编辑环境中不触发应用快捷键
const t = event.target || {};
const tag = (t.tagName || '').toLowerCase();
const isEditable = t.isContentEditable || tag === 'input' || tag === 'textarea' || tag === 'select';
if (isEditable) return;
// 只处理来自本应用根节点(#app)内的事件,忽略外部悬浮窗/插件
const appRoot = document.getElementById('app');
if (!appRoot || !appRoot.contains(event.target)) return;
// 不劫持系统复制快捷键 Ctrl+C
if (event.ctrlKey && !event.shiftKey && (event.key === 'c' || event.key === 'C')) {
return;
}
if (event.ctrlKey) {
if (event.key == "n" || event.key == "N") {
this.onmenuclick('Set', 'Workmode');
@ -94,11 +121,10 @@ export default {
if (event.key == "w" || event.key == "W") {
this.onmenuclick('Set', 'Weavelenth');
}
if (event.key == "c" || event.key == "C") {
// 将“定标”快捷键改为 Ctrl + Shift + C避免与系统复制冲突
if (event.shiftKey && (event.key == "c" || event.key == "C")) {
this.onmenuclick('Set', 'Calibrate');
}
}
}
}