web- 用户选择组件
This commit is contained in:
@@ -317,9 +317,13 @@
|
||||
:title="selectorMode === 'add' ? '添加人员' : '删除人员'"
|
||||
:left-title="selectorMode === 'add' ? '可添加人员' : '当前人员'"
|
||||
:right-title="selectorMode === 'add' ? '待添加人员' : '待删除人员'"
|
||||
:available-users="availableUsers"
|
||||
:available-users="selectorMode === 'remove' ? availableUsers : []"
|
||||
:initial-target-users="[]"
|
||||
:loading="saving"
|
||||
:use-pagination="selectorMode === 'add'"
|
||||
:fetch-api="selectorMode === 'add' ? userApi.getUserPage : undefined"
|
||||
:filter-params="userFilterParams"
|
||||
:page-size="20"
|
||||
@confirm="handleUserSelectConfirm"
|
||||
@cancel="closeSelectorModal"
|
||||
/>
|
||||
@@ -378,10 +382,10 @@ const deleting = ref(false);
|
||||
// 人员管理相关
|
||||
const managingTask = ref<LearningTask | null>(null);
|
||||
const selectorMode = ref<'add' | 'remove'>('add');
|
||||
const allUsers = ref<UserVO[]>([]);
|
||||
const currentUsers = ref<UserVO[]>([]);
|
||||
const availableUsers = ref<UserVO[]>([]);
|
||||
const saving = ref(false);
|
||||
const userFilterParams = ref<any>({});
|
||||
|
||||
// 计算显示的页码
|
||||
const displayPages = computed(() => {
|
||||
@@ -519,22 +523,23 @@ async function handleUpdateUser(task: LearningTask) {
|
||||
managingTask.value = task;
|
||||
|
||||
try {
|
||||
// 加载所有用户
|
||||
const usersRes = await userApi.getUserList({});
|
||||
if (usersRes.success && usersRes.dataList) {
|
||||
allUsers.value = usersRes.dataList;
|
||||
}
|
||||
|
||||
// 加载任务详情(包含已分配的用户)
|
||||
const taskRes = await learningTaskApi.getTaskById(task.taskID!);
|
||||
if (taskRes.success && taskRes.data) {
|
||||
const taskUsers = taskRes.data.taskUsers || [];
|
||||
const assignedUserIds = taskUsers.map(tu => tu.userID!);
|
||||
|
||||
// 当前已分配的用户
|
||||
currentUsers.value = allUsers.value.filter(user =>
|
||||
assignedUserIds.includes(user.id!)
|
||||
);
|
||||
// 加载用户详情(批量查询)
|
||||
if (assignedUserIds.length > 0) {
|
||||
const usersRes = await userApi.getUserList({});
|
||||
if (usersRes.success && usersRes.dataList) {
|
||||
currentUsers.value = usersRes.dataList.filter(user =>
|
||||
assignedUserIds.includes(user.id!)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
currentUsers.value = [];
|
||||
}
|
||||
}
|
||||
|
||||
showUserList.value = true;
|
||||
@@ -555,11 +560,8 @@ function closeUserList() {
|
||||
function showAddUserSelector() {
|
||||
selectorMode.value = 'add';
|
||||
|
||||
// 左侧显示未分配的用户
|
||||
const currentUserIds = currentUsers.value.map(u => u.id!);
|
||||
availableUsers.value = allUsers.value.filter(user =>
|
||||
!currentUserIds.includes(user.id!)
|
||||
);
|
||||
// 设置过滤参数(可以过滤掉已分配的用户,但在组件内部会自动过滤)
|
||||
userFilterParams.value = {};
|
||||
|
||||
showUserSelector.value = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user