Skip to content

Commit 07accf0

Browse files
RSS1102uyarn
andauthored
fix(Select): select all error when valueType = 'object' (#5167)
* fix(Select): select all error when `valueType = 'object'` * chore: optimize format --------- Co-authored-by: wū yāng <[email protected]>
1 parent 257bd90 commit 07accf0

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

packages/components/select/select.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,14 +246,20 @@ export default defineComponent({
246246
*/
247247
const onCheckAllChange = (checked: boolean) => {
248248
if (!props.multiple) return;
249+
const { value } = keys.value;
249250
// disabled状态的选项,不参与全选的计算,始终保留
250251
const lockedValues = innerValue.value.filter((value: string | number | boolean) => {
251252
return optionsList.value.find((item) => item.value === value && item.disabled);
252253
});
253254

254255
const activeValues = optionalList.value.map((option) => option.value);
256+
const formattedOrgValue =
257+
props.valueType === 'object'
258+
? (orgValue.value as Array<SelectValue>).map((v) => get(v, value))
259+
: orgValue.value;
260+
255261
const values = checked
256-
? [...new Set([...(orgValue.value as Array<SelectValue>), ...activeValues, ...lockedValues])]
262+
? [...new Set([...(formattedOrgValue as Array<SelectValue>), ...activeValues, ...lockedValues])]
257263
: [...lockedValues];
258264
setInnerValue(values, { selectedOptions: getSelectedOptions(values), trigger: checked ? 'check' : 'clear' });
259265
};

0 commit comments

Comments
 (0)