mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-11 18:42:54 +00:00
no message
This commit is contained in:
parent
79f256976e
commit
9e522091c6
@ -735,7 +735,9 @@ class ProjectTask extends AbstractModel
|
||||
if (count($older) == 0 && count($array) == 1 && $array[0] == User::userid()) {
|
||||
$this->addLog("认领{任务}");
|
||||
} else {
|
||||
$this->addLog("修改{任务}负责人", ['userid' => $array]);
|
||||
if (array_merge(array_diff($array, $older), array_diff($older, $array))) {
|
||||
$this->addLog("修改{任务}负责人", ['userid' => $array]);
|
||||
}
|
||||
}
|
||||
$this->taskPush(array_values(array_diff($array, $older)), 0);
|
||||
}
|
||||
@ -890,6 +892,7 @@ class ProjectTask extends AbstractModel
|
||||
}
|
||||
// 协助人员
|
||||
if (Arr::exists($data, 'assist')) {
|
||||
$older = $this->taskUser->where('owner', 0)->pluck('userid')->toArray();
|
||||
$array = [];
|
||||
$assist = is_array($data['assist']) ? $data['assist'] : [$data['assist']];
|
||||
if (count($assist) > 10) {
|
||||
@ -910,7 +913,9 @@ class ProjectTask extends AbstractModel
|
||||
$array[] = $uid;
|
||||
}
|
||||
if ($array) {
|
||||
$this->addLog("修改{任务}协助人员", ['userid' => $array]);
|
||||
if (array_merge(array_diff($array, $older), array_diff($older, $array))) {
|
||||
$this->addLog("修改{任务}协助人员", ['userid' => $array]);
|
||||
}
|
||||
}
|
||||
$rows = ProjectTaskUser::whereTaskId($this->id)->whereOwner(0)->whereNotIn('userid', $array)->get();
|
||||
if ($rows->isNotEmpty()) {
|
||||
@ -1349,6 +1354,9 @@ class ProjectTask extends AbstractModel
|
||||
$addMsg = $this->parent_id == 0 && $this->dialog_id > 0;
|
||||
if ($complete_at === null) {
|
||||
// 标记未完成
|
||||
if (!$this->complete_at) {
|
||||
return; // 本来就未完成
|
||||
}
|
||||
$this->complete_at = null;
|
||||
$this->addLog("标记{任务}未完成");
|
||||
if ($addMsg) {
|
||||
@ -1358,6 +1366,9 @@ class ProjectTask extends AbstractModel
|
||||
}
|
||||
} else {
|
||||
// 标记已完成
|
||||
if ($this->complete_at) {
|
||||
return; // 本来就已完成
|
||||
}
|
||||
if ($this->parent_id == 0) {
|
||||
if (self::whereParentId($this->id)->whereCompleteAt(null)->exists()) {
|
||||
throw new ApiException('子任务未完成', [
|
||||
@ -1848,6 +1859,12 @@ class ProjectTask extends AbstractModel
|
||||
AbstractModel::transaction(function () use ($projectId, $columnId, $flowItemId, $owner, $assist, $completeAt) {
|
||||
$newTaskUser = array_merge($owner, $assist);
|
||||
//
|
||||
$oldProject = Project::find($this->project_id);
|
||||
$newProject = $this->project_id != $projectId ? Project::find($projectId) : $oldProject;
|
||||
if (!$oldProject || !$newProject) {
|
||||
throw new ApiException('项目不存在');
|
||||
}
|
||||
//
|
||||
$this->project_id = $projectId;
|
||||
$this->column_id = $columnId;
|
||||
// 任务内容
|
||||
@ -1883,6 +1900,7 @@ class ProjectTask extends AbstractModel
|
||||
]);
|
||||
//
|
||||
if ($flowItemId) {
|
||||
// 更新任务流程
|
||||
$flowItem = projectFlowItem::whereProjectId($projectId)->whereId($flowItemId)->first();
|
||||
$this->flow_item_id = $flowItemId;
|
||||
$this->flow_item_name = $flowItem->status . "|" . $flowItem->name;
|
||||
@ -1892,17 +1910,25 @@ class ProjectTask extends AbstractModel
|
||||
$this->completeTask(null);
|
||||
}
|
||||
} else {
|
||||
// 没有流程只更新状态
|
||||
$this->flow_item_id = 0;
|
||||
$this->flow_item_name = '';
|
||||
}
|
||||
//
|
||||
if ($completeAt) {
|
||||
$this->complete_at = $completeAt;
|
||||
if ($completeAt) {
|
||||
$this->completeTask(Carbon::parse($completeAt));
|
||||
} else {
|
||||
$this->completeTask(null);
|
||||
}
|
||||
}
|
||||
//
|
||||
$this->save();
|
||||
//
|
||||
$this->addLog("移动{任务}");
|
||||
$log = $this->addLog("移动{任务}", [
|
||||
'change' => [$oldProject->name, $newProject->name]
|
||||
]);
|
||||
if ($this->dialog_id) {
|
||||
$notice = $oldProject->id != $newProject->id ? "「{$oldProject->name}」移动至「{$newProject->name}」" : $log->detail;
|
||||
WebSocketDialogMsg::sendMsg(null, $this->dialog_id, 'notice', ['notice' => $notice], User::userid(), true, true);
|
||||
}
|
||||
});
|
||||
$this->pushMsg('update');
|
||||
return true;
|
||||
|
||||
@ -352,6 +352,7 @@ LDAP 用户禁止修改邮箱
|
||||
移交子任务身份
|
||||
任务取消归档
|
||||
自动任务归档
|
||||
任务自动归档
|
||||
任务归档
|
||||
创建任务来自周期任务ID:(*)
|
||||
已创建新的周期任务ID:(*),此任务关闭周期
|
||||
@ -844,3 +845,4 @@ AI机器人不存在
|
||||
请输入删除备注
|
||||
删除备注长度限制(*)个字
|
||||
系统机器人不能删除
|
||||
「(*)」移动至「(*)」
|
||||
|
||||
@ -2044,3 +2044,6 @@ AI开启新会话
|
||||
AI开启新会话失败
|
||||
|
||||
打开会话窗口
|
||||
转为已完成
|
||||
转为未完成
|
||||
「(*)」移动至「(*)」
|
||||
|
||||
@ -22440,7 +22440,7 @@
|
||||
"ru": "Задача не архивирована"
|
||||
},
|
||||
{
|
||||
"key": "自动任务归档",
|
||||
"key": "任务自动归档",
|
||||
"zh": "",
|
||||
"zh-CHT": "自動任務歸檔",
|
||||
"en": "Automatic task archiving",
|
||||
@ -29459,4 +29459,4 @@
|
||||
"id": "Buka Jendela Sesi",
|
||||
"ru": "Открыть окно сессии"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
@ -44,6 +44,10 @@ export default {
|
||||
type: String,
|
||||
default: 'small'
|
||||
},
|
||||
placement: {
|
||||
type: String,
|
||||
default: 'bottom'
|
||||
},
|
||||
icon: {
|
||||
type: String,
|
||||
default: 'md-radio-button-off'
|
||||
@ -83,6 +87,7 @@ export default {
|
||||
updateBefore: this.updateBefore,
|
||||
disabled: this.disabled,
|
||||
size: this.size,
|
||||
placement: this.placement,
|
||||
projectId: this.projectId,
|
||||
onUpdate: data => {
|
||||
this.$emit("on-update", data)
|
||||
|
||||
@ -2,21 +2,23 @@
|
||||
<div class="task-move">
|
||||
|
||||
<Cascader
|
||||
v-model="cascader"
|
||||
:data="cascaderData"
|
||||
:clearable="false"
|
||||
:placeholder="$L('请选择项目')"
|
||||
:load-data="cascaderLoadData"
|
||||
@on-visible-change="cascaderShow=!cascaderShow"
|
||||
filterable/>
|
||||
v-model="cascader"
|
||||
:data="cascaderData"
|
||||
:clearable="false"
|
||||
:placeholder="$L('请选择项目')"
|
||||
:load-data="cascaderLoadData"
|
||||
@on-visible-change="cascaderShow=!cascaderShow"
|
||||
filterable/>
|
||||
|
||||
<div class="task-move-content">
|
||||
<div class="task-move-content-old">
|
||||
<div class="task-move-title">{{ $L('移动前') }}</div>
|
||||
<div class="task-move-row">
|
||||
<span class="label">{{$L('状态')}}:</span>
|
||||
<div v-if="task.flow_item_name" class="flow">
|
||||
<span :class="task.flow_item_status">{{task.flow_item_name}}</span>
|
||||
<div class="flow">
|
||||
<span v-if="task.flow_item_name" :class="task.flow_item_status">{{task.flow_item_name}}</span>
|
||||
<span v-else-if="task.complete_at" class="end">{{$L('已完成')}}</span>
|
||||
<span v-else class="start">{{$L('未完成')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="task-move-row" :class="{'not-flex': windowPortrait}">
|
||||
@ -51,8 +53,8 @@
|
||||
:color-show="false"
|
||||
:operation-show="false"
|
||||
:load-status="task.loading === true"
|
||||
@on-update="onStatusUpdate"
|
||||
/>
|
||||
placement="bottom-start"
|
||||
@on-update="onStatusUpdate"/>
|
||||
<div v-if="updateData.flow.flow_item_name" class="flow">
|
||||
<span :class="updateData.flow.flow_item_status" @click.stop="openMenu($event, tasks)">{{updateData.flow.flow_item_name}}</span>
|
||||
</div>
|
||||
@ -290,8 +292,14 @@ export default {
|
||||
},
|
||||
|
||||
onStatusUpdate(val) {
|
||||
if (val.complete_at && !val.flow_item_id) {
|
||||
val.flow_item_name = this.$L('已完成');
|
||||
if (!val.flow_item_id) {
|
||||
if (this.updateData.flow.flow_item_name) {
|
||||
val.flow_item_status = "";
|
||||
val.flow_item_name = "";
|
||||
} else {
|
||||
val.flow_item_status = val.complete_at ? 'end' : 'start';
|
||||
val.flow_item_name = this.$L(val.complete_at ? '转为已完成' : '转为未完成');
|
||||
}
|
||||
}
|
||||
this.tasks.flow_item_id = val.flow_item_id;
|
||||
this.updateData.flow = val
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
trigger="click"
|
||||
:disabled="disabled"
|
||||
:size="size"
|
||||
:placement="placement"
|
||||
:style="styles"
|
||||
class="general-operation-dropdown"
|
||||
placement="bottom"
|
||||
@command="dropTask"
|
||||
@visible-change="visibleChange">
|
||||
<div ref="icon" class="general-operation-icon"></div>
|
||||
@ -127,6 +127,7 @@ export default {
|
||||
updateBefore: false,
|
||||
disabled: false,
|
||||
size: 'small',
|
||||
placement: 'bottom',
|
||||
projectId: 0,
|
||||
onUpdate: null,
|
||||
|
||||
@ -193,6 +194,7 @@ export default {
|
||||
this.updateBefore = typeof data.updateBefore === "undefined" ? false : data.updateBefore;
|
||||
this.disabled = typeof data.disabled === "undefined" ? false : data.disabled;
|
||||
this.size = typeof data.size === "undefined" ? "small" : data.size;
|
||||
this.placement = typeof data.placement === "undefined" ? "bottom" : data.placement;
|
||||
this.projectId = typeof data.projectId === "undefined" ? 0 : data.projectId;
|
||||
this.onUpdate = typeof data.onUpdate === "function" ? data.onUpdate : null;
|
||||
//
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user