diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index 2bd66ea5e1..21c4dfe1a8 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -20,6 +20,7 @@ /// /// /// +/// /*~ If this module is a UMD module that exposes a global variable 'myLib' when *~ loaded outside a module loader environment, declare that global here. diff --git a/types/zui/uploader.d.ts b/types/zui/uploader.d.ts new file mode 100644 index 0000000000..18ebfb1127 --- /dev/null +++ b/types/zui/uploader.d.ts @@ -0,0 +1,148 @@ +interface UploaderOption { + drop_element?: string, + browse_button?: string, + url: string, + qiniu?: object, + filters?: { + mime_type: Array<{ + title?: string, + extensions?: string + }>, + max_file_size?: string, + prevent_duplicates?: string + }, + fileList?: string, + fileTemplate?: string, + fileFormater?($file: JQuery, file: FileObj, status: STATUS): void; + fileIconCreator?(fileType: string, file: FileObj, uploader: Uploader): void; + staticFiles?: Array<{ + id?: string, + name?: string, + type?: string, + size?: string, + origSize?: string, + lastModifiedDate?: Date + }>; + rename?: boolean, + renameExtension?: boolean, + renameByClick?: boolean, + autoUpload?: boolean, + browseByClickList?: boolean, + dropPlaceholder?: boolean, + previewImageIcon?: boolean, + sendFileName?: boolean, + sendFileId?: boolean, + responseHandler?: boolean | Function, + limitFilesCount?: boolean | number, + deleteConfirm?: boolean | string, + removeUploaded?: boolean, + statusCreator?(total: UploadProgress, state: STATUS, uploader: Uploader): void; + previewImageSize?: { width: number, height: number }, + uploadedMessage?: boolean, + deleteActionOnDone?: boolean, + renameActionOnDone?: boolean, + headers?: object, + multipart?: boolean, + multipart_params?: object | Function, + max_retries?: number, + chunk_size?: string, + resize?: { + width?: number, + height?: number, + crop?: boolean, + quuality?: number, + preserve_headers?: boolean + }, + multi_selection?: boolean, + unique_names?: boolean, + runtimes?: string, + file_data_name?: string, + flash_swf_url?: string, + silverlight_xap_url?: string, + lang?: string, + + onInit?(): void, + onFilesAdded?(fiels: Array): void; + onUploadProgress?(file: FileObj): void; + onFileUploaded?(file: FileObj, responseObject: ResponseObject): void + onUploadComplete?(files: Array): void, + onFilesRemoved?(files: Array): void, + onChunkUploaded?(file: FileObj, responseObject: ResponseObject): void, + onUploadFile?(file: FileObj): void, + onBeforeUpload?(file: FileObj): void, + onStateChanged?(status: STATUS): void, + onQueueChanged?(): void, + onError?(error: { error: ERRORS, message: string, file: FileObj }): void +} +interface ResponseObject { + response?: string, + responseHeaders?: object, + status?: number, + offset?: number, + total?: number +} +declare enum STATUS { + STOPPED = 1, STARTED = 2, QUEUED = 1, UPLOADING = 2, FAILED = 3, DONE = 4 +} +interface FileObj { + id?: string, + name?: string, + type?: string, + ext?: string, + isImage?: boolean, + previewImage?: string, + size?: number, + origSize?: number, + loaded?: number, + percent?: number, + status?: STATUS, + lastModifiedDate?: Date, + getNative(): File, + destroy(): void +} +interface UploadProgress { + size?: number, + loaded?: number, + uploaded?: number, + failed?: number, + queued?: number, + percent?: number, + bytesPerSec?: number +} +declare enum ERRORS { + GENERIC_ERROR = -100, + HTTP_ERROR = -200, + IO_ERROR = -300, + SECURITY_ERROR = -400, + INIT_ERROR = -500, + FILE_SIZE_ERROR = -600, + FILE_EXTENSION_ERROR = -601, + FILE_DUPLICATE_ERROR = -602, + IMAGE_FORMAT_ERROR = -700, + IMAGE_MEMORY_ERROR = -701, + IMAGE_DIMENSIONS_ERROR = -702 +} +interface Uploader { + showMessage(message: string, type: string, time?: number): void; + hideMessage(): void; + start(): void, + stop(): void, + getState(): STATUS, + isStarted(): boolean, + isStopped(): boolean, + getFiles(): Array; + getTotal(): UploadProgress, + disableBrowse(disable: boolean): void, + getFile(id: string): FileObj, + showFile(file: FileObj | Array): void; + removeFile(file: FileObj): void; + destroy(): void, + showStatus(): void +} +interface UplaoderStatic { + +} +interface JQuery { + uploader(option: UploaderOption): JQuery; + +} \ No newline at end of file diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index 12ce598c51..ea90bd89af 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -326,3 +326,14 @@ $('table.datatable').datatable('load', { ] }); + +/** + * uplaoder + */ +$('#myUploader').uploader({ + url: '...', + // ..., + onUploadFile: function(file:FileObj) { + console.log('上传成功', file); + } +}); \ No newline at end of file