|
|
|
@ -117,7 +117,6 @@ |
|
|
|
import type { BasicColumn } from '../../types/table'; |
|
|
|
|
|
|
|
interface State { |
|
|
|
indeterminate: boolean; |
|
|
|
checkAll: boolean; |
|
|
|
checkedList: string[]; |
|
|
|
defaultCheckList: string[]; |
|
|
|
@ -158,7 +157,6 @@ |
|
|
|
const columnListRef = ref<ComponentRef>(null); |
|
|
|
|
|
|
|
const state = reactive<State>({ |
|
|
|
indeterminate: false, |
|
|
|
checkAll: true, |
|
|
|
checkedList: [], |
|
|
|
defaultCheckList: [], |
|
|
|
@ -233,7 +231,6 @@ |
|
|
|
|
|
|
|
// checkAll change |
|
|
|
function onCheckAllChange(e: ChangeEvent) { |
|
|
|
state.indeterminate = false; |
|
|
|
const checkList = plainOptions.value.map((item) => item.value); |
|
|
|
if (e.target.checked) { |
|
|
|
state.checkedList = checkList; |
|
|
|
@ -244,10 +241,18 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const indeterminate = computed(() => { |
|
|
|
const len = plainOptions.value.length; |
|
|
|
let checkdedLen = state.checkedList.length; |
|
|
|
if (unref(checkIndex)) { |
|
|
|
checkdedLen--; |
|
|
|
} |
|
|
|
return checkdedLen > 0 && checkdedLen < len; |
|
|
|
}); |
|
|
|
|
|
|
|
// Trigger when check/uncheck a column |
|
|
|
function onChange(checkedList: string[]) { |
|
|
|
const len = plainOptions.value.length; |
|
|
|
state.indeterminate = !!checkedList.length && checkedList.length < len; |
|
|
|
state.checkAll = checkedList.length === len; |
|
|
|
|
|
|
|
const sortList = unref(plainSortOptions).map((item) => item.value); |
|
|
|
@ -261,7 +266,6 @@ |
|
|
|
function reset() { |
|
|
|
state.checkedList = [...state.defaultCheckList]; |
|
|
|
state.checkAll = true; |
|
|
|
state.indeterminate = false; |
|
|
|
plainOptions.value = unref(cachePlainOptions); |
|
|
|
plainSortOptions.value = unref(cachePlainOptions); |
|
|
|
table.setColumns(table.getCacheColumns()); |
|
|
|
@ -339,6 +343,7 @@ |
|
|
|
return { |
|
|
|
t, |
|
|
|
...toRefs(state), |
|
|
|
indeterminate, |
|
|
|
onCheckAllChange, |
|
|
|
onChange, |
|
|
|
plainOptions, |
|
|
|
|