diff --git a/packages/upload-list/index.vue b/packages/upload-list/index.vue
new file mode 100644
index 0000000..feadd1c
--- /dev/null
+++ b/packages/upload-list/index.vue
@@ -0,0 +1,71 @@
+
+
+
+
+ 点击上传
+
+
+
+
+
diff --git a/stories/UploadList.stories.ts b/stories/UploadList.stories.ts
new file mode 100644
index 0000000..ebe5b64
--- /dev/null
+++ b/stories/UploadList.stories.ts
@@ -0,0 +1,46 @@
+import type { Meta, StoryObj } from '@storybook/vue3'
+import ThUploadList from '../packages/upload-list/index.vue'
+import avatar from './assets/avatar.jpeg'
+
+// 模拟2秒钟的接口请求
+function request(formData: FormData) {
+ let name = '佚名文件'
+ let url = avatar
+ const fileName = formData.get('name')
+ const file = formData.get('file')
+ if (typeof fileName === 'string') {
+ name = fileName
+ }
+ else if (typeof file !== 'string' && file) {
+ name = file.name
+ url = URL.createObjectURL(file)
+ }
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve({
+ id: Date.now(),
+ name,
+ url,
+ createdBy: 'user',
+ })
+ }, 2000)
+ })
+}
+const meta = {
+ title: '表单组件/UploadList',
+ component: ThUploadList,
+ args: {
+ accept: '*',
+ fileList: [],
+ request,
+ filePath: '/',
+ },
+ tags: ['autodocs'],
+} satisfies Meta
+export default meta
+
+type Story = StoryObj
+
+export const Base: Story = {
+ name: '基本使用',
+}
diff --git a/types/components.d.ts b/types/components.d.ts
index eeaf760..d279abe 100644
--- a/types/components.d.ts
+++ b/types/components.d.ts
@@ -28,6 +28,7 @@ declare module 'vue' {
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
ElTransfer: typeof import('element-plus/es')['ElTransfer']
+ ElUpload: typeof import('element-plus/es')['ElUpload']
Header: typeof import('./../packages/header/index.vue')['default']
MaskText: typeof import('./../packages/mask-text/index.vue')['default']
PreviewOffice: typeof import('./../packages/preview-office/index.vue')['default']
@@ -37,6 +38,7 @@ declare module 'vue' {
SelectTableModal: typeof import('./../packages/select-table-modal/index.vue')['default']
SelectTransferModal: typeof import('./../packages/select-transfer-modal/index.vue')['default']
UploadAvatar: typeof import('./../packages/upload-avatar/index.vue')['default']
+ UploadList: typeof import('./../packages/upload-list/index.vue')['default']
UploadSingleFile: typeof import('./../packages/upload-single-file/index.vue')['default']
UploadTable: typeof import('./../packages/upload-table/index.vue')['default']
}