任务增删改

This commit is contained in:
kuaifan 2021-06-18 13:17:19 +08:00
parent 6ca8c7456d
commit 4799c10858
5 changed files with 38 additions and 11 deletions

View File

@ -703,6 +703,7 @@ class ProjectController extends AbstractController
$task = ProjectTask::userTask($task_id); $task = ProjectTask::userTask($task_id);
// //
$updateComplete = false; $updateComplete = false;
$updateContent = false;
if (Base::isDate($data['complete_at'])) { if (Base::isDate($data['complete_at'])) {
// 标记已完成 // 标记已完成
if ($task->complete_at) { if ($task->complete_at) {
@ -719,11 +720,12 @@ class ProjectController extends AbstractController
$updateComplete = true; $updateComplete = true;
} else { } else {
// 更新任务 // 更新任务
$result = $task->updateTask($data); $result = $task->updateTask($data, $updateContent);
} }
if (Base::isSuccess($result)) { if (Base::isSuccess($result)) {
$result['data'] = $task->toArray(); $result['data'] = $task->toArray();
$result['data']['is_update_complete'] = $updateComplete; $result['data']['is_update_complete'] = $updateComplete;
$result['data']['is_update_content'] = $updateContent;
$task->pushMsg('update', $result['data']); $task->pushMsg('update', $result['data']);
} }
return $result; return $result;
@ -814,7 +816,9 @@ class ProjectController extends AbstractController
if (empty($task->dialog_id)) { if (empty($task->dialog_id)) {
return Base::retError('创建聊天失败'); return Base::retError('创建聊天失败');
} }
$task->pushMsg('dialog');
return Base::retSuccess('success', [ return Base::retSuccess('success', [
'id' => $task->id,
'dialog_id' => $task->dialog_id, 'dialog_id' => $task->dialog_id,
]); ]);
}); });

View File

@ -347,11 +347,12 @@ class ProjectTask extends AbstractModel
/** /**
* 修改任务 * 修改任务
* @param $data * @param $data
* @param $updateContent
* @return array * @return array
*/ */
public function updateTask($data) public function updateTask($data, &$updateContent)
{ {
return AbstractModel::transaction(function () use ($data) { return AbstractModel::transaction(function () use ($data, &$updateContent) {
// 标题 // 标题
if (Arr::exists($data, 'name') && $this->name != $data['name']) { if (Arr::exists($data, 'name') && $this->name != $data['name']) {
if (empty($data['name'])) { if (empty($data['name'])) {
@ -436,6 +437,7 @@ class ProjectTask extends AbstractModel
]); ]);
$this->desc = Base::getHtml($data['content']); $this->desc = Base::getHtml($data['content']);
$this->addLog("修改任务详细描述"); $this->addLog("修改任务详细描述");
$updateContent = true;
} }
// 优先级 // 优先级
$p = false; $p = false;
@ -624,7 +626,7 @@ class ProjectTask extends AbstractModel
/** /**
* 推送消息 * 推送消息
* @param string $action * @param string $action
* @param array $data 发送内容,默认为[id, parent_id, project_id, column_id] * @param array $data 发送内容,默认为[id, parent_id, project_id, column_id, dialog_id]
* @param array $userid 指定会员,默认为项目所有成员 * @param array $userid 指定会员,默认为项目所有成员
*/ */
public function pushMsg($action, $data = null, $userid = null) public function pushMsg($action, $data = null, $userid = null)
@ -638,6 +640,7 @@ class ProjectTask extends AbstractModel
'parent_id' => $this->parent_id, 'parent_id' => $this->parent_id,
'project_id' => $this->project_id, 'project_id' => $this->project_id,
'column_id' => $this->column_id, 'column_id' => $this->column_id,
'dialog_id' => $this->dialog_id,
]; ];
} }
if ($userid === null) { if ($userid === null) {

View File

@ -996,12 +996,8 @@ export default {
task_id: this.taskDetail.id, task_id: this.taskDetail.id,
}, },
}).then(({data}) => { }).then(({data}) => {
this.$store.dispatch("saveTask", { this.$store.commit("taskDialogSuccess", data);
id: this.taskDetail.id,
dialog_id: data.dialog_id
});
this.$nextTick(() => { this.$nextTick(() => {
this.$store.dispatch("getDialogMsgList", data.dialog_id);
this.$refs.dialog.sendMsg(this.msgText); this.$refs.dialog.sendMsg(this.msgText);
this.msgText = ""; this.msgText = "";
}); });

View File

@ -685,7 +685,15 @@ export default {
data: post, data: post,
method: 'post', method: 'post',
}).then(result => { }).then(result => {
commit("taskUpdateSuccess", result.data) const {data} = result;
if (data.is_update_content === true) {
state.projectTaskContent[data.id] = post['content'];
if (data.id == state.projectOpenTask.id) {
state.projectOpenTask = Object.assign({}, state.projectOpenTask, {content: post['content']});
}
data.is_update_content = false;
}
commit("taskUpdateSuccess", data)
resolve(result) resolve(result)
}).catch(result => { }).catch(result => {
dispatch("getTaskBasic", post.task_id); dispatch("getTaskBasic", post.task_id);
@ -1169,6 +1177,9 @@ export default {
case 'upload': case 'upload':
commit("taskUploadSuccess", data) commit("taskUploadSuccess", data)
break; break;
case 'dialog':
commit("taskDialogSuccess", data)
break;
case 'archived': case 'archived':
case 'delete': case 'delete':
commit("taskDeleteSuccess", data) commit("taskDeleteSuccess", data)

View File

@ -102,9 +102,12 @@ export default {
if (data.parent_id) { if (data.parent_id) {
this.dispatch("getTaskBasic", data.parent_id); this.dispatch("getTaskBasic", data.parent_id);
} }
if (data.is_update_complete) { if (data.is_update_complete === true) {
this.dispatch("getProjectBasic", {id: data.project_id}); this.dispatch("getProjectBasic", {id: data.project_id});
} }
if (data.is_update_content === true) {
this.dispatch("getTaskContent", data.id);
}
this.dispatch("saveTask", data); this.dispatch("saveTask", data);
}, },
@ -138,6 +141,16 @@ export default {
}); });
}, },
/**
* 任务打开聊天
* @param state
* @param data
*/
taskDialogSuccess(state, data) {
this.dispatch("saveTask", data);
this.dispatch("getDialogMsgList", data.dialog_id);
},
/** /**
* 删除任务 * 删除任务
* @param state * @param state