- name: u-form-table-view
  icon: table-view
  title: 表格表单
  labels:
    - Table
  description: 本组件用于在表单中使用表单验证、动态数据等复杂功能
  extends: m-dynamic
  next: true
  nested: false
  attrs:
    - name: data
      title: 数据
      type: Array
      description: 数据
    - name: dynamic
      title: 动态添加
      type: boolean
      default: false
      description: 是否可以动态添加/删除项
    - name: get-default-item
      title: 默认项的方法
      type: Function
      description: 传入获取默认项的方法
    - name: initial-add
      title: 自动补充项
      type: boolean
      default: true
      description: 是否自动补充项，如果初始时`data`中的项目数少于`min-count`
    - name: min-count
      title: 最小行数
      type: number
      default: 1
      description: 最小项目数
    - name: max-count
      title: 最大行数
      type: number
      default: 999
      description: 最大项目数
  slots:
    - concept: Slot
      name: default
      common-empty-background: true
      description: 添加文本或 HTML
      support:
         - name: u-form-table-view-column
           title: 表单列元素
           snippet:  '<u-form-table-view-column title="表单列"> <template #cell="current">{{ scope.item.url }}</template></u-form-table-view-column>'
  events:
    - name: before-add
      description: 添加前触发
      advanced: true
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/OperatorItemEvent"
        - name: $event.item
          type: any
          description: 添加的项
        - name: $event.index
          type: number
          description: 添加的索引
        - name: $event.data
          type: Array
          description: 当前数据
        - name: $event.preventDefault
          type: Function
          description: 阻止添加流程
        - name: senderVM
          type: UFormTableView
          description: 发送事件实例
      title: 添加前触发
    - name: add
      description: 添加时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/OperatorItemEvent"
        - name: $event.item
          type: any
          description: 添加的项
        - name: $event.index
          type: number
          description: 添加的索引
        - name: $event.data
          type: Array
          description: 当前数据
        - name: senderVM
          type: UFormTableView
          description: 发送事件实例
      title: 添加时触发
    - name: before-remove
      description: 删除前触发
      advanced: true
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/OperatorItemEvent"
        - name: $event.item
          type: any
          description: 删除的项
        - name: $event.index
          type: number
          description: 删除的索引
        - name: $event.data
          type: Array
          description: 当前数据
        - name: $event.preventDefault
          type: Function
          description: 阻止删除流程
        - name: senderVM
          type: UFormTableView
          description: 发送事件实例
      title: 删除前触发
    - name: remove
      description: 删除时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/OperatorItemEvent"
        - name: $event.item
          type: any
          description: 删除的项
        - name: $event.index
          type: number
          description: 删除的索引
        - name: $event.data
          type: Array
          description: 当前数据
        - name: senderVM
          type: UFormTableView
          description: 发送事件实例
      title: 删除时触发
    - name: splice
      description: 数量变更（添加/删除）时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/OperatorItemEvent"
        - name: $event.item
          type: any
          description: 变更的项
        - name: $event.index
          type: number
          description: 变更的索引
        - name: $event.data
          type: Array
          description: 当前数据
        - name: senderVM
          type: UFormTableView
          description: 发送事件实例
      title: 数量变更（添加/删除）时触发
- name: u-form-table-view-column
  title: 表单列元素
  next: false
  nested: false
  attrs:
    - name: title
      title: 列标题
      type: string
      description: 列标题
    - name: field
      title: 区域
      type: string
      description: data 中的字段名
    - name: width
      title: 宽度
      type: string, number
      description: 给列指定宽度，可以为数字或百分比
    - name: ellipsis
      title: 省略显示
      type: boolean
      default: false
      description: 文字过长是否省略显示，默认文字超出时会换行
    - name: formatter
      title: 格式器
      type: string, object, Function, Formatter
      default: placeholder
      description: 格式器
    - name: hidden
      title: 是否隐藏
      type: boolean
      default: false
      description: 是否隐藏
    - name: start-index
      title: 起始序号
      type: number
      default: 1
      description: 序号列的起始序号
    - name: label
      title: 标签
      type: string
      description: 标签。用于提示消息的合成
    - name: muted
      title: 静默消息提示
      type: string
      description: 验证时是否静默。可选值：`'message'`表示只静默消息提示，`'all'`同时静默消息提示和红框提示
    - name: rules
      title: 验证规则
      type: string, Array
      description: 验证规则。简写格式为字符串类型，完整格式或混合格式为数组类型
      compType: validationRulesSelect
      bindHide: true
    - name: ignore-validation
      title: 忽略验证
      type: boolean
      default: false
      description: 忽略验证
    - name: ignore-rules
      title: 忽略验证规则
      type: boolean
      default: false
      description: 忽略验证规则。已废弃，同`ignore-validation`
      deprecated: true
    - name: validating-options
      title: 验证辅助对象
      type: object
      description: "验证辅助对象。在 Rule 的 `validate` 方法中使用。表格中会额外将`{ data: currentData,
        item, rowIndex }`注入"
    - name: validating-value
      title: 验证值
      type: any
      description: 临时修改验证值
    - name: validating-process
      title: 验证前对值进行的预处理
      type: Function
      description: 验证前对值进行预处理
  slots:
    - concept: Slot
      name: default
      description: 在表格列中插入`cell`插槽
      plus-empty: true
    - concept: Slot
      name: cell
      plus-empty: true
      description: 对单元格数据展示进行自定义
      props:
        - name: item
          type: object
          description: 循环中的当前项
        - name: value
          type: any
          description: item 中 field 字段对应的值
        - name: columnVM
          type: string
          description: 该列组件实例
        - name: rowIndex
          type: number
          description: 行的索引
        - name: columnIndex
          type: number
          description: 列的索引
      slotProps:
        concept: Param
        name: current
        typeAnnotation:
          concept: TypeAnnotation
          typeKind: generic
          typeNamespace: nasl.ui
          typeName: Current
          typeArguments:
          - concept: TypeAnnotation
            typeKind: typeParam
            typeName: T
    - concept: Slot
      name: title
      description: 对标题进行自定义
      props:
        - name: columnVM
          type: string
          description: 该列组件实例
        - name: columnIndex
          type: number
          description: 列的索引
    - concept: Slot
      name: expand-content
      description: 展开列的内容
      props:
        - name: item
          type: object
          description: 循环中的当前项
        - name: value
          type: any
          description: item 中 field 字段对应的值
        - name: columnVM
          type: string
          description: 该列组件实例
        - name: rowIndex
          type: number
          description: 行的索引
        - name: columnIndex
          type: number
          description: 列的索引
      slotProps:
        concept: Param
        name: current
        typeAnnotation:
          concept: TypeAnnotation
          typeKind: generic
          typeNamespace: nasl.ui
          typeName: Current
          typeArguments:
          - concept: TypeAnnotation
            typeKind: typeParam
            typeName: T
  description: 表单列元素
