音频组件

代码示例

namespace plugin\xbCode\app\demo\controller;

use support\Request;
use plugin\xbCode\XbController;
use plugin\xbCode\builder\Builder;
use plugin\xbCode\builder\Renders\Form;

class AudioDemoController extends XbController
{
  /**
   * 添加带音频上传的示例表单
   * @param \support\Request $request
   * @return \support\Response
   */
  public function add(Request $request)
  {
    if ($request->method() === 'POST') {
      $post = $request->post();
      // 这里的 audio 字段就是上传后的音频地址 / 对象
      // TODO: 根据你的业务保存 $post['audio']
      // 保存逻辑略
      return $this->success('保存成功');
    }

    $builder = Builder::form(function (Form $builder) {
      // 不包面板,仅示例,可按需调整
      $builder->useForm()->wrapWithPanel(false);

      // 添加上传音频组件
      $builder->addRowUploadAudio('audio', '音频文件')
        // 仅允许选择音频类型(浏览器 accept,前端校验)
        ->accept('audio/*')
        // 单文件上传(如需多文件传 true)
        ->multiple(false)
        // 限制最大 10MB
        ->maxSize(10 * 1024 * 1024)
        // 选择后自动上传
        ->autoUpload(true)
        // 按需选择是否允许拖拽上传
        ->drag(true)
        // 描述信息
        ->description('仅支持 mp3、wav 等音频格式,最大 10MB');
    });

    // 表单提交方法
    $builder->setMethod('POST');

    return $this->successRes($builder);
  }
}

通用组件参数

参数名类型说明
typestring渲染器类型(组件类型)
classNamestring外层 Dom 的类名
stylearray外层 Dom 样式
refstring组件引用 id
disabledbool是否禁用
disabledOnstring禁用条件表达式
disabledTipstring按钮失效提示文案
hiddenbool是否隐藏
hiddenOnstring隐藏条件表达式
visiblebool是否可见
visibleOnstring可见条件表达式
idstring组件 ID
valuemixed组件值
onEventarray事件配置
getValuemixed组件取值时自定义处理(前端 schema)
setValuemixed组件赋值提交时自定义处理(前端 schema)
onDeletemixed删除时自定义处理(前端 schema)
defaultAttr-默认属性(内部使用)
这些参数可以在任何组件上通过链式调用设置,例如:$component->className('w-full')->hiddenOn('this.disabled');

通用表单项参数

参数名类型说明
sizestring表单项尺寸:xssmbasemdlg
labelstring表单项标签(字段显示名称)
labelClassNamestring标签区域 CSS 类名
namestring字段名(提交时使用的 key)
remarkstring备注文字
clearablestring是否可清除(AMIS 里通常是 bool,builder 这里按 string 透传)
labelRemarkstring标签旁的小图标提示文字
hintstring输入框下方的提示信息
submitOnChangestring值变化时是否立即提交
readOnlystring是否只读
readOnlyOnstring只读条件表达式
validateOnChangestring值变化时是否触发校验
descriptionstring描述信息(显示在组件下方)
descstring描述信息别名(等价于 description
descriptionClassNamestring描述信息 CSS 类名
modestring展示模式(normalinline 等)
horizontalstring水平布局配置(跟 AMIS 一致,通常是对象,这里透传)
inlinestring是否内联布局
inputClassNamestring输入区域 CSS 类名
placeholderstring占位提示文本
requiredbool是否必填
requiredOnstring必填条件表达式
validationErrorsarray各验证规则对应的错误文案
validationsarray验证规则配置
valuemixed默认值
clearValueOnHiddenstring隐藏时是否清空当前字段值
validateApistring | int远程验证 API 配置
columnRatiostring | int在一行中的宽度占比(如 3、6、12)

音频组件参数

参数名类型说明
typestring组件类型,固定为 'input-file'
receiverstring上传文件接口地址(构造函数中默认 ${UPLOAD_FILE_API}
acceptstring支持的文件类型,例:audio/*.mp3,.wav
capturestring移动端 input[type=file] 的 capture 属性,控制音频来源(如麦克风)
asBase64bool是否将文件内容以 base64 形式赋值
asBlobbool是否将文件以二进制 Blob 形式赋值
maxSizeint单个文件大小限制(单位:B,字节)
maxLengthint一次最多上传的文件数量
multiplebool是否允许一次选择多个文件
dragbool是否启用拖拽上传
joinValuesbool是否将多文件值用分隔符拼接为字符串
extractValuebool是否只提取文件的某个字段值(配合 valueField
delimiterstringjoinValues 时使用的分隔符
autoUploadbool选择文件后是否自动开始上传
hideUploadButtonbool是否隐藏上传按钮(通常配合拖拽区域使用)
stateTextMaparray上传状态文案映射,如 { init: '准备中', uploading: '上传中', error: '出错', ... }
fileFieldstring表单中文件二进制字段名(FormData 里对应的字段)
nameFieldstring文件名字段名
valueFieldstring提交时作为“值”的字段名(如文件 ID、URL 等)
urlFieldstring文件下载地址字段名
btnLabelstring上传按钮文字
downloadUrlbool | string是否支持下载 / 下载 URL 模板
useChunkbool | string是否启用分块上传
chunkSizeint分块大小,默认 5MB(构造函数中未改动,沿用 AMIS 默认)
startChunkApistring分块上传开始接口(构造函数中默认 ${UPLOAD_CHUNK_START_API}
chunkApistring分块上传接口(构造函数中默认 ${UPLOAD_CHUNK_API}
finishChunkApistring分块上传完成接口(构造函数中默认 ${UPLOAD_CHUNK_FINISH_API}
concurrencyint分块上传时并发请求数
documentationstring文档说明内容(可在前端展示为帮助说明)
documentLinkstring文档链接地址
initAutoFillbool表单反显时是否执行 autoFill(用于回填已有文件信息)