fix(stage): canSelect增加event参数

This commit is contained in:
roymondchen 2022-04-02 19:10:57 +08:00 committed by jia000
parent 9b849cc906
commit 29a9912820
3 changed files with 4 additions and 4 deletions

View File

@ -138,10 +138,10 @@ export default defineComponent({
render: props.render,
runtimeUrl: props.runtimeUrl,
zoom: zoom.value,
canSelect: (el, stop) => {
canSelect: (el, event, stop) => {
const elCanSelect = props.canSelect(el);
// ui-select
if (uiSelectMode.value && elCanSelect) {
if (uiSelectMode.value && elCanSelect && event.type === 'mousedown') {
document.dispatchEvent(new CustomEvent('ui-select', { detail: el }));
return stop();
}

View File

@ -120,7 +120,7 @@ export default class StageCore extends EventEmitter {
let stopped = false;
const stop = () => (stopped = true);
for (const el of els) {
if (!el.id.startsWith(GHOST_EL_ID_PREFIX) && (await this.canSelect(el, stop))) {
if (!el.id.startsWith(GHOST_EL_ID_PREFIX) && (await this.canSelect(el, event, stop))) {
if (stopped) break;
if (event.type === 'mousemove') {
this.highlight(el);

View File

@ -23,7 +23,7 @@ import { Id, MApp, MNode } from '@tmagic/schema';
import { GuidesType } from './const';
import StageCore from './StageCore';
export type CanSelect = (el: HTMLElement, stop: () => boolean) => boolean | Promise<boolean>;
export type CanSelect = (el: HTMLElement, event: MouseEvent, stop: () => boolean) => boolean | Promise<boolean>;
export type StageCoreConfig = {
/** 需要对齐的dom节点的CSS选择器字符串 */