From f5edfb0f4c0d1033663b7174cf92bfbb4e6782f5 Mon Sep 17 00:00:00 2001 From: Marko Zunic Date: Wed, 3 Jun 2020 10:58:54 +0200 Subject: [PATCH] Fixed bug when setting drag limit when there are other components besides g-gantt-row in g-gantt-chart Fixed drag limit when push-on-overlap dynamically changes --- package-lock.json | 7 +------ package.json | 4 ++-- src/GGanttBar.vue | 3 +++ src/GGanttChart.vue | 10 +++++++--- src/Playground.vue | 7 +++++++ 5 files changed, 20 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0d89e7a..57326b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "vue-ganttastic", - "version": "0.9.6", + "version": "0.9.7", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -3174,11 +3174,6 @@ "minimist": "1.2.5" } }, - "moment": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz", - "integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==" - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", diff --git a/package.json b/package.json index 4580263..4b89f18 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-ganttastic", - "version": "0.9.6", + "version": "0.9.8", "description": "A simple and customizable Gantt chart component for Vue.js", "repository": { "type": "git", @@ -30,7 +30,7 @@ "rollup-plugin-vue": "^5.1.9", "vue-template-compiler": "^2.6.11" }, - "dependencies": { + "peerDependencies": { "moment": "^2.26.0" } } diff --git a/src/GGanttBar.vue b/src/GGanttBar.vue index e9d4699..aaa746b 100644 --- a/src/GGanttBar.vue +++ b/src/GGanttBar.vue @@ -248,6 +248,9 @@ export default { }, isPosOutOfDragRange(xStart, xEnd){ + if(!this.ganttChartProps.pushOnOverlap) { + return false + } if(xStart && this.dragLimitLeft !== null && xStart < this.dragLimitLeft+2){ return true } diff --git a/src/GGanttChart.vue b/src/GGanttChart.vue index f9688b2..b086d19 100644 --- a/src/GGanttChart.vue +++ b/src/GGanttChart.vue @@ -107,7 +107,7 @@ export default { this.ganttBarChildrenList.forEach(ganttBarChild => { if(ganttBarChild.barConfig.bundle === gGanttBar.barConfig.bundle && ganttBarChild !== gGanttBar){ ganttBarChild.initDrag(e) - this.movedBarsInDrag.add(ganttBarChild) + this.movedBarsInDrag.add(ganttBarChild.bar) } }) } @@ -240,11 +240,15 @@ export default { let allBarsLeftOrRight = [] if(side === "left"){ allBarsLeftOrRight = bar.$parent.$children.filter(gBar => { - return gBar.$parent === bar.$parent && gBar.$refs['g-gantt-bar'].offsetLeft < bar.$refs['g-gantt-bar'].offsetLeft + return gBar.$options.name === GGanttBar.name + && gBar.$parent === bar.$parent + && gBar.$refs['g-gantt-bar'].offsetLeft < bar.$refs['g-gantt-bar'].offsetLeft }) } else { allBarsLeftOrRight = bar.$parent.$children.filter(gBar => { - return gBar.$parent === bar.$parent && gBar.$refs['g-gantt-bar'].offsetLeft > bar.$refs['g-gantt-bar'].offsetLeft + return gBar.$options.name === GGanttBar.name + && gBar.$parent === bar.$parent + && gBar.$refs['g-gantt-bar'].offsetLeft > bar.$refs['g-gantt-bar'].offsetLeft }) } if(allBarsLeftOrRight.length > 0){ diff --git a/src/Playground.vue b/src/Playground.vue index 02bf9c6..ca32b30 100644 --- a/src/Playground.vue +++ b/src/Playground.vue @@ -12,6 +12,7 @@ :row-label-width="`${rowLabelWidth}%`" :row-height="rowHeight" :theme="selectedTheme" + @dragend-bar="onDragend($event)" >