no message

This commit is contained in:
kuaifan 2021-06-24 14:06:05 +08:00
parent a9b2b041ce
commit 64458c34a2
6 changed files with 93 additions and 33 deletions

View File

@ -164,7 +164,7 @@ class ProjectController extends AbstractController
//
$data = Project::find($project->id);
$data->addLog("创建项目");
$data->pushMsg('add', $data->toArray());
$data->pushMsg('add', $data);
return Base::retSuccess('添加成功', $data);
}
@ -205,7 +205,7 @@ class ProjectController extends AbstractController
$project->addLog("修改项目介绍");
}
$project->save();
$project->pushMsg('update', $project->toArray());
$project->pushMsg('update', $project);
//
return Base::retSuccess('修改成功', $project);
}
@ -469,7 +469,7 @@ class ProjectController extends AbstractController
//
$data = ProjectColumn::find($column->id);
$data->project_task = [];
$data->pushMsg("add", $data->toArray());
$data->pushMsg("add", $data);
return Base::retSuccess('添加成功', $data);
}
@ -509,7 +509,7 @@ class ProjectController extends AbstractController
$column->color = $data['color'];
}
$column->save();
$column->pushMsg("update", $column->toArray());
$column->pushMsg("update", $column);
return Base::retSuccess('修改成功', $column);
}
@ -724,7 +724,7 @@ class ProjectController extends AbstractController
]));
$data = [
'new_column' => $newColumn,
'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($task->id)->toArray(),
'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($task->id),
];
$task->pushMsg('add', $data);
return Base::retSuccess('添加成功', $data);
@ -753,7 +753,7 @@ class ProjectController extends AbstractController
]);
$data = [
'new_column' => null,
'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($task->id)->toArray(),
'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($task->id),
];
$task->pushMsg('add', $data);
return Base::retSuccess('添加成功', $data);
@ -805,10 +805,9 @@ class ProjectController extends AbstractController
// 更新任务
$task->updateTask($data, $updateContent);
}
$data = $task->toArray();
$data['is_subtask'] = $task->parent_id > 0;
$data['is_update_complete'] = $task->parent_id == 0 && $updateComplete;
$data['is_update_content'] = $updateContent;
$data = ProjectTask::with(['taskUser', 'taskTag'])->find($task->id);
$data->is_update_complete = $task->parent_id == 0 && $updateComplete;
$data->is_update_content = $updateContent;
$task->pushMsg('update', $data);
return Base::retSuccess('修改成功', $data);
}
@ -865,7 +864,7 @@ class ProjectController extends AbstractController
//
$file = ProjectTaskFile::find($file->id);
$task->addLog("上传文件:" . $file->name);
$task->pushMsg('upload', $file->toArray());
$task->pushMsg('upload', $file);
return Base::retSuccess("上传成功", $file);
}
}

View File

@ -298,7 +298,7 @@ class Project extends AbstractModel
// 取消归档
$this->archived_at = null;
$this->addLog("项目取消归档");
$this->pushMsg('add', $this->toArray());
$this->pushMsg('add', $this);
} else {
// 归档任务
$this->archived_at = $archived_at;

View File

@ -398,7 +398,7 @@ class ProjectTask extends AbstractModel
}
// 负责人
if (Arr::exists($data, 'owner')) {
$count = $this->task_user_count;
$count = $this->taskUser->count();
$array = [];
$owner = is_array($data['owner']) ? $data['owner'] : [$data['owner']];
foreach ($owner as $uid) {
@ -418,17 +418,21 @@ class ProjectTask extends AbstractModel
break; // 子任务只能是一个负责人
}
}
ProjectTaskUser::whereTaskId($this->id)->whereOwner(1)->whereNotIn('userid', $array)->delete();
$this->syncDialogUser();
if (count($array) == 0) {
$this->addLog("删除{任务}负责人");
} else {
if ($count == 0) {
if ($array) {
if ($count == 0 && count($array) == 1 && $array[0] == User::userid()) {
$this->addLog("认领{任务}");
} else {
$this->addLog("修改{任务}负责人");
$this->addLog("修改{任务}负责人:" . implode(",", $array));
}
}
$rows = ProjectTaskUser::whereTaskId($this->id)->whereOwner(1)->whereNotIn('userid', $array)->get();
if ($rows->isNotEmpty()) {
$this->addLog("删除{任务}负责人:" . $rows->implode('userid', ','));
foreach ($rows as $row) {
$row->delete();
}
}
$this->syncDialogUser();
}
// 计划时间
if (Arr::exists($data, 'times')) {
@ -464,13 +468,17 @@ class ProjectTask extends AbstractModel
]);
$array[] = $uid;
}
ProjectTaskUser::whereTaskId($this->id)->whereOwner(0)->whereNotIn('userid', $array)->delete();
$this->syncDialogUser();
if (count($array) == 0) {
$this->addLog("删除{任务}协助人员");
} else {
$this->addLog("修改{任务}协助人员");
if ($array) {
$this->addLog("修改{任务}协助人员:" . implode(",", $array));
}
$rows = ProjectTaskUser::whereTaskId($this->id)->whereOwner(0)->whereNotIn('userid', $array)->get();
if ($rows->isNotEmpty()) {
$this->addLog("删除{任务}协助人员:" . $rows->implode('userid', ','));
foreach ($rows as $row) {
$row->delete();
}
}
$this->syncDialogUser();
}
// 背景色
if (Arr::exists($data, 'color') && $this->color != $data['color']) {
@ -624,7 +632,7 @@ class ProjectTask extends AbstractModel
$this->addLog("任务取消归档:" . $this->name);
$this->pushMsg('add', [
'new_column' => null,
'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($this->id)->toArray(),
'task' => ProjectTask::with(['taskUser', 'taskTag'])->find($this->id),
]);
} else {
// 归档任务

View File

@ -45,7 +45,6 @@ class ProjectUser extends AbstractModel
$tasks = ProjectTask::whereProjectId($this->project_id)->authData($this->userid)->get();
foreach ($tasks as $task) {
if (ProjectTaskUser::whereTaskId($task->id)->whereUserid($this->userid)->delete()) {
$task->pushMsg('update');
$task->syncDialogUser();
}
}

View File

@ -328,7 +328,17 @@
</Form>
<div slot="footer">
<Button type="default" @click="userShow=false">{{$L('取消')}}</Button>
<Button type="primary" :loading="userLoad > 0" @click="onUser">{{$L('保存')}}</Button>
<Poptip
confirm
placement="bottom"
@on-ok="onUser"
transfer>
<div slot="title">
<p><strong>{{$L('移除成员负责的任务将变成无负责人,')}}</strong></p>
<p>{{$L('注意此操作不可逆!')}}</p>
</div>
<Button type="primary" :loading="userLoad > 0" style="margin-left:8px">{{$L('保存')}}</Button>
</Poptip>
</div>
</Modal>
@ -843,6 +853,7 @@ export default {
this.userLoad--;
this.userShow = false;
this.$store.dispatch("getProjectOne", this.projectId);
this.$store.dispatch("getTasks", {project_id: this.projectId})
}).catch(({msg}) => {
$A.modalError(msg);
this.userLoad--;
@ -862,6 +873,7 @@ export default {
this.transferLoad--;
this.transferShow = false;
this.$store.dispatch("getProjectOne", this.projectId);
this.$store.dispatch("getTasks", {project_id: this.projectId})
}).catch(({msg}) => {
$A.modalError(msg);
this.transferLoad--;

View File

@ -354,8 +354,12 @@ export default {
* @returns {Promise<unknown>}
*/
getProjectOne({state, dispatch}, project_id) {
state.projectLoad++;
return new Promise(function (resolve, reject) {
if (state.method.runNum(project_id) === 0) {
reject({msg: 'Parameter error'});
return;
}
state.projectLoad++;
dispatch("call", {
url: 'project/one',
data: {
@ -380,6 +384,10 @@ export default {
*/
archivedProject({dispatch}, project_id) {
return new Promise(function (resolve, reject) {
if (state.method.runNum(project_id) === 0) {
reject({msg: 'Parameter error'});
return;
}
dispatch("call", {
url: 'project/archived',
data: {
@ -403,6 +411,10 @@ export default {
*/
removeProject({dispatch}, project_id) {
return new Promise(function (resolve, reject) {
if (state.method.runNum(project_id) === 0) {
reject({msg: 'Parameter error'});
return;
}
dispatch("call", {
url: 'project/remove',
data: {
@ -426,6 +438,10 @@ export default {
*/
exitProject({dispatch}, project_id) {
return new Promise(function (resolve, reject) {
if (state.method.runNum(project_id) === 0) {
reject({msg: 'Parameter error'});
return;
}
dispatch("call", {
url: 'project/exit',
data: {
@ -541,6 +557,10 @@ export default {
*/
removeColumn({dispatch}, column_id) {
return new Promise(function (resolve, reject) {
if (state.method.runNum(column_id) === 0) {
reject({msg: 'Parameter error'});
return;
}
dispatch("call", {
url: 'project/column/remove',
data: {
@ -580,7 +600,7 @@ export default {
state[key].push(data);
}
//
if (data.is_subtask) {
if (data.parent_id) {
dispatch("getTaskOne", data.parent_id);
}
if (data.is_update_complete) {
@ -712,6 +732,7 @@ export default {
getTaskOne({state, dispatch}, task_id) {
return new Promise(function (resolve, reject) {
if (state.method.runNum(task_id) === 0) {
reject({msg: 'Parameter error'});
return;
}
dispatch("call", {
@ -737,6 +758,10 @@ export default {
*/
removeTask({dispatch}, task_id) {
return new Promise(function (resolve, reject) {
if (state.method.runNum(task_id) === 0) {
reject({msg: 'Parameter error'});
return;
}
dispatch("call", {
url: 'project/task/remove',
data: {
@ -761,6 +786,10 @@ export default {
*/
archivedTask({dispatch}, task_id) {
return new Promise(function (resolve, reject) {
if (state.method.runNum(task_id) === 0) {
reject({msg: 'Parameter error'});
return;
}
dispatch("call", {
url: 'project/task/archived',
data: {
@ -786,6 +815,10 @@ export default {
*/
getTaskContent({state, dispatch}, task_id) {
return new Promise(function (resolve, reject) {
if (state.method.runNum(task_id) === 0) {
reject({msg: 'Parameter error'});
return;
}
dispatch("call", {
url: 'project/task/content',
data: {
@ -815,6 +848,10 @@ export default {
*/
getTaskFiles({state, dispatch}, task_id) {
return new Promise(function (resolve, reject) {
if (state.method.runNum(task_id) === 0) {
reject({msg: 'Parameter error'});
return;
}
dispatch("call", {
url: 'project/task/files',
data: {
@ -1064,6 +1101,7 @@ export default {
openDialogUserid({state, dispatch}, userid) {
return new Promise(function (resolve, reject) {
if (userid === state.userId) {
reject({msg: 'Parameter error'});
return;
}
dispatch("call", {
@ -1175,12 +1213,15 @@ export default {
return new Promise(function (resolve, reject) {
const dialog = state.dialogs.find(({id}) => id == dialog_id);
if (!dialog) {
reject({msg: 'Parameter error'});
return;
}
if (!dialog.hasMorePages) {
reject({msg: 'No more page'});
return;
}
if (dialog.loading) {
reject({msg: 'Loading'});
return;
}
dialog.loading = true;
@ -1353,7 +1394,8 @@ export default {
dispatch("saveProject", data)
break;
case 'detail':
dispatch("getProjectOne", data);
dispatch("getProjectOne", data.id);
dispatch("getTasks", {project_id: data.id})
break;
case 'archived':
case 'delete':
@ -1399,7 +1441,7 @@ export default {
dispatch("saveTask", data)
break;
case 'upload':
dispatch("getTaskFiles", data.id)
dispatch("getTaskFiles", data.task_id)
break;
case 'archived':
case 'delete':