{"version":3,"file":"tree-search.vue2.mjs","sources":["../../../../../../packages/components/tree-search/src/tree-search.vue"],"sourcesContent":["<template>\r\n  <div :class=\"bem.b()\">\r\n    <!-- 头部搜索 -->\r\n    <header-search\r\n      :throttle-time=\"throttleTime\"\r\n      :search-value=\"searchValue\"\r\n      :is-show-add-btn=\"isShowAddBtn\"\r\n      :on-search-input-change=\"handleSearchInputChange\"\r\n      @click=\"handleClickAddBtn\"\r\n    />\r\n    <!-- 目录标题 -->\r\n    <directory-title\r\n      :is-collapse-menu=\"isCollapseMenu\"\r\n      @collapse-menu=\"handleCollapseMenu\"\r\n    >\r\n      <template #title>\r\n        <slot name=\"directoryTitle\"></slot>\r\n      </template>\r\n    </directory-title>\r\n    <!-- operate-tree -->\r\n    <ll-operate-tree\r\n      v-bind=\"attrs\"\r\n      :operate-dropdown-open=\"operateDropdownOpen\"\r\n      :loading=\"loading\"\r\n      :field-names=\"fieldNames\"\r\n      :tree-data=\"treeData\"\r\n      :expanded-keys=\"newExpandedKeys\"\r\n      @expand=\"handleTreeExpand\"\r\n      @select=\"handleTreeSelect\"\r\n    >\r\n      <!-- switcher-icon-slots -->\r\n      <template #switcherIcon=\"slots\">\r\n        <slot name=\"switcherIcon\" v-bind=\"slots\" />\r\n      </template>\r\n      <!-- icon-slots -->\r\n      <template #icon=\"slots\">\r\n        <slot name=\"icon\" v-bind=\"slots\" />\r\n      </template>\r\n      <!-- title-slots -->\r\n      <template #treeTitle=\"slots\">\r\n        <slot name=\"treeTitle\" v-bind=\"slots\" />\r\n      </template>\r\n      <!-- operate-slot -->\r\n      <template #treeOperate=\"slots\">\r\n        <slot name=\"treeOperate\" v-bind=\"slots.data\" />\r\n      </template>\r\n      <!-- empty-slot -->\r\n      <template #empty>\r\n        <slot name=\"empty\" />\r\n      </template>\r\n    </ll-operate-tree>\r\n    <!-- 操作出现的方式 -->\r\n    <!-- 模态框 -->\r\n    <template v-if=\"operateWay === 'modal'\">\r\n      <ll-modal\r\n        v-bind=\"modalConfigProps\"\r\n        :open=\"open\"\r\n        @ok=\"handleClickOkBtn\"\r\n        @cancel=\"handleClickCancelBtn\"\r\n      >\r\n        <slot name=\"operateBoxContent\" />\r\n      </ll-modal>\r\n    </template>\r\n    <!-- 抽屉 -->\r\n    <template v-else-if=\"operateWay === 'drawer'\">\r\n      <ll-drawer\r\n        v-bind=\"drawerConfigProps\"\r\n        :open=\"open\"\r\n        @confirm=\"handleClickOkBtn\"\r\n        @cancel=\"handleClickCancelBtn\"\r\n        @close=\"handleClickCloseBtn\"\r\n      >\r\n        <slot name=\"operateBoxContent\" />\r\n        <template #footer-left>\r\n          <slot name=\"drawerFooterLeft\" />\r\n        </template>\r\n      </ll-drawer>\r\n    </template>\r\n  </div>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { ref, useAttrs, watch } from 'vue'\r\n\r\nimport { createNamespace } from '@ll-plus/utils'\r\nimport { treeSearchProps, treeSearchEmits } from './config'\r\n\r\nimport HeaderSearch from './components/header-search.vue'\r\nimport DirectoryTitle from './components/directory-title.vue'\r\nimport { LlOperateTree } from '@ll-plus/components'\r\n\r\n// 1.defineOptions\r\ndefineOptions({ name: 'LlTreeSearch' })\r\n\r\n// 2.props/emits\r\nconst props = defineProps(treeSearchProps)\r\nconst emits = defineEmits(treeSearchEmits)\r\n\r\n// 3.ref\r\n// 是否收起/展开\r\nconst isCollapseMenu = ref(false)\r\nconst newExpandedKeys = ref<string[]>([])\r\n// 输入框内容\r\n// const searchValue = ref('')\r\nconst bem = createNamespace('tree-search')\r\n\r\n// 4.hooks\r\nconst attrs = useAttrs()\r\n\r\n// 5.methods\r\n// 获取所有树的keys\r\nconst getTreeDataKeys = (children: any[]) => {\r\n  const keys: any[] = []\r\n  const getKeys = (children: any[]) => {\r\n    if (children) {\r\n      children.forEach(item => {\r\n        keys.push(item[props.fieldNames!['key']!])\r\n        if (item[props.fieldNames!['children']!]) {\r\n          getKeys(item[props.fieldNames!['children']!])\r\n        }\r\n      })\r\n    }\r\n  }\r\n  getKeys(children)\r\n  return keys\r\n}\r\nconst handleCollapseMenu = () => {\r\n  isCollapseMenu.value = !isCollapseMenu.value\r\n  if (isCollapseMenu.value) {\r\n    newExpandedKeys.value = getTreeDataKeys(props.treeData!)\r\n  } else {\r\n    newExpandedKeys.value = []\r\n  }\r\n}\r\n// 输入框内容change\r\nconst handleSearchInputChange = (v: string) => {\r\n  props.onSearchInputChange && props.onSearchInputChange(v)\r\n}\r\n// 点击头部add\r\nconst handleClickAddBtn = () => emits('clickAdd')\r\n// 树展开\r\nconst handleTreeExpand = (expandedKeys: string[], data: any) => {\r\n  emits('expand', expandedKeys, data)\r\n}\r\n// 树节点选择\r\nconst handleTreeSelect = (keys: string[], e: any) => {\r\n  emits('select', keys, e)\r\n}\r\n// 点击弹窗的ok按钮\r\nconst handleClickOkBtn = () => emits('ok')\r\n// 点击弹窗的cacel按钮\r\nconst handleClickCancelBtn = () => emits('cancel')\r\n// 点击抽屉的x\r\nconst handleClickCloseBtn = () => emits('close')\r\n\r\n// 6.watch\r\n// 如果有数据并且输入框有内容则展开\r\nwatch(\r\n  () => props.expandedKeys,\r\n  keys => {\r\n    if (keys) {\r\n      newExpandedKeys.value = keys\r\n    }\r\n  },\r\n  {\r\n    deep: true\r\n  }\r\n)\r\n</script>\r\n"],"names":["children","_createElementBlock","_normalizeClass","_unref","_createCommentVNode","_createVNode","HeaderSearch","throttleTime","searchValue","isShowAddBtn","DirectoryTitle","_renderSlot","_mergeProps","operateDropdownOpen","loading","fieldNames","treeData","_withCtx","_normalizeProps","_guardReactiveProps","operateWay","_createBlock","modalConfigProps","open","_Fragment"],"mappings":"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"}