跳至主要內容

数字

Mr.Hope大约 4 分钟

数字

表单

整数 (FormIntegerFieldWidget)

表单整数基础类,用于处理整数输入的通用功能。默认使用 FormIntegerFieldWidget.ts 作为该功能的基类,表单整数字段继承了 FormNumberAbstractFieldWidget

export class FormIntegerFieldWidget<
  Value extends NumberValue | NumberValue[] = NumberValue
> extends FormNumberAbstractFieldWidget<Value> {}

参数

  • min: 响应式变量,表示输入的最小值。
  • max: 响应式变量,表示输入的最大值。
  • step: 响应式变量,表示通过按钮增加和减少的步长,优先级低于addStepreduceStep
  • 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 {}