master^2
Pete Matsyburka 5 days ago
parent 8547295da7
commit 964db0ab08

@ -29,7 +29,7 @@
:is-drag="isDrag" :is-drag="isDrag"
@move="onSelectionBoxMove" @move="onSelectionBoxMove"
@contextmenu="openSelectionContextMenu" @contextmenu="openSelectionContextMenu"
@close-context-menu="closeSelectionContextMenu" @close-context-menu="closeContextMenu"
/> />
<FieldArea <FieldArea
v-for="(item, i) in areas" v-for="(item, i) in areas"
@ -92,16 +92,16 @@
@add-custom-field="$emit('add-custom-field', $event)" @add-custom-field="$emit('add-custom-field', $event)"
/> />
<SelectionContextMenu <SelectionContextMenu
v-if="selectionContextMenu" v-else-if="contextMenu && contextMenu.areas"
:context-menu="selectionContextMenu" :context-menu="contextMenu"
:editable="editable" :editable="editable"
:template="template" :template="template"
@copy="handleSelectionCopy" @copy="handleSelectionCopy"
@delete="handleSelectionDelete" @delete="handleSelectionDelete"
@close="closeSelectionContextMenu" @close="closeContextMenu"
/> />
<PageContextMenu <PageContextMenu
v-if="contextMenu && !contextMenu.field" v-else-if="contextMenu && !contextMenu.field && !contextMenu.areas"
:context-menu="contextMenu" :context-menu="contextMenu"
:editable="editable" :editable="editable"
:with-fields-detection="withFieldsDetection" :with-fields-detection="withFieldsDetection"
@ -256,8 +256,7 @@ export default {
resizeDirection: null, resizeDirection: null,
newAreas: [], newAreas: [],
contextMenu: null, contextMenu: null,
selectionRect: null, selectionRect: null
selectionContextMenu: null
} }
}, },
computed: { computed: {
@ -414,25 +413,32 @@ export default {
} }
}, },
openSelectionContextMenu (event) { openSelectionContextMenu (event) {
if (!this.editable) {
return
}
event.preventDefault()
event.stopPropagation()
const rect = this.$el.getBoundingClientRect() const rect = this.$el.getBoundingClientRect()
this.selectionContextMenu = { this.contextMenu = {
x: event.clientX, x: event.clientX,
y: event.clientY, y: event.clientY,
relativeX: (event.clientX - rect.left) / rect.width, relativeX: (event.clientX - rect.left) / rect.width,
relativeY: (event.clientY - rect.top) / rect.height relativeY: (event.clientY - rect.top) / rect.height,
areas: this.selectedAreasRef.value
} }
}, },
closeSelectionContextMenu () {
this.selectionContextMenu = null
},
handleSelectionCopy () { handleSelectionCopy () {
this.$emit('copy-selected-areas') this.$emit('copy-selected-areas')
this.closeSelectionContextMenu()
this.closeContextMenu()
}, },
handleSelectionDelete () { handleSelectionDelete () {
this.$emit('delete-selected-areas') this.$emit('delete-selected-areas')
this.closeSelectionContextMenu()
this.closeContextMenu()
}, },
closeContextMenu () { closeContextMenu () {
this.contextMenu = null this.contextMenu = null

Loading…
Cancel
Save