mirror of
https://gitee.com/ctexthuang/hyperf_rbac_framework_server_ctexthuang.git
synced 2025-12-25 18:17:49 +08:00
474 lines
21 KiB
PHP
474 lines
21 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Model\AdminMenu;
|
|
use App\Model\Meta\AdminUserMeta;
|
|
use Hyperf\Database\Seeders\Seeder;
|
|
use Hyperf\DbConnection\Db;
|
|
use function Hyperf\Support\env;
|
|
|
|
class AdminMenuSeeder extends Seeder
|
|
{
|
|
public const array BASE_DATA = [
|
|
'name' => '',
|
|
'path' => '',
|
|
'component' => '',
|
|
'redirect' => '',
|
|
'created_by' => 0,
|
|
'updated_by' => 0,
|
|
'remark' => '',
|
|
];
|
|
|
|
/**
|
|
* Run the database seeds.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function run(): void
|
|
{
|
|
AdminMenu::truncate();
|
|
if (env('DB_DRIVER') === 'odbc-sql-server') {
|
|
Db::unprepared('SET IDENTITY_INSERT [' . AdminMenu::getModel()->getTable() . '] ON;');
|
|
}
|
|
$this->create($this->data());
|
|
if (env('DB_DRIVER') === 'odbc-sql-server') {
|
|
Db::unprepared('SET IDENTITY_INSERT [' . AdminMenu::getModel()->getTable() . '] OFF;');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param array $data
|
|
* @param int $parentId
|
|
* @return void
|
|
*/
|
|
private function create(array $data, int $parentId = 0): void
|
|
{
|
|
foreach ($data as $item) {
|
|
$_item = $item;
|
|
|
|
if (isset($item['children'])) unset($_item['children']);
|
|
|
|
$_item['parent_id'] = $parentId;
|
|
|
|
$insert = AdminMenu::create(array_merge(self::BASE_DATA, $_item));
|
|
|
|
if (isset($item['children']) && count($item['children'])) $this->create($item['children'], $insert->id);
|
|
}
|
|
}
|
|
|
|
private function data(): array
|
|
{
|
|
return [
|
|
[
|
|
'name' => 'permission',
|
|
'path' => '/permission',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '权限管理',
|
|
'i18n' => 'baseMenu.permission.index',
|
|
'icon' => 'ri:git-repository-private-line',
|
|
'type' => 'M',
|
|
'hidden' => 0,
|
|
'componentPath' => 'modules/',
|
|
'componentSuffix' => '.vue',
|
|
'breadcrumbEnable' => 1,
|
|
'copyright' => 1,
|
|
'cache' => 1,
|
|
'affix' => 0,
|
|
]),
|
|
'children' => [
|
|
[
|
|
'name' => 'permission:user',
|
|
'path' => '/permission/user',
|
|
'component' => 'base/views/permission/user/index',
|
|
'meta' => new AdminUserMeta([
|
|
'type' => 'M',
|
|
'title' => '用户管理',
|
|
'i18n' => 'baseMenu.permission.user',
|
|
'icon' => 'material-symbols:manage-accounts-outline',
|
|
'hidden' => 0,
|
|
'componentPath' => 'modules/',
|
|
'componentSuffix' => '.vue',
|
|
'breadcrumbEnable' => 1,
|
|
'copyright' => 1,
|
|
'cache' => 1,
|
|
'affix' => 0,
|
|
]),
|
|
'children' => [
|
|
[
|
|
'name' => 'permission:user:index',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '用户列表',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.userList',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:user:save',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '用户保存',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.userSave',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:user:update',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '用户更新',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.userUpdate',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:user:delete',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '用户删除',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.userDelete',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:user:password',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '用户初始化密码',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.userPassword',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'user:get:roles',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '获取用户角色',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.getUserRole',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'user:set:roles',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '用户角色赋予',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.setUserRole',
|
|
]),
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'permission:menu',
|
|
'path' => '/permission/menu',
|
|
'component' => 'base/views/permission/menu/index',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '菜单管理',
|
|
'i18n' => 'baseMenu.permission.menu',
|
|
'icon' => 'ph:list-bold',
|
|
'hidden' => 0,
|
|
'type' => 'M',
|
|
'componentPath' => 'modules/',
|
|
'componentSuffix' => '.vue',
|
|
'breadcrumbEnable' => 1,
|
|
'copyright' => 1,
|
|
'cache' => 1,
|
|
'affix' => 0,
|
|
]),
|
|
'children' => [
|
|
[
|
|
'name' => 'permission:menu:index',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '菜单列表',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.menuList',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:menu:create',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '菜单保存',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.menuSave',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:menu:save',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '菜单更新',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.menuUpdate',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:menu:delete',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '菜单删除',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.menuDelete',
|
|
]),
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'permission:role',
|
|
'path' => '/permission/role',
|
|
'component' => 'base/views/permission/role/index',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '角色管理',
|
|
'i18n' => 'baseMenu.permission.role',
|
|
'icon' => 'material-symbols:supervisor-account-outline-rounded',
|
|
'hidden' => 0,
|
|
'type' => 'M',
|
|
'componentPath' => 'modules/',
|
|
'componentSuffix' => '.vue',
|
|
'breadcrumbEnable' => 1,
|
|
'copyright' => 1,
|
|
'cache' => 1,
|
|
'affix' => 0,
|
|
]),
|
|
'children' => [
|
|
[
|
|
'name' => 'permission:role:index',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '角色列表',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.roleList',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:role:save',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '角色保存',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.roleSave',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:role:update',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '角色更新',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.roleUpdate',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:role:delete',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '角色删除',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.roleDelete',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:get:role',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '获取角色权限',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.getRolePermission',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'permission:set:role',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '赋予角色权限',
|
|
'type' => 'B',
|
|
'i18n' => 'baseMenu.permission.setRolePermission',
|
|
]),
|
|
],
|
|
],
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'log',
|
|
'path' => '/log',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '日志管理',
|
|
'i18n' => 'baseMenu.log.index',
|
|
'icon' => 'ph:instagram-logo',
|
|
'type' => 'M',
|
|
'hidden' => 0,
|
|
'componentPath' => 'modules/',
|
|
'componentSuffix' => '.vue',
|
|
'breadcrumbEnable' => 1,
|
|
'copyright' => 1,
|
|
'cache' => 1,
|
|
'affix' => 0,
|
|
]),
|
|
'children' => [
|
|
[
|
|
'name' => 'log:userLogin',
|
|
'path' => '/log/userLoginLog',
|
|
'component' => 'base/views/log/userLogin',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '用户登录日志管理',
|
|
'type' => 'M',
|
|
'hidden' => 0,
|
|
'icon' => 'ph:user-list',
|
|
'i18n' => 'baseMenu.log.userLoginLog',
|
|
'componentPath' => 'modules/',
|
|
'componentSuffix' => '.vue',
|
|
'breadcrumbEnable' => 1,
|
|
'copyright' => 1,
|
|
'cache' => 1,
|
|
'affix' => 0,
|
|
]),
|
|
'children' => [
|
|
[
|
|
'name' => 'log:userLogin:list',
|
|
'path' => '/log/userLoginLog',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '用户登录日志列表',
|
|
'i18n' => 'baseMenu.log.userLoginLogList',
|
|
'type' => 'B',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'log:userLogin:delete',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '删除用户登录日志',
|
|
'i18n' => 'baseMenu.log.userLoginLogDelete',
|
|
'type' => 'B',
|
|
]),
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'log:userOperation',
|
|
'path' => '/log/operationLog',
|
|
'component' => 'base/views/log/userOperation',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '操作日志管理',
|
|
'type' => 'M',
|
|
'hidden' => 0,
|
|
'icon' => 'ph:list-magnifying-glass',
|
|
'i18n' => 'baseMenu.log.operationLog',
|
|
'componentPath' => 'modules/',
|
|
'componentSuffix' => '.vue',
|
|
'breadcrumbEnable' => 1,
|
|
'copyright' => 1,
|
|
'cache' => 1,
|
|
'affix' => 0,
|
|
]),
|
|
'children' => [
|
|
[
|
|
'name' => 'log:userOperation:list',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '用户操作日志列表',
|
|
'i18n' => 'baseMenu.log.userOperationLog',
|
|
'type' => 'B',
|
|
]),
|
|
],
|
|
[
|
|
'name' => 'log:userOperation:delete',
|
|
'meta' => new AdminUserMeta([
|
|
'title' => '删除用户操作日志',
|
|
'i18n' => 'baseMenu.log.userOperationLogDelete',
|
|
'type' => 'B',
|
|
]),
|
|
],
|
|
],
|
|
],
|
|
],
|
|
],
|
|
/* [
|
|
'name' => '工具',
|
|
'code' => 'devTools',
|
|
'icon' => 'ma-icon-tool',
|
|
'path' => 'devTools',
|
|
'hidden' => '2',
|
|
'type' => 'M',
|
|
'children' => [
|
|
[
|
|
'name' => '代码生成器',
|
|
'code' => 'setting:code',
|
|
'icon' => 'ma-icon-code',
|
|
'path' => 'code',
|
|
'component' => 'setting/code/index',
|
|
'hidden' => '2',
|
|
'type' => 'M',
|
|
'children' => [
|
|
[
|
|
'name' => '预览代码',
|
|
'code' => 'setting:code:preview',
|
|
'type' => 'B',
|
|
],
|
|
[
|
|
'name' => '装载数据表',
|
|
'code' => 'setting:code:loadTable',
|
|
'type' => 'B',
|
|
],
|
|
[
|
|
'name' => '删除业务表',
|
|
'code' => 'setting:code:delete',
|
|
'type' => 'B',
|
|
],
|
|
[
|
|
'name' => '同步业务表',
|
|
'code' => 'setting:code:sync',
|
|
'type' => 'B',
|
|
],
|
|
[
|
|
'name' => '生成代码',
|
|
'code' => 'setting:code:generate',
|
|
'type' => 'B',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => '数据源管理',
|
|
'code' => 'setting:datasource',
|
|
'icon' => 'icon-storage',
|
|
'path' => 'setting/datasource',
|
|
'component' => 'setting/datasource/index',
|
|
'hidden' => '2',
|
|
'type' => 'M',
|
|
'children' => [
|
|
[
|
|
'name' => '数据源管理列表',
|
|
'code' => 'setting:datasource:index',
|
|
'type' => 'B',
|
|
],
|
|
[
|
|
'name' => '数据源管理保存',
|
|
'code' => 'setting:datasource:save',
|
|
'type' => 'B',
|
|
],
|
|
[
|
|
'name' => '数据源管理更新',
|
|
'code' => 'setting:datasource:update',
|
|
'type' => 'B',
|
|
],
|
|
[
|
|
'name' => '数据源管理读取',
|
|
'code' => 'setting:datasource:read',
|
|
'type' => 'B',
|
|
],
|
|
[
|
|
'name' => '数据源管理删除',
|
|
'code' => 'setting:datasource:delete',
|
|
'type' => 'B',
|
|
],
|
|
[
|
|
'name' => '数据源管理导入',
|
|
'code' => 'setting:datasource:import',
|
|
'type' => 'B',
|
|
],
|
|
[
|
|
'name' => '数据源管理导出',
|
|
'code' => 'setting:datasource:export',
|
|
'type' => 'B',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => '系统接口',
|
|
'code' => 'systemInterface',
|
|
'icon' => 'icon-compass',
|
|
'path' => 'systemInterface',
|
|
'component' => 'setting/systemInterface/index',
|
|
'hidden' => '2',
|
|
'type' => 'M',
|
|
],
|
|
],
|
|
],*/
|
|
];
|
|
}
|
|
}
|