Skip to content

Commit f687a4a

Browse files
committed
chore: event api
1 parent 2b84458 commit f687a4a

File tree

9 files changed

+114
-57
lines changed

9 files changed

+114
-57
lines changed

db/TDesign.db

0 Bytes
Binary file not shown.

packages/products/tdesign-mobile-react/src/upload/type.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,14 @@ export interface TdUploadProps<T extends UploadFile = UploadFile> {
143143
* 点击上传区域时触发
144144
*/
145145
onClickUpload?: (context: { e: MouseEvent<HTMLElement> }) => void;
146+
/**
147+
* 拖拽开始时触发
148+
*/
149+
onDrag?: () => void;
150+
/**
151+
* 拖拽结束后触发,返回上传的文件列表(拖拽后的文件顺序)
152+
*/
153+
onDrop?: (value: Array<T>) => void;
146154
/**
147155
* 上传失败后触发。`response` 指接口响应结果,`response.error` 会作为错误文本提醒。如果希望判定为上传失败,但接口响应数据不包含 `error` 字段,可以使用 `formatResponse` 格式化 `response` 数据结构。如果是多文件多请求上传场景,请到事件 `onOneFileFail` 中查看 `response`
148156
*/
@@ -253,14 +261,7 @@ export interface UploadChangeContext {
253261
files?: UploadFile[];
254262
}
255263

256-
export type UploadChangeTrigger =
257-
| 'add'
258-
| 'remove'
259-
| 'abort'
260-
| 'progress-success'
261-
| 'progress'
262-
| 'progress-fail'
263-
| 'sort';
264+
export type UploadChangeTrigger = 'add' | 'remove' | 'abort' | 'progress-success' | 'progress' | 'progress-fail';
264265

265266
export interface UploadFailContext {
266267
e?: ProgressEvent;

packages/products/tdesign-mobile-react/src/upload/upload.en-US.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ requestMethod | Function | - | custom upload request method。Typescript: `(file
3636
sizeLimit | Number / Object | - | files size limit。Typescript: `number \| SizeLimitObj` `interface SizeLimitObj { size: number; unit: SizeUnit ; message?: string }` `type SizeUnitArray = ['B', 'KB', 'MB', 'GB']` `type SizeUnit = SizeUnitArray[number]`[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/upload/type.ts) | N
3737
useMockProgress | Boolean | true | use mock progress, instead of real progress | N
3838
withCredentials | Boolean | false | uploading request with cookie | N
39-
onChange | Function | | Typescript: `(value: Array<T>, context: UploadChangeContext) => void`<br/>trigger on uploaded files change。[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/upload/type.ts)。<br/>`interface UploadChangeContext { e?: MouseEvent \| ProgressEvent; response?: any; trigger: UploadChangeTrigger; index?: number; file?: UploadFile; files?: UploadFile[] }`<br/><br/>`type UploadChangeTrigger = 'add' \| 'remove' \| 'abort' \| 'progress-success' \| 'progress' \| 'progress-fail' \| 'sort'`<br/> | N
39+
onChange | Function | | Typescript: `(value: Array<T>, context: UploadChangeContext) => void`<br/>trigger on uploaded files change。[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/upload/type.ts)。<br/>`interface UploadChangeContext { e?: MouseEvent \| ProgressEvent; response?: any; trigger: UploadChangeTrigger; index?: number; file?: UploadFile; files?: UploadFile[] }`<br/><br/>`type UploadChangeTrigger = 'add' \| 'remove' \| 'abort' \| 'progress-success' \| 'progress' \| 'progress-fail'`<br/> | N
4040
onClickUpload | Function | | Typescript: `(context: { e: MouseEvent }) => void`<br/> | N
41+
onDrag | Function | | Typescript: `() => void`<br/> | N
42+
onDrop | Function | | Typescript: `(value: Array<T>) => void`<br/> | N
4143
onFail | Function | | Typescript: `(options: UploadFailContext) => void`<br/>`response.error` used for error tips, `formatResponse` can format `response`[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/upload/type.ts)。<br/>`interface UploadFailContext { e?: ProgressEvent; failedFiles: UploadFile[]; currentFiles: UploadFile[]; response?: any; file: UploadFile; XMLHttpRequest?: XMLHttpRequest}`<br/> | N
4244
onPreview | Function | | Typescript: `(options: { file: UploadFile; index: number; e: MouseEvent }) => void`<br/>trigger on preview elements click | N
4345
onProgress | Function | | Typescript: `(options: ProgressContext) => void`<br/>uploading request progress event。[see more ts definition](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/upload/type.ts)。<br/>`interface ProgressContext { e?: ProgressEvent; file?: UploadFile; currentFiles: UploadFile[]; percent: number; type: UploadProgressType; XMLHttpRequest?: XMLHttpRequest }`<br/><br/>`type UploadProgressType = 'real' \| 'mock'`<br/> | N

packages/products/tdesign-mobile-react/src/upload/upload.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ requestMethod | Function | - | 自定义上传方法。返回值 `status` 表示
3636
sizeLimit | Number / Object | - | 图片文件大小限制,默认单位 KB。可选单位有:`'B' \| 'KB' \| 'MB' \| 'GB'`。示例一:`1000`。示例二:`{ size: 2, unit: 'MB', message: '图片大小不超过 {sizeLimit} MB' }`。TS 类型:`number \| SizeLimitObj` `interface SizeLimitObj { size: number; unit: SizeUnit ; message?: string }` `type SizeUnitArray = ['B', 'KB', 'MB', 'GB']` `type SizeUnit = SizeUnitArray[number]`[详细类型定义](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/upload/type.ts) | N
3737
useMockProgress | Boolean | true | 是否在请求时间超过 300ms 后显示模拟进度。上传进度有模拟进度和真实进度两种。一般大小的文件上传,真实的上传进度只有 0 和 100,不利于交互呈现,因此组件内置模拟上传进度。真实上传进度一般用于大文件上传 | N
3838
withCredentials | Boolean | false | 上传请求时是否携带 cookie | N
39-
onChange | Function | | TS 类型:`(value: Array<T>, context: UploadChangeContext) => void`<br/>已上传文件列表发生变化时触发,`trigger` 表示触发本次的来源。[详细类型定义](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/upload/type.ts)。<br/>`interface UploadChangeContext { e?: MouseEvent \| ProgressEvent; response?: any; trigger: UploadChangeTrigger; index?: number; file?: UploadFile; files?: UploadFile[] }`<br/><br/>`type UploadChangeTrigger = 'add' \| 'remove' \| 'abort' \| 'progress-success' \| 'progress' \| 'progress-fail' \| 'sort'`<br/> | N
39+
onChange | Function | | TS 类型:`(value: Array<T>, context: UploadChangeContext) => void`<br/>已上传文件列表发生变化时触发,`trigger` 表示触发本次的来源。[详细类型定义](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/upload/type.ts)。<br/>`interface UploadChangeContext { e?: MouseEvent \| ProgressEvent; response?: any; trigger: UploadChangeTrigger; index?: number; file?: UploadFile; files?: UploadFile[] }`<br/><br/>`type UploadChangeTrigger = 'add' \| 'remove' \| 'abort' \| 'progress-success' \| 'progress' \| 'progress-fail'`<br/> | N
4040
onClickUpload | Function | | TS 类型:`(context: { e: MouseEvent }) => void`<br/>点击上传区域时触发 | N
41+
onDrag | Function | | TS 类型:`() => void`<br/>拖拽开始时触发 | N
42+
onDrop | Function | | TS 类型:`(value: Array<T>) => void`<br/>拖拽结束后触发,返回上传的文件列表(拖拽后的文件顺序) | N
4143
onFail | Function | | TS 类型:`(options: UploadFailContext) => void`<br/>上传失败后触发。`response` 指接口响应结果,`response.error` 会作为错误文本提醒。如果希望判定为上传失败,但接口响应数据不包含 `error` 字段,可以使用 `formatResponse` 格式化 `response` 数据结构。如果是多文件多请求上传场景,请到事件 `onOneFileFail` 中查看 `response`[详细类型定义](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/upload/type.ts)。<br/>`interface UploadFailContext { e?: ProgressEvent; failedFiles: UploadFile[]; currentFiles: UploadFile[]; response?: any; file: UploadFile; XMLHttpRequest?: XMLHttpRequest}`<br/> | N
4244
onPreview | Function | | TS 类型:`(options: { file: UploadFile; index: number; e: MouseEvent }) => void`<br/>点击图片预览时触发,文件没有预览 | N
4345
onProgress | Function | | TS 类型:`(options: ProgressContext) => void`<br/>上传进度变化时触发,真实进度和模拟进度都会触发。<br/>⚠️ 原始上传请求,小文件的上传进度只有 0 和 100,故而不会触发 `progress` 事件;只有大文件才有真实的中间进度。如果你希望很小的文件也显示上传进度,保证 `useMockProgress=true` 的情况下,设置 `mockProgressDuration` 为更小的值。<br/>参数 `options.type=real` 表示真实上传进度,`options.type=mock` 表示模拟上传进度。[详细类型定义](https://github.com/Tencent/tdesign-mobile-react/tree/develop/src/upload/type.ts)。<br/>`interface ProgressContext { e?: ProgressEvent; file?: UploadFile; currentFiles: UploadFile[]; percent: number; type: UploadProgressType; XMLHttpRequest?: XMLHttpRequest }`<br/><br/>`type UploadProgressType = 'real' \| 'mock'`<br/> | N

packages/products/tdesign-mobile-vue/src/upload/props.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,10 @@ export default {
168168
onChange: Function as PropType<TdUploadProps['onChange']>,
169169
/** 点击上传区域时触发 */
170170
onClickUpload: Function as PropType<TdUploadProps['onClickUpload']>,
171+
/** 拖拽开始时触发 */
172+
onDrag: Function as PropType<TdUploadProps['onDrag']>,
173+
/** 拖拽结束后触发,返回上传的文件列表(拖拽后的文件顺序) */
174+
onDrop: Function as PropType<TdUploadProps['onDrop']>,
171175
/** 上传失败后触发。`response` 指接口响应结果,`response.error` 会作为错误文本提醒。如果希望判定为上传失败,但接口响应数据不包含 `error` 字段,可以使用 `formatResponse` 格式化 `response` 数据结构。如果是多文件多请求上传场景,请到事件 `onOneFileFail` 中查看 `response` */
172176
onFail: Function as PropType<TdUploadProps['onFail']>,
173177
/** 多文件/图片场景下,单个文件上传失败后触发,如果一个请求上传一个文件,则会触发多次。单文件/图片不会触发 */

packages/products/tdesign-mobile-vue/src/upload/type.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,14 @@ export interface TdUploadProps<T extends UploadFile = UploadFile> {
184184
* 点击上传区域时触发
185185
*/
186186
onClickUpload?: (context: { e: MouseEvent }) => void;
187+
/**
188+
* 拖拽开始时触发
189+
*/
190+
onDrag?: () => void;
191+
/**
192+
* 拖拽结束后触发,返回上传的文件列表(拖拽后的文件顺序)
193+
*/
194+
onDrop?: (value: Array<T>) => void;
187195
/**
188196
* 上传失败后触发。`response` 指接口响应结果,`response.error` 会作为错误文本提醒。如果希望判定为上传失败,但接口响应数据不包含 `error` 字段,可以使用 `formatResponse` 格式化 `response` 数据结构。如果是多文件多请求上传场景,请到事件 `onOneFileFail` 中查看 `response`
189197
*/
@@ -309,14 +317,7 @@ export interface UploadChangeContext {
309317
files?: UploadFile[];
310318
}
311319

312-
export type UploadChangeTrigger =
313-
| 'add'
314-
| 'remove'
315-
| 'abort'
316-
| 'progress-success'
317-
| 'progress'
318-
| 'progress-fail'
319-
| 'sort';
320+
export type UploadChangeTrigger = 'add' | 'remove' | 'abort' | 'progress-success' | 'progress' | 'progress-fail';
320321

321322
export interface UploadFailContext {
322323
e?: ProgressEvent;

packages/products/tdesign-mobile-vue/src/upload/upload.en-US.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,10 @@ value | Array | [] | file list。`v-model` and `v-model:value` is supported。Ty
4242
defaultValue | Array | [] | file list。uncontrolled property。Typescript: `Array<T>` | N
4343
withCredentials | Boolean | false | uploading request with cookie | N
4444
onCancelUpload | Function | | Typescript: `() => void`<br/>trigger on cancel button click | N
45-
onChange | Function | | Typescript: `(value: Array<T>, context: UploadChangeContext) => void`<br/>trigger on uploaded files change。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/upload/type.ts)。<br/>`interface UploadChangeContext { e?: MouseEvent \| ProgressEvent; response?: any; trigger: UploadChangeTrigger; index?: number; file?: UploadFile; files?: UploadFile[] }`<br/><br/>`type UploadChangeTrigger = 'add' \| 'remove' \| 'abort' \| 'progress-success' \| 'progress' \| 'progress-fail' \| 'sort'`<br/> | N
45+
onChange | Function | | Typescript: `(value: Array<T>, context: UploadChangeContext) => void`<br/>trigger on uploaded files change。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/upload/type.ts)。<br/>`interface UploadChangeContext { e?: MouseEvent \| ProgressEvent; response?: any; trigger: UploadChangeTrigger; index?: number; file?: UploadFile; files?: UploadFile[] }`<br/><br/>`type UploadChangeTrigger = 'add' \| 'remove' \| 'abort' \| 'progress-success' \| 'progress' \| 'progress-fail'`<br/> | N
4646
onClickUpload | Function | | Typescript: `(context: { e: MouseEvent }) => void`<br/> | N
47+
onDrag | Function | | Typescript: `() => void`<br/> | N
48+
onDrop | Function | | Typescript: `(value: Array<T>) => void`<br/> | N
4749
onFail | Function | | Typescript: `(options: UploadFailContext) => void`<br/>`response.error` used for error tips, `formatResponse` can format `response`[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/upload/type.ts)。<br/>`interface UploadFailContext { e?: ProgressEvent; failedFiles: UploadFile[]; currentFiles: UploadFile[]; response?: any; file: UploadFile; XMLHttpRequest?: XMLHttpRequest}`<br/> | N
4850
onOneFileFail | Function | | Typescript: `(options: UploadFailContext) => void`<br/>trigger on one file upload failed | N
4951
onOneFileSuccess | Function | | Typescript: `(context: Pick<SuccessContext, 'e' \| 'file' \| 'response' \| 'XMLHttpRequest'>) => void`<br/>trigger on file uploaded successfully | N
@@ -60,8 +62,10 @@ onWaitingUploadFilesChange | Function | | Typescript: `(context: { files: Array
6062
name | params | description
6163
-- | -- | --
6264
cancel-upload | \- | trigger on cancel button click
63-
change | `(value: Array<T>, context: UploadChangeContext)` | trigger on uploaded files change。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/upload/type.ts)。<br/>`interface UploadChangeContext { e?: MouseEvent \| ProgressEvent; response?: any; trigger: UploadChangeTrigger; index?: number; file?: UploadFile; files?: UploadFile[] }`<br/><br/>`type UploadChangeTrigger = 'add' \| 'remove' \| 'abort' \| 'progress-success' \| 'progress' \| 'progress-fail' \| 'sort'`<br/>
65+
change | `(value: Array<T>, context: UploadChangeContext)` | trigger on uploaded files change。[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/upload/type.ts)。<br/>`interface UploadChangeContext { e?: MouseEvent \| ProgressEvent; response?: any; trigger: UploadChangeTrigger; index?: number; file?: UploadFile; files?: UploadFile[] }`<br/><br/>`type UploadChangeTrigger = 'add' \| 'remove' \| 'abort' \| 'progress-success' \| 'progress' \| 'progress-fail'`<br/>
6466
click-upload | `(context: { e: MouseEvent })` | \-
67+
drag | \- | \-
68+
drop | `(value: Array<T>)` | \-
6569
fail | `(options: UploadFailContext)` | `response.error` used for error tips, `formatResponse` can format `response`[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/upload/type.ts)。<br/>`interface UploadFailContext { e?: ProgressEvent; failedFiles: UploadFile[]; currentFiles: UploadFile[]; response?: any; file: UploadFile; XMLHttpRequest?: XMLHttpRequest}`<br/>
6670
one-file-fail | `(options: UploadFailContext)` | trigger on one file upload failed
6771
one-file-success | `(context: Pick<SuccessContext, 'e' \| 'file' \| 'response' \| 'XMLHttpRequest'>)` | trigger on file uploaded successfully

0 commit comments

Comments
 (0)