|
|
@ -195,7 +195,7 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
...mapMutations('task', ['addNewTasks']), |
|
|
|
...mapMutations('task', ['updateTasks']), |
|
|
|
|
|
|
|
// 负责人下拉多选选中 |
|
|
|
change(index) { |
|
|
@ -366,6 +366,50 @@ export default { |
|
|
|
console.error('error: ', error); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
// 添加任务后更新tasks |
|
|
|
addNewTasks(data) { |
|
|
|
const oldTasks = this.$u.deepClone(this.tasks); |
|
|
|
let res = data.data; |
|
|
|
// 判断有没有选择上道工序 |
|
|
|
if (data.processTaskId) { |
|
|
|
const index = oldTasks.find(item => item.detailId === data.processTaskId); |
|
|
|
if (index) { |
|
|
|
oldTasks.splice(index + 1, 0, res); |
|
|
|
} |
|
|
|
} else { |
|
|
|
this.setAddPosition(res, oldTasks); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
// 设置添加位置 |
|
|
|
setAddPosition(res, oldTasks) { |
|
|
|
if (res.planStart - 0 < oldTasks[0].planStart - 0) { |
|
|
|
// 开始时间小于列表的第一个 插入最前面 |
|
|
|
oldTasks.splice(0, 0, res); |
|
|
|
} else if (res.planStart - 0 === oldTasks[0].planStart - 0) { |
|
|
|
// 开始时间等于列表的第一个 插入第二 |
|
|
|
oldTasks.splice(1, 0, res); |
|
|
|
} else if (res.planStart - 0 >= oldTasks[oldTasks.length - 1].planStart - 0) { |
|
|
|
// 开始时间大等于列表的最后一个 插入最后 |
|
|
|
oldTasks.splice(-1, 0, res); |
|
|
|
} else { |
|
|
|
// 判断开始时间在列表中间的哪个位置 |
|
|
|
for (let i = 0; i < oldTasks.length; i++) { |
|
|
|
const item = oldTasks[i]; |
|
|
|
if (res.planStart - 0 > item.planStart - 0) { |
|
|
|
if (res.planStart - 0 <= oldTasks[i + 1].planStart - 0) { |
|
|
|
oldTasks.splice(i + 1, 0, res); |
|
|
|
console.log('res: ', res); |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// TODO: 不能全更新 |
|
|
|
console.log('oldTasks: ', oldTasks); |
|
|
|
this.updateTasks([...oldTasks]); |
|
|
|
}, |
|
|
|
}, |
|
|
|
}; |
|
|
|
</script> |
|
|
|