@zenweb/form
Version:
Zenweb Form module
90 lines (89 loc) • 1.78 kB
JavaScript
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);