跳至主要內容

日期

Mr.Hope大约 6 分钟

日期

表单

日期时间(FormDateTimeFieldWidget)

表单日期时间基础类,用于在搜索和表单中选择日期和时间。默认使用 FormDateTimeFieldWidget.ts 作为该功能的基类,日期时间选择框字段继承了 FormFieldWidget

@SPI.ClassFactory(
  FormFieldWidget.Token({
    viewType: [ViewType.Search, ViewType.Form],
    ttype: ModelFieldType.DateTime,
  })
)
export class FormDateTimeFieldWidget extends FormFieldWidget<string> {}

参数

  • open: 响应式变量,表示日期时间选择器打开状态,初始值为 false
  • format: 响应式变量,表示日期时间的格式。
  • valueFormat: 响应式变量,表示日期时间值的格式。
  • dateFormat: 响应式变量,表示日期格式。
  • timeFormat: 响应式变量,表示时间格式。
  • allowClear: 响应式变量,表示是否显示清除按钮,默认值为 true
  • quickOptions: 响应式变量,表示快捷选择日期的数组。
  • startDate: 响应式变量,表示起始日期值。
  • realStartDate: 响应式变量,表示经过格式化后的实际起始日期值。
  • startDateOffset: 响应式变量,表示起始日期的偏移量,默认值为 0。
  • startDateOffsetUnit: 响应式变量,表示起始日期偏移量的单位。
  • endDate: 响应式变量,表示结束日期值。
  • realEndDate: 响应式变量,表示经过格式化后的实际结束日期值。
  • endDateOffset: 响应式变量,表示结束日期的偏移量,默认值为 0。
  • endDateOffsetUnit: 响应式变量,表示结束日期偏移量的单位。
  • showTimeDefaultValue: 响应式变量,表示时间选择器的默认时间值。

方法

disabledDate()
  • 类型: 响应式方法
  • 描述: 判断是否需要禁用特定的日期。
  • 入参:
    • current (Moment): 当前日期。
  • 返回值:
    • disabled (boolean): 是否禁用当前日期。
@Widget.Method()
protected disabledDate(current: Moment) {}
disabledTime()
  • 类型: 响应式方法
  • 描述: 判断是否需要禁用特定的时、分、秒。
  • 入参:
    • e (Moment): 当前时间。
  • 返回值:
    • disabled (object): 包含 disabledHours, disabledMinutes, 和 disabledSeconds 的对象,用于禁用相应的时、分、秒,或空对象,表示没有限制。
@Widget.Method()
protected disabledTime(e: Moment) {}
closePanelChange()
  • 类型: 响应式方法
  • 描述: 关闭面板时的回调函数,包括触发 blur 事件、构建数据回传、清除字段回调以及重新加载表单数据。
  • 返回值:
    • result (boolean): 是否发生值变化。
@Widget.Method()
public async closePanelChange() {}
openPanelChange()
  • 类型: 响应式方法
  • 描述: 打开面板时的回调函数,包括设置更新失焦值 blurValue 和打开状态。
@Widget.Method()
public openPanelChange() {}
quickChange()
  • 类型: 响应式方法
  • 描述: 用于处理快速选项的值变化。
  • 入参:
    • quickOption (string): 快速选项的名称。
@Widget.Method()
public quickChange(quickOption) {}
changeOpenValue()
  • 类型: 响应式方法
  • 描述: 用于设置面板的打开状态。
  • 入参:
    • open (boolean): 面板的打开状态。
@Widget.Method()
public changeOpenValue(open) {}
correctingStartShowTimeDefaultValue()
  • 类型: 响应式方法
  • 描述: 校正修改的时间,用于确保修改的时间大于开始时间。
  • 入参:
    • e (Moment): 当前时间。
  • 返回值:
    • correctedValue (Moment): 校正后的时间值。
@Widget.Method()
public correctingStartShowTimeDefaultValue(e) {}
quickOptionsCompareDisable()
  • 类型: 响应式方法
  • 描述: 比较快速选项时间是否在合法范围内,不合法则禁用 quickOption
  • 入参:
    • quickOption (string): 快速选项的名称。
  • 返回值:
    • disabled (boolean): 是否禁用快速选项。
@Widget.Method()
public quickOptionsCompareDisable(quickOption) {}
genLimitTime()
  • 类型: 非响应式方法
  • 描述: 生成不在开始时间和结束时间范围内,限制的时、分、秒。
  • 入参:
    • startHour (number): 开始时。
    • endHour (number): 结束时。
    • startMinute (number): 开始分。
    • endMinute (number): 结束分。
    • startSecond (number): 开始秒。
    • endSecond (number): 结束秒。
  • 返回值:
    • {disabledHours: () => number[];disabledMinutes: () => number[];disabledSeconds: () => number[];}: 包含验证信息的 Promise 对象。
public async genLimitTime(startHour, endHour, startMinute, endMinute, startSecond, endSecond) {}
genDefaultFormat()
  • 类型: 非响应式方法
  • 描述: 生成默认日期时间的格式。
  • 返回值:
    • defaultFormat ("YYYY-MM-DD HH:mm:ss" | "YYYY-MM-DD"): 默认日期时间格式。
public genDefaultFormat(): "YYYY-MM-DD HH:mm:ss" | "YYYY-MM-DD" {}
defaultConstructDataTrigger()
  • 类型: 非响应式方法
  • 描述: 默认构建数据的触发器数组,为 [WidgetTrigger.CUSTOM]
  • 返回值:
    • defaultTriggers (WidgetTrigger[]): 触发器数组。
public defaultConstructDataTrigger() {}
defaultClearFieldsTrigger()
  • 类型: 非响应式方法
  • 描述: 默认清除字段的触发器数组,为 [WidgetTrigger.CUSTOM]
  • 返回值:
    • defaultTriggers (WidgetTrigger[]): 触发器数组。
public defaultClearFieldsTrigger() {}
validator()
  • 类型: 非响应式方法
  • 描述: 异步验证日期时间选择框的值。执行父类的验证逻辑,然后执行日期范围验证。
  • 返回值:
    • Promise<ValidatorInfo>: 包含验证信息的 Promise 对象。
public async validator(): Promise<ValidatorInfo> {}

如何替换

import {
  SPI,
  ViewType,
  ModelFieldType,
  FormFieldWidget,
  FormDateTimeFieldWidget,
} from "@kunlun/dependencies";

@SPI.ClassFactory(
  FormFieldWidget.Token({
    viewType: [ViewType.Search, ViewType.Form],
    ttype: ModelFieldType.DateTime,
  })
)
export class CustomFormDateTimeFieldWidget extends FormDateTimeFieldWidget {}

表格

日期时间(TableDateTimeCellWidget)

表格日期时间基础类,用于处理日期时间的通用功能。默认使用 TableDateTimeFieldWidget.ts 作为该功能的基类,日期时间选择框字段继承了 BaseTableFieldWidget

@SPI.ClassFactory(
  BaseFieldWidget.Token({
    viewType: ViewType.Table,
    ttype: [ModelFieldType.DateTime],
  })
)
export class TableDateTimeFieldWidget extends BaseTableFieldWidget<
  string | Date
> {}

属性

  • format: 非响应式变量,表示 Dsl 配置的日期时间格式。
  • defaultFormat: 非响应式变量,表示默认的日期时间格式,为 'YYYY-MM-DD HH:mm:ss'
  • valueFormat: 非响应式变量,表示字段值的日期时间格式,默认为 'YYYY-MM-DD HH:mm:ss'
  • hasDateFormat: 非响应式变量,表示是否包含日期格式,初始值为 true
  • hasTimeFormat: 非响应式变量,表示是否包含时间格式,初始值为 true

方法

renderDefaultSlot()
  • 类型: 响应式方法
  • 描述: 根据字段配置和行数据上下文对象渲染日期时间字段的默认插槽。
  • 入参:
    • context (RowContext): 渲染上下文信息。
  • 返回值:
    • cv (string): 渲染后的日期时间字符串。
@Widget.Method()
public renderDefaultSlot(context: RowContext): string {}
getDateFormat()
  • 类型: 非响应式方法
  • 描述: 根据字段配置和行数据上下文对象拿到日期格式。
  • 入参:
    • context (RowContext): 渲染上下文信息。
  • 返回值:
    • (string | undefined): 日期格式字符串。
@Widget.Method()
public getDateFormat(context: RowContext): stringundefined {}
getTimeFormat()
  • 类型: 非响应式方法
  • 描述: 根据字段配置和行数据上下文对象拿到时间格式。
  • 入参:
    • context (RowContext): 渲染上下文信息。
  • 返回值:
    • (string | undefined): 时间格式字符串。
@Widget.Method()
public getTimeFormat(context: RowContext): stringundefined {}
convertFormat()
  • 类型: 非响应式方法
  • 描述: 根据格式标识拿到日期时间格式。
  • 入参:
    • format (stirng): 格式标识。
  • 返回值:
    • (string | undefined): 日期时间格式字符串。
@Widget.Method()
public convertFormat(format: string): stringundefined {}
convertDateFormat()
  • 类型: 非响应式方法
  • 描述: 根据格式标识拿到日期格式。
  • 入参:
    • format (stirng): 格式标识。
  • 返回值:
    • (string | undefined): 日期格式字符串。
@Widget.Method()
public convertDateFormat(format: string): stringundefined {}
convertTimeFormat()
  • 类型: 非响应式方法
  • 描述: 根据格式标识拿到时间格式。
  • 入参:
    • format (stirng): 格式标识。
  • 返回值:
    • (string | undefined): 时间格式字符串。
@Widget.Method()
public convertTimeFormat(format: string): stringundefined {}

如何替换

import {
  SPI,
  ViewType,
  ModelFieldType,
  BaseFieldWidget,
  TableDateTimeFieldWidget,
} from "@kunlun/dependencies";

@SPI.ClassFactory(
  BaseFieldWidget.Token({
    viewType: ViewType.Table,
    ttype: [ModelFieldType.DateTime],
  })
)
export class CustomTableDateTimeFieldWidget extends TableDateTimeFieldWidget<
  string | Date
> {}