UNPKG

@zenweb/form

Version:

Zenweb Form module

90 lines (89 loc) 1.78 kB
import { Field, simple } from '../field.js'; class UploadBase extends Field { _minFiles = 1; _maxFiles = 1; _minSize = 1; _maxSize; _totalMaxSize; _accept; /** * 最多上传数量 */ maxFiles(limit) { this._maxFiles = limit; this.maxItems(limit); return this; } /** * 最少上传数量 */ minFiles(limit) { this._minFiles = limit; this.minItems(limit); return this; } /** * 文件尺寸限制 */ minSize(limit) { this._minSize = limit; return this; } /** * 文件尺寸限制 */ maxSize(limit) { this._maxSize = limit; return this; } /** * 全部文件尺寸限制 */ totalMaxSize(limit) { this._totalMaxSize = limit; return this; } /** * 接受的文件类型 * - 例如: '.doc,.docx,application/msword' */ accept(types) { this._accept = types; return this; } extra() { return { minFiles: this._minFiles, maxFiles: this._maxFiles, minSize: this._minSize, maxSize: this._maxSize, totalMaxSize: this._totalMaxSize, accept: this._accept, }; } } /** * 本地上传 */ export class LocalUpload extends UploadBase { } /** * 远程上传组建 */ export class RemoteUpload extends UploadBase { _to; /** * 上传到地址 */ to(url) { this._to = url; return this; } extra() { return Object.assign(super.extra(), { to: this._to, }); } } export const localUpload = simple(LocalUpload); export const remoteUpload = simple(RemoteUpload);