[ 'plugins_name' => 'article', 'component_name' => 'U_headline' ], //文章 'article' => [ 'plugins_name' => 'article', 'component_name' => 'U_article' ], //门店 'stores' => [ 'plugins_name' => 'store-cashier', 'component_name' => 'U_stores' ], //带货直播 'livestreaming' => [ 'plugins_name' => 'room', 'component_name' => 'U_livestreaming' ], //微社区 'community' => [ 'plugins_name' => 'micro-communities', 'component_name' => 'U_community' ], //幸运大转盘 'lottery' => [ 'plugins_name' => 'lucky-draw', 'component_name' => 'U_lottery' ], //短视频 'shortvideo' => [ 'plugins_name' => 'video-share', 'component_name' => 'U_shortvideo' ], //表单 'form' => [ 'plugins_name' => 'diyform', 'component_name' => 'U_form' ], //拼团 'goodsgroup' => [ 'plugins_name' => 'fight-groups', 'component_name' => 'U_goodsgroup' ], //星拼团 'stargroup' => [ 'plugins_name' => 'star-spell', 'component_name' => 'U_stargroup' ], //数据显示=>慈善基金 'memberdata' => [ 'plugins_name' => 'charity-fund', 'component_name' => 'U_memberdata' ], //门店排名 'storesranking' => [ 'plugins_name' => 'store-cashier', 'component_name' => 'U_storesranking' ], //门店数据显示 'homedata' => [ 'plugins_name' => 'store-cashier', 'component_name' => 'U_homedata' ], //芸客服客服数据显示 'staff' => [ 'plugins_name' => 'yun-chat', 'component_name' => 'U_staff' ], //订单阶梯团 'deposit' => [ 'plugins_name' => 'deposit-ladder', 'component_name' => 'U_deposit' ], //自提点 'selfpick' => [ 'plugins_name' => 'package-deliver', 'component_name' => 'U_selfpick' ], //益生系统 'ys_system' => [ 'plugins_name' => 'ys-system', 'component_name' => 'U_memberYs' ], //奖金池 'bounspool' => [ 'plugins_name' => 'xzhh-bonus-pool', 'component_name' => 'U_bonuspool' ], //律师平台 'lawyer' => [ 'plugins_name' => 'lawyer-platform', 'component_name' => 'U_lawyer', 'is_open' => 'Yunshop\LawyerPlatform\common\service\SetService' ], //todo is_open 对应的类应该实现某一接口,保证严谨、完整性 //多级选项卡 'moretabcontrol' => [ 'plugins_name' => 'moretabcontrol', 'component_name' => 'U_moretabcontrol', 'is_open' => '\Yunshop\Moretabcontrol\models\SetModel' ], //营销码 'wechatcode' => [ 'plugins_name' => 'marketing-qr', 'component_name' => 'U_wechatcode', 'is_open' => '\Yunshop\MarketingQr\common\models\SetModel' ], //以图扫图 'scan_picture' => [ 'plugins_name' => 'scan-picture', 'component_name' => 'U_scanpicture', 'is_open' => '\Yunshop\ScanPicture\common\services\DecorateService' ], 'coupon_store' => [ 'plugins_name' => 'coupon-store', 'component_name' => 'U_couponStore', 'is_open' => 'Yunshop\CouponStore\services\SettingService', ], 'web_design' => [ 'plugins_name' => 'web-design', 'component_name' => 'U_ webDesign', ], //tg-decorate 底部炫富按钮 'bottom_suspend_button' => [ 'plugins_name' => 'tg-decorate', 'component_name' => 'U_bottomSuspendButton', ], //新拼团 'ywmgroup' => [ 'plugins_name' => 'ywm-fight-groups', 'component_name' => 'U_ywmgroup', ], //新盲盒 'new_blind_box' => [ 'plugins_name' => 'new-blind-box', 'component_name' => 'U_newBlindBox', 'is_open' => '\Yunshop\NewBlindBox\services\SetService', ], 'task_package' => [ 'plugins_name' => 'task-package', 'component_name' => 'U_taskPackage', ], 'course_supply' => [ 'plugins_name' => 'course-supply', 'component_name' => 'U_courseSupply', ], //收入提现数据(区域外奖励插件) 'region_external_reward' => [ 'plugins_name' => 'region-external-reward', 'component_name' => 'U_regionExternalReward', ], 'tiktok_cps' => [ 'plugins_name' => 'tiktok-cps', 'component_name' => 'U_tiktokCps', ], 'yz_supply_cake' => [ 'plugins_name' => 'yz-supply-cake', 'component_name' => 'U_yzSupplyCake', ], 'yz_supply_camilo_resources' => [ 'plugins_name' => 'yz-supply-camilo-resources', 'component_name' => 'U_yzSupplyCamiloResources', ], 'travel_around' => [ 'plugins_name' => 'travel-around', 'component_name' => 'U_travelAround', ], 'union_cps' => [ 'plugins_name' => 'union-cps', 'component_name' => 'U_unionCps', ], 'yz_supply_product_album' => [ 'plugins_name' => 'yz-supply', 'component_name' => 'U_productAlbum', ], ]; } /** * 获取有效的组件 */ protected static function getValidComponent() { $pluginsComponent = self::getPluginsComponent(); $componentData = static::$componentData; foreach ($pluginsComponent as $key => $value) { if (app('plugins')->isEnabled($value['plugins_name'])) { $is_open = true; if ($value['is_open']) { $myclass = new \ReflectionClass($value['is_open']); //获取组件对应的类 $myclass = $myclass->newInstance(); $is_open = $myclass->is_open(); } if ($is_open === true) { $componentData[] = $value['component_name']; } } } return $componentData; } /** * 获取开启的插件 */ protected static function getOpenPlugin() { $plugin_name = static::$plugin_name; foreach ($plugin_name as $key => $value) { if (!app('plugins')->isEnabled($value)) { unset($plugin_name[$key]); } } return $plugin_name; } protected static function getPluginLink() { return [ static::shopPage(), static::memberCenter(), static::weightValue(), static::otherLink(), ]; } /** * 商城页面 * @return array */ protected static function shopPage() { $name = '商城页面'; $data = [ ['name' => '商城首页', 'mini_url' => '/packageG/index/index', 'url' => 'home'], ['name' => '分类导航', 'mini_url' => '/packageG/pages/category_v2/category_v2', 'url' => 'category'], ['name' => '全部商品', 'mini_url' => '/packageB/member/category/search_v2/search_v2', 'url' => 'search'], ['name' => '门店聚合页', 'mini_url' => '/packageC/o2o/o2oHome/o2oHome', 'url' => 'o2o/home', 'plugin_name' => 'store-cashier'], ]; $data = static::delNotOpenPlugin($data); return [ 'name' => $name, 'data' => $data ]; } /** * 会员中心 * @return array */ protected static function memberCenter() { $name = '会员中心'; $data = [ ['name' => '会员中心', 'mini_url' => '/packageG/member_v2/member_v2', 'url' => 'member'], ['name' => '我的订单', 'mini_url' => '/packageA/member/myOrder_v2/myOrder_v2', 'url' => 'member/orderList/0'], ['name' => '购物车', 'mini_url' => '/packageG/pages/buy/cart_v2/cart_v2', 'url' => 'cart'], ['name' => '我的收藏', 'mini_url' => '/packageD/member/collection/collection', 'url' => 'member/collection'], ['name' => '我的足迹', 'mini_url' => '/packageD/member/footprint/footprint', 'url' => 'member/footprint'], ['name' => '我的优惠券', 'mini_url' => '/packageA/member/coupon_v2/coupon_v2', 'url' => 'coupon/coupon_index'], ['name' => '会员充值', 'mini_url' => '/packageA/member/balance/balance/balance', 'url' => 'member/balance'], ['name' => '余额明细', 'mini_url' => '/packageA/member/balance/detailed/detailed', 'url' => 'member/detailed'], ]; return [ 'name' => $name, 'data' => $data ]; } /** * Common: 经纪人相关链接 * Author: wu-hui * Time: 2023/10/19 11:51 * @return array */ protected static function weightValue(){ $name = '经纪人'; $uniacid = \YunShop::app()->uniacid; // 获取经销商等级列表 $lvList = TeamDividendLevelModel::uniacid() ->select(['id','level_name']) ->get() ->toArray(); $data = []; foreach($lvList as $lvIndex => $lvItem){ $data[] = [ 'name' => $lvItem['level_name'].'中心', 'mini_url' => '', 'path_url' => yzAppFullUrl('member/weight_value_home',['team_level_id'=>$lvItem['id']]), 'url' => "member/weight_value_home?i={$uniacid}&team_level_id={$lvItem['id']}&", ]; } return [ 'name' => $name, 'data' => $data ]; } /** * 其他链接 * @return array */ protected static function otherLink() { $name = '其他链接'; //如果是插件请加上plugin_name $data = [ ['name' => '会员信息', 'mini_url' => '/packageA/member/info/info', 'url' => 'member/info', 'plugin_name' => ''], ['name' => '积分', 'mini_url' => '/packageB/member/integral/integral', 'url' => 'member/integral_v2'], ['name' => '收入提现', 'mini_url' => '/packageA/member/withdrawal/withdrawal', 'url' => 'member/withdrawal'], ['name' => '收入明细', 'mini_url' => '/packageA/member/extension/incomedetails/incomedetails', 'url' => 'member/incomedetails'], ['name' => '收货地址', 'mini_url' => '/packageD/member/addressList/addressList', 'url' => 'member/address'], ['name' => '添加收货地址', 'mini_url' => '/packageD/member/addressAdd_v2/addressAdd_v2', 'url' => 'member/appendAddress'], ['name' => '我的客户', 'mini_url' => '/packageD/member/myRelationship/myRelationship', 'url' => 'member/myrelationship'], ['name' => '我的评价', 'mini_url' => '/packageD/member/myEvaluation/myEvaluation', 'url' => 'member/myEvaluation'], ['name' => '推广中心', 'mini_url' => '/packageG/pages/member/extension/extension', 'url' => 'member/extension'], ['name' => '售后列表', 'mini_url' => '/packageD/member/myOrder/Aftersaleslist/Aftersaleslist', 'url' => 'member/aftersaleslist'], ['name' => '领券中心', 'mini_url' => '/packageD/coupon/coupon_store', 'url' => 'coupon/coupon_store'], ['name' => '搜索', 'mini_url' => '/packageB/member/category/search_v2/search_v2', 'url' => 'search'], ['name' => '品牌列表', 'mini_url' => '/packageB/member/category/brand_v2/brand_v2', 'url' => 'brand'], ['name' => '【新】我的客户', 'mini_url' => '/packageF/others/customerCenter/customerCenterIndex/customerCenterIndex', 'url' => 'customerCenterIndex', 'plugin_name' => 'customer-center'], ['name' => '微社区', 'mini_url' => '/packageC/micro_communities/microIndex/microIndex', 'url' => 'microHome/microIndex', 'plugin_name' => 'micro-communities'], ['name' => '分销商', 'mini_url' => '/packageA/member/distribution/distribution', 'url' => 'extension/distribution', 'plugin_name' => 'commission'], ['name' => '名片中心', 'mini_url' => '/packageB/member/business_card/CardCenter/CardCenter', 'url' => 'business_card/card_center', 'plugin_name' => 'business-card'], ['name' => '签到', 'mini_url' => '/packageA/member/sign/sign', 'url' => 'member/sign', 'plugin_name' => 'sign'], ['name' => '排行榜', 'mini_url' => '/packageE/Rankings/Rankings', 'url' => 'Rankings', 'plugin_name' => 'ranking'], ['name' => '发现视频', 'mini_url' => '/packageC/video_goods/VideoList/VideoList', 'url' => 'videoList', 'plugin_name' => 'video-share'], ['name' => '音频文章', 'mini_url' => '/packageA/member/course/VoiceList/VoiceList', 'url' => 'voiceList', 'plugin_name' => 'article'], ['name' => '带货直播列表', 'mini_url' => '/packageD/directSeeding/liveList/liveList', 'url' => 'liveList', 'plugin_name' => 'room'], ['name' => '拼团列表', 'mini_url' => '/packageB/member/group/GroupList/GroupList', 'url' => 'group_list', 'plugin_name' => 'fight-groups'], ['name' => '我的拼团', 'mini_url' => '/packageB/member/group/MyGroups/MyGroups', 'url' => 'mygroups', 'plugin_name' => 'fight-groups'], ['name' => '帮助中心(旧)', 'mini_url' => '', 'url' => 'member/helpcenter'], ['name' => '帮助中心(新)', 'mini_url' => '', 'url' => 'member/new_help/index'], ['name' => '典藏室', 'mini_url' => '', 'url' => 'member/collection_room'], ['name' => '关于我们', 'mini_url' => '', 'url' => 'member/tool/about_us'], ]; $data = static::delNotOpenPlugin($data); return [ 'name' => $name, 'data' => $data ]; } /** * 处理插件没开的链接 * @param array $pluginList * @return array */ protected static function delNotOpenPlugin(array $pluginList): array { foreach ($pluginList as $pluginKey => &$plugin) { //没开启的插件就不用显示了 if (isset($plugin['plugin_name'])) { if (!app('plugins')->isEnabled($plugin['plugin_name'])) { unset($pluginList[$pluginKey]); } unset($pluginList[$pluginKey]['plugin_name']); } //完整url $plugin['path_url'] = isset($plugin['url']) ? yzAppFullUrl($plugin['url']) : null; } $pluginList = array_values($pluginList); return $pluginList; } public static function getComponentList() { $data = []; $data['componentList'] = static::getValidComponent(); $data['open_plugin'] = static::getOpenPlugin(); $data['plugin_link'] = static::getPluginLink(); if (!is_null($event_arr = \app\common\modules\shop\ShopConfig::current()->get('decorate_get_component_list_plugin_data'))) { foreach ($event_arr as $key => $event) { $class = array_get($event, 'class'); $function = array_get($event, 'function'); $res = $class::$function(); if ($res) { $data['plugin_data'][$key] = $res; } } } return $data; } }