73 lines
1.6 KiB
Dart
73 lines
1.6 KiB
Dart
/// 系统菜单模型。
|
||
///
|
||
/// 对应后端 /sys/menu/* 接口的菜单实体。
|
||
/// type 取值:0=目录 1=菜单 2=按钮。
|
||
class SysMenu {
|
||
const SysMenu({
|
||
required this.menuId,
|
||
required this.name,
|
||
required this.url,
|
||
required this.type,
|
||
required this.icon,
|
||
required this.parentId,
|
||
required this.orderNum,
|
||
required this.perms,
|
||
required this.show,
|
||
});
|
||
|
||
/// 菜单 ID。
|
||
final String menuId;
|
||
|
||
/// 菜单名称。
|
||
final String name;
|
||
|
||
/// 路由地址。
|
||
final String url;
|
||
|
||
/// 类型(0=目录 1=菜单 2=按钮)。
|
||
final int type;
|
||
|
||
/// 图标。
|
||
final String icon;
|
||
|
||
/// 父级 ID。
|
||
final String parentId;
|
||
|
||
/// 排序号。
|
||
final int orderNum;
|
||
|
||
/// 权限标识。
|
||
final String perms;
|
||
|
||
/// 是否显示(0=显示 1=隐藏)。
|
||
final int show;
|
||
|
||
factory SysMenu.fromJson(Map<String, dynamic> json) {
|
||
return SysMenu(
|
||
menuId: (json['menuId'] ?? json['id'])?.toString() ?? '',
|
||
name: json['name']?.toString() ?? '',
|
||
url: json['url']?.toString() ?? '',
|
||
type: int.tryParse(json['type']?.toString() ?? '0') ?? 0,
|
||
icon: json['icon']?.toString() ?? '',
|
||
parentId: json['parentId']?.toString() ?? '',
|
||
orderNum: int.tryParse(json['orderNum']?.toString() ?? '0') ?? 0,
|
||
perms: json['perms']?.toString() ?? '',
|
||
show: int.tryParse(json['show']?.toString() ?? '0') ?? 0,
|
||
);
|
||
}
|
||
|
||
Map<String, dynamic> toJson() {
|
||
return {
|
||
'menuId': menuId,
|
||
'name': name,
|
||
'url': url,
|
||
'type': type,
|
||
'icon': icon,
|
||
'parentId': parentId,
|
||
'orderNum': orderNum,
|
||
'perms': perms,
|
||
'show': show,
|
||
};
|
||
}
|
||
}
|