refactor: 清理废弃模块并重构管理端与全端代码
- 移除所有废弃的旧首页配置模块,包括destinationHero、demand相关、HomeExperience、vehicleService等表结构与代码,新增数据库迁移删除遗留表 - 重构管理端后台布局为标准RuoYi风格,新增Sidebar、Navbar、SettingsDrawer等组件,替换旧的过渡菜单实现 - 调整移动端响应断点为768px,更新布局相关测试用例,新增布局组件测试 - 删除OperationsTools发布/重置页面,移除/tools菜单入口,清理对应的API调用与测试代码 - 重构玩法模块编辑器:替换旧的图片手动输入框为图片上传组件,移除冗余的取消按钮 - 新增线索查询offset参数支持,完善查询参数处理逻辑 - 优化rbac菜单构建逻辑,新增可见性控制参数 - 修正管家编辑器提示文案,优化系统资源编辑器表单初始化逻辑 - 清理小程序端废弃的体验推荐组件与相关测试代码 - 更新文档与种子脚本,匹配新的API契约与使用说明
This commit is contained in:
1 parent
f6c5ad589f
commit
fbf2c772a8
63 files changed
+2272
-1991
No files matched your search
@@ -5,20 +5,13 @@ import json
|
||||
from sqlalchemy import delete, select
|
||||
from sqlalchemy.orm import Session
|
||||
from .auth import hash_password
|
||||
from .content import DEMAND_FEATURE_CARDS, DEMAND_FORM, DEMAND_HERO, DESTINATION_HERO, HERO_SLIDES, VEHICLE_OPTIONS, VEHICLE_SERVICE
|
||||
from .content import HERO_SLIDES, VEHICLE_OPTIONS
|
||||
from .database import Base, SessionLocal, engine
|
||||
from .models import (
|
||||
AdminUser,
|
||||
DemandFeatureCard,
|
||||
DemandForm,
|
||||
DemandHero,
|
||||
DestinationHero,
|
||||
HeroSlide,
|
||||
MediaAsset,
|
||||
SiteVersion,
|
||||
VehicleOption,
|
||||
VehicleServiceConfig,
|
||||
utc_now,
|
||||
)
|
||||
def create_media(db: Session, url: str | None, group: str, name: str | None = None) -> None:
|
||||
if not url:
|
||||
@@ -33,8 +26,8 @@ def create_media(db: Session, url: str | None, group: str, name: str | None = No
|
||||
db.add(MediaAsset(url=url, group=group, name=name))
|
||||
|
||||
|
||||
def reset_guizhou_content(db: Session) -> dict:
|
||||
for model in [SiteVersion, DemandForm, DemandFeatureCard, DemandHero, VehicleOption, VehicleServiceConfig, DestinationHero, HeroSlide, MediaAsset]:
|
||||
def seed_initial_content(db: Session) -> dict:
|
||||
for model in [VehicleOption, HeroSlide, MediaAsset]:
|
||||
db.execute(delete(model))
|
||||
db.flush()
|
||||
|
||||
@@ -50,17 +43,6 @@ def reset_guizhou_content(db: Session) -> dict:
|
||||
)
|
||||
)
|
||||
|
||||
for index, item in enumerate(DESTINATION_HERO):
|
||||
create_media(db, item.get("image"), "destination-hero", item["title"])
|
||||
db.add(
|
||||
DestinationHero(
|
||||
title=item["title"],
|
||||
kicker=item.get("kicker"),
|
||||
image=item.get("image"),
|
||||
sortOrder=index,
|
||||
)
|
||||
)
|
||||
|
||||
for index, option in enumerate(VEHICLE_OPTIONS):
|
||||
create_media(db, option["image"], "vehicle-option", option["title"])
|
||||
db.add(
|
||||
@@ -72,55 +54,9 @@ def reset_guizhou_content(db: Session) -> dict:
|
||||
)
|
||||
)
|
||||
|
||||
db.add(VehicleServiceConfig(**VEHICLE_SERVICE))
|
||||
|
||||
for index, item in enumerate(DEMAND_HERO):
|
||||
db.add(
|
||||
DemandHero(
|
||||
title=item["title"],
|
||||
kicker=item.get("kicker"),
|
||||
description=item.get("description"),
|
||||
steps=item.get("steps", []),
|
||||
sortOrder=index,
|
||||
)
|
||||
)
|
||||
|
||||
for index, item in enumerate(DEMAND_FEATURE_CARDS):
|
||||
db.add(
|
||||
DemandFeatureCard(
|
||||
title=item["title"],
|
||||
description=item.get("description"),
|
||||
sortOrder=index,
|
||||
)
|
||||
)
|
||||
|
||||
db.add(DemandForm(**DEMAND_FORM))
|
||||
|
||||
snapshot = SiteVersion(
|
||||
title="guizhou-content-reset",
|
||||
status="published",
|
||||
publishedAt=utc_now(),
|
||||
snapshot={
|
||||
"heroSlides": len(HERO_SLIDES),
|
||||
"destinationHero": len(DESTINATION_HERO),
|
||||
"vehicleOptions": len(VEHICLE_OPTIONS),
|
||||
"vehicleService": 1,
|
||||
"demandHero": len(DEMAND_HERO),
|
||||
"demandFeatureCards": len(DEMAND_FEATURE_CARDS),
|
||||
"demandForm": 1,
|
||||
},
|
||||
)
|
||||
db.add(snapshot)
|
||||
db.flush()
|
||||
return {
|
||||
"heroSlides": len(HERO_SLIDES),
|
||||
"destinationHero": len(DESTINATION_HERO),
|
||||
"vehicleOptions": len(VEHICLE_OPTIONS),
|
||||
"vehicleService": 1,
|
||||
"demandHero": len(DEMAND_HERO),
|
||||
"demandFeatureCards": len(DEMAND_FEATURE_CARDS),
|
||||
"demandForm": 1,
|
||||
"siteVersionId": snapshot.id,
|
||||
}
|
||||
|
||||
|
||||
@@ -142,7 +78,7 @@ def seed_database(reset: bool) -> dict:
|
||||
role="super_admin",
|
||||
)
|
||||
)
|
||||
result = reset_guizhou_content(db) if reset else {"reset": False}
|
||||
result = seed_initial_content(db) if reset else {"seeded": False}
|
||||
db.commit()
|
||||
return result
|
||||
|
||||
|
||||
Reference in new issue
Block a user