| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import { defineComponent, ref, computed, reactive, onMounted, h } from 'vue';
- import { pick } from 'lodash-unified';
- import { ElSelect } from '../../select/index.mjs';
- import { ElTree } from '../../tree/index.mjs';
- import { useSelect } from './select.mjs';
- import { useTree } from './tree.mjs';
- import CacheOptions from './cache-options.mjs';
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
- const _sfc_main = defineComponent({
- name: "ElTreeSelect",
- inheritAttrs: false,
- props: {
- ...ElSelect.props,
- ...ElTree.props,
- cacheData: {
- type: Array,
- default: () => []
- }
- },
- setup(props, context) {
- const { slots, expose } = context;
- const select = ref();
- const tree = ref();
- const key = computed(() => props.nodeKey || props.valueKey || "value");
- const selectProps = useSelect(props, context, { select, tree, key });
- const { cacheOptions, ...treeProps } = useTree(props, context, {
- select,
- tree,
- key
- });
- const methods = reactive({});
- expose(methods);
- onMounted(() => {
- Object.assign(methods, {
- ...pick(tree.value, [
- "filter",
- "updateKeyChildren",
- "getCheckedNodes",
- "setCheckedNodes",
- "getCheckedKeys",
- "setCheckedKeys",
- "setChecked",
- "getHalfCheckedNodes",
- "getHalfCheckedKeys",
- "getCurrentKey",
- "getCurrentNode",
- "setCurrentKey",
- "setCurrentNode",
- "getNode",
- "remove",
- "append",
- "insertBefore",
- "insertAfter"
- ]),
- ...pick(select.value, ["focus", "blur", "selectedLabel"]),
- treeRef: tree.value,
- selectRef: select.value
- });
- });
- return () => h(ElSelect, reactive({
- ...selectProps,
- ref: (ref2) => select.value = ref2
- }), {
- ...slots,
- default: () => [
- h(CacheOptions, { data: cacheOptions.value }),
- h(ElTree, reactive({
- ...treeProps,
- ref: (ref2) => tree.value = ref2
- }))
- ]
- });
- }
- });
- var TreeSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "tree-select.vue"]]);
- export { TreeSelect as default };
- //# sourceMappingURL=tree-select.mjs.map
|