初始化本地仓库

This commit is contained in:
2026-08-31 11:33:59 +08:00
commit 663f74b633
2390 changed files with 402918 additions and 0 deletions
+109
View File
@@ -0,0 +1,109 @@
<?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\enum\common;
use core\interface\IEnum;
/**
* 枚举分类映射枚举
* 用于映射枚举目录分类名称
*/
enum CategoryEnum: string implements IEnum
{
case COMMON = 'common'; // 通用枚举分类
case SYSTEM = 'system'; // 系统枚举分类
case DEV = 'dev'; // 开发枚举分类
case MONITOR = 'monitor'; // 监控枚举分类
case BUSINESS = 'business'; // 业务枚举分类
/**
* 获取分类描述
*/
public function label(): string
{
return match ($this) {
self::COMMON => '通用枚举',
self::SYSTEM => '系统枚举',
self::DEV => '开发枚举',
self::MONITOR => '监控枚举',
self::BUSINESS => '业务枚举',
};
}
/**
* 获取颜色标识
*/
public function color(): string
{
return match ($this) {
self::COMMON => 'blue',
self::SYSTEM => 'green',
self::DEV => 'orange',
self::MONITOR => 'red',
self::BUSINESS => 'purple',
};
}
/**
* 获取分类对应的目录路径
*/
public function directory(): string
{
return match ($this) {
self::COMMON => 'common',
self::SYSTEM => 'system',
self::DEV => 'dev',
self::MONITOR => 'monitor',
self::BUSINESS => 'business',
};
}
/**
* 获取所有分类的映射数组
*/
public static function getCategoryMap(): array
{
$map = [];
foreach (self::cases() as $case) {
$map[$case->value] = [
'code' => $case->value,
'label' => $case->label(),
'color' => $case->color(),
'directory' => $case->directory(),
];
}
return $map;
}
/**
* 根据目录名称获取分类枚举
*/
public static function fromDirectory(string $directory): ?self
{
foreach (self::cases() as $case) {
if ($case->directory() === $directory) {
return $case;
}
}
return null;
}
/**
* 检查目录是否为有效的分类
*/
public static function isValidDirectory(string $directory): bool
{
return self::fromDirectory($directory) !== null;
}
}
+42
View File
@@ -0,0 +1,42 @@
<?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\enum\common;
enum EnabledStatus: int
{
case ENABLED = 1;
case DISABLED = 0;
/**
* 获取人类可读的标签
*/
public function label(): string
{
return match ($this) {
self::ENABLED => '启用',
self::DISABLED => '禁用',
};
}
/**
* 获取对应的颜色值
*/
public function color(): string
{
return match ($this) {
self::ENABLED => '#4CAF50', // 绿色
self::DISABLED => '#FF5252', // 红色
};
}
}
+105
View File
@@ -0,0 +1,105 @@
<?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\enum\common;
enum FormType: string
{
case INPUT = 'Input';
case INPUT_NUMBER = 'InputNumber';
case SELECT = 'Select';
case RADIO_GROUP = 'RadioGroup';
case CHECKBOX_GROUP = 'CheckboxGroup';
case API_SELECT = 'ApiSelect';
case API_RADIO_GROUP = 'ApiRadioGroup';
// case API_CHECKBOX_GROUP = 'ApiRadioGroup';
case API_TREE_SELECT = 'ApiTreeSelect';
case API_CASCADER = 'ApiCascader';
case DICT = 'ApiDict';
case DATE_PICKER = 'DatePicker';
case UPLOAD = 'Upload';
case EDITOR = 'Editor';
case ICON_PICKER = 'IconPicker';
/**
* 获取人类可读的标签
*/
public function label(): string
{
return match ($this) {
self::INPUT => '单行文本',
self::INPUT_NUMBER => '数字',
self::SELECT => '下拉选择',
self::RADIO_GROUP => '单选框',
self::CHECKBOX_GROUP => '多选框',
self::API_SELECT => '远程下拉',
self::API_RADIO_GROUP => '远程单选',
// self::API_CHECKBOX_GROUP => '远程多选',
self::API_TREE_SELECT => '远程树选择',
self::API_CASCADER => '远程级联',
self::DICT => '字典组件',
self::DATE_PICKER => '日期选择',
self::UPLOAD => '文件上传',
self::EDITOR => '富文本编辑器',
self::ICON_PICKER => '图标选择器',
};
}
/**
* 获取对应的组件名称
*/
public function component(): string
{
return match ($this) {
self::INPUT => 'Input',
self::INPUT_NUMBER => 'InputNumber',
self::SELECT => 'Select',
self::RADIO_GROUP => 'RadioGroup',
self::CHECKBOX_GROUP => 'CheckboxGroup',
self::API_SELECT => 'ApiSelect',
self::API_RADIO_GROUP => 'ApiRadioGroup',
// self::API_CHECKBOX_GROUP => 'ApiCheckboxGroup',
self::API_TREE_SELECT => 'ApiTreeSelect',
self::API_CASCADER => 'ApiCascader',
self::DICT => 'ApiDict',
self::DATE_PICKER => 'DatePicker',
self::UPLOAD => 'Upload',
self::EDITOR => 'Editor',
self::ICON_PICKER => 'IconPicker',
};
}
/**
* 获取对应的颜色值
*/
public function color(): string
{
return match ($this) {
self::INPUT => '#409EFF', // 蓝色
self::INPUT_NUMBER => '#67C23A', // 绿色
self::SELECT => '#E6A23C', // 橙色
self::RADIO_GROUP => '#909399', // 灰色
self::CHECKBOX_GROUP => '#F56C6C', // 红色
self::API_SELECT => '#C06C84', // 紫色
self::API_RADIO_GROUP => '#6F42C1', // 深紫色
// self::API_CHECKBOX_GROUP => '#667EEA', // 靛蓝色
self::API_TREE_SELECT => '#3A8EE6', // 亮蓝色
self::API_CASCADER => '#409EFF', // 蓝色
self::DICT => '#13CE66', // 浅绿色
self::DATE_PICKER => '#FF8C42', // 橙红色
self::UPLOAD => '#FF4D4F', // 暗红色
self::EDITOR => '#722ED1', // 紫红色
self::ICON_PICKER => '#FAAD14', // 金黄色
};
}
}
+20
View File
@@ -0,0 +1,20 @@
<?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\enum\common;
enum LangEnum: string
{
case ZhCN = 'zh_CN';
case En = 'en';
}
@@ -0,0 +1,130 @@
<?php
/**
*+------------------
* 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\enum\common;
use core\interface\IEnum;
enum PluginInstallEvent: string implements IEnum
{
/**
* 安装开始事件
*/
case INSTALL_START = 'plugin-install-start';
/**
* 安装检查事件
*/
case INSTALL_CHECK = 'plugin-install-check';
/**
* 备份前端目录事件
*/
case BACKUP_FRONTEND = 'plugin-backup-frontend';
/**
* 执行SQL事件
*/
case EXECUTE_SQL = 'plugin-execute-sql';
/**
* 安装菜单事件
*/
case INSTALL_MENU = 'plugin-install-menu';
/**
* 合并依赖事件
*/
case MERGE_DEPEND = 'plugin-merge-depend';
/**
* 执行插件安装方法事件
*/
case EXECUTE_INSTALL_METHOD = 'plugin-execute-install-method';
/**
* 安装迁移文件事件
*/
case INSTALL_MIGRATION_FILE = 'plugin-install-migration-file';
/**
* 安装完成事件
*/
case INSTALL_COMPLETED = 'plugin-install-completed';
/**
* 安装失败事件
*/
case INSTALL_FAILED = 'plugin-install-failed';
/**
* 卸载开始事件
*/
case UNINSTALL_START = 'plugin-uninstall-start';
/**
* 卸载检查事件
*/
case UNINSTALL_CHECK = 'plugin-uninstall-check';
/**
* 执行卸载SQL事件
*/
case EXECUTE_UNINSTALL_SQL = 'plugin-execute-uninstall-sql';
/**
* 卸载菜单事件
*/
case UNINSTALL_MENU = 'plugin-uninstall-menu';
/**
* 执行插件卸载方法事件
*/
case EXECUTE_UNINSTALL_METHOD = 'plugin-execute-uninstall-method';
/**
* 卸载完成事件
*/
case UNINSTALL_COMPLETED = 'plugin-uninstall-completed';
/**
* 卸载失败事件
*/
case UNINSTALL_FAILED = 'plugin-uninstall-failed';
/**
* 获取事件显示文本
*/
public function label(): string
{
return match ($this) {
self::INSTALL_START => '插件安装开始',
self::INSTALL_CHECK => '安装检查',
self::BACKUP_FRONTEND => '备份前端目录',
self::EXECUTE_SQL => '执行安装SQL',
self::INSTALL_MENU => '安装菜单',
self::MERGE_DEPEND => '合并插件依赖',
self::EXECUTE_INSTALL_METHOD => '执行插件安装方法',
self::INSTALL_COMPLETED => '插件安装完成',
self::INSTALL_FAILED => '插件安装失败',
self::INSTALL_MIGRATION_FILE => '安装迁移文件',
self::UNINSTALL_START => '插件卸载开始',
self::UNINSTALL_CHECK => '卸载检查',
self::EXECUTE_UNINSTALL_SQL => '执行卸载SQL',
self::UNINSTALL_MENU => '卸载菜单',
self::EXECUTE_UNINSTALL_METHOD => '执行插件卸载方法',
self::UNINSTALL_COMPLETED => '插件卸载完成',
self::UNINSTALL_FAILED => '插件卸载失败',
};
}
}
+42
View File
@@ -0,0 +1,42 @@
<?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\enum\common;
enum YesNoStatus: int
{
case YES = 1;
case NO = 0;
/**
* 获取人类可读的标签
*/
public function label(): string
{
return match ($this) {
self::YES => '是',
self::NO => '否',
};
}
/**
* 获取对应的颜色值
*/
public function color(): string
{
return match ($this) {
self::YES => '#4CAF50', // 绿色
self::NO => '#FF5252', // 红色
};
}
}
+64
View File
@@ -0,0 +1,64 @@
<?php
declare(strict_types=1);
namespace app\enum\member;
use core\interface\IEnum;
/**
* 账单分类枚举
*/
enum BillCategory: int implements IEnum
{
case RECHARGE = 1; // 充值
case WITHDRAW = 2; // 提现
case ORDER = 3; // 订单
case REFUND = 4; // 退款
case POINTS = 5; // 积分
case SIGN = 6; // 签到
case OTHER = 99; // 其他
/**
* 获取文本描述
*/
public function text(): string
{
return match($this) {
self::RECHARGE => '充值',
self::WITHDRAW => '提现',
self::ORDER => '订单',
self::REFUND => '退款',
self::POINTS => '积分',
self::SIGN => '签到',
self::OTHER => '其他',
};
}
/**
* 实现IEnum接口的label方法
*/
public function label(): string
{
return $this->text();
}
/**
* 获取所有枚举值
*/
public static function all(): array
{
return array_column(self::cases(), 'value');
}
/**
* 获取所有枚举映射
*/
public static function map(): array
{
$map = [];
foreach (self::cases() as $case) {
$map[$case->value] = $case->text();
}
return $map;
}
}
+56
View File
@@ -0,0 +1,56 @@
<?php
declare(strict_types=1);
namespace app\enum\member;
use core\interface\IEnum;
/**
* 账单状态枚举
*/
enum BillStatus: int implements IEnum
{
case PENDING = 0; // 待处理
case SUCCESS = 1; // 成功
case FAILED = 2; // 失败
/**
* 获取文本描述
*/
public function text(): string
{
return match($this) {
self::PENDING => '待处理',
self::SUCCESS => '成功',
self::FAILED => '失败',
};
}
/**
* 实现IEnum接口的label方法
*/
public function label(): string
{
return $this->text();
}
/**
* 获取所有枚举值
*/
public static function all(): array
{
return array_column(self::cases(), 'value');
}
/**
* 获取所有枚举映射
*/
public static function map(): array
{
$map = [];
foreach (self::cases() as $case) {
$map[$case->value] = $case->text();
}
return $map;
}
}
+54
View File
@@ -0,0 +1,54 @@
<?php
declare(strict_types=1);
namespace app\enum\member;
use core\interface\IEnum;
/**
* 账单类型枚举
*/
enum BillType: int implements IEnum
{
case INCOME = 1; // 收入
case EXPENSE = 2; // 支出
/**
* 获取文本描述
*/
public function text(): string
{
return match($this) {
self::INCOME => '收入',
self::EXPENSE => '支出',
};
}
/**
* 实现IEnum接口的label方法
*/
public function label(): string
{
return $this->text();
}
/**
* 获取所有枚举值
*/
public static function all(): array
{
return array_column(self::cases(), 'value');
}
/**
* 获取所有枚举映射
*/
public static function map(): array
{
$map = [];
foreach (self::cases() as $case) {
$map[$case->value] = $case->text();
}
return $map;
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
namespace app\enum\member;
use core\interface\IEnum;
/**
* 菜单目标窗口枚举
*/
enum MenuTarget: int implements IEnum
{
/**
* 当前窗口
*/
case SELF = 1;
/**
* 新窗口
*/
case BLANK = 2;
/**
* 获取枚举文本
*/
public function label(): string
{
return match ($this) {
self::SELF => '当前窗口',
self::BLANK => '新窗口',
};
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
namespace app\enum\member;
use core\interface\IEnum;
/**
* 菜单类型枚举
*/
enum MenuType: int implements IEnum
{
/**
* 普通菜单
*/
case NORMAL = 1;
/**
* 开通菜单
*/
case OPEN = 2;
/**
* 获取枚举文本
*/
public function label(): string
{
return match ($this) {
self::NORMAL => '普通菜单',
self::OPEN => '开通菜单',
};
}
}
+70
View File
@@ -0,0 +1,70 @@
<?php
declare(strict_types=1);
namespace app\enum\member;
use core\interface\IEnum;
/**
* 会员积分来源枚举
*/
enum PointSource: string implements IEnum
{
case SIGN_IN = 'sign_in'; // 签到
case SHOPPING = 'shopping'; // 购物
case EXCHANGE = 'exchange'; // 兑换
case INVITE = 'invite'; // 邀请
case REGISTER = 'register'; // 注册
case ACTIVITY = 'activity'; // 活动
case EXPIRED = 'expired'; // 过期
case PENALTY = 'penalty'; // 处罚
case ADMIN = 'admin'; // 后台调整
case OTHER = 'other'; // 其他
/**
* 获取文本描述
*/
public function text(): string
{
return match($this) {
self::SIGN_IN => '签到',
self::SHOPPING => '购物',
self::EXCHANGE => '兑换',
self::INVITE => '邀请',
self::REGISTER => '注册',
self::ACTIVITY => '活动',
self::EXPIRED => '过期',
self::PENALTY => '处罚',
self::ADMIN => '后台调整',
self::OTHER => '其他',
};
}
/**
* 实现IEnum接口的label方法
*/
public function label(): string
{
return $this->text();
}
/**
* 获取所有枚举值
*/
public static function all(): array
{
return array_column(self::cases(), 'value');
}
/**
* 获取所有枚举映射
*/
public static function map(): array
{
$map = [];
foreach (self::cases() as $case) {
$map[$case->value] = $case->text();
}
return $map;
}
}
+56
View File
@@ -0,0 +1,56 @@
<?php
declare(strict_types=1);
namespace app\enum\member;
use core\interface\IEnum;
/**
* 会员积分类型枚举
*/
enum PointType: int implements IEnum
{
case INCREASE = 1; // 增加
case DECREASE = 2; // 减少
case ADJUST = 3; // 调整
/**
* 获取文本描述
*/
public function text(): string
{
return match($this) {
self::INCREASE => '增加',
self::DECREASE => '减少',
self::ADJUST => '调整',
};
}
/**
* 实现IEnum接口的label方法
*/
public function label(): string
{
return $this->text();
}
/**
* 获取所有枚举值
*/
public static function all(): array
{
return array_column(self::cases(), 'value');
}
/**
* 获取所有枚举映射
*/
public static function map(): array
{
$map = [];
foreach (self::cases() as $case) {
$map[$case->value] = $case->text();
}
return $map;
}
}
@@ -0,0 +1,58 @@
<?php
declare(strict_types=1);
namespace app\enum\member;
use core\interface\IEnum;
/**
* 会员第三方平台枚举
*/
enum ThirdPartyPlatform: int implements IEnum
{
case QQ = 1; // QQ
case WECHAT = 2; // 微信
case WEIBO = 3; // 微博
case DOUYIN = 4; // 抖音
/**
* 获取文本描述
*/
public function text(): string
{
return match($this) {
self::QQ => 'QQ',
self::WECHAT => '微信',
self::WEIBO => '微博',
self::DOUYIN => '抖音',
};
}
/**
* 实现IEnum接口的label方法
*/
public function label(): string
{
return $this->text();
}
/**
* 获取所有枚举值
*/
public static function all(): array
{
return array_column(self::cases(), 'value');
}
/**
* 获取所有枚举映射
*/
public static function map(): array
{
$map = [];
foreach (self::cases() as $case) {
$map[$case->value] = $case->text();
}
return $map;
}
}
@@ -0,0 +1,54 @@
<?php
declare(strict_types=1);
namespace app\enum\member;
use core\interface\IEnum;
/**
* 会员第三方状态枚举
*/
enum ThirdPartyStatus: int implements IEnum
{
case DISABLED = 0; // 禁用
case ENABLED = 1; // 启用
/**
* 获取文本描述
*/
public function text(): string
{
return match($this) {
self::DISABLED => '禁用',
self::ENABLED => '启用',
};
}
/**
* 实现IEnum接口的label方法
*/
public function label(): string
{
return $this->text();
}
/**
* 获取所有枚举值
*/
public static function all(): array
{
return array_column(self::cases(), 'value');
}
/**
* 获取所有枚举映射
*/
public static function map(): array
{
$map = [];
foreach (self::cases() as $case) {
$map[$case->value] = $case->text();
}
return $map;
}
}
@@ -0,0 +1,42 @@
<?php
declare(strict_types=1);
namespace app\enum\member;
use core\interface\IEnum;
/**
* 提现账号类型枚举
*/
enum WithdrawAccountType: int implements IEnum
{
/**
* 银行卡
*/
case BANK = 1;
/**
* 支付宝
*/
case ALIPAY = 2;
/**
* 微信
*/
case WECHAT = 3;
/**
* 获取枚举文本
*/
public function label(): string
{
return match ($this) {
self::BANK => '银行卡',
self::ALIPAY => '支付宝',
self::WECHAT => '微信',
};
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
/**
*+------------------
* 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\enum\plugin;
enum FrontendType: string
{
case WEB = 'web';
case ADMIN = 'admin';
case MOBILE = 'mobile';
case H5 = 'h5';
case DESKTOP = 'desktop';
/**
* 获取相对路径模板(含一个插件名占位符)
* 注意:路径是相对于项目根目录(backend 的父目录)
*/
public function pathTemplate(): string
{
return match($this) {
self::WEB => 'frontend/web/app/apps/%s',
self::ADMIN => 'frontend/admin/src/apps/%s',
self::MOBILE => 'frontend/mobile/src/apps/%s',
self::H5 => 'frontend/h5/public/apps/%s',
self::DESKTOP => 'frontend/desktop/build/apps/%s',
};
}
/**
* 检查是否为已知类型
*/
public static function isKnownType(string $type): bool
{
return in_array($type, array_column(self::cases(), 'value'), true);
}
}
+84
View File
@@ -0,0 +1,84 @@
<?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\enum\review;
use core\interface\IEnum;
/**
* 审核状态枚举
*/
enum ReviewStatus: int implements IEnum
{
case PENDING = 0; // 待审核
case APPROVED = 1; // 已通过
case REJECTED = 2; // 已拒绝
case CANCELED = 3; // 已取消
/**
* 获取人类可读的标签
*/
public function label(): string
{
return match ($this) {
self::PENDING => '待审核',
self::APPROVED => '已通过',
self::REJECTED => '已拒绝',
self::CANCELED => '已取消',
};
}
/**
* 获取对应的颜色值
*/
public function color(): string
{
return match ($this) {
self::PENDING => '#FF9800', // 橙色
self::APPROVED => '#4CAF50', // 绿色
self::REJECTED => '#FF5252', // 红色
self::CANCELED => '#9E9E9E', // 灰色
};
}
/**
* 根据状态值获取标签
*/
public static function getLabel(int $value): string
{
return self::tryFrom($value)?->label() ?? '未知';
}
/**
* 根据状态值获取颜色
*/
public static function getColor(int $value): string
{
return self::tryFrom($value)?->color() ?? '#9E9E9E';
}
/**
* 获取所有状态选项(用于下拉框等)
*/
public static function options(): array
{
return array_map(
fn(self $status) => [
'value' => $status->value,
'label' => $status->label(),
'color' => $status->color(),
],
self::cases()
);
}
}
@@ -0,0 +1,55 @@
<?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\enum\system;
use core\interface\IEnum;
/**
* 业务终端枚举
*/
enum BusinessPlatform: string implements IEnum
{
case ADMIN = 'admin'; // 管理后台
case WEB = 'web'; // Web网站
case API = 'api'; // API服务
case MOBILE = 'mobile'; // 移动端
/**
* 获取终端描述
*/
public function label(): string
{
return match ($this) {
self::ADMIN => '管理后台',
self::WEB => 'Web网站',
self::API => 'API服务',
self::MOBILE => '移动端',
};
}
/**
* 获取颜色标识
*
* @return string
*/
public function color(): string
{
return match ($this) {
self::ADMIN => 'blue',
self::WEB => 'pink',
self::API => 'cyan',
self::MOBILE => 'purple',
};
}
}
+42
View File
@@ -0,0 +1,42 @@
<?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\enum\system;
enum CloudStorage: string
{
case LOCAL = 'local';
case OSS = 'oss';
case COS = 'cos';
case QINIU = 'qiniu';
case S3 = 's3';
/**
* 获取人类可读标签
*
* @param bool $english 是否返回英文标签
*
* @return string
*/
public function label(bool $english = false): string
{
return match ($this) {
self::LOCAL => '私有云(本地)',
self::OSS => '阿里云',
self::COS => '腾讯云',
self::QINIU => '七牛云',
self::S3 => '亚马逊(S3)',
};
}
}
@@ -0,0 +1,54 @@
<?php
declare(strict_types=1);
/**
*+------------------
* madong
*+------------------
* Copyright (c) https://gitee.com/motion-code All rights reserved.
*+------------------
* Author: Mr. April (405784684@qq.com)
*+------------------
* Official Website: https://madong.tech
*/
namespace app\enum\system;
enum DataPermission: int
{
// 基础权限类型
case ALL = 1;
case CUSTOM = 2;
case CURRENT_DEPT = 3;
case CURRENT_DEPT_WITH_CHILDREN = 4;
case SELF = 5;
case HYBRID = 6;
/**
*
* 获取人类可读的标签
*/
public function label(): string
{
return match ($this) {
self::ALL => '全部数据权限',
self::CUSTOM => '自定义数据权限',
self::CURRENT_DEPT => '本部门数据权限',
self::CURRENT_DEPT_WITH_CHILDREN => '本部门及以下数据权限',
self::SELF => '本人数据权限',
self::HYBRID => '部门及以下或本人数据权限'
};
}
// 颜色映射(兼容Ant Design色系)
public function color(): string
{
return match ($this) {
self::ALL => 'green',
self::CUSTOM => 'default',
self::CURRENT_DEPT => 'orange',
self::CURRENT_DEPT_WITH_CHILDREN => 'cyan',
self::SELF => 'error',
self::HYBRID => 'default'
};
}
}
+36
View File
@@ -0,0 +1,36 @@
<?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\enum\system;
use core\interface\IEnum;
enum DbType: string implements IEnum
{
case MYSQL = 'mysql';
case PGSQL = 'pgsql';
case SQLITE = 'sqlite';
case SQL_SERVER = 'sqlsrv';
case ORACLE = 'oci';
public function label(): string
{
return match($this) {
self::MYSQL => 'mysql',
self::PGSQL => 'pgsql',
self::SQLITE => 'sqlite',
self::SQL_SERVER => 'sqlsrv',
self::ORACLE => 'oci',
};
}
}
+37
View File
@@ -0,0 +1,37 @@
<?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\enum\system;
use core\interface\IEnum;
/**
* 字典数据类型枚举
*
* @author Mr.April
* @since 1.0
*/
enum DictDataType:int implements IEnum
{
case STRING=1;
case INTEGER=2;
public function label(): string
{
return match($this) {
self::STRING => '字符串',
self::INTEGER => '整型',
};
}
}
+44
View File
@@ -0,0 +1,44 @@
<?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\enum\system;
use core\interface\IEnum;
enum LockedStatus: int implements IEnum
{
case LOCKED = 1; // 锁定状态
case UNLOCKED = 0; // 未锁定状态
/**
* 获取人类可读的标签
*/
public function label(): string
{
return match ($this) {
self::LOCKED => '是', // 锁定状态显示"是"
self::UNLOCKED => '否', // 未锁定状态显示"否"
};
}
/**
* 获取对应的颜色值
*/
public function color(): string
{
return match ($this) {
self::LOCKED => '#FF5252', // 锁定状态显示红色
self::UNLOCKED => '#4CAF50',// 未锁定状态显示绿色
};
}
}
+36
View File
@@ -0,0 +1,36 @@
<?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\enum\system;
use core\interface\IEnum;
enum MenuOpenType:int implements IEnum
{
case NONE = 0; // 无
case COMPONENT = 1; // 组件
case INTERNAL_LINK = 2; // 内链
case EXTERNAL_LINK = 3; // 外链
public function label(): string
{
return match($this) {
self::NONE => '无',
self::COMPONENT => '组件',
self::INTERNAL_LINK => '内链',
self::EXTERNAL_LINK => '外链',
};
}
}
+75
View File
@@ -0,0 +1,75 @@
<?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\enum\system;
/**
* 菜单源类型
*
* @author Mr.April
* @since 1.0
*/
enum MenuSource: string
{
case SYSTEM = 'system';
case AUTO_GENERATE = 'auto_generate';
/**
* 转换为可读类型名称
* @return string
*/
public function label(): string
{
return match($this) {
self::SYSTEM => '系统菜单',
self::AUTO_GENERATE => '自动生成',
};
}
/**
* 获取颜色标识
*
* @return string
*/
public function color(): string
{
return match ($this) {
self::SYSTEM => 'blue',
self::AUTO_GENERATE => 'green',
};
}
/**
* 获取所有枚举值
*
* @return array
*/
public static function values(): array
{
return array_column(self::cases(), 'value');
}
/**
* 获取所有枚举标签
*
* @return array
*/
public static function labels(): array
{
$labels = [];
foreach (self::cases() as $case) {
$labels[$case->value] = $case->label();
}
return $labels;
}
}
+59
View File
@@ -0,0 +1,59 @@
<?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\enum\system;
/**
* 菜单类型
*
* @author Mr.April
* @since 1.0
*/
enum MenuType: int
{
case CATALOG = 1;
case MENU = 2;
case BUTTON = 3;
case API = 4;
/**
* 转换为可读类型名称
*
* @return string
*/
public function label(): string
{
return match ($this) {
self::CATALOG => '目录',
self::MENU => '菜单',
self::BUTTON => '按钮',
self::API => '接口',
};
}
/**
* 获取颜色标识
*
* @return string
*/
public function color(): string
{
return match ($this) {
self::CATALOG => 'blue',
self::MENU => 'pink',
self::BUTTON => 'cyan',
self::API => 'purple',
};
}
}
+34
View File
@@ -0,0 +1,34 @@
<?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\enum\system;
use core\interface\IEnum;
/**
* 消息事件-枚举
*
* @author Mr.April
* @since 1.0
*/
enum MessageEvent: string implements IEnum
{
case DEFAULT = 'message';
public function label(): string
{
return match ($this) {
self::DEFAULT => '默认',
};
}
}
@@ -0,0 +1,42 @@
<?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\enum\system;
enum MessagePriority: int
{
case EMERGENCY = 1; // 紧急 - 最高优先级
case URGENT = 2; // 急迫
case NORMAL = 3; // 普通 - 默认优先级
//定义一个方法以获取状态的描述
public function label(): string
{
return match ($this) {
self::EMERGENCY => '紧急',
self::URGENT => '急迫',
self::NORMAL => '普通'
};
}
//定义一个方法设置标签颜色-如果没有定义自动生成
public function color(): string
{
return match ($this) {
self::EMERGENCY => 'red',
self::URGENT => 'orange',
self::NORMAL => 'blue'
};
}
}
+39
View File
@@ -0,0 +1,39 @@
<?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\enum\system;
enum MessageStatus: string
{
case UNREAD = 'unread';
case READ = 'read';
//定义一个方法以获取状态的描述
public function label(): string
{
return match ($this) {
self::UNREAD => '未读',
self::READ => '已读',
};
}
// 设置标签颜色
public function color(): string
{
return match ($this) {
self::UNREAD => 'orange',
self::READ => 'green',
};
}
}
+50
View File
@@ -0,0 +1,50 @@
<?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\enum\system;
enum MessageType: int
{
case SYSTEM_MESSAGE = 1;//系统消息
case ANNOUNCEMENT = 2;//公告
case OPERATION_LOG = 3;//操作日志
case WARNING = 4;//警告
case USER_PRIVATE_MESSAGE = 5;//用户私信
case WORKFLOW_MESSAGE = 6;//工作流消息
// 定义一个方法以获取状态的描述
public function label(): string
{
return match ($this) {
self::SYSTEM_MESSAGE => '系统',
self::ANNOUNCEMENT => '公告',
self::OPERATION_LOG => '操作日志',
self::WARNING => '警告',
self::USER_PRIVATE_MESSAGE => '私信',
self::WORKFLOW_MESSAGE => '工作流',
};
}
// 设置标签颜色
public function color(): string
{
return match ($this) {
self::SYSTEM_MESSAGE => 'blue', // 系统消息
self::ANNOUNCEMENT => 'green', // 公告
self::OPERATION_LOG => 'grey', // 操作日志
self::WARNING => 'orange', // 警告
self::USER_PRIVATE_MESSAGE => 'purple', // 私信
self::WORKFLOW_MESSAGE => 'cyan', // 工作流
};
}
}
+41
View File
@@ -0,0 +1,41 @@
<?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\enum\system;
enum NoticeType: string
{
case ANNOUNCEMENT = 'announcement';
case NOTICE = 'notice';
//定义一个方法以获取状态的描述
public function label(): string
{
return match ($this) {
self::ANNOUNCEMENT => '公告',
self::NOTICE => '通知',
};
}
// 设置标签颜色
public function color(): string
{
return match ($this) {
self::ANNOUNCEMENT => '#2196F3',
self::NOTICE => '#4CAF50',
};
}
}
@@ -0,0 +1,42 @@
<?php
declare(strict_types=1);
/**
*+------------------
* madong
*+------------------
* Copyright (c) https://gitee.com/motion-code All rights reserved.
*+------------------
* Author: Mr. April (405784684@qq.com)
*+------------------
* Official Website: https://madong.tech
*/
namespace app\enum\system;
/**
*
* 操作结果枚举
* @author Mr.April
* @since 1.0
*/
enum OperationResult:int
{
case SUCCESS = 0;
case FAILURE = -1;
public function label(): string
{
return match($this) {
self::SUCCESS => '成功',
self::FAILURE => '失败'
};
}
public function color():string{
return match($this) {
self::SUCCESS => 'success',
self::FAILURE => 'error'
};
}
}
+60
View File
@@ -0,0 +1,60 @@
<?php
declare(strict_types=1);
/**
*+------------------
* madong
*+------------------
* Copyright (c) https://gitee.com/motion-code All rights reserved.
*+------------------
* Author: Mr. April (405784684@qq.com)
*+------------------
* Official Website: https://madong.tech
*/
namespace app\enum\system;
use core\interface\IEnum;
/**
* Casbin 策略前缀
*
* @author Mr.April
* @since 1.0
*/
enum PolicyPrefix: string implements IEnum
{
// 核心权限类型
case ROLE = 'role:'; // 角色权限 例: role:admin
case SUBSCRIPTION = 'sub:'; // 租户订阅套餐权限 例: sub:enterprise
case TENANT_PACKAGE = 'tenant_pkg:'; // 租户专属套餐 例: tenant_pkg:basic
case TIER = 'tier:'; // 套餐等级权限 例: tier:gold
case DEV = 'dev:'; // 开发相关权限 例: dev:crontab
// 特殊权限类型
case DOMAIN = 'domain:'; // 租户域标识 例: domain:1
case USER = 'user:'; // 用户直接权限 例: user:1001
case MENU = "menu:";
case ROUTE = "route:";
case BUTTON = "button:";
/**
* 获取人类可读的标签
*/
public function label(): string
{
return match ($this) {
self::ROLE => '角色权限',
self::SUBSCRIPTION => '租户订阅套餐权限',
self::TENANT_PACKAGE => '租户专属套餐',
self::TIER => '套餐等级权限',
self::DEV => '开发相关权限',
self::DOMAIN => '租户域标识',
self::USER => '用户直接权限',
self::MENU => '菜单资源标识',
self::ROUTE => '路由资源标识',
self::BUTTON => '按钮资源标识'
};
}
}
+41
View File
@@ -0,0 +1,41 @@
<?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\enum\system;
use core\interface\IEnum;
/**
* HTTP请求方式枚举
*
* @author Mr.April
* @since 1.0
*/
enum RequestMethod: string implements IEnum
{
case GET = 'GET'; // HTTP GET方法
case POST = 'POST'; // HTTP POST方法
case PUT = 'PUT'; // HTTP PUT方法
case DELETE = 'DELETE'; // HTTP DELETE方法
public function label(): string
{
return match ($this) {
self::GET => 'GET',
self::POST => 'POST',
self::PUT => 'PUT',
self::DELETE => 'DELETE',
};
}
}
+38
View File
@@ -0,0 +1,38 @@
<?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\enum\system;
use core\interface\IEnum;
/**
* 角色类型枚举
*
* @author Mr.April
* @since 1.0
*/
enum RoleType :int implements IEnum
{
// 枚举成员定义
case NORMAL = 1;
case DATA = 2;
public function label(): string
{
return match ($this){
self::NORMAL=>'普通角色',
self::DATA=>'数据角色',
};
}
}
+40
View File
@@ -0,0 +1,40 @@
<?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\enum\system;
use core\interface\IEnum;
/**
* 性别枚举
* 对应数据字典 sex
*
* @author Mr.April
* @since 1.0
*/
enum Sex: int implements IEnum
{
case MALE = 1; // 男
case FEMALE = 2; // 女
case UNKNOWN = 0; // 未知
public function label(): string
{
return match ($this) {
self::MALE => '男',
self::FEMALE => '女',
self::UNKNOWN => '未知',
};
}
}
@@ -0,0 +1,49 @@
<?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\enum\system;
/**
* 定时任务枚举类
*
* @author Mr.April
* @since 1.0
*/
enum TaskScheduleCycle: int
{
// 固定时间间隔
case DAILY = 1; // 86400 秒(24小时)
case HOURLY = 2; // 3600 秒
case WEEKLY = 3; // 604800 秒(7天)
case MONTHLY = 4; // 2592000 秒(30天近似值)
case YEARLY = 5; // 31536000 秒(365天近似值)
// 可变时间间隔(需配合数值参数使用)
case N_HOURS = 6;
case N_MINUTES = 7;
case N_SECONDS = 8;
public function label(): string
{
return match($this) {
self::DAILY => '每天',
self::HOURLY => '每小时',
self::WEEKLY => '每周',
self::MONTHLY => '每月',
self::YEARLY => '每年',
self::N_HOURS => 'N小时',
self::N_MINUTES => 'N分钟',
self::N_SECONDS => 'N秒',
};
}
}
@@ -0,0 +1,38 @@
<?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\enum\system;
enum TaskScheduleMode: int
{
case CYCLE = 1; // 循环模式
case ONCE = 0; // 单次模式
public function label(): string
{
return match ($this) {
self::CYCLE => '循环',
self::ONCE => '单次',
};
}
// 设置标签颜色
public function color(): string
{
return match ($this) {
self::CYCLE => '#2196F3',
self::ONCE => '#4CAF50',
};
}
}
@@ -0,0 +1,35 @@
<?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\enum\system;
enum TaskScheduleType: int
{
case TASK_URL = 1;
case TASK_EVAL = 2;
case TASK_SHELL = 3;
CASE TASK_SCHEDULE= 4;
public function label(): string
{
return match ($this) {
self::TASK_URL => 'HTTP 请求(GET/POST)',
self::TASK_EVAL => 'PHP 代码执行',
self::TASK_SHELL => '系统命令执行',
self::TASK_SCHEDULE=>'任务调度'
};
}
}
@@ -0,0 +1,50 @@
<?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\enum\system;
use core\interface\IEnum;
/**
* 租户成员类型
*
* @author Mr.April
* @since 1.0
*/
enum TenantAdminType: int implements IEnum
{
// 枚举成员定义
case ADMIN = 1;
case NORMAL_ADMIN = 2;
/**
* 获取显示标签
*/
public function label(): string
{
return match ($this) {
self::ADMIN => '管理员',
self::NORMAL_ADMIN => '普通成员',
};
}
// 设置标签颜色
public function color(): string
{
return match ($this) {
self::ADMIN => '#2196F3',
self::NORMAL_ADMIN => '#4CAF50',
};
}
}
+37
View File
@@ -0,0 +1,37 @@
<?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\enum\system;
use core\interface\IEnum;
enum UserAdminType:int implements IEnum
{
// 枚举成员定义
case SUPER_ADMIN = 1;
case NORMAL_ADMIN = 2;
public const CODE = 'sys_user_admin_type';
/**
* 获取显示标签
*/
public function label(): string
{
return match($this) {
self::SUPER_ADMIN => '超级管理员',
self::NORMAL_ADMIN => '普通管理员',
};
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php
declare(strict_types=1);
/**
*+------------------
* madong
*+------------------
* Copyright (c) https://gitee.com/motion-code All rights reserved.
*+------------------
* Author: Mr. April (405784684@qq.com)
*+------------------
* Official Website: https://madong.tech
*/
namespace app\enum\system;
enum Week: int
{
// 定义枚举项
case Monday = 1;
case Tuesday = 2;
case Wednesday = 3;
case Thursday = 4;
case Friday = 5;
case Saturday = 6;
case Sunday = 0;
// 获取中文标签
public function label(): string
{
return match($this) {
self::Monday => '周一',
self::Tuesday => '周二',
self::Wednesday => '周三',
self::Thursday => '周四',
self::Friday => '周五',
self::Saturday => '周六',
self::Sunday => '周日',
};
}
}
@@ -0,0 +1,58 @@
<?php
/**
*+------------------
* madong
*+------------------
* Copyright (c) https://gitee.com/motion-code All rights reserved.
*+------------------
* Author: Mr. April (405784684@qq.com)
*+------------------
* Official Website: https://madong.tech
*/
namespace app\enum\terminal;
use core\interface\IEnum;
enum CommandEvent: string implements IEnum
{
/**
* 连接成功事件
*/
case LINK_SUCCESS = 'command-link';
/**
* 执行成功事件
*/
case EXEC_SUCCESS = 'command-success';
/**
* 执行完成事件
*/
case EXEC_COMPLETED = 'command-completed';
/**
* 执行出错事件
*/
case EXEC_ERROR = 'command-error';
/**
* 默认/未知事件
*/
case DEFAULT = 'message'; // 默认事件类型
/**
* 获取状态显示文本
*/
public function label(): string
{
return match ($this) {
self::LINK_SUCCESS => '链接成功',
self::EXEC_SUCCESS => '执行成功',
self::EXEC_COMPLETED => '执行完成',
self::EXEC_ERROR => '执行出错',
self::DEFAULT => '默认',
};
}
}
@@ -0,0 +1,62 @@
<?php
/**
*+------------------
* madong
*+------------------
* Copyright (c) https://gitee.com/motion-code All rights reserved.
*+------------------
* Author: Mr. April (405784684@qq.com)
*+------------------
* Official Website: https://madong.tech
*/
namespace app\enum\terminal;
use core\interface\IEnum;
/**
* 命令任务任务枚举类
*
* @author Mr.April
* @since 1.0
*/
enum CommandTaskStatus: int implements IEnum
{
case Waiting = 0;
case Connecting = 1;
case Executing = 2;
case Success = 3;
case Failed = 4;
case Unknown = 5;
/**
* 获取状态对应的 CSS 颜色类型
* 用于前端显示样式
*/
public function color(): string
{
return match ($this) {
self::Waiting=>'purple',
self::Connecting => 'orange',
self::Executing => 'orange',
self::Success => 'green',
self::Failed => 'red',
self::Unknown => 'blue',
};
}
/**
* 获取状态显示文本
*/
public function label(): string
{
return match ($this) {
self::Waiting => '任务已创建,等待执行',
self::Connecting => '任务正在建立连接',
self::Executing => '任务正在执行中',
self::Success => '任务执行成功',
self::Failed => '任务执行失败',
self::Unknown => '任务状态未知',
};
}
}
+34
View File
@@ -0,0 +1,34 @@
<?php
declare(strict_types=1);
namespace app\enum\web;
use core\interface\IEnum;
/**
* 菜单分类枚举
*/
enum MenuCategory: int implements IEnum
{
case NAV = 1; // 导航菜单
case MEMBER = 2; // 会员菜单
/**
* 获取文本
*/
public function text(): string
{
return match ($this) {
self::NAV => '导航菜单',
self::MEMBER => '会员菜单',
};
}
/**
* 获取标签
*/
public function label(): string
{
return $this->text();
}
}
+34
View File
@@ -0,0 +1,34 @@
<?php
declare(strict_types=1);
namespace app\enum\web;
use core\interface\IEnum;
/**
* 目标窗口枚举
*/
enum MenuTarget: int implements IEnum
{
case SELF = 1; // 当前窗口
case BLANK = 2; // 新窗口
/**
* 获取文本
*/
public function text(): string
{
return match ($this) {
self::SELF => '当前窗口',
self::BLANK => '新窗口',
};
}
/**
* 获取标签
*/
public function label(): string
{
return $this->text();
}
}
+39
View File
@@ -0,0 +1,39 @@
<?php
declare(strict_types=1);
namespace app\enum\web;
use core\interface\IEnum;
/**
* 导航类型枚举
*/
enum MenuType: int implements IEnum
{
case DIRECTORY = 1; // 目录
case NAV = 2; // 导航菜单
case LINK = 3; // 外部链接
case PAGE = 4; // 单页面
/**
* 获取文本
*/
public function text(): string
{
return match ($this) {
self::NAV => '导航菜单',
self::LINK => '外部链接',
self::PAGE => '单页面',
self::DIRECTORY => '目录',
};
}
/**
* 获取标签
*/
public function label(): string
{
return $this->text();
}
}