Files
panchengyong c1e74d8e68 chore(php): 统一 ScottPan 文件头与注释域名替换
- 按 docs/renew-code-comment.md 将 PHP 文件头改为带边框的 Author 注释\n- 注释中的 crmeb.com 替换为 uj345.cn(代码字符串中的外链未改)\n- 新增 docs/renew-code-comment.md 说明

Made-with: Cursor
2026-03-29 11:22:58 +08:00

135 lines
2.8 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
// +----------------------------------------------------------------------
// | Author: ScottPan Team
// +----------------------------------------------------------------------
namespace crmeb\form\components;
use crmeb\form\BaseComponent;
use crmeb\form\BuildInterface;
/**
* 图片选择组件
* Class UploadFrame
* @package crmeb\form\components
*/
class UploadFrame extends BaseComponent implements BuildInterface
{
/**
* 组件名
*/
const NAME = 'uploadFrame';
/**
* 规则
* @var array
*/
protected $rule = [
'upload' => [
'url' => '',
'width' => '960px',
'height' => '505px',
'field' => 'att_dir',
'maxNum' => 1,
],
'field' => '',
'title' => '',
'value' => '',
'info' => '',
];
/**
* UploadFrame constructor.
* @param string $field
* @param string $title
* @param null $value
*/
public function __construct(string $field, string $title, $value = null)
{
$this->rule['title'] = $title . '';
$this->rule['field'] = $field;
$this->rule['value'] = !is_null($value) ? $value : null;
}
/**
* 设置iframe跳转地址
* @param string $url
* @return $this
*/
public function url(string $url)
{
$this->rule['upload']['url'] = $url;
return $this;
}
/**
* 设置iframe宽
* @param string $width
* @return $this
*/
public function width(string $width = '960px')
{
$this->rule['upload']['width'] = $width;
return $this;
}
/**
* 设置iframe高
* @param string $height
* @return $this
*/
public function height(string $height = '505px')
{
$this->rule['upload']['height'] = $height;
return $this;
}
/**
* 设置提取字段
* @param string $field
* @return $this
*/
public function field(string $field)
{
$this->rule['upload']['field'] = $field;
return $this;
}
/**
* 多图单图选择
* @param int $maxNum
* @return $this
*/
public function maxNum(int $maxNum = 1)
{
$this->rule['upload']['maxNum'] = $maxNum;
return $this;
}
/**
* 设置提示
* @param string $info
* @return $this
*/
public function info(string $info)
{
$this->rule['info'] = $info;
return $this;
}
/**
* @return array
*/
public function toArray(): array
{
if ($this->rule['upload']['maxNum'] > 1 && $this->rule['value'] && !is_array($this->rule['value'])) {
$this->rule['value'] = [];
}
$this->rule['name'] = self::NAME;
$this->before();
return $this->rule;
}
}