jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
93 lines (92 loc) • 1.9 kB
TypeScript
import type { Option, SchemaExpression } from 'jamis-core';
import type { FormBaseControlSchema, FormControlProps } from '../types';
export type InputNumberRendererEvent = 'blur' | 'focus' | 'change';
export type InputNumberRendererAction = 'clear';
/**
* 数字输入框
*
*/
export interface NumberControlSchema extends FormBaseControlSchema {
type: 'input-number';
/**
* 最大值
*/
max?: number;
maxExpr?: SchemaExpression;
/**
* 最小值
*/
min?: number;
minExpr?: SchemaExpression;
/**
* 步长
*/
step?: number;
/**
* 精度
*/
precision?: number;
/**
* 默认当然是
*/
showSteps?: boolean;
/**
* 边框模式,全边框,还是半边框,或者没边框。
*/
borderMode?: 'full' | 'half' | 'none';
/**
* 前缀
*/
prefix?: string;
/**
* 后缀
*/
suffix?: string;
/**
* 单位列表
*/
unitOptions?: string | Array<Option> | string[] | PlainObject;
/**
* 是否千分分隔
*/
kilobitSeparator?: boolean;
/**
* 只读
*/
readOnly?: boolean;
/**
* 是否启用键盘行为
*/
keyboard?: boolean;
}
export interface NumberControlProps extends FormControlProps {
placeholder?: string;
max?: number | string;
min?: number | string;
step?: number;
precision?: number;
/**
* 边框模式,全边框,还是半边框,或者没边框。
*/
borderMode?: 'full' | 'half' | 'none';
/**
* 前缀
*/
prefix?: string;
/**
* 后缀
*/
suffix?: string;
/**
* 是否千分分隔
*/
kilobitSeparator?: boolean;
/**
* 只读
*/
readOnly?: boolean;
/**
* 启用键盘行为,即通过上下方向键控制是否生效
*/
keyboard?: boolean;
}