fix: 修复移动任务子任务不跟随的情况

This commit is contained in:
kuaifan 2024-12-16 15:55:17 +08:00
parent 69120c5045
commit 207f09a4af
4 changed files with 64 additions and 5 deletions

View File

@ -2399,6 +2399,7 @@ class ProjectController extends AbstractController
*/
public function task__move()
{
Base::checkClientVersion('0.41.94');
User::auth();
//
$task_id = intval(Request::input('task_id'));
@ -2436,9 +2437,26 @@ class ProjectController extends AbstractController
//
$task->moveTask($project_id, $column_id, $flow_item_id, $owner, $assist, $completeAt);
//
$task = ProjectTask::userTask($task_id);
$data = [];
$mainTask = ProjectTask::userTask($task_id)?->toArray();
if ($mainTask) {
$mainTask['column_name'] = ProjectColumn::whereId($mainTask['column_id'])->value('name');
$mainTask['project_name'] = Project::whereId($mainTask['project_id'])->value('name');
$data[] = $mainTask;
//
$subTasks = ProjectTask::whereParentId($task_id)->get();
foreach ($subTasks as $subTask) {
$data[] = [
'id' => $subTask->id,
'project_id' => $subTask->project_id,
'column_id' => $subTask->column_id,
'column_name' => $mainTask['column_name'],
'project_name' => $mainTask['project_name'],
];
}
}
//
return Base::retSuccess('移动成功', $task);
return Base::retSuccess('移动成功', $data);
}
/**

View File

@ -1833,6 +1833,11 @@ class ProjectTask extends AbstractModel
$taskUser->save();
}
}
// 子任务
ProjectTask::whereParentId($this->id)->change([
'project_id' => $projectId,
'column_id' => $columnId,
]);
//
if ($flowItemId) {
$flowItem = projectFlowItem::whereProjectId($projectId)->whereId($flowItemId)->first();

View File

@ -0,0 +1,38 @@
<?php
use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
class UpdateProjectTasksSubtaskProjectIdAndColumnId extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$prefix = DB::getTablePrefix();
$now = Carbon::now();
DB::statement("
UPDATE {$prefix}project_tasks AS subtask
INNER JOIN {$prefix}project_tasks AS parent ON subtask.parent_id = parent.id
SET
subtask.project_id = parent.project_id,
subtask.column_id = parent.column_id,
subtask.updated_at = '{$now}'
WHERE subtask.parent_id > 0
");
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
// No need for down operation as this is a data correction
}
}

View File

@ -264,10 +264,8 @@ export default {
owner: this.updateData.owner_userids,
assist: this.updateData.assist_userids,
}
}).then(({data,msg}) => {
}).then(({data, msg}) => {
this.loadIng--;
data.column_name = "";
data.project_name = "";
this.$store.dispatch("saveTask", data);
$A.messageSuccess(msg);
this.close()