diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 34c64d9e8..4e5a52f18 100755 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -1029,16 +1029,22 @@ class UsersController extends AbstractController $upArray['identity'] = array_diff($userInfo->identity, ['disable']); $upArray['identity'][] = 'disable'; $upArray['disable_at'] = Carbon::parse($data['disable_time']); - $transferUserid = is_array($data['transfer_userid']) ? $data['transfer_userid'][0] : $data['transfer_userid']; - $transferUser = User::find(intval($transferUserid)); - if (empty($transferUser)) { - return Base::retError('请选择正确的交接人'); + $transferUserid = Arr::get($data, 'transfer_userid'); + if (is_array($transferUserid)) { + $transferUserid = $transferUserid[0] ?? null; } - if ($transferUser->userid === $userInfo->userid) { - return Base::retError('不能移交给自己'); - } - if ($transferUser->isDisable()) { - return Base::retError('交接人已离职,请选择另一个交接人'); + $transferUserid = intval($transferUserid); + if ($transferUserid > 0) { + $transferUser = User::find($transferUserid); + if (empty($transferUser)) { + return Base::retError('请选择正确的交接人'); + } + if ($transferUser->userid === $userInfo->userid) { + return Base::retError('不能移交给自己'); + } + if ($transferUser->isDisable()) { + return Base::retError('交接人已离职,请选择另一个交接人'); + } } break; @@ -1145,7 +1151,7 @@ class UsersController extends AbstractController $joinDialog->pushMsg("groupJoin", null, $userids); } } - } elseif ($type === 'setdisable') { + } elseif ($type === 'setdisable' && $transferUser) { $userTransfer = UserTransfer::createInstance([ 'original_userid' => $userInfo->userid, 'new_userid' => $transferUser->userid, @@ -2776,7 +2782,7 @@ class UsersController extends AbstractController $flowItemStatus = $flowItemParts[0] ?? ''; $flowItemName = $flowItemParts[1] ?? $browse->task->flow_item_name; $flowItemColor = $flowItemParts[2] ?? ''; - + $data[] = [ 'id' => $browse->task->id, 'name' => $browse->task->name, diff --git a/resources/assets/js/pages/manage/components/TeamManagement.vue b/resources/assets/js/pages/manage/components/TeamManagement.vue index 97b66dbb0..095ce9c9c 100644 --- a/resources/assets/js/pages/manage/components/TeamManagement.vue +++ b/resources/assets/js/pages/manage/components/TeamManagement.vue @@ -344,6 +344,7 @@ +
{{ $L('可选,留空则不执行迁移') }}
{{ $L(`${disableData.nickname} 负责的部门、项目、任务和文件将移交给交接人;同时退出所有群(如果是群主则转让给交接人)`) }}
@@ -787,7 +788,10 @@ export default { disableShow: false, disableLoading: 0, - disableData: {}, + disableData: { + transfer_userid: [], + disable_time: '' + }, disableOptions: { shortcuts: [ { @@ -1154,6 +1158,8 @@ export default { type: 'setdisable', userid: row.userid, nickname: row.nickname, + transfer_userid: [], + disable_time: '' }; this.disableShow = true; break; @@ -1200,11 +1206,12 @@ export default { operationUser(data, tipErr) { return new Promise((resolve, reject) => { + let submitData = data; if (data.type == 'checkin_macs') { this.checkinMacEditLoading++; } else if (data.type == 'checkin_face') { this.checkinFaceEditLoading++; - data = { + submitData = { type: data.type, userid: data.userid, nickname: data.nickname, @@ -1214,12 +1221,22 @@ export default { this.departmentEditLoading++; } else if (data.type == 'setdisable') { this.disableLoading++; + submitData = Object.assign({}, data); + if (Array.isArray(submitData.transfer_userid)) { + if (submitData.transfer_userid.length > 0) { + submitData.transfer_userid = submitData.transfer_userid[0]; + } else { + delete submitData.transfer_userid; + } + } else if (!submitData.transfer_userid) { + delete submitData.transfer_userid; + } } else { this.loadIng++; } this.$store.dispatch("call", { url: 'users/operation', - data, + data: submitData, }).then(({msg}) => { $A.messageSuccess(msg); this.getLists();