- name: u-uploader
  title: 文件上传
  icon: uploader
  description: 通过点击或者拖拽上传文件。
  labels:
    - Form
  attrs:
    - name: data-type
      title: 接收数据类型
      type: string
      default: json
      description: 接收数据类型。可选值：`text`、`xml`、`json`
      advanced: true
      hidden: true
    - name: pastable
      title: 是否可以粘贴
      type: boolean
      default: false
      description: ""
      advanced: true
    - name: value
      title: 值
      type: Array
      sync: true
      model: true
      default: "[]"
      description: 当前文件列表
      group: 数据属性
      brifeDoc: ""
      docDescription: 当前的文件列表
      tooltipLink: ""
    - name: url
      title: 上传地址
      type: string
      description: 上传的 URL 地址
      required: true
      compType: interfaceSelect
      group: 数据属性
      brifeDoc: ""
      docDescription: 文件上传的URL地址，如/upload
      tooltipLink: ""
    - name: name
      title: 上传的文件字段
      type: string
      default: file
      description: 上传的文件字段名，后端需要这个字段获取
      group: 数据属性
      brifeDoc: ""
      docDescription: 默认file，支持自定义，后端通过该字段获取文件
      tooltipLink: ""
    - name: accept
      title: 支持上传的文件类型
      type: string
      place: 所有类型
      description: 若要限制上传文件类型，请输入类型名称，格式为“.后缀名”，多个文件类型时使用英文逗号隔开。例如“.jpeg,.png,.gif”
      tooltipLink: http://help.lcap.163yun.com/1.%E5%BC%80%E5%8F%91%E5%BA%94%E7%94%A8/2.%E9%A1%B5%E9%9D%A2/05.PC%E9%A1%B5%E9%9D%A2%E5%9F%BA%E7%A1%80%E7%BB%84%E4%BB%B6/06.%E8%A1%A8%E5%8D%95/150.%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0.html#%E7%BB%84%E4%BB%B6%E8%AF%B4%E6%98%8E
      group: 数据属性
      brifeDoc: ""
      docDescription: 支持对上传的文件类型进行限制，格式为“.后缀名”，如“.jpeg”表示仅支持上传jpeg格式的文件。多个文件类型时需使用英文逗号隔开，如“.jpeg,.png,.gif”表示仅支持上传jpeg、png、gif格式的文件。若为空值，则支持上传所有类型的文件
    - name: with-credentials
      title: cookie值
      type: boolean
      default: false
      description: 通过设置 withCredentials 为 true 获得的第三方 cookies，将会依旧享受同源策略
      group: 数据属性
      brifeDoc: ""
      docDescription: 通过设置 withCredentials 为 true 获得的第三方 cookies，将会依旧享受同源策略
      tooltipLink: ""
    - name: data
      title: 附加数据
      type: object
      description: ""
      group: 数据属性
      brifeDoc: ""
      docDescription: 补充描述
      tooltipLink: ""
    - name: limit
      title: 列表数量上限
      type: number
      description: ""
      group: 数据属性
      brifeDoc: ""
      docDescription: 列表数量上限，默认为999
      tooltipLink: ""
    - name: max-size
      title: 最大文件大小
      type: string
      description: 可上传的最大文件大小。默认为空，表示可上传任意大小的文件；如果为数字，则表示单位为字节；如果为字符串，可以添加以下单位：`KB`、`MB`、`GB`
      group: 数据属性
      brifeDoc: ""
      docDescription: 可上传的最大文件大小。默认50MB；如果为数字，则表示单位为字节；如果为字符串，可以添加以下单位kB、MB、GB
      tooltipLink: ""
    - name: list-type
      title: 列表类型
      type: string
      options:
        - title: 文本
          value: text
        - title: 图片
          value: image
        - title: 卡片
          value: card
      default: text
      description: ""
      group: 数据属性
      brifeDoc: ""
      docDescription: 列表的展示类型，支持使用文本、图片和卡片
      tooltipLink: ""
    - name: url-field
      title: URL 字段
      type: string
      default: url
      description: 请求返回的 URL 字段名
      group: 数据属性
      brifeDoc: ""
      docDescription: 请求返回的URL字段名
      tooltipLink: ""
    - name: file-icon-switcher
      title: 文件图标
      type: boolean
      description: 是否展示文件图标
      group: 主要属性
      default: true
      brifeDoc: ""
      docDescription: 是否展示文件图标
      tooltipLink: ""
      dependency:
      - list-type: text
    - name: icon-map
      type: Object
      default: {'doc|docx': 'file-doc', 'jpg|jpeg|png|bmp|gif|tiff|tif|webp|svg|psd|raw': 'file-jpg', 'pdf': 'file-pdf', 'xlsx': 'file-xlxs', 'txt': 'file-txt', 'ppt|pptx': 'file-ppt', 'zip': 'file-zip', 'csv': 'file-csv'}
      advanced: true
      hidden: true
    - name: file-type
      title: 文件类型
      type: string
      default: doc|docx
      options:
        - title: 文档
          value: doc|docx
        - title: 图片
          value: jpg|jpeg|png|bmp|gif|tiff|tif|webp|svg|psd|raw
        - title: PDF
          value: pdf
        - title: 表格
          value: xlsx
        - title: 文本
          value: txt
        - title: 幻灯片
          value: ppt|pptx
        - title: 压缩包
          value: zip
        - title: CSV
          value: csv
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: 列表的展示类型，支持使用文本、图片和卡片
      tooltipLink: ""
      dependency:
      - file-icon-switcher: true
        list-type: text
    - name: file-icon
      title: 文件图标
      type: file-icon
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: "支持从图标库选择图标或上传自定义图标。"
      tooltipLink: ""
      dependency:
      - file-icon-switcher: true
        list-type: text
    - name: download-icon-switcher
      title: 下载图标
      type: boolean
      default: true
      description: 是否展示下载图标
      group: 主要属性
      brifeDoc: ""
      docDescription: 是否展示下载图标
      tooltipLink: ""
      dependency:
      - list-type: text
    - name: download-icon
      title: 下载图标
      type: icon
      default: download
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: ""
      tooltipLink: ""
      dependency:
      - download-icon-switcher: true
        list-type: text
    - name: file-size
      title: 文件大小
      type: boolean
      description: 是否展示文件大小，单位小于1MB则展示KB，大于1MB则展示MB。
      group: 主要属性
      default: true
      brifeDoc: ""
      docDescription: 是否展示文件大小
      tooltipLink: ""
      dependency:
      - list-type: text
    - name: headers
      title: 请求 headers
      type: Object
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: 请求头
      tooltipLink: ""
    - name: multiple
      title: 多文件上传
      type: boolean
      default: false
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: 开启后可上传多个文件，默认关闭，多文件可设置数量上限
      tooltipLink: ""
    - name: multiple-once
      title: 一次性上传多文件
      type: boolean
      default: false
      description: 利用原生 multipart/form-data 传输多个文件的能力，一次性上传多个文件
      group: 主要属性
      brifeDoc: ""
      docDescription: 开启后支持一次性上传多个文件
      tooltipLink: ""
    - name: open-cropper
      title: 启用图片裁剪
      type: boolean
      default: false
      description: 设置是否启用图片裁剪功能，只对单文件上传有效
      group: 主要属性
      brifeDoc: ""
      docDescription: 开启后支持对选择的图片进行裁剪后上传
      tooltipLink: ""
    - name: fixedCropper
      title: 固定图片裁剪框大小
      type: boolean
      default: false
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: ""
      tooltipLink: ""
    - name: cropperBoxWidth
      title: 图片裁剪框宽度
      type: number
      default: 200
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: ""
      tooltipLink: ""
    - name: cropperBoxHeight
      title: 图片裁剪框高度
      type: number
      default: 200
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: ""
      tooltipLink: ""
    - name: cropperPreviewShape
      title: 图片裁剪框预览形状
      type: string
      options:
        - title: 正方形
          value: square
        - title: 圆形
          value: circle
      default: circle
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: ""
      tooltipLink: ""
    - name: cropperTitle
      title: 图片裁剪框标题
      type: string
      default: 图片裁剪
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: ""
      tooltipLink: ""
    - name: auto-upload
      title: 自动上传
      type: boolean
      default: true
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: 开启后选择文件后会自动上传，默认开启
      tooltipLink: ""
      advanced: true
      hidden: true
    - name: show-file-list
      title: 显示文件列表
      type: boolean
      default: true
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: 开启后上传多个文件时，会显示文件列表，默认开启
      tooltipLink: ""
    - name: converter
      title: 转换器
      type: string
      options:
        - title: JSON
          value: json
        - title: URL字符串
          value: simple
      default: json
      description: ""
      group: 主要属性
      brifeDoc: ""
      docDescription: 支持使用JSON或URL字符串
      tooltipLink: ""
    - name: display
      title: 展示方式
      type: string
      options:
        - value: inline
          title: 行内展示
        - value: block
          title: 块级展示，宽度会充满父元素
      default: block
      description: 行内展示，或块级换行展示
      group: 主要属性
      brifeDoc: ""
      docDescription: 支持行内展示或块级换行展示
      tooltipLink: ""
    - name: description
      title: 辅助文本
      type: string
      default: null
      description: 辅助说明的文本信息，如上传的数量、大小等，在上传组件下方展示。
      group: 主要属性
      brifeDoc: ""
      docDescription: 在上传组件下方展示一些提示信息，如上传的数量、大小等，默认为null
      tooltipLink: ""
    - name: showErrorMessage
      title: 报错信息
      type: boolean
      default: true
      description: 设置是否展示上传时的出错信息，如超出数量、大小
      group: 主要属性
      brifeDoc: ""
      docDescription: 是否展示上传时的出错信息，如超出数量、大小
      tooltipLink: ""
    - name: dragDescription
      title: 辅助文本
      type: string
      default: 点击/拖动/粘贴文件到这里
      description: 辅助说明的文本信息
      group: 主要属性
      brifeDoc: ""
      docDescription: 拖拽位置的文字指引
      tooltipLink: ""
    - name: check-file
      title: 文件校验
      type: Function
      description: 文件校验函数，可自定义校验规则，如文件名称包含特殊字符等，返回string类型的出错信息
      group: 主要属性
      brifeDoc: ""
      docDescription: 文件校验函数，可自定义校验规则，如文件名称包含特殊字符等，返回string类型的出错信息
      tooltipLink: ""
    - name: access
      title: 文件访问策略
      type: string
      options:
        - value: public
          title: 任何人可访问
        - value: private
          title: 用户登录后可访问
      group: 主要属性
      description: ""
      brifeDoc: ""
      docDescription: 支持任何人可访问和用户登录后可访问两种方式
      tooltipLink: ""
    - name: ttl
      title: 文件有效期
      type: boolean
      description: 是否开启文件有效期控制
      group: 主要属性
      brifeDoc: ""
      docDescription: 支持配置文件自动清理，开启后可自定义上传后有效天数
      tooltipLink: ""
    - name: ttlValue
      title: 上传后有效天数
      type: number
      description: 文件上传后的有效期天数
      depProp:
        - name: ttl
          value: true
      group: 主要属性
      brifeDoc: ""
      docDescription: 开启文件有效期开关后显示，可配置文件自动清理的时间
      tooltipLink: ""
    - name: viaOriginURL
      title: 源地址访问
      type: boolean
      description: 开启后支持通过文件存储源地址访问文件
      group: 主要属性
      brifeDoc: ""
      docDescription: 开启后支持通过文件存储源地址访问文件
      tooltipLink: ""
    - name: lcapIsCompress
      title: 启用压缩
      type: boolean
      description: 启用压缩后上传的文件按压缩规则进行压缩后上传，压缩规则可在自定义配置参数管理
      group: 主要属性
      brifeDoc: ""
      docDescription: 启用压缩后上传的文件按压缩规则进行压缩后上传，压缩规则可在自定义配置参数管理
      tooltipLink: ""
    - name: draggable
      title: 可拖拽
      type: boolean
      default: false
      description: ""
      group: 交互属性
      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: ""
  slots:
    - concept: Slot
      name: default
      description: 插入文本 或 HTML。
    - concept: Slot
      name: file-list
      title: 文件列表
      description: 文件列表。
  events:
    - name: before-upload
      title: 上传前
      description: 上传前触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/UploadEvent"
        - name: $event.file
          type: File
          description: 待上传的文件
        - name: $event.preventDefault
          type: Function
          description: 阻止上传流程
        - name: senderVM
          type: UUploader
          description: 发送事件对象
    - name: progress
      title: 进度改变时
      description: 发送进度改变时触发，在上传进度条时使用
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/UploadEvent"
        - name: $event.data
          type: object
          description: 进度相关信息
        - name: senderVM
          type: UUploader
          description: 发送事件对象
    - name: count-exceed
      title: 文件数量超额
      description: 文件数量超额时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/UploadErrorEvent"
        - name: $event.xml
          type: string
          description: 服务器回传信息
        - name: senderVM
          type: UUploader
          description: 发送事件对象
    - name: size-exceed
      title: 文件大小超额
      description: 文件大小超额时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/UploadErrorEvent"
        - name: $event.xml
          type: string
          description: 服务器回传信息
        - name: senderVM
          type: UUploader
          description: 发送事件对象
    - name: success
      title: 上传成功时
      description: 上传成功时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/UploadEvent"
        - name: $event.data
          type: object
          description: 服务器回传信息对象
        - name: $event.file
          type: object
          description: 上传文件信息，不包含文件主体内容
        - name: senderVM
          type: UUploader
          description: 发送事件对象
    - name: error
      title: 上传错误时
      description: 上传报错时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/UploadErrorEvent"
        - name: $event.name
          type: string
          description: 错误名
        - name: $event.message
          type: string
          description: 错误描述
        - name: $event.extensions
          type: string
          description: 限制类型
        - name: $event.maxSize
          type: number
          description: 限制大小
        - name: $event.size
          type: number
          description: 当前大小
        - name: senderVM
          type: UUploader
          description: 发送事件对象
    - name: remove
      title: 删除时
      description: 点击删除按钮时触发
      params:
        - name: $event
          type: object
          description: 自定义事件对象
          schema:
            $ref: "#/systemTypes/OperatorItemEvent"
        - name: $event.value
          type: object
          description: 当前展示项的数据信息
        - name: $event.item
          type: object
          description: 删除项的数据信息
        - name: $event.index
          type: number
          description: 删除项在数据列表中的索引
  methods:
    - name: select
      title: 选择
      description: 选择文件上传
      params: []
