43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
from django.db.models import SET_DEFAULT
|
|
|
|
from utils import fields
|
|
from utils.BaseModels import CoreModel
|
|
|
|
|
|
class Menu(CoreModel):
|
|
MENU_TYPE_CHOICES = (
|
|
(0, "目录"),
|
|
(1, "菜单"),
|
|
(2, "按钮"),
|
|
)
|
|
METHOD_CHOICE = (
|
|
('GET', 'GET'),
|
|
('POST', 'POST'),
|
|
('PUT', 'PUT'),
|
|
('PATCH', 'PATCH'),
|
|
('DELETE', 'DELETE'),
|
|
('HEAD', 'HEAD'),
|
|
('OPTIONS', 'OPTIONS'),
|
|
('TRACE', 'TRACE'),
|
|
)
|
|
name = fields.CharField(null=False, max_length=64, verbose_name="菜单名称")
|
|
icon = fields.CharField(max_length=64, verbose_name="菜单图标")
|
|
orderNum = fields.IntegerField(verbose_name="显示排序")
|
|
menuType = fields.IntegerField(choices=MENU_TYPE_CHOICES, verbose_name="菜单类型")
|
|
status = fields.BooleanField(default=False, verbose_name="菜单状态")
|
|
visible = fields.BooleanField(default=False, verbose_name="显示状态")
|
|
isFrame = fields.BooleanField(default=False, verbose_name="是否外链")
|
|
web_path = fields.CharField(max_length=128, verbose_name="前端路由地址")
|
|
component_path = fields.CharField(max_length=128, verbose_name="组件路径")
|
|
interface_path = fields.CharField(max_length=256, verbose_name="接口路径")
|
|
interface_method = fields.CharField(choices=METHOD_CHOICE, max_length=16, verbose_name="接口请求方式")
|
|
isCache = fields.BooleanField(default=False, verbose_name="是否外链")
|
|
parentId = fields.ForeignKey(to='Menu', on_delete=SET_DEFAULT, default=False, verbose_name="上级菜单")
|
|
|
|
class Meta:
|
|
verbose_name = '菜单管理'
|
|
verbose_name_plural = verbose_name
|
|
|
|
def __str__(self):
|
|
return f"{self.name}"
|