hongluan-business-ui
Version:
Hongluan Business Component Library for Vue 3
1 lines • 5.39 kB
Source Map (JSON)
{"version":3,"file":"tree-panel.mjs","sources":["../../../../../../packages/components/tree-transfer/src/tree-panel.vue"],"sourcesContent":["<template>\n <div :class=\"['transfer-panel tree-panel']\">\n <div class=\"panel-header\">\n {{ title }}\n </div>\n\n <div\n :class=\"['panel-body', hasFooter ? 'is-with-footer' : '']\"\n >\n <div\n v-if=\"filterable\"\n class=\"panel-filter\"\n >\n <hl-input\n v-model=\"query\"\n block\n fill\n :placeholder=\"placeholder\"\n @input=\"onInput\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <template #suffix>\n <i :class=\"['input-close', showClose]\" @click=\"clearQuery\"></i>\n </template>\n <template #prefix>\n <hl-icon><system-search /></hl-icon>\n </template>\n </hl-input>\n </div>\n <hl-tree\n ref=\"hlTree\"\n class=\"panel-list\"\n node-key=\"id\"\n v-bind=\"treeProps\"\n :show-checkbox=\"true\"\n @check-change=\"checkChange\"\n >\n <template #default=\"{ data }\">\n <option-content\n :option=\"optionRender(data)\"\n />\n </template>\n </hl-tree>\n <p v-show=\"treeProps.data && treeProps.data.length === 0\" class=\"panel-empty\">\n {{ t('hl.transfer.noData') }}\n </p>\n </div>\n <p v-if=\"hasFooter\" class=\"panel-footer\">\n <slot></slot>\n </p>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue'\nimport { HlInput, HlTree, HlIcon, SystemSearch, useLocale } from 'hongluan-ui'\nimport { debounce } from 'lodash-unified'\n\nimport type { PropType } from 'vue'\nimport type { TreeProps } from '@hongluan-business-ui/components/tree-selector'\n\nexport default defineComponent({\n name: 'TreePanel',\n\n components: {\n HlInput,\n HlTree,\n HlIcon,\n SystemSearch,\n OptionContent: ({ option }) => option,\n },\n\n props: {\n treeProps: Object as PropType<TreeProps>,\n placeholder: String,\n title: String,\n filterable: Boolean,\n optionRender: Function,\n },\n emits: ['checked-change'],\n setup(props, { emit, slots }) {\n const { t } = useLocale()\n const hlTree = ref(null)\n const query = ref('')\n const inputHover = ref(false)\n\n const hasFooter = computed(() => !!slots.default()[0].children.length)\n const showClose = computed(() => {\n return query.value.length > 0 && inputHover.value ? 'show-close' : ''\n })\n\n const onInput = debounce(val => {\n hlTree.value.filter(val)\n }, 300)\n const clearQuery = () => {\n if (showClose.value === 'show-close') {\n query.value = ''\n hlTree.value.filter('')\n }\n }\n const callTreeMethod = (name: string, ...args: unknown[]) => {\n if (hlTree.value[name]) {\n return hlTree.value[name](...args)\n }\n console.error('tree method don\\'t exist!!')\n }\n const checkChange = () => {\n emit('checked-change')\n }\n\n return {\n t,\n hlTree,\n query,\n inputHover,\n showClose,\n onInput,\n clearQuery,\n hasFooter,\n checkChange,\n callTreeMethod,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_toDisplayString","_normalizeClass","_createVNode","_withCtx","_mergeProps","_renderSlot"],"mappings":";;;;;AA8DA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,CAAC,EAAE,aAAa;AAAA;AAAA,EAGjC,OAAO;AAAA,IACL,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA;AAAA,EAEhB,OAAO,CAAC;AAAA,EACR,MAAM,OAAO,EAAE,MAAM,SAAS;AAC5B,UAAM,EAAE,MAAM;AACd,UAAM,SAAS,IAAI;AACnB,UAAM,QAAQ,IAAI;AAClB,UAAM,aAAa,IAAI;AAEvB,UAAM,YAAY,SAAS,MAAM,CAAC,CAAC,MAAM,UAAU,GAAG,SAAS;AAC/D,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,MAAM,MAAM,SAAS,KAAK,WAAW,QAAQ,eAAe;AAAA;AAGrE,UAAM,UAAU,SAAS,SAAO;AAC9B,aAAO,MAAM,OAAO;AAAA,OACnB;AACH,UAAM,aAAa,MAAM;AACvB,UAAI,UAAU,UAAU,cAAc;AACpC,cAAM,QAAQ;AACd,eAAO,MAAM,OAAO;AAAA;AAAA;AAGxB,UAAM,iBAAiB,CAAC,SAAiB,SAAoB;AAC3D,UAAI,OAAO,MAAM,OAAO;AACtB,eAAO,OAAO,MAAM,MAAM,GAAG;AAAA;AAE/B,cAAQ,MAAM;AAAA;AAEhB,UAAM,cAAc,MAAM;AACxB,WAAK;AAAA;AAGP,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;EAxHE,sCAAO;AAAA;qBACN,OAAM;;;EASP,OAAM;AAAA;;;EAqCU,OAAM;AAAA;;;;;;;sBA/C5BA,mBAkDM,OAlDN,YAkDM;AAAA,IAjDJC,mBAEM,OAFN,YAEMC,gBADD,aAAK;AAAA,IAGVD,mBAyCM;AAAA,MAxCH,OAAKE,8BAAiB,iBAAS;AAAA;MAGxB,gCADRH,mBAoBM,OApBN,YAoBM;AAAA,QAhBJI,YAeW;AAAA,sBAdA;AAAA,oFAAK;AAAA,UACd;AAAA,UACA;AAAA,UACC,aAAa;AAAA,UACb,SAAO;AAAA,UACP,cAAU,sCAAE,kBAAU;AAAA,UACtB,cAAU,sCAAE,kBAAU;AAAA;UAEZ,QAAMC,QACf,MAA+D;AAAA,YAA/DJ,mBAA+D;AAAA,cAA3D,OAAKE,+BAAkB;AAAA,cAAa,SAAK,uCAAE;AAAA;;UAEtC,QAAME,QACf,MAAoC;AAAA,YAApCD,YAAoC;AAAA,+BAA3B,MAAiB;AAAA,gBAAjBA,YAAiB;AAAA;AAAA;;;;;;MAIhCA,YAaU,oBAbVE,WAaU;AAAA,QAZR,KAAI;AAAA,QACJ,OAAM;AAAA,QACN,YAAS;AAAA,SACD,gBAAS;AAAA,QAChB,iBAAe;AAAA,QACf,eAAc;AAAA;QAEJ,SAAOD,QAChB,CAEE,EAHkB,WAAI;AAAA,UACxBD,YAEE;AAAA,YADC,QAAQ,kBAAa;AAAA;;;;qBAI5BH,mBAEI,OAFsD,OAAM,iBAAaC,gBACxE,OAAC;AAAA,gBADK,eAAU,QAAQ,eAAU,KAAK,WAAM;AAAA;AAAA;IAI3C,+BAATF,mBAEI,KAFJ,YAEI;AAAA,MADFO,WAAa;AAAA;;;;;;;"}