数字
大约 4 分钟
数字
表单
整数 (FormIntegerFieldWidget)
表单整数基础类,用于处理整数输入的通用功能。默认使用 FormIntegerFieldWidget.ts
作为该功能的基类,表单整数字段继承了 FormNumberAbstractFieldWidget
。
export class FormIntegerFieldWidget<
Value extends NumberValue | NumberValue[] = NumberValue
> extends FormNumberAbstractFieldWidget<Value> {}
参数
min
: 响应式变量,表示输入的最小值。max
: 响应式变量,表示输入的最大值。step
: 响应式变量,表示通过按钮增加和减少的步长,优先级低于addStep
和reduceStep
。minSafeInteger
: 响应式变量,表示最小安全整数值,默认为 '-9223372036854775808'。maxSafeInteger
: 响应式变量,表示最大安全整数值,默认为 '9223372036854775807'。addStep
: 响应式变量,表示通过按钮增加的步长。reduceStep
: 响应式变量,表示通过按钮减少的步长。unit
: 响应式变量,表示输入的单位。autocorrection
: 响应式变量,表示onblur
时是否自动修正输入值,将超出最大值的修正为最大值,小于最小值的修正为最小值, 默认为false
。
方法
validator()
- 类型: 非响应式方法
- 描述: 异步验证输入值的有效性,执行父类的验证逻辑,然后执行数字、整数验证。
- 返回值:
Promise<ValidatorInfo>
: 验证结果。
public validator(): Promise<ValidatorInfo> {}
rawValidator()
- 类型: 非响应式方法
- 描述: 异步执行父类的验证逻辑,不包括整数验证。
public validator(): Promise<ValidatorInfo> {}
checkValue()
- 类型: 非响应式方法
- 描述: 检查待验证的值是否是数字,是否大于最大值,小于最小值。
- 入参:
singleValue
(Any): 待验证的值。res
(ValidatorInfo): 验证结果。
protected checkValue(singleValue, res) {}
computeNumericFieldMax()
- 类型: 非响应式方法
- 描述: 根据
maxSafeInteger
、数字的长度和精度,计算整数字段的最大值。 - 入参:
size
: 数字的长度。precision
: 数字的精度。
- 返回值:
finalResult
(string): 计算得到的最大值。
private computeNumericFieldMax(size, precision): string {}
computeNumericFieldMin()
- 类型: 非响应式方法
- 描述: 根据
minSafeInteger
、数字的长度和精度,计算整数字段的最小值。 - 入参:
size
: 数字的长度。precision
: 数字的精度。
- 返回值:
finalResult
(string): 计算得到的最小值。
private computeNumericFieldMin(size, precision): string {}
_computeNumericFieldMax()
- 类型: 非响应式方法
- 描述: 根据数字的长度和精度计算整数字段的最大值(抽离公共方法)。
- 入参:
size
: 数字的长度。precision
: 数字的精度。
- 返回值:
finalResult
(BigNumber): 计算得到的最大值。
private _computeNumericFieldMax(size, precision): BigNumber {}
如何替换
import {
SPI,
ViewType,
ModelFieldType,
FormFieldWidget,
FormIntegerFieldWidget,
} from "@kunlun/dependencies";
@SPI.ClassFactory(
FormFieldWidget.Token({
viewType: [ViewType.Form, ViewType.Search],
ttype: [ModelFieldType.Integer],
multi: false,
})
)
export class CustomIntegerFieldWidget extends FormIntegerFieldWidget {}
浮点数 (FormFloatFieldWidget)
表单浮点数基础类,用于处理浮点数输入的通用功能。并添加了小数位数控制的功能。默认使用 FormFloatFieldWidget.ts
作为该功能的基类,表单浮点数字段继承了表单整数字段 FormIntegerFieldWidget
。
export class FormFloatFieldWidget extends FormIntegerFieldWidget {}
参数
minSafeInteger
: 响应式变量,表示最小安全整数值,默认值为Number.MIN_SAFE_INTEGER
。maxSafeInteger
: 响应式变量,表示最大安全整数值,默认值为Number.MAX_SAFE_INTEGER
。isChange
: 非响应式变量,表示值是否发生变化,默认值为false
。value
: 响应式变量,表示输入的值。
方法
change(value)
- 类型: 非响应式方法
- 描述: 更改表单字段的值,并标记值已发生变化。
- 入参:
value
(Object): 要设置的新值。
@Widget.Method()
public change(value) {}
validator()
- 类型: 非响应式方法
- 描述: 异步验证表单字段的值,执行父类的验证逻辑,然后执行数字、浮点数验证。
- 返回值:
Promise<ValidatorInfo>
: 包含验证信息的 Promise 对象。
public validator(): Promise<ValidatorInfo> {}
submit()
- 类型: 非响应式方法
- 描述: 对输入值进行小数部位零填充,根据字段名、计算输入值和关联字段生成提交数据。
- 入参:
submitValue
(SubmitValue): 待提交时的表单数据和关联字段数据。
- 返回值:
result
(ReturnPromise<Record<string, unknown> | undefined>): 生成字段名和输入值的键值对或undefined
。
public submit(submitValue: SubmitValue): ReturnPromise<Record<string, unknown> | undefined> {}
valueZeroFill(val)
- 类型: 非响应式方法
- 描述: 对浮点数小数部位进行零填充,确保符合设置的精度。
- 入参:
val
(any): 要进行填充的值。
protected valueZeroFill(val) {}
如何替换
import {
SPI,
ViewType,
ModelFieldType,
FormFieldWidget,
FormFloatFieldWidget,
} from "@kunlun/dependencies";
@SPI.ClassFactory(
FormFieldWidget.Token({
viewType: [ViewType.Form, ViewType.Search],
ttype: [ModelFieldType.Float],
})
)
export class CustomFormFloatFieldWidget extends FormFloatFieldWidget {}
表格
数字 (TableNumberWidget)
表格数字基础类,用于处理数字的通用功能。默认使用 TableNumberWidget.ts
作为该功能的基类,表格数字字段继承了 BaseTableFieldWidget
。
export class TableNumberWidget extends BaseTableFieldWidget<
string | number,
RuntimeNumberField
> {}
方法
getShowThousandth()
- 类型: 非响应式方法
- 描述: 获取是否显示千分位分隔符,默认返回
false
。 - 入参:
context
(Object): 计算上下文信息。
- 返回值:
Boolean
: 是否显示千分位分隔符。
protected getShowThousandth(context: RowContext): boolean {}
getPrecision()
- 类型: 非响应式方法
- 描述: 获取数字的精度,即精确小数位数。
- 入参:
context
(RowContext): 计算上下文信息。
- 返回值:
decimal
(number | null | undefined): 数字的精度。
protected getPrecision(context: RowContext): number | null | undefined {}
renderDefaultSlot()
- 类型: 响应式方法
- 描述: 对字段值进行零填充或千分符填充,作为渲染内容返回。
- 入参:
context
(RowContext): 渲染上下文信息。
- 返回值:
VNode[] | string
: 渲染后的节点数组或字符串。
@Widget.Method()
public renderDefaultSlot(context: RowContext): VNode[] | string {}
如何替换
import {
SPI,
ViewType,
ModelFieldType,
BaseFieldWidget,
TableNumberWidget,
} from "@kunlun/dependencies";
@SPI.ClassFactory(
BaseFieldWidget.Token({
viewType: [ViewType.Table],
ttype: [ModelFieldType.Integer, ModelFieldType.Long, ModelFieldType.Float],
})
)
export class CustomTableNumberWidget extends TableNumberWidget {}