diff --git a/resources/assets/js/functions/web.js b/resources/assets/js/functions/web.js
index 46140abcc..aa37a4cbc 100755
--- a/resources/assets/js/functions/web.js
+++ b/resources/assets/js/functions/web.js
@@ -66,6 +66,8 @@
return {
project_id,
card: true,
+ menu: false,
+ gantt: false,
cardInit: false,
chat: false,
showMy: true,
diff --git a/resources/assets/js/pages/manage/components/GanttView.vue b/resources/assets/js/pages/manage/components/GanttView.vue
index eafac13af..15aa01917 100644
--- a/resources/assets/js/pages/manage/components/GanttView.vue
+++ b/resources/assets/js/pages/manage/components/GanttView.vue
@@ -291,6 +291,7 @@ export default {
type: type,
clientX: e.clientX,
value: item[type],
+ time: item.time,
};
this.mouseItem = item;
this.dateMove = null;
@@ -299,7 +300,14 @@ export default {
if (this.mouseItem != null) {
e.preventDefault();
var diff = e.clientX - this.mouseBak.clientX;
- if (diff < 0 && this.mouseItem.time.start > this.mouseItem.time.end) {
+ const {start, end} = this.mouseBak.time;
+ let date = new Date();
+ let nowTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0).getTime();
+ let diffStartDay = (start - nowTime) / 1000 / 60 / 60 / 24;
+ let diffEndDay = (end - nowTime) / 1000 / 60 / 60 / 24;
+ let width = this.dateWidth * (diffEndDay - diffStartDay);
+ width += this.mouseBak.value + diff;
+ if (width <= 0) {
return false;
}
this.$set(this.mouseItem, this.mouseBak.type, this.mouseBak.value + diff);
diff --git a/resources/assets/js/pages/manage/components/ProjectGantt.vue b/resources/assets/js/pages/manage/components/ProjectGantt.vue
index 6d96d5406..2c8e6b977 100644
--- a/resources/assets/js/pages/manage/components/ProjectGantt.vue
+++ b/resources/assets/js/pages/manage/components/ProjectGantt.vue
@@ -14,7 +14,6 @@
-
diff --git a/resources/assets/js/pages/manage/components/ProjectList.vue b/resources/assets/js/pages/manage/components/ProjectList.vue
index 3cbd6f020..c9a4fcfd1 100644
--- a/resources/assets/js/pages/manage/components/ProjectList.vue
+++ b/resources/assets/js/pages/manage/components/ProjectList.vue
@@ -81,10 +81,10 @@
{{ flowTitle }}
-
@@ -225,7 +225,7 @@
-
+
# {{$L('任务名称')}}
@@ -312,15 +312,13 @@
-
+
{
+ row.tasks = row.tasks.filter(task => {
+ return task.column_id == row.id && !task.complete_at;
+ }).sort((a, b) => {
+ if (a.sort != b.sort) {
+ return a.sort - b.sort;
+ }
+ return a.id - b.id;
+ });
+ return row.project_id == projectId && row.tasks.length > 0;
+ }).sort((a, b) => {
+ if (a.sort != b.sort) {
+ return a.sort - b.sort;
+ }
+ return a.id - b.id;
+ });
+ },
+
myList() {
const {allTask, taskCompleteTemps, sortField, sortType} = this;
let array = allTask.filter(task => this.myFilter(task));
@@ -1380,6 +1397,38 @@ export default {
expiresFormat(date) {
return $A.countDownFormat(date, this.nowTime)
},
+
+ tabTypeChange(type) {
+ switch (type) {
+ case "card":
+ this.$store.dispatch('toggleProjectParameter', 'card');
+ if (this.projectParameter('card')) {
+ this.projectParameter('menu') ? this.$store.dispatch('toggleProjectParameter', 'menu') : '';
+ this.projectParameter('gantt') ? this.$store.dispatch('toggleProjectParameter', 'gantt') : '';
+ } else {
+ this.$store.dispatch('toggleProjectParameter', 'card');
+ }
+ break;
+ case "menu":
+ this.$store.dispatch('toggleProjectParameter', 'menu');
+ if (this.projectParameter('menu')) {
+ this.projectParameter('card') ? this.$store.dispatch('toggleProjectParameter', 'card') : '';
+ this.projectParameter('gantt') ? this.$store.dispatch('toggleProjectParameter', 'gantt') : '';
+ } else {
+ this.$store.dispatch('toggleProjectParameter', 'menu');
+ }
+ break;
+ case "gantt":
+ this.$store.dispatch('toggleProjectParameter', 'gantt');
+ if (this.projectParameter('gantt')) {
+ this.projectParameter('menu') ? this.$store.dispatch('toggleProjectParameter', 'menu') : '';
+ this.projectParameter('card') ? this.$store.dispatch('toggleProjectParameter', 'card') : '';
+ } else {
+ this.$store.dispatch('toggleProjectParameter', 'gantt');
+ }
+ break;
+ }
+ },
}
}
diff --git a/resources/assets/sass/pages/components/project-list.scss b/resources/assets/sass/pages/components/project-list.scss
index 6b793565d..e0fc2cec6 100644
--- a/resources/assets/sass/pages/components/project-list.scss
+++ b/resources/assets/sass/pages/components/project-list.scss
@@ -194,6 +194,13 @@
height: 30px;
position: relative;
transition: box-shadow 0.2s;
+ .active {
+ color: $primary-color;
+ border-radius: 6px;
+ border: 1px solid $primary-color;
+ background-color: rgba($primary-color, 0.1);
+ transition: left 0.2s;
+ }
&:hover {
box-shadow: 0 0 10px #e6ecfa;
}
@@ -205,11 +212,6 @@
width: 33.3%;
height: 100%;
z-index: 0;
- color: $primary-color;
- border-radius: 6px;
- border: 1px solid $primary-color;
- background-color: rgba($primary-color, 0.1);
- transition: left 0.2s;
}
> div {
z-index: 1;
@@ -224,20 +226,6 @@
> i {
font-size: 17px;
}
- &:first-child {
- color: $primary-color;
- }
- }
- &.menu {
- &:before {
- left: 33.3%;
- }
- > div:first-child {
- color: $primary-text-color;
- }
- > div:last-child {
- color: $primary-color;
- }
}
}