You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

198 lines
15 KiB

3 months ago
  1. import type { Awaitable, Mutable } from 'element-plus/es/utils';
  2. import type { UploadAjaxError } from './ajax';
  3. import type { ExtractPropTypes } from 'vue';
  4. import type Upload from './upload.vue';
  5. export declare const uploadListTypes: readonly ["text", "picture", "picture-card"];
  6. export declare const genFileId: () => number;
  7. export type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail';
  8. export interface UploadProgressEvent extends ProgressEvent {
  9. percent: number;
  10. }
  11. export interface UploadRequestOptions {
  12. action: string;
  13. method: string;
  14. data: Record<string, string | Blob | [Blob, string]>;
  15. filename: string;
  16. file: UploadRawFile;
  17. headers: Headers | Record<string, string | number | null | undefined>;
  18. onError: (evt: UploadAjaxError) => void;
  19. onProgress: (evt: UploadProgressEvent) => void;
  20. onSuccess: (response: any) => void;
  21. withCredentials: boolean;
  22. }
  23. export interface UploadFile {
  24. name: string;
  25. percentage?: number;
  26. status: UploadStatus;
  27. size?: number;
  28. response?: unknown;
  29. uid: number;
  30. url?: string;
  31. raw?: UploadRawFile;
  32. }
  33. export type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> & Partial<Pick<UploadFile, 'status' | 'uid'>>;
  34. export type UploadFiles = UploadFile[];
  35. export interface UploadRawFile extends File {
  36. uid: number;
  37. }
  38. export type UploadRequestHandler = (options: UploadRequestOptions) => XMLHttpRequest | Promise<unknown>;
  39. export interface UploadHooks {
  40. beforeUpload: (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>;
  41. beforeRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => Awaitable<boolean>;
  42. onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  43. onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  44. onPreview: (uploadFile: UploadFile) => void;
  45. onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  46. onProgress: (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  47. onError: (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  48. onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void;
  49. }
  50. export type UploadData = Mutable<Record<string, any>>;
  51. export declare const uploadBaseProps: {
  52. readonly action: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "#", boolean>;
  53. readonly headers: {
  54. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => Record<string, any> | Headers) | (() => Record<string, any> | Headers) | ((new (...args: any[]) => Record<string, any> | Headers) | (() => Record<string, any> | Headers))[], unknown, unknown>>;
  55. readonly required: false;
  56. readonly validator: ((val: unknown) => boolean) | undefined;
  57. __epPropKey: true;
  58. };
  59. readonly method: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "post", boolean>;
  60. readonly data: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => Mutable<Record<string, any>> | Promise<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | (() => Awaitable<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | ((new (...args: any[]) => Mutable<Record<string, any>> | Promise<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | (() => Awaitable<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)))[], unknown, unknown, () => Mutable<{}>, boolean>;
  61. readonly multiple: BooleanConstructor;
  62. readonly name: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "file", boolean>;
  63. readonly drag: BooleanConstructor;
  64. readonly withCredentials: BooleanConstructor;
  65. readonly showFileList: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  66. readonly accept: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
  67. readonly fileList: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]) | ((new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]))[], unknown, unknown, () => [], boolean>;
  68. readonly autoUpload: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  69. readonly listType: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "picture" | "text" | "picture-card", unknown, "text", boolean>;
  70. readonly httpRequest: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadRequestHandler) | (() => UploadRequestHandler) | {
  71. (): UploadRequestHandler;
  72. new (): any;
  73. readonly prototype: any;
  74. } | ((new (...args: any[]) => UploadRequestHandler) | (() => UploadRequestHandler) | {
  75. (): UploadRequestHandler;
  76. new (): any;
  77. readonly prototype: any;
  78. })[], unknown, unknown, UploadRequestHandler, boolean>;
  79. readonly disabled: BooleanConstructor;
  80. readonly limit: NumberConstructor;
  81. };
  82. export declare const uploadProps: {
  83. readonly beforeUpload: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | (() => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | {
  84. (): (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>;
  85. new (): any;
  86. readonly prototype: any;
  87. } | ((new (...args: any[]) => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | (() => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | {
  88. (): (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>;
  89. new (): any;
  90. readonly prototype: any;
  91. })[], unknown, unknown, () => void, boolean>;
  92. readonly beforeRemove: {
  93. readonly type: import("vue").PropType<(uploadFile: UploadFile, uploadFiles: UploadFiles) => Awaitable<boolean>>;
  94. readonly required: false;
  95. readonly validator: ((val: unknown) => boolean) | undefined;
  96. __epPropKey: true;
  97. };
  98. readonly onRemove: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  99. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  100. new (): any;
  101. readonly prototype: any;
  102. } | ((new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  103. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  104. new (): any;
  105. readonly prototype: any;
  106. })[], unknown, unknown, () => void, boolean>;
  107. readonly onChange: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  108. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  109. new (): any;
  110. readonly prototype: any;
  111. } | ((new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  112. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  113. new (): any;
  114. readonly prototype: any;
  115. })[], unknown, unknown, () => void, boolean>;
  116. readonly onPreview: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (uploadFile: UploadFile) => void) | (() => (uploadFile: UploadFile) => void) | {
  117. (): (uploadFile: UploadFile) => void;
  118. new (): any;
  119. readonly prototype: any;
  120. } | ((new (...args: any[]) => (uploadFile: UploadFile) => void) | (() => (uploadFile: UploadFile) => void) | {
  121. (): (uploadFile: UploadFile) => void;
  122. new (): any;
  123. readonly prototype: any;
  124. })[], unknown, unknown, () => void, boolean>;
  125. readonly onSuccess: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  126. (): (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  127. new (): any;
  128. readonly prototype: any;
  129. } | ((new (...args: any[]) => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  130. (): (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  131. new (): any;
  132. readonly prototype: any;
  133. })[], unknown, unknown, () => void, boolean>;
  134. readonly onProgress: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  135. (): (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  136. new (): any;
  137. readonly prototype: any;
  138. } | ((new (...args: any[]) => (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  139. (): (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  140. new (): any;
  141. readonly prototype: any;
  142. })[], unknown, unknown, () => void, boolean>;
  143. readonly onError: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  144. (): (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  145. new (): any;
  146. readonly prototype: any;
  147. } | ((new (...args: any[]) => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  148. (): (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  149. new (): any;
  150. readonly prototype: any;
  151. })[], unknown, unknown, () => void, boolean>;
  152. readonly onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
  153. (): (files: File[], uploadFiles: UploadUserFile[]) => void;
  154. new (): any;
  155. readonly prototype: any;
  156. } | ((new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
  157. (): (files: File[], uploadFiles: UploadUserFile[]) => void;
  158. new (): any;
  159. readonly prototype: any;
  160. })[], unknown, unknown, () => void, boolean>;
  161. readonly crossorigin: {
  162. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "" | "anonymous" | "use-credentials") | (() => "" | "anonymous" | "use-credentials") | ((new (...args: any[]) => "" | "anonymous" | "use-credentials") | (() => "" | "anonymous" | "use-credentials"))[], unknown, unknown>>;
  163. readonly required: false;
  164. readonly validator: ((val: unknown) => boolean) | undefined;
  165. __epPropKey: true;
  166. };
  167. readonly action: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "#", boolean>;
  168. readonly headers: {
  169. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => Record<string, any> | Headers) | (() => Record<string, any> | Headers) | ((new (...args: any[]) => Record<string, any> | Headers) | (() => Record<string, any> | Headers))[], unknown, unknown>>;
  170. readonly required: false;
  171. readonly validator: ((val: unknown) => boolean) | undefined;
  172. __epPropKey: true;
  173. };
  174. readonly method: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "post", boolean>;
  175. readonly data: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => Mutable<Record<string, any>> | Promise<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | (() => Awaitable<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | ((new (...args: any[]) => Mutable<Record<string, any>> | Promise<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | (() => Awaitable<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)))[], unknown, unknown, () => Mutable<{}>, boolean>;
  176. readonly multiple: BooleanConstructor;
  177. readonly name: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "file", boolean>;
  178. readonly drag: BooleanConstructor;
  179. readonly withCredentials: BooleanConstructor;
  180. readonly showFileList: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  181. readonly accept: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
  182. readonly fileList: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]) | ((new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]))[], unknown, unknown, () => [], boolean>;
  183. readonly autoUpload: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  184. readonly listType: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "picture" | "text" | "picture-card", unknown, "text", boolean>;
  185. readonly httpRequest: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadRequestHandler) | (() => UploadRequestHandler) | {
  186. (): UploadRequestHandler;
  187. new (): any;
  188. readonly prototype: any;
  189. } | ((new (...args: any[]) => UploadRequestHandler) | (() => UploadRequestHandler) | {
  190. (): UploadRequestHandler;
  191. new (): any;
  192. readonly prototype: any;
  193. })[], unknown, unknown, UploadRequestHandler, boolean>;
  194. readonly disabled: BooleanConstructor;
  195. readonly limit: NumberConstructor;
  196. };
  197. export type UploadProps = ExtractPropTypes<typeof uploadProps>;
  198. export type UploadInstance = InstanceType<typeof Upload>;