useCheckedKeys.js 1.1 KB

123456789101112131415161718192021222324252627282930
  1. import { conductCheck } from '../../vc-tree/utils/conductUtil';
  2. import { shallowRef, watchEffect } from 'vue';
  3. export default ((rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities, maxLevel, levelEntities) => {
  4. const newRawCheckedValues = shallowRef([]);
  5. const newRawHalfCheckedValues = shallowRef([]);
  6. watchEffect(() => {
  7. let checkedKeys = rawLabeledValues.value.map(_ref => {
  8. let {
  9. value
  10. } = _ref;
  11. return value;
  12. });
  13. let halfCheckedKeys = rawHalfCheckedValues.value.map(_ref2 => {
  14. let {
  15. value
  16. } = _ref2;
  17. return value;
  18. });
  19. const missingValues = checkedKeys.filter(key => !keyEntities.value[key]);
  20. if (treeConduction.value) {
  21. ({
  22. checkedKeys,
  23. halfCheckedKeys
  24. } = conductCheck(checkedKeys, true, keyEntities.value, maxLevel.value, levelEntities.value));
  25. }
  26. newRawCheckedValues.value = Array.from(new Set([...missingValues, ...checkedKeys]));
  27. newRawHalfCheckedValues.value = halfCheckedKeys;
  28. });
  29. return [newRawCheckedValues, newRawHalfCheckedValues];
  30. });