添加角色信息编辑

This commit is contained in:
DelLevin-Home
2026-08-09 01:22:35 +08:00
parent df8335b187
commit c95a659921
17 changed files with 2657 additions and 14 deletions

View File

@@ -13,6 +13,7 @@ import '../pages/note/note_detail_page.dart';
import '../pages/game/game_detail_page.dart';
import '../pages/movies/douban_webview_page.dart';
import '../pages/people/person_form_page.dart';
import '../pages/character/character_form_page.dart';
/// 路由生成器
class AppRouter {
@@ -95,6 +96,16 @@ class AppRouter {
final Person? person = args is Person ? args : null;
return SlideUpPageRoute(page: PersonFormPage(person: person));
case '/character-form':
final args = settings.arguments as Map<String, dynamic>;
return SlideUpPageRoute(
page: CharacterFormPage(
entityType: args['entityType'] as String,
entityId: args['entityId'] as String,
character: args['character'],
),
);
default:
return _buildUnknownRoute(settings.name);
}

View File

@@ -147,6 +147,29 @@ class ImagePathHelper {
return p.join(dir, fileName);
}
// ==================== 角色相关路径 ====================
/// 获取角色图片目录
/// 路径: images/characters/{characterId}/
Future<String> getCharacterImagesDir(String characterId) async {
final root = await imagesRoot;
return p.join(root, 'characters', characterId);
}
/// 获取角色图片路径
/// 路径: images/characters/{characterId}/{fileName}
Future<String> getCharacterImagePath(String characterId, String fileName) async {
final dir = await getCharacterImagesDir(characterId);
return p.join(dir, fileName);
}
/// 删除角色图片目录
/// 删除路径: images/characters/{characterId}/
Future<void> deleteCharacterImages(String characterId) async {
final dirPath = await getCharacterImagesDir(characterId);
await _deleteDirectory(dirPath);
}
// ==================== 目录操作 ====================
/// 确保目录存在