初始化本地仓库
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
*+------------------
|
||||
* madong
|
||||
*+------------------
|
||||
* Copyright (c) https://gitee.com/motion-code All rights reserved.
|
||||
*+------------------
|
||||
* Author: Mr. April (405784684@qq.com)
|
||||
*+------------------
|
||||
* Official Website: http://www.madong.tech
|
||||
*/
|
||||
|
||||
namespace app\adminapi\schema\response\system\menu;
|
||||
|
||||
use OpenApi\Attributes as OA;
|
||||
|
||||
#[OA\Schema(
|
||||
title: '菜单元信息【Art】',
|
||||
description: 'Madong-Art-Ui菜单的元信息(排序、标题、图标、权限等)'
|
||||
)]
|
||||
class ArtMenuMetaResponse
|
||||
{
|
||||
public function __construct(
|
||||
#[OA\Property(
|
||||
description: '排序序号(用于菜单排序)',
|
||||
type: 'integer',
|
||||
example: 10
|
||||
)]
|
||||
public int $order,
|
||||
|
||||
#[OA\Property(
|
||||
description: '菜单标题(显示名称)',
|
||||
type: 'string',
|
||||
example: '系统设置'
|
||||
)]
|
||||
public string $title,
|
||||
|
||||
#[OA\Property(
|
||||
description: '菜单图标(支持图标库类名或 Unicode)',
|
||||
type: 'string',
|
||||
example: 'ant-design:setting-outlined'
|
||||
)]
|
||||
public string $icon,
|
||||
|
||||
#[OA\Property(
|
||||
description: '访问角色列表(为空表示无角色限制)',
|
||||
type: 'array',
|
||||
items: new OA\Items(type: 'string'),
|
||||
example: ["R_SUPER", "R_ADMIN"]
|
||||
)]
|
||||
public ?array $roles = null,
|
||||
|
||||
#[OA\Property(
|
||||
description: '是否缓存组件(true=缓存,false=不缓存)',
|
||||
type: 'boolean',
|
||||
example: true
|
||||
)]
|
||||
public ?bool $keepAlive = null,
|
||||
|
||||
#[OA\Property(
|
||||
description: '是否固定标签页(true=固定,false=不固定)',
|
||||
type: 'boolean',
|
||||
example: false
|
||||
)]
|
||||
public ?bool $fixedTab = null,
|
||||
|
||||
#[OA\Property(
|
||||
description: '权限列表(用于细粒度权限控制)',
|
||||
type: 'array',
|
||||
items: new OA\Items(
|
||||
type: 'object',
|
||||
properties: [
|
||||
new OA\Property(property: 'title', type: 'string',example: '超级管理员'),
|
||||
new OA\Property(property: 'authMark', type: 'string', example: 'admin')
|
||||
]
|
||||
),
|
||||
example: [
|
||||
['title' => '超级管理员', 'authMark' => 'admin']
|
||||
]
|
||||
)]
|
||||
public ?array $authList = null
|
||||
) {}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
*+------------------
|
||||
* madong
|
||||
*+------------------
|
||||
* Copyright (c) https://gitee.com/motion-code All rights reserved.
|
||||
*+------------------
|
||||
* Author: Mr. April (405784684@qq.com)
|
||||
*+------------------
|
||||
* Official Website: http://www.madong.tech
|
||||
*/
|
||||
|
||||
namespace app\adminapi\schema\response\system\menu;
|
||||
|
||||
|
||||
use OpenApi\Attributes as OA;
|
||||
|
||||
#[OA\Schema(
|
||||
title: '菜单结构响应模型【Art】',
|
||||
description: 'Madong-Art-Ui系统菜单数据结构'
|
||||
)]
|
||||
class ArtMenuResponse
|
||||
{
|
||||
/**
|
||||
* @var ArtMenuResponse[] 子菜单列表(同步更新子菜单类型)
|
||||
*/
|
||||
#[OA\Property(description: '子菜单', type: 'array', items: new OA\Items(ref: '#/components/schemas/ArtMenuSchema'))]
|
||||
public array $children = [];
|
||||
|
||||
public function __construct(
|
||||
#[OA\Property(description: '菜单名称', type: 'string')]
|
||||
public string $name,
|
||||
|
||||
#[OA\Property(description: '路由路径', type: 'string')]
|
||||
public string $path,
|
||||
|
||||
#[OA\Property(description: '组件路径', type: 'string')]
|
||||
public string|null $components,
|
||||
|
||||
// 关联元数据 schema(同步修改为 MenuMetaSchema)
|
||||
#[OA\Property( ref: ArtMenuMetaResponse::class,description: '元数据')]
|
||||
public ArtMenuMetaResponse $meta,
|
||||
|
||||
?array $children
|
||||
) {
|
||||
if ($children !== null) {
|
||||
// 递归转换子菜单为 ArtMenuSchema 对象
|
||||
$this->children = array_map(
|
||||
fn(array $child) => new self(
|
||||
$child['name'],
|
||||
$child['path'],
|
||||
$child['component'] ?? null,
|
||||
new ArtMenuMetaResponse(
|
||||
order: $child['meta']['order']??0,
|
||||
title: $child['meta']['title']??'',
|
||||
icon: $child['meta']['icon']??'',
|
||||
roles: $child['meta']['roles'] ?? null,
|
||||
keepAlive: $child['meta']['keepAlive'] ?? null,
|
||||
fixedTab: $child['meta']['fixedTab'] ?? null,
|
||||
authList: $child['meta']['authList'] ?? null
|
||||
),
|
||||
$child['children'] ?? null
|
||||
),
|
||||
$children
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user