add:新增菜单创建restful快捷方式

This commit is contained in:
JaguarJack 2021-04-20 18:56:05 +08:00
parent 504054b68e
commit ae53d4e404
3 changed files with 48 additions and 4 deletions

View File

@ -87,12 +87,18 @@ class Permissions extends CatchModel
*/
public static function onAfterInsert(Model $model)
{
$restful = intval($model->getData('restful'));
$model = self::where('id', $model->id)->find();
if ($model && $model->parent_id) {
$parent = self::where('id', $model->parent_id)->find();
$level = $parent->level ? $parent->level . '-' . $parent->id : $parent->id;
return $model->where('id', $model->id)->update([
$restful && self::createRestful($model, $level);
return $model->updateBy('id', [
'level' => $level
]);
}
@ -101,6 +107,40 @@ class Permissions extends CatchModel
}
/**
* 创建 restful 菜单
*
* @time 2021年04月20日
* @param Model $model
* @param $level
* @return void
*/
protected static function createRestful(Model $model, $level)
{
$restful = [
'index' => '列表',
'save' => '保存',
'update' => '更新',
'delete' => '删除',
];
foreach ($restful as $k => $r) {
self::insert([
'parent_id' => $model->id,
'permission_name' => $r,
'level' => $level . '-' . $model->id,
'module' => $model->getData('module'),
'creator_id' => $model->getData('creator_id'),
'permission_mark' => $model->getData('permission_mark') . '@' . $k,
'type' => self::BTN_TYPE,
'created_at' => time(),
'updated_at' => time(),
'sort' => 1,
]);
}
}
public function show($id)
{
$permission = $this->findBy($id);

View File

@ -15,8 +15,8 @@ class Role extends CatchTable
// TODO: Implement table() method.
return $this->getTable('role')
->header([
HeaderItem::label('角色名称')->prop('role_name')->width(150),
HeaderItem::label('角色标识')->prop('identify')->width(150),
HeaderItem::label('角色名称')->prop('role_name')->width(300),
HeaderItem::label('角色标识')->prop('identify')->width(300),
HeaderItem::label('角色描述')->prop('description'),
HeaderItem::label('创建时间')->prop('created_at'),
HeaderItem::label('操作')->width(250)->actions([

View File

@ -66,7 +66,11 @@ class Permission extends Form
self::radio('hidden', 'Hidden')->value(1)->options(
self::options()->add('显示', 1)->add('隐藏', 2)->render()
)->col(12)
)->col(12),
self::radio('restful', 'Restful 路由')->value(0)->options(
self::options()->add('生成', 1)->add('不生成', 0)->render()
)->col(12)
]
)
->appendControl( 2,