File tree Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Original file line number Diff line number Diff line change 11import type { ComputedRef , MaybeRefOrGetter } from 'vue'
2+ import { isFunction } from '@antfu/utils'
23import { computed , shallowReactive , toValue } from 'vue'
34
45export interface UseSelectionOptions < T = any , K = any > {
@@ -56,6 +57,17 @@ export interface UseSelectionReturn<T = any, K = any> {
5657 selected ?: boolean ,
5758 ignoreSelectable ?: boolean ,
5859 ) => void
60+ /**
61+ * 批量切换选中项
62+ * @param data 数据列表
63+ * @param selected 是否选中
64+ * @param ignoreSelectable 是否忽略 selectable 选项
65+ */
66+ batchToggleSelection : (
67+ data : T [ ] ,
68+ selected ?: boolean ,
69+ ignoreSelectable ?: boolean | ( ( data : T ) => boolean | undefined ) ,
70+ ) => void
5971 /**
6072 * 清空选中项
6173 */
@@ -100,6 +112,15 @@ export function useSelection<T, K = any>({
100112 selection . delete ( toKey ( data ) )
101113 }
102114 } ,
115+ batchToggleSelection ( data , selected , ignoreSelectable ) {
116+ const ignoreSelectableFn = isFunction ( ignoreSelectable )
117+ ? ignoreSelectable
118+ : ( ) => ignoreSelectable
119+
120+ data . forEach ( ( item ) => {
121+ returned . toggleSelection ( item , selected , ignoreSelectableFn ( item ) )
122+ } )
123+ } ,
103124 clearSelection ( ) {
104125 selection . clear ( )
105126 } ,
You can’t perform that action at this time.
0 commit comments