This commit is contained in:
2023-03-08 09:16:04 +08:00
commit e78454540f
1318 changed files with 210569 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
<?php
namespace App\Admin\Controllers;
use Encore\Admin\Controllers\AuthController as BaseAuthController;
class AuthController extends BaseAuthController
{
}

View File

@@ -0,0 +1,183 @@
<?php
namespace App\Admin\Controllers;
use Encore\Admin\Admin;
use Illuminate\Contracts\View\Factory;
use Illuminate\Support\Arr;
use Illuminate\View\View;
use Nwidart\Modules\Facades\Module;
class Dashboard
{
/**
* @return Factory|View
*/
public static function title()
{
return view('admin.dashboard.title');
}
/**
* @return Factory|View
*/
public static function environment()
{
$envs = [
['name' => 'PHP version', 'value' => 'PHP/'.PHP_VERSION],
['name' => 'Laravel version', 'value' => app()->version()],
['name' => 'CGI', 'value' => php_sapi_name()],
['name' => 'Uname', 'value' => php_uname()],
['name' => 'Server', 'value' => Arr::get($_SERVER, 'SERVER_SOFTWARE')],
['name' => 'Cache driver', 'value' => config('cache.default')],
['name' => 'Session driver', 'value' => config('session.driver')],
['name' => 'Queue driver', 'value' => config('queue.default')],
['name' => 'Timezone', 'value' => config('app.timezone')],
['name' => 'Locale', 'value' => config('app.locale')],
['name' => 'Env', 'value' => config('app.env')],
['name' => 'URL', 'value' => config('app.url')],
];
return view('admin.dashboard.environment', compact('envs'));
}
/**
* @return Factory|View
*/
public static function extensions()
{
$extensions = [
'user' => [
'name' => '用户模块',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-user-module',
'icon' => 'users',
],
'chain' => [
'name' => '区块链管理',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-chain-module',
'icon' => 'chain',
],
'lottery' => [
'name' => '抽奖模块',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-lottery-module',
'icon' => 'gavel',
],
'task' => [
'name' => '任务模块',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-task-module',
'icon' => 'hourglass-end',
],
'cms' => [
'name' => '内容管理',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-cms-module',
'icon' => 'book',
],
'appversion' => [
'name' => 'App版本',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-appversion-module',
'icon' => 'apple',
],
'mall' => [
'name' => '多用户商城',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-mall-module',
'icon' => 'shopping-cart',
],
'payment' => [
'name' => '支付模块',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-payment-module',
'icon' => 'paypal',
],
'company' => [
'name' => '企业管理',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-company-module',
'icon' => 'black-tie',
],
'coupon' => [
'name' => '优惠券模块',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-coupon-module',
'icon' => 'qrcode',
],
'settlement' => [
'name' => '结算模块',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-settlement-module',
'icon' => 'sliders',
],
'configuration' => [
'name' => '参数配置',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-configuration-module',
'icon' => 'cogs',
],
'withdraw' => [
'name' => '提现管理',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-withdraw-module',
'icon' => 'clock-o',
],
'notification' => [
'name' => '消息中心',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-notification-module',
'icon' => 'envelope',
],
'linker' => [
'name' => '链接管理',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-linker-module',
'icon' => 'link',
],
'storage' => [
'name' => '文件存储',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-storage-module',
'icon' => 'file',
],
'omniform' => [
'name' => '万能表单',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-omni-form-module',
'icon' => 'wpforms',
],
'tao' => [
'name' => '淘宝客',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-tao-module',
'icon' => 'simplybuilt',
],
'market' => [
'name' => '交易市场',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-market-module',
'icon' => 'asl-interpreting',
],
'tokenmall' => [
'name' => '区块链商城',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-token-mall-module',
'icon' => 'flask',
],
'acme' => [
'name' => 'SSL免费证书',
'link' => 'https://git.yuzhankeji.cn/UzTech/laravel-acme-module',
'icon' => 'html5',
],
];
foreach ($extensions as $key => &$extension) {
$module = Module::find($key);
if ($module) {
$extension['installed'] = (int) $module->isEnabled();
} else {
$extension['installed'] = 2;
}
}
return view('admin.dashboard.extensions', compact('extensions'));
}
/**
* @return string
*/
public static function dependencies(): string
{
$json = file_get_contents(base_path('composer.json'));
$dependencies = json_decode($json, true)['require'];
return Admin::component('admin.dashboard.dependencies', compact('dependencies'));
}
}

View File

@@ -0,0 +1,46 @@
<?php
namespace App\Admin\Controllers;
use App\Http\Controllers\Controller;
use Encore\Admin\Layout\Column;
use Encore\Admin\Layout\Content;
use Encore\Admin\Layout\Row;
class HomeController extends Controller
{
/**
* Notes : 数据看板
*
* @Date : 2021/3/10 5:12 下午
* @Author : <Jason.C>
* @param Content $content
* @return Content
*/
public function index(Content $content): Content
{
if (config('app.debug')) {
return $content
->title(__('admin.menu_titles.dashboard'))
->description('Description...')
->row(Dashboard::title())
->row(function (Row $row) {
$row->column(4, function (Column $column) {
$column->append(Dashboard::environment());
});
$row->column(4, function (Column $column) {
$column->append(Dashboard::dependencies());
});
$row->column(4, function (Column $column) {
$column->append(Dashboard::extensions());
});
});
} else {
return $content
->title(__('admin.menu_titles.dashboard'))
->description('Description...');
}
}
}

View File

@@ -0,0 +1,105 @@
<?php
namespace App\Admin\Controllers;
use App\Models\Module;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Grid;
use Illuminate\Http\RedirectResponse;
use Nwidart\Modules\Facades\Module as ModuleManager;
class ModuleController extends AdminController
{
protected $title = '模块管理';
/**
* Notes : 模块列表
*
* @Date : 2021/10/28 9:18 上午
* @Author : <Jason.C>
* @return Grid
*/
protected function grid(): Grid
{
$grid = new Grid(new Module());
$grid->disableBatchActions();
$grid->disableFilter();
$grid->disableCreateButton();
$grid->disableActions();
$grid->column('name', '模块名称');
$grid->column('alias', '别名');
$grid->column('version', '版本');
$grid->column('author', '作者');
$grid->column('description', '模块简介');
$grid->column('enabled', '状态')->bool();
$grid->column('id', '操作')->display(function () {
if ($this->enabled) {
return sprintf('<a href="%s">%s</a>', route('admin.module.disable', $this->name), '禁用');
} else {
return sprintf('<a href="%s">%s</a>', route('admin.module.enable', $this->name), '启用');
}
});
return $grid;
}
/**
* Notes : 禁用模块
*
* @Date : 2021/3/11 1:13 下午
* @Author : <Jason.C>
* @param string $name
* @return RedirectResponse
*/
public function disable(string $name): RedirectResponse
{
try {
$module = ModuleManager::find($name);
$module->disable();
$class = sprintf('\\%s\\%s\\%s', config('modules.namespace'), $module->getName(), $module->getName());
if (class_exists($class)) {
call_user_func([$class, 'uninstall']);
}
admin_success('Success', $name . '模块禁用成功');
} catch (\Exception $exception) {
admin_error('Error', $exception->getMessage());
}
return back();
}
/**
* Notes : 启用模块
*
* @Date : 2021/3/11 1:13 下午
* @Author : <Jason.C>
* @param string $name
* @return RedirectResponse
*/
public function enable(string $name): RedirectResponse
{
try {
$module = ModuleManager::find($name);
$module->enable();
$class = sprintf('\\%s\\%s\\%s', config('modules.namespace'), $module->getName(), $module->getName());
if (class_exists($class)) {
call_user_func([$class, 'install']);
}
admin_success('Success', $name . '模块启用成功');
} catch (\Exception $exception) {
admin_error('Error', $exception->getMessage());
}
return back();
}
}