组件抽象

This commit is contained in:
2022-07-30 11:20:13 +08:00
parent 0d238c29af
commit b9a46390e0
9 changed files with 206 additions and 123 deletions

View File

@ -0,0 +1,34 @@
<?php
namespace App\View\Components;
use App\Models\ProgramAppends;
use Illuminate\View\Component;
class Append extends Component
{
/**
* @var ProgramAppends
*/
public $append;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct(ProgramAppends $append)
{
$this->append = $append;
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|\Closure|string
*/
public function render()
{
return view('components.append');
}
}

View File

@ -0,0 +1,43 @@
<?php
namespace App\View\Components\Links;
use Illuminate\View\Component;
class UserLink extends Component
{
/**
* @var int|null
*/
public $plt_id;
/**
* @var string|null
*/
public $mid;
/**
* @var string
*/
public $name;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct(string $name, $pltId, $mid)
{
$this->plt_id = $pltId;
$this->mid = $mid;
$this->name = $name;
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|\Closure|string
*/
public function render()
{
return view('components.links.user_link');
}
}

View File

@ -0,0 +1,57 @@
<?php
namespace App\View\Components\Links;
use Carbon\Exceptions\InvalidFormatException;
use Illuminate\Support\Carbon;
use Illuminate\View\Component;
class VideoLink extends Component
{
/**
* @var string
*/
public $bvid;
/**
* @var int|string
*/
public $part;
/**
* @var string|null
*/
public $time;
/**
* @var int|string|null
*/
public $sec;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct(string $bvid, $part = 1, $time = null, $sec=null)
{
$this->bvid = $bvid;
$this->part = $part;
if ($sec == null) {
try {
$sec = Carbon::createFromFormat("H:i:s", $time)->secondsSinceMidnight();
} catch (InvalidFormatException $ex) {
$time = null;
}
}
$this->time = $time;
$this->sec = $sec;
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|\Closure|string
*/
public function render()
{
return view('components.links.video_link');
}
}