fix: 调整前端组件样式和修复后端调度器问题

修复操作列按钮宽度计算问题,调整日志详情页标签宽度
优化任务状态选项标签,从"暂停"改为"停用"
移除后端调度器无用导入,添加job_id到日志记录
添加job_id查询参数到任务日志接口
优化前端应用列表页搜索表单和分页样式
修复Pydantic错误消息处理,去除冗余前缀
添加应用模型的前置处理和验证逻辑
This commit is contained in:
zhangtao
2025-10-28 01:35:06 +08:00
parent 780e02b9de
commit 96335b385f
9 changed files with 85 additions and 86 deletions
@@ -35,11 +35,14 @@ class JobLogQueryParam:
def __init__(
self,
job_id: Optional[int] = Query(None, description="定时任务ID"),
job_name: Optional[str] = Query(None, description="任务名称"),
status: Optional[bool] = Query(None, description="状态: 正常,失败"),
start_time: Optional[DateTimeStr] = Query(None, description="开始时间", example="2025-01-01 00:00:00"),
end_time: Optional[DateTimeStr] = Query(None, description="结束时间", example="2025-12-31 23:59:59"),
) -> None:
# 定时任务ID查询
self.job_id = job_id
# 模糊查询字段
self.job_name = ("like", job_name)
# 精确查询字段
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from typing import Optional
from pydantic import BaseModel, ConfigDict, Field
from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
from app.core.base_schema import BaseSchema
@@ -14,6 +14,28 @@ class ApplicationCreateSchema(BaseModel):
status: bool = Field(True, description="是否启用(True:启用 False:禁用)")
description: Optional[str] = Field(default=None, max_length=255, description="描述")
@model_validator(mode="before")
@classmethod
def _normalize(cls, data):
"""模型级前置处理:去除首尾空格,空字符串转为 None(可选字段)。"""
if isinstance(data, dict):
for key in ("name", "access_url", "icon_url", "description"):
val = data.get(key)
if isinstance(val, str):
val = val.strip()
# 将可选字段的空字符串转换为 None
if key in ("icon_url", "description") and val == "":
val = None
data[key] = val
return data
@field_validator('name')
@classmethod
def _validate_name_length(cls, v: str) -> str:
if len(v) > 64:
raise ValueError('应用名称长度不能超过64字符')
return v
class ApplicationUpdateSchema(ApplicationCreateSchema):
"""应用更新模型"""