| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- <?php
- namespace app\common\modules\widget;
- class Widget
- {
- /**
- * @var self
- */
- static $current;
- private $items;
- /**
- * Income constructor.
- */
- public function __construct()
- {
- self::$current = $this;
- }
- static public function current()
- {
- if (!isset(self::$current)) {
- return new static();
- }
- return self::$current;
- }
- private function _getItems()
- {
- $result = [
- 'vue-goods' => [
- 'base' => [
- 'title' => '基础信息',
- 'class' => \app\backend\modules\goods\widget\GoodsWidget::class,
- ],
- 'param' => [
- 'title' => '属性',
- 'class' => \app\backend\modules\goods\widget\ParamWidget::class,
- ],
- 'describe' => [
- 'title' => '商品描述',
- 'class' => \app\backend\modules\goods\widget\DescribeWidget::class,
- ],
- 'option' => [
- 'title' => '商品规格',
- 'class' => \app\backend\modules\goods\widget\OptionWidget::class,
- ],
- 'dispatch' => [
- 'title' => '配送',
- 'class' => \app\backend\modules\goods\widget\DispatchWidget::class,
- ],
- 'discount' => [
- 'title' => '折扣',
- 'class' => \app\backend\modules\goods\widget\DiscountWidget::class,
- ],
- 'sale' => [
- 'title' => '营销',
- 'class' =>\app\backend\modules\goods\widget\SaleWidget::class,
- ],
- 'notice' => [
- 'title' => '消息通知',
- 'class' =>\app\backend\modules\goods\widget\NoticeWidget::class,
- ],
- 'filtering' => [
- 'title' => '商品标签',
- 'class' =>\app\backend\modules\goods\widget\FilteringWidget::class,
- ],
- 'service' => [
- 'title' => '服务提供',
- 'class' =>\app\backend\modules\goods\widget\ServiceWidget::class,
- ],
- 'div_from' => [
- 'title' => '表单',
- 'class' =>\app\backend\modules\goods\widget\DivFromWidget::class,
- ],
- 'share' => [
- 'title' => '分享关注',
- 'class' => \app\backend\modules\goods\widget\ShareWidget::class,
- ],
- 'privilege' => [
- 'title' => '权限',
- 'class' => \app\backend\modules\goods\widget\PrivilegeWidget::class,
- ],
- 'coupon' => [
- 'title' => '优惠券',
- 'class' => \app\backend\modules\goods\widget\CouponWidget::class,
- ],
- 'limitbuy' => [
- 'title' => '限时购',
- 'class' => \app\backend\modules\goods\widget\LimitBuyWidget::class,
- ],
- 'invite_page' => [
- 'title' => '邀请页面',
- 'class' => \app\backend\modules\goods\widget\InvitePageWidget::class,
- ],
- 'advertising' => [
- 'title' => '广告宣传语',
- 'class' => \app\backend\modules\goods\widget\AdvertisingWidget::class,
- ],
- 'spec_info' => [
- 'title' => '规格信息',
- 'class' => \app\backend\modules\goods\widget\SpecInfoWidget::class,
- ],
- 'trade_set' => [
- 'title' => '交易设置',
- 'class' => \app\backend\modules\goods\widget\TradeSetWidget::class,
- ],
- ],
- 'withdraw' => [
- 'income' => [
- 'title' => '收入提现基础设置',
- 'class' => 'app\backend\widgets\finance\IncomeWidget',
- ],
- 'notice' => [
- 'title' => '收入提现通知',
- 'class' => 'app\backend\widgets\finance\WithdrawNoticeWidget',
- ]
- ],
- 'member' => [
- ],
- //vue统一订单详情页显示挂件
- 'order_detail' => [
- 'order_tax_fees' => [
- 'title' => '含税',
- 'class' => 'app\backend\widgets\order\detail\TaxFeesWidget',
- ],
- ],
- ];
- $plugins = app('plugins')->getEnabledPlugins('*');
- foreach ($plugins as $plugin) {
- foreach ($plugin->app()->getWidgetItems() as $key => $item) {
- array_set($result, $key, $item);
- }
- }
- return $result;
- }
- public function getItems()
- {
- if (!isset($this->items)) {
- $this->items = $this->_getItems();
- }
- return $this->items;
- }
- public function getItem($key)
- {
- return array_get($this->getItems(), $key);
- }
- public function clearItems()
- {
- $this->items = null;
- }
- }
|