feat: module new feat
This commit is contained in:
parent
e5e1f8bc55
commit
c2f68d349f
@ -5,6 +5,7 @@ namespace Modules\Develop\Support;
|
|||||||
use Catch\CatchAdmin;
|
use Catch\CatchAdmin;
|
||||||
use Catch\Exceptions\FailedException;
|
use Catch\Exceptions\FailedException;
|
||||||
use Catch\Facade\Zipper;
|
use Catch\Facade\Zipper;
|
||||||
|
use Illuminate\Support\Facades\File;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* module install
|
* module install
|
||||||
@ -63,5 +64,7 @@ class ModuleInstall
|
|||||||
$zipRepository->getArchive()->extractTo(CatchAdmin::getModulePath($title));
|
$zipRepository->getArchive()->extractTo(CatchAdmin::getModulePath($title));
|
||||||
|
|
||||||
$this->installWithTitle($title);
|
$this->installWithTitle($title);
|
||||||
|
|
||||||
|
File::delete($zip);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ namespace Modules\Permissions\Models;
|
|||||||
use Catch\Base\CatchModel as Model;
|
use Catch\Base\CatchModel as Model;
|
||||||
use Catch\CatchAdmin;
|
use Catch\CatchAdmin;
|
||||||
use Catch\Enums\Status;
|
use Catch\Enums\Status;
|
||||||
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Modules\Permissions\Enums\MenuStatus;
|
use Modules\Permissions\Enums\MenuStatus;
|
||||||
use Modules\Permissions\Enums\MenuType;
|
use Modules\Permissions\Enums\MenuType;
|
||||||
@ -34,19 +35,19 @@ class Permissions extends Model
|
|||||||
{
|
{
|
||||||
protected $table = 'permissions';
|
protected $table = 'permissions';
|
||||||
|
|
||||||
protected $fillable = ['id', 'parent_id', 'permission_name', 'route', 'icon', 'module', 'permission_mark', 'component', 'redirect', 'keepalive', 'type', 'hidden', 'sort', 'creator_id', 'created_at', 'updated_at', 'deleted_at'];
|
protected $fillable = ['id', 'parent_id', 'permission_name', 'route', 'icon', 'module', 'permission_mark', 'component', 'redirect', 'keepalive', 'type', 'hidden', 'is_inner', 'sort', 'creator_id', 'created_at', 'updated_at', 'deleted_at'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected array $fields = ['id','parent_id','permission_name','route','icon','module','permission_mark','component','redirect','keepalive','type','hidden','sort','created_at','updated_at'];
|
protected array $fields = ['id','parent_id','permission_name','route','icon','module','permission_mark','component','redirect','keepalive','type','hidden','is_inner','sort','created_at','updated_at'];
|
||||||
|
|
||||||
protected bool $isPaginate = false;
|
protected bool $isPaginate = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected array $form = ['parent_id','permission_name','route','icon','module','permission_mark','component','redirect','keepalive','type','hidden','sort'];
|
protected array $form = ['parent_id','permission_name','route','icon','module','permission_mark','component','redirect','keepalive','type','is_inner', 'hidden','sort'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
@ -89,6 +90,17 @@ class Permissions extends Model
|
|||||||
'status' => MenuStatus::class
|
'status' => MenuStatus::class
|
||||||
];
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* is inner
|
||||||
|
*
|
||||||
|
* @return Attribute
|
||||||
|
*/
|
||||||
|
public function isInner(): Attribute
|
||||||
|
{
|
||||||
|
return Attribute::make(
|
||||||
|
get: fn($value) => $value == 1
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* is hidden
|
* is hidden
|
||||||
|
@ -10,8 +10,9 @@ class Installer extends ModuleInstaller
|
|||||||
{
|
{
|
||||||
// TODO: Implement info() method.
|
// TODO: Implement info() method.
|
||||||
return [
|
return [
|
||||||
'name' => '权限管理',
|
'title' => '权限管理',
|
||||||
'path' => 'Permissions',
|
'name' => 'permissions',
|
||||||
|
'path' => 'permissions',
|
||||||
'keywords' => '权限, 角色, 部门',
|
'keywords' => '权限, 角色, 部门',
|
||||||
'description' => '权限管理模块',
|
'description' => '权限管理模块',
|
||||||
'provider' => PermissionsServiceProvider::class
|
'provider' => PermissionsServiceProvider::class
|
||||||
|
@ -26,10 +26,11 @@ return new class () extends Migration {
|
|||||||
$table->string('permission_mark', 100)->default('')->comment('权限标识,使用 @ 分割');
|
$table->string('permission_mark', 100)->default('')->comment('权限标识,使用 @ 分割');
|
||||||
$table->string('component')->comment('组件');
|
$table->string('component')->comment('组件');
|
||||||
$table->string('redirect')->nullable()->comment('跳转地址');
|
$table->string('redirect')->nullable()->comment('跳转地址');
|
||||||
$table->tinyInteger('keepalive')->default('1')->comment('1 缓存 2 不缓存');
|
$table->tinyInteger('keepalive')->default(1)->comment('1 缓存 2 不缓存');
|
||||||
$table->tinyInteger('type')->default('1')->comment('1 目录 2 菜单 3 按钮');
|
$table->tinyInteger('type')->default(1)->comment('1 目录 2 菜单 3 按钮');
|
||||||
$table->tinyInteger('hidden')->default('1')->comment('1 显示 2 隐藏');
|
$table->tinyInteger('is_inner')->default(2)->comment('1 是 2 否');
|
||||||
$table->integer('sort')->default('1')->comment('排序');
|
$table->tinyInteger('hidden')->default(1)->comment('1 显示 2 隐藏');
|
||||||
|
$table->integer('sort')->default(1)->comment('排序');
|
||||||
$table->creatorId();
|
$table->creatorId();
|
||||||
$table->createdAt();
|
$table->createdAt();
|
||||||
$table->updatedAt();
|
$table->updatedAt();
|
||||||
|
601
modules/Permissions/database/seeder/PermissionsMenusSeeder.php
Normal file
601
modules/Permissions/database/seeder/PermissionsMenusSeeder.php
Normal file
@ -0,0 +1,601 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
|
return new class extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the seeder.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
$menus = $this->menus();
|
||||||
|
|
||||||
|
importTreeData($menus, 'permissions');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function menus(): array
|
||||||
|
{
|
||||||
|
return array (
|
||||||
|
0 =>
|
||||||
|
array (
|
||||||
|
'id' => 1,
|
||||||
|
'parent_id' => 0,
|
||||||
|
'permission_name' => '权限管理',
|
||||||
|
'route' => '/permission',
|
||||||
|
'icon' => 'arrow-down-on-square-stack',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => '',
|
||||||
|
'component' => '/admin/layout/index.vue',
|
||||||
|
'redirect' => NULL,
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 1,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 0,
|
||||||
|
'created_at' => 1670579928,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
'children' =>
|
||||||
|
array (
|
||||||
|
0 =>
|
||||||
|
array (
|
||||||
|
'id' => 2,
|
||||||
|
'parent_id' => 1,
|
||||||
|
'permission_name' => '角色管理',
|
||||||
|
'route' => 'roles',
|
||||||
|
'icon' => 'arrow-left-circle',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Roles',
|
||||||
|
'component' => '/Permissions/views/roles/index.vue',
|
||||||
|
'redirect' => NULL,
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 2,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 6,
|
||||||
|
'creator_id' => 0,
|
||||||
|
'created_at' => 1670579968,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
'children' =>
|
||||||
|
array (
|
||||||
|
0 =>
|
||||||
|
array (
|
||||||
|
'id' => 53,
|
||||||
|
'parent_id' => 2,
|
||||||
|
'permission_name' => '列表',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Roles@index',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671526858,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
1 =>
|
||||||
|
array (
|
||||||
|
'id' => 54,
|
||||||
|
'parent_id' => 2,
|
||||||
|
'permission_name' => '新增',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Roles@store',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 2,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671526858,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
2 =>
|
||||||
|
array (
|
||||||
|
'id' => 55,
|
||||||
|
'parent_id' => 2,
|
||||||
|
'permission_name' => '读取',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Roles@show',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 3,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671526858,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
3 =>
|
||||||
|
array (
|
||||||
|
'id' => 56,
|
||||||
|
'parent_id' => 2,
|
||||||
|
'permission_name' => '更新',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Roles@update',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 4,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671526858,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
4 =>
|
||||||
|
array (
|
||||||
|
'id' => 57,
|
||||||
|
'parent_id' => 2,
|
||||||
|
'permission_name' => '删除',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Roles@destroy',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 5,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671526858,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
1 =>
|
||||||
|
array (
|
||||||
|
'id' => 3,
|
||||||
|
'parent_id' => 1,
|
||||||
|
'permission_name' => '菜单管理',
|
||||||
|
'route' => 'permissions',
|
||||||
|
'icon' => 'finger-print',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Permissions',
|
||||||
|
'component' => '/Permissions/views/permissions/index.vue',
|
||||||
|
'redirect' => NULL,
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 2,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 0,
|
||||||
|
'created_at' => 1670641371,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
'children' =>
|
||||||
|
array (
|
||||||
|
0 =>
|
||||||
|
array (
|
||||||
|
'id' => 27,
|
||||||
|
'parent_id' => 3,
|
||||||
|
'permission_name' => '列表',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Permissions@index',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524755,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
1 =>
|
||||||
|
array (
|
||||||
|
'id' => 28,
|
||||||
|
'parent_id' => 3,
|
||||||
|
'permission_name' => '新增',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Permissions@store',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 2,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524755,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
2 =>
|
||||||
|
array (
|
||||||
|
'id' => 29,
|
||||||
|
'parent_id' => 3,
|
||||||
|
'permission_name' => '读取',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Permissions@show',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 3,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524755,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
3 =>
|
||||||
|
array (
|
||||||
|
'id' => 30,
|
||||||
|
'parent_id' => 3,
|
||||||
|
'permission_name' => '更新',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Permissions@update',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 4,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524756,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
4 =>
|
||||||
|
array (
|
||||||
|
'id' => 31,
|
||||||
|
'parent_id' => 3,
|
||||||
|
'permission_name' => '删除',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Permissions@destroy',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 5,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524756,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
5 =>
|
||||||
|
array (
|
||||||
|
'id' => 32,
|
||||||
|
'parent_id' => 3,
|
||||||
|
'permission_name' => '禁用/启用',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Permissions@enable',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 6,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524756,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
2 =>
|
||||||
|
array (
|
||||||
|
'id' => 4,
|
||||||
|
'parent_id' => 1,
|
||||||
|
'permission_name' => '岗位管理',
|
||||||
|
'route' => 'jobs',
|
||||||
|
'icon' => 'globe-americas',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Jobs',
|
||||||
|
'component' => '/Permissions/views/jobs/index.vue',
|
||||||
|
'redirect' => NULL,
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 2,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 0,
|
||||||
|
'created_at' => 1670641399,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
'children' =>
|
||||||
|
array (
|
||||||
|
0 =>
|
||||||
|
array (
|
||||||
|
'id' => 21,
|
||||||
|
'parent_id' => 4,
|
||||||
|
'permission_name' => '列表',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Jobs@index',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524747,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
1 =>
|
||||||
|
array (
|
||||||
|
'id' => 22,
|
||||||
|
'parent_id' => 4,
|
||||||
|
'permission_name' => '新增',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Jobs@store',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 2,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524747,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
2 =>
|
||||||
|
array (
|
||||||
|
'id' => 23,
|
||||||
|
'parent_id' => 4,
|
||||||
|
'permission_name' => '读取',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Jobs@show',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 3,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524747,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
3 =>
|
||||||
|
array (
|
||||||
|
'id' => 24,
|
||||||
|
'parent_id' => 4,
|
||||||
|
'permission_name' => '更新',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Jobs@update',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 4,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524747,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
4 =>
|
||||||
|
array (
|
||||||
|
'id' => 25,
|
||||||
|
'parent_id' => 4,
|
||||||
|
'permission_name' => '删除',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Jobs@destroy',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 5,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524747,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
5 =>
|
||||||
|
array (
|
||||||
|
'id' => 26,
|
||||||
|
'parent_id' => 4,
|
||||||
|
'permission_name' => '禁用/启用',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Jobs@enable',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 6,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524747,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
3 =>
|
||||||
|
array (
|
||||||
|
'id' => 5,
|
||||||
|
'parent_id' => 1,
|
||||||
|
'permission_name' => '部门管理',
|
||||||
|
'route' => 'departments',
|
||||||
|
'icon' => 'table-cells',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Departments',
|
||||||
|
'component' => '/Permissions/views/departments/index.vue',
|
||||||
|
'redirect' => NULL,
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 2,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 0,
|
||||||
|
'created_at' => 1670641426,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
'children' =>
|
||||||
|
array (
|
||||||
|
0 =>
|
||||||
|
array (
|
||||||
|
'id' => 12,
|
||||||
|
'parent_id' => 5,
|
||||||
|
'permission_name' => '列表',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Departments@index',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671501850,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
1 =>
|
||||||
|
array (
|
||||||
|
'id' => 13,
|
||||||
|
'parent_id' => 5,
|
||||||
|
'permission_name' => '新增',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Departments@store',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671501861,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
2 =>
|
||||||
|
array (
|
||||||
|
'id' => 14,
|
||||||
|
'parent_id' => 5,
|
||||||
|
'permission_name' => '读取',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Departments@show',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671501872,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
3 =>
|
||||||
|
array (
|
||||||
|
'id' => 15,
|
||||||
|
'parent_id' => 5,
|
||||||
|
'permission_name' => '更新',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Departments@update',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671517311,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
4 =>
|
||||||
|
array (
|
||||||
|
'id' => 16,
|
||||||
|
'parent_id' => 5,
|
||||||
|
'permission_name' => '删除',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Departments@destroy',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 1,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671517324,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
5 =>
|
||||||
|
array (
|
||||||
|
'id' => 17,
|
||||||
|
'parent_id' => 5,
|
||||||
|
'permission_name' => '禁用/启用',
|
||||||
|
'route' => '',
|
||||||
|
'icon' => '',
|
||||||
|
'module' => 'permissions',
|
||||||
|
'permission_mark' => 'Departments@enable',
|
||||||
|
'component' => '',
|
||||||
|
'redirect' => '',
|
||||||
|
'keepalive' => 1,
|
||||||
|
'type' => 3,
|
||||||
|
'hidden' => 1,
|
||||||
|
'sort' => 6,
|
||||||
|
'creator_id' => 1,
|
||||||
|
'created_at' => 1671524493,
|
||||||
|
'updated_at' => 1672798090,
|
||||||
|
'deleted_at' => 0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
@ -32,6 +32,20 @@
|
|||||||
<el-form-item label="排序" prop="sort">
|
<el-form-item label="排序" prop="sort">
|
||||||
<el-input-number v-model="formData.sort" name="sort" :min="1" />
|
<el-input-number v-model="formData.sort" name="sort" :min="1" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="内页" prop="is_inner" v-if="isMenu">
|
||||||
|
<el-radio-group v-model="formData.is_inner">
|
||||||
|
<el-radio
|
||||||
|
v-for="item in [
|
||||||
|
{ label: '是', value: 1 },
|
||||||
|
{ label: '否', value: 2 },
|
||||||
|
]"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.value"
|
||||||
|
name="hidden"
|
||||||
|
>{{ item.label }}</el-radio
|
||||||
|
>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-form-item label="父级菜单" prop="parent_id">
|
<el-form-item label="父级菜单" prop="parent_id">
|
||||||
@ -111,12 +125,14 @@ const closeSelectIcon = () => {
|
|||||||
const defaultSort = 1
|
const defaultSort = 1
|
||||||
const defaultKeepalive = 1
|
const defaultKeepalive = 1
|
||||||
const defaultHidden = 1
|
const defaultHidden = 1
|
||||||
|
const defaultIsInner = 2
|
||||||
// 初始化
|
// 初始化
|
||||||
formData.value.sort = defaultSort
|
formData.value.sort = defaultSort
|
||||||
formData.value.keepalive = defaultKeepalive
|
formData.value.keepalive = defaultKeepalive
|
||||||
formData.value.type = MenuType.TOP_TYPE
|
formData.value.type = MenuType.TOP_TYPE
|
||||||
formData.value.hidden = defaultHidden
|
formData.value.hidden = defaultHidden
|
||||||
|
formData.value.is_inner = defaultIsInner
|
||||||
|
|
||||||
// 默认目录
|
// 默认目录
|
||||||
const isTop = ref<boolean>(true)
|
const isTop = ref<boolean>(true)
|
||||||
const isMenu = ref<boolean>(false)
|
const isMenu = ref<boolean>(false)
|
||||||
|
38
modules/Permissions/views/router.ts
Normal file
38
modules/Permissions/views/router.ts
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
import { RouteRecordRaw } from 'vue-router'
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
const router: RouteRecordRaw[] = [
|
||||||
|
{
|
||||||
|
path: '/permission',
|
||||||
|
component: () => import('/admin/layout/index.vue'),
|
||||||
|
meta: { title: '权限管理', icon: 'user' },
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'roles',
|
||||||
|
name: 'roles',
|
||||||
|
meta: { title: '角色管理', icon: 'home' },
|
||||||
|
component: () => import('./roles/index.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'permissions',
|
||||||
|
name: 'permissions',
|
||||||
|
meta: { title: '菜单管理', icon: 'home' },
|
||||||
|
component: () => import('./permissions/index.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'jobs',
|
||||||
|
name: 'jobs',
|
||||||
|
meta: { title: '岗位管理', icon: 'home' },
|
||||||
|
component: () => import('./jobs/index.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'departments',
|
||||||
|
name: 'departments',
|
||||||
|
meta: { title: '部门管理', icon: 'home' },
|
||||||
|
component: () => import('./departments/index.vue'),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
// export default router
|
Loading…
x
Reference in New Issue
Block a user