- name: u-list-view
  title: 数据列表
  icon: list-view
  labels:
    - Table
  description: 用于列举大量数据的列表框，支持单选、多选、过滤（搜索）、分页等功能。
  attrs:
    - name: data-source
      title: 数据源
      type: Array<Item> | Function | object | DataSource
      designer-value: "[{}, {}, {}]"
      description: 展示数据的输入源，可设置为数据集对象或者返回数据集的逻辑
      group: 数据属性
      brifeDoc: ""
      docDescription: 列表展示的数据。数据源可以绑定变量或者逻辑。变量或逻辑的返回值可以是数组，也可以是对象。对象格式为{list:[], total:10}
      tooltipLink: ""
    - name: data-schema
      title: 数据类型
      type: schema
      description: 数据源返回的数据结构的类型，自动识别类型进行展示说明
      group: 数据属性
      compType: dataTypeSelect
      brifeDoc: ""
      docDescription: 列表每一行的数据类型。该属性为展示属性，由数据源推倒得到，无需填写。
      tooltipLink: ""
    - name: pageable
      title: 分页
      type: boolean
      default: false
      description: 设置是否分页展示数据
      group: 数据属性
      brifeDoc: ""
      docDescription: 是否展示分页组件，数据源调用接口是否加入分页参数。默认开启
      tooltipLink: ""
    - name: page-size
      title: 默认每页条数
      type: number
      default: 50
      description: ""
      group: 数据属性
      brifeDoc: ""
      docDescription: 每页的数据条数。默认50条。在"可分页"属性开启时有效
      tooltipLink: ""
    - name: page-number
      title: 当前页数
      type: number
      default: 1
      description: 当前默认展示在第几页
      group: 数据属性
      schema:
        $ref: "#/basicTypes/Integer"
      brifeDoc: ""
      docDescription: 当前加载的列表页。默认1。在"可分页"属性开启时有效
      tooltipLink: ""
    - name: page-size-options
      title: 每页条数选项
      type: Array<number>
      default:
        - 10
        - 20
        - 50
      description: 每页条数切换器的选项
      group: 数据属性
      brifeDoc: ""
      docDescription: 每页显示数据条数的选择列表，需设置数组，如[10,20,30,40,50]。在"可分页"属性开启时有效
      tooltipLink: ""
    - name: show-total
      title: 显示总条数
      type: boolean
      default: false
      description: ""
      group: 数据属性
      brifeDoc: ""
      docDescription: 分页组件处是否显示列表总数。默认关闭。在"可分页"属性开启时有效
      tooltipLink: ""
    - name: show-sizer
      title: 显示每页条数
      type: boolean
      default: false
      description: 显示每页条数切换器
      group: 数据属性
      brifeDoc: ""
      docDescription: 是否展示数据条数的选择列表。默认开启。在"可分页"属性开启时有效
      tooltipLink: ""
    - name: show-jumper
      title: 显示跳转输入
      type: boolean
      default: false
      description: 显示页面跳转输入框
      group: 数据属性
      brifeDoc: ""
      docDescription: 分页组件处是否展示跳转到某一页的输入框。默认关闭。在"可分页"属性开启时有效。
      tooltipLink: ""
    - name: filterable
      title: 筛选
      type: boolean
      default: false
      description: 设置是否可以筛选，开启将会显示搜索框。
      group: 数据属性
      brifeDoc: ""
      docDescription: 是否展示可筛选的输入框。默认关闭。
      tooltipLink: ""
    - name: remote-paging
      title: 后端分页
      type: boolean
      default: false
      description: 是否使用后端分页。
      group: 数据属性
      brifeDoc: ""
      docDescription: 表示数据列表的分页由接口处理。分页参数传入后端接口，由后端接口返回相应的数据。默认开始。关闭后，如果"可分页"属性开启，分页将由列表组件处理，不会发送后端接口。
      tooltipLink: ""
    - name: remote-filtering
      title: 后端筛选
      type: boolean
      default: false
      description: 是否使用后端过滤
      advanced: true
      group: 数据属性
      brifeDoc: ""
      docDescription: ""
      tooltipLink: ""
    - name: match-method
      title: 匹配方法
      type: string, Function
      default: includes
      description: 筛选时的匹配方法
      group: 数据属性
      brifeDoc: ""
      docDescription: 筛选时的匹配方法。可写值"="、"=="、"eq"、"!="、"neq"、"<"，"lt"，"<="，"lte"，">"，"gt"，">="，"gte"，"includes"，"startsWith"，"endsWith"。也可传入处理函数。当"可筛选"属性开启时有效。
      tooltipLink: ""
    - name: case-sensitive
      title: 大小写敏感
      type: boolean
      default: false
      description: 设置是否区分大小写
      group: 数据属性
      brifeDoc: ""
      docDescription: 表示筛选时是否大小写敏感。当"可筛选"属性开启时有效。
      tooltipLink: ""
    - name: placeholder
      title: 搜索框占位符
      type: string
      default: 请输入
      description: 搜搜框为空时显示的占位符文本
      group: 数据属性
      dependency:
        - filterable: true
      brifeDoc: ""
      docDescription: 搜索框为空时提示文本，默认"请输入"。当"可筛选"属性开启时有效。
      tooltipLink: ""
    - name: value
      title: 选中值
      type: any
      sync: true
      model: true
      description: 显示的值
      group: 数据属性
      brifeDoc: ""
      docDescription: 在列表开启可多选时，指定数据唯一值的字段。
      tooltipLink: ""
    - name: text-field
      title: 文本字段
      type: string
      default: text
      description: 当开启可多选时，显示的选项文本字段名
      group: 数据属性
      display: property-select
      brifeDoc: ""
      docDescription: 当开启可多选时，显示的选项文本字段名。
      tooltipLink: ""
    - name: value-field
      title: 值字段
      type: string
      default: value
      description: 当开启可多选时，选项值的字段
      group: 数据属性
      display: property-select
      brifeDoc: ""
      docDescription: 当开启可多选时，选项值的字段名。当"可多选"属性开启时有效。
      tooltipLink: ""
    - name: cancelable
      title: 可取消
      type: boolean
      default: false
      description: 与"可多选"属性对应，表示选中的行再点击时是否可以取消选中。默认关闭。
      group: 数据属性
      brifeDoc: ""
      docDescription: 与"可多选"属性对应，表示选中的行再点击时是否可以取消选中。默认关闭。
      tooltipLink: ""
    - name: multiple
      title: 可多选
      type: boolean
      default: false
      description: 设置是否可以多选行
      group: 数据属性
      brifeDoc: ""
      docDescription: 列表的行是否可选中。默认关闭。
      tooltipLink: ""
    - name: clearable
      title: 可清除筛选
      type: boolean
      default: false
      description: 可点击搜索框中的清除按钮一键清除内容
      group: 数据属性
      brifeDoc: ""
      docDescription: 搜索框是否有清除按钮，默认关闭。当"可筛选"属性开启时有效。
      tooltipLink: ""
    - name: show-head
      title: 显示头部
      type: boolean
      default: false
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: 是否显示列表头。默认关闭。
      tooltipLink: ""
    - name: title
      title: 列表标题
      type: string
      default: 列表
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: 列表头部的标题信息。当"显示头部"属性开启时有效
      tooltipLink: ""
    - name: show-foot
      title: 显示底部
      type: boolean
      default: true
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: 显示列表底部，包括分页组件。默认开启。
      tooltipLink: ""
    - name: initial-load
      type: boolean
      title: 初始即加载
      default: true
      description: 设置初始时是否立即加载
      group: 状态属性
      brifeDoc: ""
      docDescription: 是否在列表出现时立即加载数据，默认开启。
      tooltipLink: ""
    - name: designer-mode
      title: 加载状态设置
      type: string
      options:
        - value: success
          title: 加载完成-有数据
        - value: empty
          title: 加载完成-暂无数据
        - value: loading
          title: 加载中
        - value: error
          title: 加载失败
      default: success
      description: 设置不同加载状态的展示内容
      bindHide: true
      group: 状态属性
      tooltipLink: ""
      docDescription: ""
    - name: loading-text
      title: 加载中文案
      type: string
      default: 加载中...
      description: 加载中状态显示的文案
      group: 状态属性
      dependency:
        - designer-mode: loading
      brifeDoc: ""
      docDescription: 当数据正在加载时展示的文字，默认为"加载中..."。
      tooltipLink: ""
    - name: loading
      title: 自定义加载中触发条件
      type: boolean
      description: 支持自定义状态的触发条件，未设置则默认为系统定义条件
      bindOpen: true
      group: 状态属性
      dependency:
        - designer-mode: loading
    - name: error-text
      title: 加载失败文案
      type: string
      default: 加载失败，请重试
      description: 加载失败状态显示的提示文案
      group: 状态属性
      dependency:
        - designer-mode: error
      brifeDoc: ""
      docDescription: 加载失败的提示文字。默认"加载失败，请重试"
      tooltipLink: ""
    - name: error
      title: 加载失败触发条件
      type: boolean
      description: 加载失败状态的触发条件，未设置则默认为系统定义条件
      bindOpen: true
      group: 状态属性
      dependency:
        - designer-mode: error
      brifeDoc: ""
      docDescription: 控制表格加载失败的展示时机。默认关闭。
      tooltipLink: ""
    - name: empty-text
      title: 暂无数据文案
      type: string
      default: 暂无数据
      description: 暂无数据状态显示的提示文案
      group: 状态属性
      dependency:
        - designer-mode: empty
      brifeDoc: ""
      docDescription: 当列表为空时的提示文字。默认"暂无数据"
      tooltipLink: ""
    - name: readonly
      title: 只读
      type: boolean
      default: false
      description: 正常显示，但禁止选择/输入
      group: 状态属性
      brifeDoc: ""
      docDescription: 正常显示，但禁止选择或输入。
      tooltipLink: ""
    - name: disabled
      title: 禁用
      type: boolean
      default: false
      description: 置灰显示，且禁止任何交互（焦点、点击、选择、输入等）
      group: 状态属性
      brifeDoc: ""
      docDescription: 置灰显示，且禁止任何交互（焦点、点击、选择、输入等）。
      tooltipLink: ""
    - name: border
      title: 显示边框
      type: boolean
      default: true
      description: ""
      group: 样式属性
      brifeDoc: ""
      docDescription: 列表是否展示边框。默认关闭。
      tooltipLink: ""
    - name: width
      title: 宽度
      type: string
      options:
        - value: full
          title: 占满
        - value: huge
          title: 巨大
        - value: large
          title: 大
        - value: normal
          title: 正常
        - value: auto
          title: 自适应
      default: auto
      description: 设置数据列表宽度大小
      group: 样式属性
      brifeDoc: ""
      docDescription: 数据列表宽度。默认自适应。
      tooltipLink: ""
    - name: height
      title: 高度
      type: string
      options:
        - value: full
          title: 占满
        - value: huge
          title: 巨大
        - value: large
          title: 大
        - value: normal
          title: 正常
        - value: auto
          title: 自适应
      default: normal
      description: 设置数据列表高度大小
      group: 样式属性
      brifeDoc: ""
      docDescription: 数据列表高度。默认正常。
      tooltipLink: ""
  slots:
    - concept: Slot
      name: default
      title: 默认
      description: 插入文本或 HTML
      empty-background: drag-entity-here
      advanced: true
    - concept: Slot
      name: item
      description: 自定义选项的结构和样式
      slotProps:
        concept: Param
        name: current
        typeAnnotation:
          concept: TypeAnnotation
          typeKind: generic
          typeNamespace: nasl.ui
          typeName: Current
          typeArguments:
            - concept: TypeAnnotation
              typeKind: typeParam
              typeName: T
  events:
    - name: before-select
      title: 选择前
      description: 选择某一项前触发
      advanced: true
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/ChangeItemEvent"
        - name: $event.value
          type: any
          description: 选择项的值
        - name: $event.oldValue
          type: any
          description: 旧的值
        - name: $event.item
          type: object
          description: 选择项相关对象
        - name: $event.itemVM
          type: UListViewItem
          description: 选择项子组件
        - name: $event.preventDefault
          type: Function
          description: 阻止选择流程
        - name: senderVM
          type: UListView
          description: 发送事件实例
    - name: input
      title: 选择时
      description: 选择某一项时触发
      params:
        - name: $event
          type: any
          description: 选择项的值
          schema:
            $ref: "#/basicTypes/String"
        - name: senderVM
          type: UListView
          description: 发送事件实例
    - name: select
      title: 选择后
      description: 选择某一项时触发。单选模式中：
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/ChangeItemEvent"
        - name: $event.value
          type: any
          description: 改变后的值
        - name: $event.oldValue
          type: any
          description: 旧的值
        - name: $event.item
          type: object
          description: 选择项相关对象
        - name: $event.oldItem
          type: object
          description: 旧的选择项相关对象
        - name: $event.itemVM
          type: UListViewItem
          description: 选择项子组件
        - name: $event.oldVM
          type: UListViewItem
          description: 旧的选择项子组件
        - name: senderVM
          type: UListView
          description: 发送事件实例
    - name: change
      title: 改变后
      description: 选择值改变时触发。
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/ChangeItemEvent"
        - name: $event.value
          type: any
          description: 选择项的值
        - name: $event.oldValue
          type: any
          description: 旧的值
        - name: $event.item
          type: object
          description: 选择项相关对象
        - name: $event.oldItem
          type: object
          description: 旧的选择项相关对象
        - name: $event.itemVM
          type: UListViewItem
          description: 选择项子组件
        - name: $event.oldVM
          type: UListViewItem
          description: 旧的选择项子组件
        - name: senderVM
          type: UListView
          description: 发送事件实例
    - name: before-load
      title: 加载前
      description: 加载前触发
      advanced: true
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/EventTarget"
        - name: $event.preventDefault
          type: Function
          description: 阻止加载流程
        - name: senderVM
          type: UTableView
          description: 发送事件实例
    - name: load
      title: 加载后
      description: 加载时触发
      params:
        - name: $event
          type: ""
          description: 空
        - name: senderVM
          type: UTableView
          description: 发送事件实例
  methods:
    - name: reload
      description: 清除缓存，重新加载
      params: []
