UNPKG

tav-ui

Version:
1 lines 27 kB
{"version":3,"file":"index2.mjs","sources":["../../../../../../../packages/components/file/src/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, /*useAttrs,*/ useSlots, watch, onBeforeUnmount } from 'vue'\nimport { ButtonGroup as AButtonGroup } from 'ant-design-vue'\nimport {\n type FileTypeSelectEmits,\n type FileTypeSelectInstance,\n TaFileTypeSelect,\n} from './components/FileTypeSelect'\nimport {\n type FileActionUploadEmits,\n type FileActionUploadInstance,\n TaFileActionUpload,\n} from './components/FileActionUpload'\nimport {\n type FileTableEmits,\n type FileTableInstance,\n type FileTableReloadApiParams,\n TaFileTable,\n} from './components/FileTable'\nimport { fileEmits, fileProps } from './typings'\nimport {\n DEFAULT_APIPARAMS,\n DEFAULT_FILEACTIONS_CLASSNAME,\n DEFAULT_FILEACTIONS_ID,\n DEFAULT_FILE_CLASSNAME,\n DEFAULT_FILE_ID,\n} from './consts'\nimport { type ArgumentsOf } from './utils'\nimport {\n type FileActionUploadLinkEmits,\n type FileActionUploadLinkInstance,\n TaFileActionUploadLink,\n} from './components/FileActionUploadLink'\n\ndefineOptions({\n name: 'TaFile',\n inheritAttrs: false,\n})\n\nconst headerElRef = ref<HTMLElement>()\nconst props = defineProps(fileProps)\nconst emits = defineEmits(fileEmits)\nconst slots = useSlots()\n// const attrs = useAttrs()\n\nif (JSON.stringify(props.fileActualIds) && JSON.stringify(props.fileActualIds) !== '[]') {\n console.error(\n '[tavui TaFile] not pass value to \"fileActualIds\", \"fileActualIds\" only accpet \"[]\" to get actualIds'\n )\n}\n\n// 对 file 组件的 apiparams 进行 computed 方便属性下发\n// const _fileApiParams = ref(props.apiParams)\n// const fileApiParams = computed({\n// get() {\n// return _fileApiParams\n// },\n// set(curFileApiParams: any) {\n// _fileApiParams.value = { ...curFileApiParams.value }\n// },\n// })\nconst fileApiParams = ref(props.apiParams)\nconst fileTableInnerUploadDataSource = ref(props.fileTable?.__uploadDataSource)\nconst fileTableInnerUploadLinkDataSource = ref(props.fileTable?.__uploadLinkDataSource)\nwatch(\n () => [\n JSON.stringify(props.apiParams),\n JSON.stringify(props.fileTable?.__uploadDataSource ?? []),\n JSON.stringify(props.fileTable?.__uploadLinkDataSource ?? []),\n ],\n async (\n [curapiParams, curuploadDataSource, curuploadLinkDataSource],\n [preapiParams, preuploadDataSource, preuploadLinkDataSource]\n ) => {\n if (curapiParams !== preapiParams) {\n fileApiParams.value = props.apiParams\n }\n\n if (curuploadDataSource !== preuploadDataSource) {\n fileTableInnerUploadDataSource.value = props.fileTable?.__uploadDataSource\n }\n\n if (curuploadLinkDataSource !== preuploadLinkDataSource) {\n fileTableInnerUploadLinkDataSource.value = props.fileTable?.__uploadLinkDataSource\n }\n }\n)\n\nconst fileTypeSelectRef = ref<FileTypeSelectInstance>()\nconst fileTypeSelectProps = computed(() => {\n return {\n ...props.fileTypeSelect,\n mode: props.mode,\n apiParams: {\n appId: fileApiParams.value.appId,\n moduleCode: fileApiParams.value.moduleCode,\n typeCodes: fileApiParams.value.typeCodes,\n permissionControl:\n fileApiParams.value.permissionControl ?? DEFAULT_APIPARAMS.permissionControl, // 合并默认值\n ...(props.fileTypeSelect?.apiParams ?? {}), // 以子组件中的 apiparams 为准,这里最后覆盖\n },\n }\n})\n\nconst fileActionUploadRef = ref<FileActionUploadInstance>()\nconst fileActionUploadProps = computed(() => {\n return {\n ...props.fileActionUpload,\n mode: props.mode,\n apiParams: {\n appId: fileApiParams.value.appId,\n moduleCode: fileApiParams.value.moduleCode,\n typeCode: fileApiParams.value.typeCode,\n businessId: fileApiParams.value.businessId,\n businessKey: fileApiParams.value.businessKey,\n businessParamsJson:\n fileApiParams.value.businessParamsJson ?? DEFAULT_APIPARAMS.businessParamsJson, // 合并默认值\n fileName: fileApiParams.value.fileName,\n ...(props.fileActionUpload?.apiParams ?? {}), // 以子组件中的 apiparams 为准,这里最后覆盖\n },\n }\n})\n\nconst fileActionUploadLinkRef = ref<FileActionUploadLinkInstance>()\nconst fileActionUploadLinkProps = computed(() => {\n return {\n ...props.fileActionUploadLink,\n mode: props.mode,\n apiParams: {\n appId: fileApiParams.value.appId,\n moduleCode: fileApiParams.value.moduleCode,\n typeCode: fileApiParams.value.typeCode,\n businessId: fileApiParams.value.businessId,\n businessKey: fileApiParams.value.businessKey,\n businessParamsJson:\n fileApiParams.value.businessParamsJson ?? DEFAULT_APIPARAMS.businessParamsJson, // 合并默认值\n ...(props.fileActionUploadLink?.apiParams ?? {}), // 以子组件中的 apiparams 为准,这里最后覆盖\n },\n getFormContainer: () => headerElRef.value,\n }\n})\n\n// const __fileTableProps = ref<FileTableProps & GlobalConfigFileProps['TaFileTable']>( // 类型太深,ts解析器打包报错,先给 any\n// const __fileTableProps = ref<any>(props.fileTable ?? ({} as any))\n// const _fileTableProps = computed({\n// get() {\n// return __fileTableProps\n// },\n// set(curFileTableProps: any) {\n// __fileTableProps.value = { ...curFileTableProps.value }\n// },\n// })\nconst fileTableRef = ref<FileTableInstance>()\nconst fileTableProps = computed(() => {\n return {\n ...props.fileTable,\n mode: props.mode,\n apiParams: {\n typeCode: fileApiParams.value.typeCode,\n businessId: fileApiParams.value.businessId,\n businessParamsJson:\n fileApiParams.value.businessParamsJson ?? DEFAULT_APIPARAMS.businessParamsJson, // 合并默认值\n\n appId: fileApiParams.value.appId,\n businessCheck: fileApiParams.value.businessCheck ?? DEFAULT_APIPARAMS.businessCheck, // 合并默认值\n businessDisplayItem: fileApiParams.value.businessDisplayItem,\n businessIds: fileApiParams.value.businessIds,\n businessKey: fileApiParams.value.businessKey,\n businessSearchItems: fileApiParams.value.businessSearchItems,\n endTime: fileApiParams.value.endTime,\n excludeDeleted: fileApiParams.value.excludeDeleted, // ?? DEFAULT_APIPARAMS.excludeDeleted, // 合并默认值\n excludeStaging: fileApiParams.value.excludeStaging, // ?? DEFAULT_APIPARAMS.excludeStaging, // 合并默认值\n id: fileApiParams.value.id,\n moduleCode: fileApiParams.value.moduleCode,\n owners: fileApiParams.value.owners,\n permissionControl:\n fileApiParams.value.permissionControl ?? DEFAULT_APIPARAMS.permissionControl, // 合并默认值\n searchValue: fileApiParams.value.searchValue,\n startTime: fileApiParams.value.startTime,\n suffix: fileApiParams.value.suffix,\n typeCodes: fileApiParams.value.typeCodes,\n visibleSubModules: fileApiParams.value.visibleSubModules,\n\n file: fileApiParams.value.file,\n fileActualId: fileApiParams.value.fileActualId,\n instantUpdate: fileApiParams.value.instantUpdate,\n\n actualIds: fileApiParams.value.actualIds,\n\n ...(props.fileTable?.apiParams ?? {}), // 以子组件中的 apiparams 为准,这里最后覆盖\n },\n __uploadDataSource: fileTableInnerUploadDataSource.value ?? props.fileTable?.__uploadDataSource,\n __uploadLinkDataSource:\n fileTableInnerUploadLinkDataSource.value ?? props.fileTable?.__uploadLinkDataSource,\n }\n})\n\nfunction handleFileTypeSelectChange(...args: any) {\n const data = args as unknown as ArgumentsOf<FileTypeSelectEmits['select']>\n const [typeCode, option] = data\n fileApiParams.value = {\n ...fileApiParams.value,\n typeCode: typeCode === undefined && option === undefined ? '' : `${typeCode}`,\n }\n\n emits('fileTypeSelect:change', ...(args as unknown as ArgumentsOf<FileTypeSelectEmits['change']>))\n}\n\nfunction handleFileTypeSelectOptionsChange(...args: any) {\n emits(\n 'fileTypeSelect:optionsChange',\n ...(args as unknown as ArgumentsOf<FileTypeSelectEmits['optionsChange']>)\n )\n}\n\nfunction handleFileActionUploadChangeValidateSuccessChange(...args: any) {\n emits(\n 'fileActionUpload:validateSuccessChange',\n ...(args as unknown as ArgumentsOf<FileActionUploadEmits['validateSuccessChange']>)\n )\n}\n\nfunction handleFileActionUploadChangeValidateFailureChange(...args: any) {\n emits(\n 'fileActionUpload:validateFailureChange',\n ...(args as unknown as ArgumentsOf<FileActionUploadEmits['validateFailureChange']>)\n )\n}\n\nfunction handleFileActionUploadChange(...args: any) {\n emits(\n 'fileActionUpload:uploadedChange',\n ...(args as unknown as ArgumentsOf<FileActionUploadEmits['uploadedChange']>)\n )\n\n const [files] = args as unknown as ArgumentsOf<FileActionUploadEmits['uploadedChange']>\n // 上传成功后将文件数据当作外部准备好的表格数据通过 __uploadDataSource 传入\n fileTableInnerUploadDataSource.value = [...files]\n}\n\nfunction handleFileActionUploadLinkChangeValidateSuccessChange(...args: any) {\n emits(\n 'fileActionUploadLink:validateSuccessChange',\n ...(args as unknown as ArgumentsOf<FileActionUploadLinkEmits['validateSuccessChange']>)\n )\n}\n\nfunction handleFileActionUploadLinkChangeValidateFailureChange(...args: any) {\n emits(\n 'fileActionUploadLink:validateFailureChange',\n ...(args as unknown as ArgumentsOf<FileActionUploadLinkEmits['validateFailureChange']>)\n )\n}\n\nfunction handleFileActionUploadLinkChange(...args: any) {\n emits(\n 'fileActionUploadLink:uploadedChange',\n ...(args as unknown as ArgumentsOf<FileActionUploadLinkEmits['uploadedChange']>)\n )\n\n const [files] = args as unknown as ArgumentsOf<FileActionUploadLinkEmits['uploadedChange']>\n // 上传成功后将文件数据当作外部准备好的表格数据通过 __uploadLinkDataSource 传入\n fileTableInnerUploadLinkDataSource.value = [...files]\n}\n\n// function handleFileTableChange(...args: any) {\n// const _args = args as unknown as ArgumentsOf<FileTableEmits['change']>\n// emits('change', ..._args)\n// }\n\nfunction handleFileTableActualidsChange(...args: any) {\n const _args = args as unknown as ArgumentsOf<FileTableEmits['actualidsChange']>\n emits('update:fileActualIds', ..._args)\n}\n\nfunction handleFileTableRowEdit(...args: any) {\n const _args = args as unknown as ArgumentsOf<FileTableEmits['rowEdit']>\n emits('fileTable:rowEdit', ..._args)\n}\n\nfunction handleFileTableRowUpdate(...args: any) {\n const _args = args as unknown as ArgumentsOf<FileTableEmits['rowUpdate']>\n emits('fileTable:rowUpdate', ..._args)\n}\n\nfunction handleFileTableRowDelete(...args: any) {\n const _args = args as unknown as ArgumentsOf<FileTableEmits['rowDelete']>\n emits('fileTable:rowDelete', ..._args)\n}\n\nasync function fileTableReload(params?: FileTableReloadApiParams) {\n await fileTableRef.value?.reload?.(params)\n}\nasync function fileTableCreateRows(...args: ArgumentsOf<FileTableInstance['createRows']>) {\n await fileTableRef.value?.createRows(...args)\n}\nasync function fileTableReadRows(...args: ArgumentsOf<FileTableInstance['readRows']>) {\n const rows = await fileTableRef.value?.readRows(...args)\n return rows\n}\nasync function fileTableUpdateRows(...args: ArgumentsOf<FileTableInstance['updateRows']>) {\n await fileTableRef.value?.updateRows(...args)\n}\nasync function fileTableDeleteRows(...args: ArgumentsOf<FileTableInstance['deleteRows']>) {\n await fileTableRef.value?.deleteRows(...args)\n}\nasync function getFileTableSelectRowKeys() {\n // eslint-disable-next-line no-return-await\n return await (fileTableRef.value?.tableProRef as any)?.instance?.getSelectRowKeys()\n}\nasync function clearFileTableSelectedRowByKey(key: string | number) {\n // eslint-disable-next-line no-return-await\n return await (fileTableRef.value?.tableProRef as any)?.instance?.clearSelectedRowByKey(key)\n}\nasync function getFileTableSelectRows() {\n // eslint-disable-next-line no-return-await\n return await (fileTableRef.value?.tableProRef as any)?.instance?.getSelectRows() // fileTableRef.value.tableProRef.instance\n}\nasync function clearFileTableSelectedRows() {\n // eslint-disable-next-line no-return-await\n return await (fileTableRef.value?.tableProRef as any)?.instance?.clearSelectedRows()\n}\n\nfunction cleanup() {\n fileTypeSelectRef.value?.cleanup()\n fileActionUploadRef.value?.cleanup()\n fileActionUploadLinkRef.value?.cleanup()\n fileTableRef.value?.cleanup()\n}\n\nonBeforeUnmount(() => {\n cleanup()\n})\n\ndefineExpose({\n fileTypeSelectRef,\n fileActionUploadRef,\n fileActionUploadLinkRef,\n fileTableRef,\n fileTableReload,\n fileTableCreateRows,\n fileTableReadRows,\n fileTableUpdateRows,\n fileTableDeleteRows,\n getFileTableSelectRowKeys,\n clearFileTableSelectedRowByKey,\n getFileTableSelectRows,\n clearFileTableSelectedRows,\n cleanup,\n})\n</script>\n\n<template>\n <section :id=\"DEFAULT_FILE_ID\" :class=\"DEFAULT_FILE_CLASSNAME\">\n <section\n v-if=\"props.headerVisible\"\n ref=\"headerElRef\"\n :class=\"`${DEFAULT_FILE_CLASSNAME}-header`\"\n >\n <section :class=\"`${DEFAULT_FILE_CLASSNAME}-title-wrapper`\">\n <template v-if=\"slots.FileTitle\">\n <slot name=\"FileTitle\" />\n </template>\n <template v-else>\n <div v-if=\"props.titleVisible\" :class=\"`${DEFAULT_FILE_CLASSNAME}-title`\">\n {{ props.title }}\n </div>\n </template>\n </section>\n\n <section\n v-if=\"props.headerActionsVisible && props.mode !== 'read'\"\n :class=\"`${DEFAULT_FILE_CLASSNAME}-header-actions`\"\n >\n <section :class=\"`${DEFAULT_FILE_CLASSNAME}-type-select-wrapper`\">\n <template v-if=\"slots.FileTypeSelect\">\n <slot name=\"FileTypeSelect\" v-bind=\"fileTypeSelectProps\" />\n </template>\n <template v-else>\n <TaFileTypeSelect\n ref=\"fileTypeSelectRef\"\n v-bind=\"fileTypeSelectProps\"\n @change=\"handleFileTypeSelectChange\"\n @options-change=\"handleFileTypeSelectOptionsChange\"\n />\n </template>\n </section>\n <section :class=\"`${DEFAULT_FILE_CLASSNAME}-actions-wrapper`\">\n <template v-if=\"slots.FileActions\">\n <slot name=\"FileActions\" />\n </template>\n <template v-else>\n <template v-if=\"props.fileActionsVisible\">\n <section :id=\"DEFAULT_FILEACTIONS_ID\" :class=\"DEFAULT_FILEACTIONS_CLASSNAME\">\n <AButtonGroup>\n <template v-if=\"slots['FileActionPrefix']\">\n <slot name=\"FileActionPrefix\" />\n </template>\n\n <template v-if=\"slots['FileActionUpload']\">\n <slot name=\"FileActionUpload\" v-bind=\"fileActionUploadProps\" />\n </template>\n <template v-else>\n <TaFileActionUpload\n ref=\"fileActionUploadRef\"\n v-bind=\"fileActionUploadProps\"\n @validate-success-change=\"handleFileActionUploadChangeValidateSuccessChange\"\n @validate-failure-change=\"handleFileActionUploadChangeValidateFailureChange\"\n @uploaded-change=\"handleFileActionUploadChange\"\n >\n <template\n v-if=\"slots['FileActionUploadButton']\"\n #FileActionUploadButton=\"data\"\n >\n <slot name=\"FileActionUploadButton\" v-bind=\"data || {}\" />\n </template>\n </TaFileActionUpload>\n </template>\n\n <template v-if=\"slots['FileActionMiddle']\">\n <slot name=\"FileActionMiddle\" />\n </template>\n\n <template v-if=\"slots['FileActionUploadLink']\">\n <slot name=\"FileActionUploadLink\" v-bind=\"fileActionUploadLinkProps\" />\n </template>\n <template v-else>\n <TaFileActionUploadLink\n ref=\"fileActionUploadLinkRef\"\n v-bind=\"fileActionUploadLinkProps\"\n @validate-success-change=\"\n handleFileActionUploadLinkChangeValidateSuccessChange\n \"\n @validate-failure-change=\"\n handleFileActionUploadLinkChangeValidateFailureChange\n \"\n @uploaded-change=\"handleFileActionUploadLinkChange\"\n />\n </template>\n\n <template v-if=\"slots['FileActionSuffix']\">\n <slot name=\"FileActionSuffix\" />\n </template>\n </AButtonGroup>\n </section>\n </template>\n </template>\n </section>\n </section>\n </section>\n\n <section :class=\"`${DEFAULT_FILE_CLASSNAME}-main`\">\n <section :class=\"`${DEFAULT_FILE_CLASSNAME}-table-wrapper`\">\n <template v-if=\"slots.FileTable\">\n <slot name=\"FileTable\" v-bind=\"fileTableProps\" />\n </template>\n <template v-else>\n <!-- @change=\"handleFileTableChange\" -->\n <TaFileTable\n ref=\"fileTableRef\"\n v-bind=\"fileTableProps\"\n @actualids-change=\"handleFileTableActualidsChange\"\n @row-edit=\"handleFileTableRowEdit\"\n @row-update=\"handleFileTableRowUpdate\"\n @row-delete=\"handleFileTableRowDelete\"\n />\n </template>\n </section>\n </section>\n\n <!-- <section :class=\"`${DEFAULT_FILE_CLASSNAME}-footer`\"></section> -->\n </section>\n</template>\n"],"names":["_openBlock","_createElementBlock","_unref","_normalizeClass","_createElementVNode","_renderSlot","_Fragment","_toDisplayString","_createCommentVNode"],"mappings":"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"}