mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-11 18:42:54 +00:00
fix: 优化用户交接人选择逻辑
- 更新 UsersController 中的交接人选择逻辑,确保在选择交接人时进行有效性检查 - 修改前端 TeamManagement 组件,添加交接人选择提示信息 - 确保在提交数据时正确处理交接人 ID 的格式
This commit is contained in:
parent
068de0fa9f
commit
c6bee25264
@ -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,
|
||||
|
||||
@ -344,6 +344,7 @@
|
||||
</FormItem>
|
||||
<FormItem :label="$L('交接人')">
|
||||
<UserSelect v-model="disableData.transfer_userid" :disabled-choice="[disableData.userid]" :multiple-max="1" :title="$L('选择交接人')"/>
|
||||
<div class="form-tip">{{ $L('可选,留空则不执行迁移') }}</div>
|
||||
<div class="form-tip">{{ $L(`${disableData.nickname} 负责的部门、项目、任务和文件将移交给交接人;同时退出所有群(如果是群主则转让给交接人)`) }}</div>
|
||||
</FormItem>
|
||||
</Form>
|
||||
@ -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();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user