67 lines
3.0 KiB
Python
67 lines
3.0 KiB
Python
"""首页入口 VO。"""
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class HomeEntryAreaVO(BaseModel):
|
|
"""入口模块地区配置。"""
|
|
|
|
area: str = Field(..., description="地区名称")
|
|
enabled: bool = Field(..., description="是否启用")
|
|
sortOrder: int = Field(0, description="地区内排序")
|
|
|
|
|
|
class HomeEntryTenantVO(BaseModel):
|
|
"""入口模块租户配置。"""
|
|
|
|
tenantCode: str = Field(..., description="租户编码")
|
|
tenantName: str | None = Field(None, description="租户名称")
|
|
enabled: bool = Field(..., description="是否启用")
|
|
sortOrder: int = Field(0, description="租户内排序")
|
|
|
|
|
|
class HomeEntryDocumentTypeVO(BaseModel):
|
|
"""入口模块下的文档类型。"""
|
|
|
|
id: int = Field(..., description="文档类型ID")
|
|
name: str = Field(..., description="文档类型名称")
|
|
code: str | None = Field(None, description="文档类型编码")
|
|
|
|
|
|
class HomeEntryModuleVO(BaseModel):
|
|
"""首页入口模块。"""
|
|
|
|
id: int = Field(..., description="入口模块ID")
|
|
name: str = Field(..., description="模块名称")
|
|
description: str | None = Field(None, description="模块描述")
|
|
targetPath: str | None = Field(None, description="点击后跳转路径")
|
|
routePath: str | None = Field(None, description="用于 RBAC 校验的页面路径")
|
|
menuProfile: str = Field("document_review", description="菜单模板")
|
|
features: list[str] = Field(default_factory=list, description="启用功能编码列表")
|
|
tenantCode: str | None = Field(None, description="当前命中的租户编码")
|
|
iconPath: str | None = Field(None, description="模块图标路径")
|
|
sortOrder: int = Field(0, description="排序序号")
|
|
requiresDocumentTypes: bool = Field(True, description="是否要求至少绑定一个文档类型")
|
|
areas: list[HomeEntryAreaVO] = Field(default_factory=list, description="地区配置")
|
|
tenants: list[HomeEntryTenantVO] = Field(default_factory=list, description="租户配置")
|
|
documentTypes: list[HomeEntryDocumentTypeVO] = Field(default_factory=list, description="关联文档类型列表")
|
|
|
|
|
|
class HomeDashboardGrowthVO(BaseModel):
|
|
"""首页统计环比数据。"""
|
|
|
|
value: int = Field(0, description="环比百分比")
|
|
isUp: bool = Field(True, description="是否上升")
|
|
|
|
|
|
class HomeDashboardStatisticsVO(BaseModel):
|
|
"""首页统计卡片数据。"""
|
|
|
|
todayPendingFiles: int = Field(0, description="今日待审文件数")
|
|
monthlyReviewedFiles: int = Field(0, description="本月已审核文件数")
|
|
monthlyReviewGrowth: HomeDashboardGrowthVO = Field(default_factory=HomeDashboardGrowthVO, description="本月审核数环比")
|
|
monthlyPassRate: int = Field(0, description="本月审核通过率")
|
|
passRateGrowth: HomeDashboardGrowthVO = Field(default_factory=HomeDashboardGrowthVO, description="通过率环比")
|
|
issuesDetected: int = Field(0, description="本月问题检出数")
|
|
issuesGrowth: HomeDashboardGrowthVO = Field(default_factory=HomeDashboardGrowthVO, description="问题检出数环比")
|