15061959991 1adf627c0d feat: 财务系统二次开发 - 营销账户账单功能
- 基础环境:Docker 部署配置,源码挂载实时同步
- 修复:super_admin 权限补全、登录重定向循环
- 开发:店铺营销账户账单 - 抖音账户(15字段汇总账单)
- 开发:店铺营销账户账单 - 淘系支付宝账户(8字段流水账单)
- 开发:店铺营销账户账单 - 拼多多账户(7字段流水账单)
- 业务页面导航集成:config/business_navigation.php + Business\Pages 控制器
- 各平台独立表结构和视图,互不影响
2026-07-21 18:43:52 +08:00

87 lines
1.9 KiB
PHP

<?php
namespace App\View\Components;
use App\Abstracts\View\Component;
use Illuminate\Support\Str;
class Icon extends Component
{
/** @var string */
public $icon;
/** @var string */
public $class;
/** @var bool */
public $filled;
/** @var bool */
public $rounded;
/** @var bool */
public $sharp;
/** @var bool */
public $simpleIcons;
/** @var bool */
public $custom;
/** @var string */
public $alias;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct(
string $icon = '', string $class = '',
bool $filled = false, bool $rounded = false, bool $sharp = false,
bool $simpleIcons = false, bool $custom = false, string $alias = ''
) {
$this->icon = $icon;
$this->class = ($simpleIcons) ? 'w-8 h-8 ' . $class : $class;
$this->filled = $filled;
$this->rounded = $rounded;
$this->sharp = $sharp;
$this->simpleIcons = $simpleIcons;
$this->custom = $custom;
$this->alias = $alias;
if ($custom) {
$this->icon = $this->getCustomIcon($icon, $alias);
}
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|string
*/
public function render()
{
return view('components.icon');
}
protected function getCustomIcon($icon, $alias)
{
$slug = Str::replace('custom-', '', $icon);
$base_path = 'public/img/icons/';
if (! empty($alias)) {
$base_path = 'modules/' . Str::studly($alias) . '/Resources/assets/img/icons/';
}
$path = base_path($base_path . $slug . '.svg');
if (! file_exists($path)) {
$path = 'public/img/akaunting-logo-purple.svg';
}
return $path;
}
}