diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index a524f9d45..2324bb260 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -1785,6 +1785,38 @@ class ProjectController extends AbstractController return Base::retSuccess('success', $data); } + /** + * @api {get} api/project/task/subdata 25. 获取子任务数据 + * + * @apiDescription 需要token身份,相对one接口,这个只获取主任务的子任务数据 + * @apiVersion 1.0.0 + * @apiGroup project + * @apiName task__subdata + * + * @apiParam {Number} task_id 任务ID + * + * @apiSuccess {Number} ret 返回状态码(1正确、0错误) + * @apiSuccess {String} msg 返回信息(错误描述) + * @apiSuccess {Object} data 返回数据 + */ + public function task__subdata() + { + User::auth(); + $task_id = intval(Request::input('task_id')); + if ($task_id <= 0) { + return Base::retError('参数错误', ['task_id' => $task_id]); + } + // + $task = ProjectTask::userTask($task_id); + // + return Base::retSuccess('success', [ + 'id' => $task->id, + 'sub_num' => $task->sub_num, + 'sub_complete' => $task->sub_complete, + 'percent' => $task->percent, + ]); + } + /** * @api {get} api/project/task/related 26. 获取任务关联任务列表 * diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 2dc787eee..4286e4b74 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -2157,6 +2157,32 @@ export default { }); }, + /** + * 获取任务的子任务数据 + * @param state + * @param dispatch + * @param taskId + */ + getTaskSubData({state, dispatch}, taskId) { + if (!taskId) { + return; + } + const parentTask = state.cacheTasks.find(({id}) => id == taskId); + if (!parentTask) { + return; + } + dispatch("call", { + url: 'project/task/subdata', + data: { + task_id: taskId + }, + }).then(({data}) => { + dispatch("saveTask", Object.assign(parentTask, data)) + }).catch(e => { + console.warn(e); + }); + }, + /** * 获取Dashboard相关任务 * @param state @@ -2569,6 +2595,7 @@ export default { delete task.new_column } dispatch("saveTask", task) + dispatch("getTaskSubData", task.parent_id) dispatch("getProjectOne", task.project_id).catch(() => {}) }, @@ -2592,6 +2619,7 @@ export default { method: 'post', }).then(result => { dispatch("saveTask", result.data) + dispatch("getTaskSubData", result.data.parent_id) resolve(result) }).catch(e => { console.warn(e);