宜搭开发包
    正在准备搜索索引...

    虚拟组件类

    该类表示一个虚拟组件实例,包含组件的值、选项和目标组件 ID。通过调用 setDefaultValue()setOptions() 方法, 可以将值和选项注入到目标组件中,实现组件的动态改造。

    层级 (查看层级一览)

    索引

    属性

    fieldId: string

    目标组件的 ID

    options: { text: string; value: string }[]

    组件选项列表,适用于下拉框、单选框等组件

    每个选项包含 text(显示文本)和 value(实际值)两个属性。

    preset: SchoolDaysPreset = {}

    预设配置项,可在实例化时传入,供 main() 方法使用

    value: string

    组件值

    方法

    • 将当前组件与另一个组件进行组合,生成一个新的虚拟组件

      组合逻辑为:将两个组件的值进行连接,生成新的值;将两个组件的选项进行笛卡尔积,生成新的选项列表;目标组件 ID 取当前组件和另一个组件中非空的那个。

      例如,若当前组件的值为 "2023-2024学年",选项为 [{ text: "2023-2024学年", value: "2023-2024学年" }], 另一个组件的值为 "第一学期",选项为 [{ text: "第一学期", value: "第一学期" }],则组合后的虚拟组件的值为 "2023-2024学年第一学期",选项为 [{ text: "2023-2024学年第一学期", value: "2023-2024学年第一学期" }]。

      参数

      返回 Readonly<VirtualComponent>

    • 将当前劫持组件转换为一个虚拟组件,并绑定到指定的目标组件 ID 上

      该方法会创建一个 VirtualComponent 实例,并将当前组件的值、选项和目标组件 ID 注入其中。 返回的 VirtualComponent 可以调用 setDefaultValue()setOptions() 方法,将值和选项注入到目标组件中。

      参数

      • fieldId: string

        目标组件的 ID

      返回 Readonly<VirtualComponent>

    • 将当前虚拟组件的选项列表注入到目标组件中

      该方法会尝试找到目标组件(通过 fieldId),并根据组件类型将当前虚拟组件的选项注入其中。

      • 对于文本输入框(ID 以 "text" 开头),会创建一个 datalist 元素,并将选项作为 datalist 的子元素注入到页面中, 同时将输入框的 list 属性指向该 datalist
      • 对于单选框、复选框、下拉框等组件(ID 以 "radio"、"checkbox"、"select"、"multiSelect" 开头), 会调用组件的 set("dataSource", options) 方法将选项注入其中。

      返回 VirtualComponent

    • 创建一个不可变的虚拟组件实例

      参数

      • value: string

        组件值

      • options: { text: string; value: string }[]

        组件选项列表

      • fieldId: string

        目标组件 ID

      返回 Readonly<VirtualComponent>