From b385f335de575c65cddb3859b9bba3ccf1dc89ea Mon Sep 17 00:00:00 2001 From: xingyu Date: Tue, 24 Oct 2023 17:47:14 +0800 Subject: [PATCH] fix(Upload): The file name is too long bug --- .../Form/src/components/ApiTreeSelect.vue | 15 +++- .../SimpleMenu/src/components/Menu.vue | 2 +- .../src/components/useSimpleMenuContext.ts | 28 +++---- src/components/Upload/src/FileList.vue | 79 ++++++++++--------- src/components/Upload/src/UploadModal.vue | 8 -- .../Upload/src/UploadPreviewModal.vue | 8 -- src/components/Upload/src/data.tsx | 30 ++----- src/components/Upload/src/typing.ts | 15 +--- src/locales/lang/en/component.json | 1 + src/locales/lang/zh-CN/component.json | 1 + 10 files changed, 82 insertions(+), 105 deletions(-) diff --git a/src/components/Form/src/components/ApiTreeSelect.vue b/src/components/Form/src/components/ApiTreeSelect.vue index dcb2123..fa89eff 100644 --- a/src/components/Form/src/components/ApiTreeSelect.vue +++ b/src/components/Form/src/components/ApiTreeSelect.vue @@ -13,6 +13,7 @@ const props = defineProps({ api: { type: Function as PropType<(arg?: Recordable) => Promise> }, params: { type: Object }, immediate: propTypes.bool.def(true), + async: propTypes.bool.def(false), resultField: propTypes.string.def(''), handleTree: propTypes.string.def(''), parentId: propTypes.number.def(0), @@ -20,7 +21,7 @@ const props = defineProps({ parentFiled: propTypes.string.def('name'), alwaysLoad: propTypes.bool.def(true), }) -const emit = defineEmits(['optionsChange', 'change']) +const emit = defineEmits(['optionsChange', 'change', 'load-data']) const attrs = useAttrs() const treeData = ref([]) @@ -64,6 +65,16 @@ onMounted(() => { props.immediate && fetch() }) +function onLoadData(treeNode) { + return new Promise((resolve: (value?: unknown) => void) => { + if (isArray(treeNode.children) && treeNode.children.length > 0) { + resolve() + return + } + emit('load-data', { treeData, treeNode, resolve }) + }) +} + async function fetch() { const { api } = props if (!api || !isFunction(api)) @@ -102,7 +113,7 @@ async function fetch() {