UNPKG

tav-ui

Version:
1 lines 8.07 kB
{"version":3,"file":"hot2.mjs","sources":["../../../../../../../../packages/components/cascade-pro/src/components/hot.vue"],"sourcesContent":["<template>\n <div v-if=\"cascadeProHot.visible\" class=\"ta-cascade-pro-hot\">\n <CheckableTag\n v-for=\"cascade in cascadeProHot.list\"\n :key=\"cascade.id\"\n :checked=\"\n selectedHots.filter((selectedCascade) => selectedCascade.idPath === cascade.idPath).length >\n 0\n \"\n @change=\"(checked) => handleHotChange(cascade, checked)\"\n >\n {{ cascade.name }}\n </CheckableTag>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref, unref, watch } from 'vue'\nimport { CheckableTag } from 'ant-design-vue'\nimport { cascadeProHotProps } from '../types'\nimport { useCascadeProContext } from '../hooks'\nimport type { CascadeProOption } from '../types'\n\nexport interface CascadeProHotInstance {\n handleHotClearAll: (...args: any) => void\n}\n\nexport default defineComponent({\n name: 'TaCascadeProHot',\n components: {\n CheckableTag,\n },\n props: cascadeProHotProps,\n emits: ['change'],\n setup(props, { emit, expose }) {\n const { /*hot,*/ options, selectRecords, fields } = useCascadeProContext()\n const selectedHots = ref<CascadeProOption[]>([])\n\n const cascadeProHot = computed(() => {\n return {\n visible: props.hotVisible && props.hotKeyWords && props.hotKeyWords.length > 0,\n list: props.generateHotList(unref(options).list, props.hotKeyWords),\n }\n })\n\n const getAddAndDeleteOptions = (\n newOptions: CascadeProOption[],\n oldOptions: CascadeProOption[]\n ) => {\n const added: CascadeProOption[] = []\n const deleted: CascadeProOption[] = []\n if (newOptions.length > oldOptions.length) {\n newOptions.forEach((hot) => {\n const isExist = oldOptions.find((_hot) => _hot.idPath === hot.idPath)\n if (!isExist) {\n added.push(hot)\n }\n })\n } else {\n oldOptions.forEach((hot) => {\n const isExist = newOptions.find((_hot) => _hot.idPath === hot.idPath)\n if (!isExist) {\n deleted.push({ ...hot })\n }\n })\n }\n\n return {\n added,\n deleted,\n }\n }\n\n const handleHotChange = (cascade: CascadeProOption, checked: boolean) => {\n const nextSelectedHots = checked\n ? [...unref(selectedHots), cascade]\n : unref(selectedHots).filter((selectedCascade) => selectedCascade.idPath !== cascade.idPath)\n\n const { added, deleted } = getAddAndDeleteOptions(nextSelectedHots, unref(selectedHots))\n\n selectedHots.value = nextSelectedHots\n\n emit('change', {\n added,\n deleted,\n })\n }\n\n const handleHotClearAll = () => {\n selectedHots.value = []\n }\n\n const filterFromHots = (options: CascadeProOption[]) => {\n const currentAllHots = unref(cascadeProHot).list\n return options.filter(\n (option) => !!currentAllHots.find((_option) => _option.idPath === option.idPath)\n )\n }\n\n expose({\n handleHotClearAll,\n })\n\n watch(\n () => selectRecords,\n (newVal) => {\n const newSelectRecords = unref(newVal)\n const oldSelectRecords = unref(selectedHots)\n\n if (newSelectRecords.length === 0) {\n handleHotClearAll()\n } else {\n const { added, deleted } = getAddAndDeleteOptions(newSelectRecords, oldSelectRecords)\n\n if (added.length > 0) {\n selectedHots.value = [...unref(selectedHots), ...filterFromHots(added)]\n }\n\n if (deleted.length > 0) {\n const remainHots = unref(selectedHots).filter((option) => {\n if (deleted.find((_option) => _option.idPath === option.idPath)) {\n return false\n }\n return true\n })\n\n selectedHots.value = [...unref(remainHots)]\n }\n }\n },\n {\n // immediate: true,\n deep: true,\n }\n )\n\n return {\n // hot,\n cascadeProHot,\n selectedHots,\n handleHotChange,\n }\n },\n})\n</script>\n"],"names":["options","_openBlock","_createBlock","_withCtx","_toDisplayString"],"mappings":"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"}