add:新增excel的导入导出组件
This commit is contained in:
parent
f67a4f33d5
commit
48c41f7948
@ -30,9 +30,9 @@ trait ComponentsTrait
|
|||||||
* @param null $updateFields
|
* @param null $updateFields
|
||||||
* @return HeaderItem
|
* @return HeaderItem
|
||||||
*/
|
*/
|
||||||
public function withSwitchComponent($updateFields = null): HeaderItem
|
public function withSwitchComponent(array $options = [], $updateFields = null): HeaderItem
|
||||||
{
|
{
|
||||||
return $this->component('switch_', $updateFields ? : $this->attributes['prop']);
|
return $this->component('switch_', $updateFields ? : $this->attributes['prop'], $options);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
109
extend/catcher/library/table/Excel.php
Normal file
109
extend/catcher/library/table/Excel.php
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
<?php
|
||||||
|
namespace catcher\library\table;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @time 2021年04月21日
|
||||||
|
*/
|
||||||
|
class Excel
|
||||||
|
{
|
||||||
|
protected static $label;
|
||||||
|
|
||||||
|
protected $sheets = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* name
|
||||||
|
*
|
||||||
|
* @time 2021年04月21日
|
||||||
|
* @param string $name
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function prop(string $name): Excel
|
||||||
|
{
|
||||||
|
$this->sheets['prop'] = $name;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* label
|
||||||
|
*
|
||||||
|
* @time 2021年04月21日
|
||||||
|
* @param string $label
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
protected function label(string $label): Excel
|
||||||
|
{
|
||||||
|
$this->sheets['label'] = $label;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* options
|
||||||
|
*
|
||||||
|
* @time 2021年04月21日
|
||||||
|
* @param array $options
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function options(array $options): Excel
|
||||||
|
{
|
||||||
|
$this->sheets['options'] = $options;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入
|
||||||
|
*
|
||||||
|
* @time 2021年04月22日
|
||||||
|
* @param bool $import
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function import(bool $import = true): Excel
|
||||||
|
{
|
||||||
|
$this->sheets['import'] = $import;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出
|
||||||
|
*
|
||||||
|
* @time 2021年04月22日
|
||||||
|
* @param bool $export
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function export(bool $export = true): Excel
|
||||||
|
{
|
||||||
|
$this->sheets['export'] = $export;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 渲染
|
||||||
|
*
|
||||||
|
* @time 2021年04月21日
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function render(): array
|
||||||
|
{
|
||||||
|
return $this->sheets;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 静态访问
|
||||||
|
*
|
||||||
|
* @time 2021年04月21日
|
||||||
|
* @param $method
|
||||||
|
* @param $params
|
||||||
|
* @return false|mixed
|
||||||
|
*/
|
||||||
|
public static function __callStatic($method, $params)
|
||||||
|
{
|
||||||
|
return call_user_func_array([new self(), $method], $params);
|
||||||
|
}
|
||||||
|
}
|
@ -73,6 +73,31 @@ class HeaderItem
|
|||||||
return $this->width(50)->type('selection');
|
return $this->width(50)->type('selection');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dont export
|
||||||
|
*
|
||||||
|
* @time 2021年04月22日
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function dontExport(): HeaderItem
|
||||||
|
{
|
||||||
|
$this->attributes['export'] = false;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dont import
|
||||||
|
*
|
||||||
|
* @time 2021年04月22日
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function dontImport(): HeaderItem
|
||||||
|
{
|
||||||
|
$this->attributes['import'] = false;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 动态访问
|
* 动态访问
|
||||||
|
@ -98,6 +98,21 @@ class Table
|
|||||||
*/
|
*/
|
||||||
protected $forceUpdate = false;
|
protected $forceUpdate = false;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $excel = [];
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出 excel 所使用 model
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $usedModel;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table constructor.
|
* Table constructor.
|
||||||
* @param string $ref
|
* @param string $ref
|
||||||
@ -167,6 +182,25 @@ class Table
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* excel 信息
|
||||||
|
*
|
||||||
|
* @time 2021年04月21日
|
||||||
|
* @param array $excel
|
||||||
|
* @param string $usedModel
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function withUsedModelAndExcel(string $usedModel, array $excel): Table
|
||||||
|
{
|
||||||
|
foreach ($excel as $e) {
|
||||||
|
$this->excel[] = $e->render();
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->usedModel = $usedModel;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set
|
* set
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user