tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 42.1 kB
Source Map (JSON)
{"version":3,"file":"multiple-flow-list.mjs","sources":["../../../../components/upload/components/multiple-flow-list.tsx"],"sourcesContent":["import { computed, defineComponent, toRefs, PropType, ref } from 'vue';\nimport {\n BrowseIcon as TdBrowseIcon,\n DeleteIcon as TdDeleteIcon,\n CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n TimeFilledIcon as TdTimeFilledIcon,\n FileExcelIcon as TdFileExcelIcon,\n FilePdfIcon as TdFilePdfIcon,\n FileWordIcon as TdFileWordIcon,\n FilePowerpointIcon as TdFilePowerpointIcon,\n FileIcon as TdFileIcon,\n VideoIcon as TdVideoIcon,\n} from 'tdesign-icons-vue-next';\nimport { isObject, isFunction } from 'lodash-es';\n\nimport { useTNodeJSX, useGlobalIcon } from '@tdesign/shared-hooks';\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../consts';\nimport TButton from '../../button';\nimport { UploadFile, TdUploadProps } from '../types';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\nimport {\n abridgeName,\n returnFileSize,\n IMAGE_REGEXP,\n FILE_PDF_REGEXP,\n FILE_EXCEL_REGEXP,\n FILE_WORD_REGEXP,\n FILE_PPT_REGEXP,\n VIDEO_REGEXP,\n} from '@tdesign/common-js/upload/utils';\nimport TLoading from '../../loading';\n\nimport Link from '../../link';\nimport { UploadConfig } from '../../config-provider';\nimport Image from '../../image';\n\nexport interface ImageFlowListProps extends CommonDisplayFileProps {\n uploadFiles?: (toFiles?: UploadFile[]) => void;\n cancelUpload?: (context: { e: MouseEvent; file?: UploadFile }) => void;\n dragEvents: UploadDragEvents;\n disabled?: boolean;\n isBatchUpload?: boolean;\n draggable?: boolean;\n onPreview?: TdUploadProps['onPreview'];\n uploadButton?: TdUploadProps['uploadButton'];\n cancelUploadButton?: TdUploadProps['cancelUploadButton'];\n}\n\nexport default defineComponent({\n name: 'UploadMultipleFlowList',\n props: {\n ...commonProps,\n showThumbnail: Boolean,\n uploadFiles: Function as PropType<ImageFlowListProps['uploadFiles']>,\n cancelUpload: Function as PropType<ImageFlowListProps['cancelUpload']>,\n dragEvents: Object as PropType<ImageFlowListProps['dragEvents']>,\n disabled: Boolean,\n isBatchUpload: Boolean,\n draggable: Boolean,\n showImageFileName: Boolean,\n uploadButton: Object as PropType<ImageFlowListProps['uploadButton']>,\n cancelUploadButton: Object as PropType<ImageFlowListProps['cancelUploadButton']>,\n onPreview: Function as PropType<ImageFlowListProps['onPreview']>,\n },\n setup(props, { slots }) {\n // locale 已经在 useUpload 中统一处理优先级\n const { uploading, disabled, displayFiles, classPrefix, accept } = toRefs(props);\n const uploadPrefix = computed(() => `${classPrefix.value}-upload`);\n\n const locale = computed(() => props.locale as UploadConfig);\n\n const renderTNodeJSX = useTNodeJSX();\n\n const {\n BrowseIcon,\n DeleteIcon,\n CheckCircleFilledIcon,\n ErrorCircleFilledIcon,\n TimeFilledIcon,\n FileExcelIcon,\n FilePdfIcon,\n FileWordIcon,\n FilePowerpointIcon,\n FileIcon,\n VideoIcon,\n } = useGlobalIcon({\n BrowseIcon: TdBrowseIcon,\n DeleteIcon: TdDeleteIcon,\n CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n TimeFilledIcon: TdTimeFilledIcon,\n FileExcelIcon: TdFileExcelIcon,\n FilePdfIcon: TdFilePdfIcon,\n FileWordIcon: TdFileWordIcon,\n FilePowerpointIcon: TdFilePowerpointIcon,\n FileIcon: TdFileIcon,\n VideoIcon: TdVideoIcon,\n });\n\n const drag = useDrag(props.dragEvents, accept);\n\n const currentPreviewFile = ref<UploadFile[]>([]);\n const previewIndex = ref(0);\n\n const uploadText = computed(() => {\n if (uploading.value) return `${locale.value.progress.uploadingText}`;\n return locale.value.triggerUploadText.normal;\n });\n\n const innerDragEvents = computed(() => {\n const draggable = props.draggable === undefined ? true : props.draggable;\n return draggable\n ? {\n onDrop: drag.handleDrop,\n onDragenter: drag.handleDragenter,\n onDragover: drag.handleDragover,\n onDragleave: drag.handleDragleave,\n }\n : {};\n });\n\n const getStatusMap = () => {\n const iconMap = {\n success: <CheckCircleFilledIcon />,\n fail: <ErrorCircleFilledIcon />,\n progress: <TLoading />,\n waiting: <TimeFilledIcon />,\n };\n const { progress } = locale.value;\n const textMap = {\n success: progress?.successText,\n fail: progress?.failText,\n progress: progress?.uploadingText,\n waiting: progress?.waitingText,\n };\n return {\n iconMap,\n textMap,\n };\n };\n\n const renderEmpty = () => (\n <div class={`${uploadPrefix.value}__flow-empty`}>\n {drag.dragActive.value ? locale.value.dragger.dragDropText : locale.value.dragger.clickAndDragText}\n </div>\n );\n\n const renderImgItem = (file: UploadFile, index: number) => {\n const { iconMap, textMap } = getStatusMap();\n const fileName = props.abridgeName && file.name ? abridgeName(file.name, ...props.abridgeName) : file.name;\n return (\n <li class={`${uploadPrefix.value}__card-item`} key={file.name + index + file.percent + file.status || '0'}>\n <div\n class={[\n `${uploadPrefix.value}__card-content`,\n { [`${classPrefix.value}-is-bordered`]: file.status !== 'waiting' },\n ]}\n >\n {file.status === 'progress' && (\n <div class={`${uploadPrefix.value}__card-status-wrap ${uploadPrefix.value}__${props.theme}-progress`}>\n {iconMap[file.status as 'progress']}\n <p>\n {textMap[file.status as 'progress']}\n {props.showUploadProgress && ` ${file.percent}%`}\n </p>\n </div>\n )}\n {file.status === 'fail' && (\n <div class={`${uploadPrefix.value}__card-status-wrap ${uploadPrefix.value}__${props.theme}-fail`}>\n {iconMap[file.status as 'fail']}\n <p>{file.response?.error || textMap[file.status as 'fail']}</p>\n </div>\n )}\n {(['waiting', 'success'].includes(file.status) || (!file.status && file.url)) && (\n <Image\n class={`${uploadPrefix.value}__card-image`}\n src={file.url || file.raw}\n error=\"\"\n loading=\"\"\n fit=\"contain\"\n />\n )}\n <div class={`${uploadPrefix.value}__card-mask`}>\n {(file.url || file.raw) && !['progress', 'fail'].includes(file.status) && (\n <span class={`${uploadPrefix.value}__card-mask-item`}>\n <BrowseIcon\n onClick={({ e }: { e: MouseEvent }) => {\n previewIndex.value = index;\n currentPreviewFile.value = displayFiles.value;\n props.onPreview?.({ file, index, e });\n }}\n />\n <span class={`${uploadPrefix.value}__card-mask-item-divider`}></span>\n </span>\n )}\n {!disabled.value && (\n <span\n class={`${uploadPrefix.value}__card-mask-item ${uploadPrefix.value}__delete`}\n onClick={(e: MouseEvent) => props.onRemove({ e, index, file })}\n >\n <DeleteIcon />\n </span>\n )}\n </div>\n </div>\n {props.showImageFileName && (\n <p class={[`${uploadPrefix.value}__card-name`, `${uploadPrefix.value}__flow-status`]}>\n {['success', 'waiting'].includes(file.status) && iconMap[file.status]}\n {fileName}\n </p>\n )}\n </li>\n );\n };\n\n const renderStatus = (file: UploadFile) => {\n const { iconMap, textMap } = getStatusMap();\n return (\n <div class={`${uploadPrefix.value}__flow-status`}>\n {iconMap[file.status]}\n <span class={`${uploadPrefix.value}__${props.theme}-${file.status}`}>\n {file.response?.error ? file.response?.error || textMap[file.status] : textMap[file.status]}\n {props.showUploadProgress && file.status === 'progress' ? ` ${file.percent || 0}%` : ''}\n </span>\n </div>\n );\n };\n\n const renderNormalActionCol = (file: UploadFile, index: number) => (\n <td>\n <TButton\n theme=\"primary\"\n variant=\"text\"\n content={locale.value?.triggerUploadText?.delete}\n class={`${uploadPrefix.value}__delete`}\n onClick={(e: MouseEvent) => props.onRemove({ e, index, file })}\n ></TButton>\n </td>\n );\n\n // batchUpload action col\n const renderBatchActionCol = (index: number) =>\n // 第一行数据才需要合并单元格\n index === 0 ? (\n <td rowspan={displayFiles.value.length} class={`${uploadPrefix.value}__flow-table__batch-row`}>\n <TButton\n theme=\"primary\"\n variant=\"text\"\n content={locale.value?.triggerUploadText?.delete}\n class={`${uploadPrefix.value}__delete`}\n onClick={(e: MouseEvent) => props.onRemove({ e, index: -1, file: undefined })}\n ></TButton>\n </td>\n ) : null;\n\n const getFileThumbnailIcon = (fileType: string) => {\n if (FILE_PDF_REGEXP.test(fileType)) {\n return <FilePdfIcon />;\n }\n if (FILE_EXCEL_REGEXP.test(fileType)) {\n return <FileExcelIcon />;\n }\n if (FILE_WORD_REGEXP.test(fileType)) {\n return <FileWordIcon />;\n }\n if (FILE_PPT_REGEXP.test(fileType)) {\n return <FilePowerpointIcon />;\n }\n if (VIDEO_REGEXP.test(fileType)) {\n return <VideoIcon />;\n }\n return <FileIcon />;\n };\n\n const renderFileThumbnail = (file: UploadFile) => {\n if (!file || (!file.raw && file.url)) return null;\n const fileType = file.raw.type;\n const className = `${uploadPrefix.value}__file-thumbnail`;\n if (IMAGE_REGEXP.test(fileType)) {\n return (\n <Image\n class={className}\n src={file.url || file.raw}\n fit=\"scale-down\"\n error=\"\"\n loading=\"\"\n onClick={(e: MouseEvent) => {\n e.preventDefault();\n currentPreviewFile.value = [file];\n previewIndex.value = 0;\n props.onPreview?.({ file, index: 0, e });\n }}\n />\n );\n }\n return <div class={className}>{getFileThumbnailIcon(fileType)}</div>;\n };\n\n const renderFileList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onPreview: props.onPreview,\n onRemove: props.onRemove,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n <table class={`${uploadPrefix.value}__flow-table`} {...innerDragEvents.value}>\n <thead>\n <tr>\n <th>{locale.value.file?.fileNameText}</th>\n <th style={{ minWidth: '120px' }}>{locale.value.file?.fileSizeText}</th>\n <th style={{ minWidth: '120px' }}>{locale.value.file?.fileStatusText}</th>\n {disabled.value ? null : <th>{locale.value.file?.fileOperationText}</th>}\n </tr>\n </thead>\n <tbody>\n {!displayFiles.value.length && (\n <tr>\n <td colspan={4}>{renderEmpty()}</td>\n </tr>\n )}\n {displayFiles.value.map((file, index) => {\n // 合并操作出现条件为:当前为合并上传模式且列表内没有待上传文件\n const showBatchUploadAction = props.isBatchUpload;\n const deleteNode =\n showBatchUploadAction && displayFiles.value.every((item) => item.status === 'success' || !item.status)\n ? renderBatchActionCol(index)\n : renderNormalActionCol(file, index);\n const fileName = props.abridgeName?.length ? abridgeName(file.name, ...props.abridgeName) : file.name;\n const thumbnailNode = props.showThumbnail ? (\n <div class={`${uploadPrefix.value}__file-info`}>\n {renderFileThumbnail(file)}\n {fileName}\n </div>\n ) : (\n fileName\n );\n const fileNameNode = file.url ? (\n // 此次需要设置disabled为false 否则链接会跟随表单不可点击\n <Link href={file.url} target=\"_blank\" hover=\"color\" disabled={false}>\n {thumbnailNode}\n </Link>\n ) : (\n thumbnailNode\n );\n return (\n <tr key={file.name + index + file.size}>\n <td class={`${uploadPrefix.value}__file-name`} key={file.name + file.url}>\n {fileNameNode}\n </td>\n <td>{returnFileSize(file.size)}</td>\n <td>{renderStatus(file)}</td>\n {disabled.value ? null : deleteNode}\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n };\n\n const renderImageList = () => {\n const customList = renderTNodeJSX('fileListDisplay', {\n params: {\n cancelUpload: props.cancelUpload,\n uploadFiles: props.uploadFiles,\n onRemove: props.onRemove,\n onPreview: props.onPreview,\n toUploadFiles: props.toUploadFiles,\n sizeOverLimitMessage: props.sizeOverLimitMessage,\n locale: props.locale,\n files: props.displayFiles,\n dragEvents: innerDragEvents.value,\n },\n });\n if (customList || props.fileListDisplay) return customList;\n return (\n <ul class={`${uploadPrefix.value}__card clearfix`}>\n {props.displayFiles.map((file, index) => renderImgItem(file, index))}\n </ul>\n );\n };\n\n return () => {\n const cardClassName = `${uploadPrefix.value}__flow-card-area`;\n const cancelUploadDisabled = disabled.value || !uploading.value;\n const hasCancelUploadTNode = slots.uploadButton || isFunction(props.uploadButton);\n const uploadButtonDisabled = Boolean(disabled.value || uploading.value || !displayFiles.value.length);\n const hasUploadButtonTNode = slots.cancelUploadButton || isFunction(props.cancelUploadButton);\n return (\n <div class={`${uploadPrefix.value}__flow ${uploadPrefix.value}__flow-${props.theme}`}>\n <div class={`${uploadPrefix.value}__flow-op`}>\n {slots.default?.()}\n {props.placeholder && (\n <small class={`${uploadPrefix.value}__flow-placeholder ${uploadPrefix.value}__placeholder`}>\n {props.placeholder}\n </small>\n )}\n </div>\n\n {props.theme === 'image-flow' && (\n <div class={cardClassName} {...innerDragEvents.value}>\n {displayFiles.value.length ? renderImageList() : renderEmpty()}\n </div>\n )}\n\n {props.theme === 'file-flow' &&\n (displayFiles.value.length ? (\n renderFileList()\n ) : (\n <div class={cardClassName} {...innerDragEvents.value}>\n {renderEmpty()}\n </div>\n ))}\n\n {!props.autoUpload && (props.uploadButton !== null || props.cancelUploadButton !== null) && (\n <div class={`${uploadPrefix.value}__flow-bottom`}>\n {props.cancelUploadButton !== null &&\n (hasCancelUploadTNode ? (\n renderTNodeJSX('cancelUploadButton', {\n params: {\n disabled: cancelUploadDisabled,\n cancelUploadText: locale.value?.cancelUploadText,\n cancelUpload: props.cancelUpload,\n },\n })\n ) : (\n <TButton\n theme=\"default\"\n disabled={cancelUploadDisabled}\n content={locale.value?.cancelUploadText}\n class={`${uploadPrefix.value}__cancel`}\n onClick={(e) => props.cancelUpload?.({ e })}\n {...(isObject(props.cancelUploadButton) ? props.cancelUploadButton : {})}\n ></TButton>\n ))}\n {props.uploadButton !== null &&\n (hasUploadButtonTNode ? (\n renderTNodeJSX('uploadButton', {\n params: {\n disabled: uploadButtonDisabled,\n uploading: uploading.value,\n uploadText: uploadText.value,\n uploadFiles: props.uploadFiles,\n },\n })\n ) : (\n <TButton\n disabled={uploadButtonDisabled}\n theme=\"primary\"\n loading={uploading.value}\n class={`${uploadPrefix.value}__continue`}\n content={uploadText.value}\n onClick={() => props.uploadFiles?.()}\n {...(isObject(props.uploadButton) ? props.uploadButton : {})}\n ></TButton>\n ))}\n </div>\n )}\n\n <ImageViewer\n images={currentPreviewFile.value.map((t) => t.url || t.raw)}\n visible={!!currentPreviewFile.value.length}\n onClose={() => {\n currentPreviewFile.value = [];\n }}\n index={previewIndex.value}\n onIndexChange={(val) => (previewIndex.value = val)}\n {...(props.imageViewerProps as ImageViewerProps)}\n ></ImageViewer>\n </div>\n );\n };\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","_objectSpread","commonProps","showThumbnail","Boolean","uploadFiles","Function","cancelUpload","dragEvents","disabled","isBatchUpload","draggable","showImageFileName","uploadButton","cancelUploadButton","onPreview","setup","_ref","slots","_toRefs","toRefs","uploading","displayFiles","classPrefix","accept","uploadPrefix","computed","concat","value","locale","renderTNodeJSX","useTNodeJSX","_useGlobalIcon","useGlobalIcon","BrowseIcon","TdBrowseIcon","DeleteIcon","TdDeleteIcon","CheckCircleFilledIcon","TdCheckCircleFilledIcon","ErrorCircleFilledIcon","TdErrorCircleFilledIcon","TimeFilledIcon","TdTimeFilledIcon","FileExcelIcon","TdFileExcelIcon","FilePdfIcon","TdFilePdfIcon","FileWordIcon","TdFileWordIcon","FilePowerpointIcon","TdFilePowerpointIcon","FileIcon","TdFileIcon","VideoIcon","TdVideoIcon","drag","useDrag","currentPreviewFile","ref","previewIndex","uploadText","progress","uploadingText","triggerUploadText","normal","innerDragEvents","onDrop","handleDrop","onDragenter","handleDragenter","onDragover","handleDragover","onDragleave","handleDragleave","getStatusMap","iconMap","success","_createVNode","fail","TLoading","waiting","textMap","successText","failText","waitingText","renderEmpty","dragActive","dragger","dragDropText","clickAndDragText","renderImgItem","file","index","_file$response","_getStatusMap","fileName","abridgeName","apply","_toConsumableArray","percent","status","_defineProperty","theme","showUploadProgress","response","error","includes","url","Image","raw","onClick","_ref3","_props$onPreview","e","onRemove","renderStatus","_file$response2","_file$response3","_getStatusMap2","renderNormalActionCol","_locale$value","TButton","renderBatchActionCol","_locale$value2","length","getFileThumbnailIcon","fileType","FILE_PDF_REGEXP","test","FILE_EXCEL_REGEXP","FILE_WORD_REGEXP","FILE_PPT_REGEXP","VIDEO_REGEXP","renderFileThumbnail","type","className","IMAGE_REGEXP","_props$onPreview2","preventDefault","renderFileList","_locale$value$file","_locale$value$file2","_locale$value$file3","_locale$value$file4","customList","params","toUploadFiles","sizeOverLimitMessage","files","fileListDisplay","_mergeProps","fileNameText","minWidth","fileSizeText","fileStatusText","fileOperationText","map","_props$abridgeName","showBatchUploadAction","deleteNode","every","item","thumbnailNode","fileNameNode","Link","_default","size","returnFileSize","renderImageList","_slots$default","_locale$value3","_locale$value4","cardClassName","cancelUploadDisabled","hasCancelUploadTNode","isFunction","uploadButtonDisabled","hasUploadButtonTNode","placeholder","autoUpload","cancelUploadText","_props$cancelUpload","isObject","_props$uploadFiles","ImageViewer","t","onClose","onIndexChange","val","imageViewerProps"],"mappings":"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"}