refactor: 清理废弃模块并重构管理端与全端代码

- 移除所有废弃的旧首页配置模块,包括destinationHero、demand相关、HomeExperience、vehicleService等表结构与代码,新增数据库迁移删除遗留表
- 重构管理端后台布局为标准RuoYi风格,新增Sidebar、Navbar、SettingsDrawer等组件,替换旧的过渡菜单实现
- 调整移动端响应断点为768px,更新布局相关测试用例,新增布局组件测试
- 删除OperationsTools发布/重置页面,移除/tools菜单入口,清理对应的API调用与测试代码
- 重构玩法模块编辑器:替换旧的图片手动输入框为图片上传组件,移除冗余的取消按钮
- 新增线索查询offset参数支持,完善查询参数处理逻辑
- 优化rbac菜单构建逻辑,新增可见性控制参数
- 修正管家编辑器提示文案,优化系统资源编辑器表单初始化逻辑
- 清理小程序端废弃的体验推荐组件与相关测试代码
- 更新文档与种子脚本,匹配新的API契约与使用说明
This commit is contained in:
duanshuwen committed 2026-08-26 23:24:28 +08:00
1 parent f6c5ad589f
commit fbf2c772a8
63 files changed
+2272 -1991

No files matched your search

-53
View File
@@ -332,59 +332,6 @@ class DetailPatch(BaseModel):
return normalized or None
class HomeExperienceCreate(BaseModel):
badge: str = Field(min_length=1, max_length=40)
category: str = Field(min_length=1, max_length=80)
title: str = Field(min_length=1, max_length=120)
englishTitle: str = Field(min_length=1, max_length=120)
image: str = Field(min_length=1, max_length=2048)
demandKeyword: str = Field(min_length=1, max_length=120)
isActive: bool = True
sortOrder: int | None = Field(default=None, ge=0)
@field_validator("badge", "category", "title", "englishTitle", "demandKeyword")
@classmethod
def normalize_experience_text(cls, value: str) -> str:
return normalize_required_text(value)
@field_validator("image")
@classmethod
def normalize_experience_image(cls, value: str) -> str:
return normalize_required_url(value)
class HomeExperiencePatch(BaseModel):
badge: str | None = Field(default=None, min_length=1, max_length=40)
category: str | None = Field(default=None, min_length=1, max_length=80)
title: str | None = Field(default=None, min_length=1, max_length=120)
englishTitle: str | None = Field(default=None, min_length=1, max_length=120)
image: str | None = Field(default=None, min_length=1, max_length=2048)
demandKeyword: str | None = Field(default=None, min_length=1, max_length=120)
isActive: bool | None = None
sortOrder: int | None = Field(default=None, ge=0)
@field_validator("badge", "category", "title", "englishTitle", "demandKeyword", mode="before")
@classmethod
def normalize_experience_patch_text(cls, value: str | None) -> str:
if value is None:
raise ValueError("字段不能为空")
return normalize_required_text(value)
@field_validator("image", mode="before")
@classmethod
def normalize_experience_patch_image(cls, value: str | None) -> str:
if value is None:
raise ValueError("字段不能为空")
return normalize_required_url(value)
@field_validator("isActive", "sortOrder", mode="before")
@classmethod
def reject_experience_patch_null(cls, value):
if value is None:
raise ValueError("字段不能为空")
return value
class HomeTeamBuildingCreate(BaseModel):
tag: str = Field(min_length=1, max_length=40)
title: str = Field(min_length=1, max_length=120)