图片组件

组件说明

图片组件用于上传和管理图片文件,支持单图和多图上传、裁剪等功能。

用法示例

use plugin\xbCode\builder\Builder;
use plugin\xbCode\builder\Renders\Form;

Builder::form(function (Form $builder) {
    // 单图上传
    $builder->addRowImage('avatar', '头像', '', function($component) {
        $component->receiver('${UPLOAD_FILE_API}');
        $component->maxSize(2097152); // 2MB
        $component->accept('.jpg,.png,.gif');
        $component->crop(true); // 开启裁剪
    });

    // 多图上传
    $builder->addRowImage('photos', '相册', '', [
        'multiple' => true,
        'maxLength' => 9,
        'draggable' => true, // 可拖拽排序
        'limit' => [
            'width' => 1920,
            'height' => 1080
        ]
    ]);

    // 固定尺寸图片
    $builder->addRowImage('banner', 'Banner图', '', function($component) {
        $component->fixedSize(true);
        $component->fixedSizeClassName('h-30');
        $component->crop([
            'aspectRatio' => 16/9, // 裁剪比例
            'rotatable' => true,
            'scalable' => true
        ]);
    });
});

组件参数

参数名类型默认值说明
namestring-字段名称
labelstring-字段标签
valuestring|array-默认值,单图为字符串,多图为数组
receiverstring-上传文件接口
acceptstring-支持的图片类型格式,如:.jpg,.png
capturestring-移动端输入来源控制
maxSizeint-文件大小限制,单位为B
maxLengthint-最大上传数量
multipleboolfalse是否多选
joinValuesboolfalse是否拼接值
extractValuebooltrue是否提取值
delimiterstring','拼接符
autoUploadbooltrue是否选择完就自动开始上传
hideUploadButtonboolfalse是否隐藏上传按钮
fileFieldstring'file'文件字段名
cropbool|arrayfalse是否支持裁剪,可配置裁剪参数
limitarray-限制图片大小,如:['width' => 1920, 'height' => 1080]
frameImagestring-默认占位图地址
fixedSizeboolfalse是否开启固定尺寸
fixedSizeClassNamestring-固定尺寸时的CSS类名,如:h-30
initAutoFillbooltrue表单反显时是否执行autoFill
uploadBtnTextstring|array-上传按钮文案
dropCropboolfalse图片上传后是否进入裁剪模式
initCropboolfalse初始化后是否立即进入裁剪模式
draggableboolfalse开启后支持拖拽排序
draggableTipstring-拖拽提示文案
classNamestring-CSS类名
requiredboolfalse是否必填
disabledboolfalse是否禁用

使用说明

  1. receiver默认使用全局上传接口${UPLOAD_FILE_API}
  2. accept可以限制上传的图片格式,如:.jpg,.png,.gif
  3. maxSize单位是字节(B),1MB = 1048576B
  4. crop支持图片裁剪,可以传入裁剪配置对象:
  5. limit可以限制图片的宽高尺寸
  6. multiple为true时支持多图上传
  7. draggable为true时可以拖拽调整图片顺序
  8. fixedSize配合fixedSizeClassName使用,可以固定图片展示尺寸