tsp-component
Version:
提供多端和react版本的UI组件
61 lines (53 loc) • 1.63 kB
text/typescript
/// <reference path="./definition.d.ts" />
/// <reference path="../util/validate/definition.d.ts" />
import { regexp } from '../util/validate';
class FormCore {
constructor(params: TspComponentFormCoreParams) {
this.elem = params.elem;
if (params.required) {
this.setRequired(params.required);
}
if (params.patternType || params.pattern) {
this.setPattern({
pattern: params.pattern,
patternType: params.patternType,
patternTrigger: params.patternTrigger,
patternMsg: params.patternMsg,
});
}
this.setValue(params.defaultValue);
}
public elem: HTMLElement;
/**
* 设置必填属性
*/
public setRequired(required: string): void {
this.elem.dataset.required = 'true';
this.elem.dataset.requiredMsg = required;
}
/**
* 设置验证规则
*/
public setPattern(params: TspComponentFormCoreSetPatternParams): void {
const { pattern, patternType, patternTrigger, patternMsg } = params;
if (pattern) {
this.elem.dataset.pattern = pattern.toString();
} else {
this.elem.dataset.pattern = regexp[patternType].toString();
this.elem.dataset.patternType = patternType;
}
if (patternTrigger) {
this.elem.dataset.patternTrigger = patternTrigger.toString();
}
if (patternMsg) {
this.elem.dataset.patternMsg = patternMsg;
}
}
/**
* 设置data-index
*/
public setValue(value: string | number): void {
this.elem.dataset.value = value ? value.toString() : '';
}
}
export default FormCore;