红绿图模式禁用一些快捷键功能
This commit is contained in:
@@ -305,14 +305,13 @@ onMounted(async () => {
|
|||||||
commandManager,
|
commandManager,
|
||||||
layerManager,
|
layerManager,
|
||||||
toolManager,
|
toolManager,
|
||||||
|
isRedGreenMode,
|
||||||
pasteText: (text) => {
|
pasteText: (text) => {
|
||||||
// console.log("粘贴的文本:", text);
|
// console.log("粘贴的文本:", text);
|
||||||
if (isRedGreenMode.value) return;
|
|
||||||
handleAddText(text);
|
handleAddText(text);
|
||||||
},
|
},
|
||||||
pasteImage: (file) => {
|
pasteImage: (file) => {
|
||||||
// console.log("粘贴的图片:", file);
|
// console.log("粘贴的图片:", file);
|
||||||
if (isRedGreenMode.value) return;
|
|
||||||
uploadImageAndCreateLayer({
|
uploadImageAndCreateLayer({
|
||||||
file,
|
file,
|
||||||
layerManager,
|
layerManager,
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ export class KeyboardManager {
|
|||||||
* @param {Object} options.layerManager 图层管理器实例
|
* @param {Object} options.layerManager 图层管理器实例
|
||||||
* @param {Function} options.pasteText 粘贴文本回调函数
|
* @param {Function} options.pasteText 粘贴文本回调函数
|
||||||
* @param {Function} options.pasteImage 粘贴图片回调函数
|
* @param {Function} options.pasteImage 粘贴图片回调函数
|
||||||
|
* @param {Ref<Boolean>} options.isRedGreenMode 是否为红绿模式
|
||||||
* @param {HTMLElement} options.container 容器元素,用于添加事件监听
|
* @param {HTMLElement} options.container 容器元素,用于添加事件监听
|
||||||
*/
|
*/
|
||||||
constructor(options = {}) {
|
constructor(options = {}) {
|
||||||
@@ -21,6 +22,7 @@ export class KeyboardManager {
|
|||||||
this.container = options.container || document;
|
this.container = options.container || document;
|
||||||
this.pasteText = options.pasteText || (() => {});
|
this.pasteText = options.pasteText || (() => {});
|
||||||
this.pasteImage = options.pasteImage || (() => {});
|
this.pasteImage = options.pasteImage || (() => {});
|
||||||
|
this.isRedGreenMode = options.isRedGreenMode;
|
||||||
|
|
||||||
// 检测平台类型
|
// 检测平台类型
|
||||||
this.platform = this.detectPlatform();
|
this.platform = this.detectPlatform();
|
||||||
@@ -207,6 +209,7 @@ export class KeyboardManager {
|
|||||||
*/
|
*/
|
||||||
handlePaste(event) {
|
handlePaste(event) {
|
||||||
event.preventDefault(); // 阻止默认粘贴行为
|
event.preventDefault(); // 阻止默认粘贴行为
|
||||||
|
if(this.isRedGreenMode.value) return;
|
||||||
const text = event.clipboardData?.getData("text/plain") || "";
|
const text = event.clipboardData?.getData("text/plain") || "";
|
||||||
if(/^aida_copy_canvas_layer/.test(text)) return;
|
if(/^aida_copy_canvas_layer/.test(text)) return;
|
||||||
const items = event.clipboardData?.items || [];
|
const items = event.clipboardData?.items || [];
|
||||||
@@ -429,30 +432,35 @@ export class KeyboardManager {
|
|||||||
case "copy":
|
case "copy":
|
||||||
// 复制逻辑
|
// 复制逻辑
|
||||||
console.log("复制当前选中图层");
|
console.log("复制当前选中图层");
|
||||||
|
if(this.isRedGreenMode.value) return;
|
||||||
this.layerManager.copyLayer(this.layerManager.activeLayerId.value);
|
this.layerManager.copyLayer(this.layerManager.activeLayerId.value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "paste":
|
case "paste":
|
||||||
// 粘贴逻辑
|
// 粘贴逻辑
|
||||||
console.log("粘贴");
|
console.log("粘贴");
|
||||||
|
if(this.isRedGreenMode.value) return;
|
||||||
this.layerManager.pasteLayer();
|
this.layerManager.pasteLayer();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "cut":
|
case "cut":
|
||||||
// 剪切逻辑
|
// 剪切逻辑
|
||||||
console.log("剪切");
|
console.log("剪切");
|
||||||
|
if(this.isRedGreenMode.value) return;
|
||||||
this.layerManager.cutLayer(this.layerManager.activeLayerId.value);
|
this.layerManager.cutLayer(this.layerManager.activeLayerId.value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "delete":
|
case "delete":
|
||||||
// 删除逻辑
|
// 删除逻辑
|
||||||
console.log("删除");
|
console.log("删除");
|
||||||
|
if(this.isRedGreenMode.value) return;
|
||||||
this.layerManager.removeLayer(this.layerManager.activeLayerId.value);
|
this.layerManager.removeLayer(this.layerManager.activeLayerId.value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "selectAll":
|
case "selectAll":
|
||||||
// 全选逻辑
|
// 全选逻辑
|
||||||
console.log("全选");
|
console.log("全选");
|
||||||
|
if(this.isRedGreenMode.value) return;
|
||||||
// 这里需要实现全选逻辑 TODO: 是否在选择模式下才可以全选?
|
// 这里需要实现全选逻辑 TODO: 是否在选择模式下才可以全选?
|
||||||
if (this.layerManager) {
|
if (this.layerManager) {
|
||||||
this.layerManager.selectAll();
|
this.layerManager.selectAll();
|
||||||
|
|||||||
Reference in New Issue
Block a user