fix 选择器

This commit is contained in:
2025-10-30 17:59:04 +08:00
parent 2b252e1b3c
commit 0935ec5ec5
22 changed files with 2313 additions and 125 deletions

View File

@@ -818,14 +818,21 @@ function moveBackSelected() {
selectedTarget.value.includes(getItemId(item))
);
// 添加回可选列表
availableList.value.push(...itemsToMoveBack);
// 从已选列表中移除
targetList.value = targetList.value.filter(item =>
!selectedTarget.value.includes(getItemId(item))
);
// 如果是树形模式,重新构建树
if (props.useTree && props.treeTransform) {
// 清空展开状态
expandedKeys.value.clear();
// 重新构建树结构
treeData.value = props.treeTransform(availableList.value);
// 重新展开所有节点
expandAllNodes(treeData.value);
}
@@ -836,12 +843,19 @@ function moveBackSelected() {
function moveBackToAvailable(itemId: string) {
const item = targetList.value.find(i => getItemId(i) === itemId);
if (item) {
// 添加回可选列表
availableList.value.push(item);
// 从已选列表中移除
targetList.value = targetList.value.filter(i => getItemId(i) !== itemId);
// 如果是树形模式,重新构建树
if (props.useTree && props.treeTransform) {
// 清空展开状态
expandedKeys.value.clear();
// 重新构建树结构
treeData.value = props.treeTransform(availableList.value);
// 重新展开所有节点
expandAllNodes(treeData.value);
}
}
@@ -849,12 +863,19 @@ function moveBackToAvailable(itemId: string) {
// 移回所有项到可选区域
function moveBackAll() {
// 添加回可选列表
availableList.value.push(...targetList.value);
// 清空已选列表
targetList.value = [];
// 如果是树形模式,重新构建树
if (props.useTree && props.treeTransform) {
// 清空展开状态
expandedKeys.value.clear();
// 重新构建树结构
treeData.value = props.treeTransform(availableList.value);
// 重新展开所有节点
expandAllNodes(treeData.value);
}