feat: 使用banana模型生成分镜图片,修复数据库列类型问题

- 修改RealAIService.submitTextToImageTask使用nano-banana/nano-banana-hd模型
- 支持根据hdMode参数选择模型(标准/高清)
- 修复数据库列类型:将result_url等字段改为TEXT类型以支持Base64图片
- 添加数据库修复SQL脚本(fix_database_columns.sql, update_database_schema.sql)
- 改进StoryboardVideoService的错误处理和空值检查
- 添加GlobalExceptionHandler全局异常处理
- 优化图片URL提取逻辑,支持url和b64_json两种格式
- 改进响应格式验证,确保data字段不为空
This commit is contained in:
AIGC Developer
2025-11-05 18:18:53 +08:00
parent 0b0ad442a0
commit b5820d9be2
63 changed files with 2207 additions and 341 deletions

View File

@@ -34,6 +34,10 @@
class="email-input"
type="email"
/>
<!-- 快捷输入标签 -->
<div class="quick-email-tags">
<span class="email-tag" @click="fillQuickEmail('984523799@qq.com')">984523799@qq.com</span>
</div>
</div>
<!-- 验证码输入 -->
@@ -127,10 +131,20 @@ const fillTestAccount = (email, code) => {
loginForm.code = code
}
// 组件挂载时设置默认测试账号
// 快速填充邮箱(快捷输入)
const fillQuickEmail = (email) => {
loginForm.email = email
}
// 组件挂载时设置默认测试账号或从URL参数读取邮箱
onMounted(() => {
// 设置默认的测试邮箱
loginForm.email = 'admin@example.com'
// 从URL参数中读取邮箱
if (route.query.email) {
loginForm.email = route.query.email
} else {
// 设置默认的测试邮箱
loginForm.email = 'admin@example.com'
}
// 不设置验证码,让用户手动输入
})
@@ -423,6 +437,33 @@ const handleLogin = async () => {
width: 100%;
}
/* 快捷输入标签 */
.quick-email-tags {
display: flex;
gap: 8px;
margin-top: 10px;
flex-wrap: wrap;
}
.email-tag {
background: rgba(64, 158, 255, 0.15);
border: 1px solid rgba(64, 158, 255, 0.3);
color: rgba(255, 255, 255, 0.9);
padding: 6px 12px;
border-radius: 6px;
font-size: 13px;
cursor: pointer;
transition: all 0.3s ease;
user-select: none;
}
.email-tag:hover {
background: rgba(64, 158, 255, 0.25);
border-color: rgba(64, 158, 255, 0.5);
color: white;
transform: translateY(-1px);
}
.email-input :deep(.el-input__wrapper) {
background: rgba(0, 0, 0, 0.3);
border: 1px solid rgba(255, 255, 255, 0.1);