zhonghua
|
56c49234bd
|
调整保存逻辑
|
2026-04-10 17:12:12 +08:00 |
|
zhonghua
|
1862204ac5
|
feat: 公众端绘本创作流程与作品展示优化,乐读派同步及封面回填迁移
Made-with: Cursor
|
2026-04-10 17:09:15 +08:00 |
|
zhonghua
|
430eba6bd6
|
格式化
|
2026-04-10 14:08:08 +08:00 |
|
zhonghua
|
7ad98e92ea
|
feat: 选角仅放大镜预览、extract草稿与作品提交审核
Made-with: Cursor
|
2026-04-10 14:07:40 +08:00 |
|
|
|
df1817fe23
|
refactor: 简化画风选择卡片,移除选中/未选中双图切换逻辑
画风卡片改为统一使用单张图片,删除 active 状态图片资源,
简化 StyleSelectView 组件数据结构和模板渲染逻辑。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-10 13:42:39 +08:00 |
|
|
|
8995e2f2e2
|
feat: 公众端多项功能增强——短信登录、作品状态优化、创作流程组件 keep-alive
后端:
- 新增手机号验证码登录接口及 PublicSmsLoginDto
- LeaiSync 作品同步状态阈值从 CATALOGED 调整为 DUBBED
- UgcWork 实体字段微调、数据库迁移脚本修正
前端:
- Login 页面支持用户名/手机号双模式登录
- public.ts 新增 loginBySms、sendSmsCode API
- AI 创作流程全部视图添加 keep-alive 组件名导出
- CreatingView 生成逻辑优化
- WelcomeView 欢迎页增强
- BookReaderView、作品库等页面细节修复
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-10 11:19:42 +08:00 |
|
|
|
387ee5ccfb
|
feat: 画风选择卡片用静态图片替换 emoji 占位,支持选中/未选中状态切换
- 导入 8 张画风图片(卡通/水彩/水墨/彩铅 × 选中/未选中)
- 根据选中状态动态切换预览图
- 删除 emoji SVG fallback 逻辑
- 隐藏油画、剪贴画(hidden: true)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-10 11:16:14 +08:00 |
|
zhonghua
|
1fff56d700
|
feat: 成果发布与报名数据优化、作品列表空结果修复、创建活动主办单位默认
- 成果发布:所属活动下拉与 GET /contests 筛选(id/resultState/creatorTenantId)
- 报名列表/详情:回显 contest、creatorTenant、user;主办机构列绑定 creatorTenant
- 作品列表:contestIds 为空时跳过评委 IN 查询避免 500
- 登录与用户信息返回 tenantName;创建活动默认主办单位
- 活动监管多页筛选表单补充 model
Made-with: Cursor
|
2026-04-10 10:32:37 +08:00 |
|
zhonghua
|
8561f3d320
|
fix: 用户管理筛选表单绑定 model 以触发搜索请求
Made-with: Cursor
|
2026-04-10 10:02:25 +08:00 |
|
zhonghua
|
af54ee645f
|
fix: 撤销审核回到待审队列并对齐前后端
Made-with: Cursor
|
2026-04-10 09:58:08 +08:00 |
|
|
|
922cf83dfe
|
Merge branch 'master_develop' of http://8.148.151.56:3000/tonytech/library-picturebook-activity into master_develop
|
2026-04-10 02:28:53 +08:00 |
|
|
|
322fd2c4ad
|
fix: WelcomeView 移除未 import 的 config 引用,修复创作页渲染崩溃
- 移除 brandTitle/brandSubtitle 死代码(引用了未 import 的 config)
- 移除未使用的 KeyOutlined import(上一轮已移除但遗漏了 config)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-09 22:33:51 +08:00 |
|
|
|
15428116b5
|
merge: 合并 origin/feat/zhz —— AI创作UI重做 + originalImageUrl兜底
合并内容:
- 对方:AI创作全流程 UI 紫粉主题重做(Ant Design 图标、步骤优化、触屏交互)
- 对方:stores/aicreate 新增 fillMockData/fillMockWorkDetail 开发辅助
- 对方:api/public 新增 WorkStatus 类型定义
- 对方:LeaiSyncService originalImageUrl 兜底逻辑
- 对方:Flyway V14-V16 迁移(从对方 V13 重编号避免冲突)
冲突解决:
- BookReaderView/PreviewView:保留 res(拦截器已解包),移除 appSecret 判断
- WelcomeView:保留浮动 CTA 设计,移除 goToEnterprise/isTokenMode(依赖已删除字段)
- WelcomeView:移除未使用的 KeyOutlined import
- Flyway V13:对方文件重编号为 V14-V16
验证:前端 vite build 通过,无冲突标记无残留 res.data
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-09 22:22:19 +08:00 |
|
|
|
b94c34bf60
|
优化公众端登录状态无法保存的问题
|
2026-04-09 21:32:53 +08:00 |
|
|
|
f1d40db322
|
fix: 清理 h5Url 死代码并修复后端代理 Content-Type 导致前端解析失败
- 移除 LeaiTokenVO.h5Url 字段、LeaiConfig.h5Url 配置及 yml 中的 h5-url
- 删除 LeaiAuthController.authRedirect() 方法和 LeaiAuthRedirectDTO
- 移除前端 authRedirectUrl 状态及 WelcomeView 企业认证按钮死代码
- 修复 LeaiProxyController 返回 text/plain 导致前端无法解析 JSON 的问题
(改用 ResponseEntity<String> + application/json Content-Type)
- 修复前端 aicreate 所有视图组件中 res.data 双重取值问题
(publicApi 拦截器已自动解包,无需再取 .data)
- 同步更新 E2E 测试 mock 数据移除 h5Url
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-09 21:31:25 +08:00 |
|
aid
|
37bd82714d
|
feat: 作品封面引入 PIP 画中画展示原图,详情页加全屏放大查看
- 大图为 AI 生成的绘本封面(coverUrl),右下角小图为用户上传的原图(originalImageUrl),形成"创作素材→AI 成果"的视觉对比
- 草稿等无 AI 封面的作品:大图为占位图,PIP 仍展示原图
涉及文件:
- works/Index.vue 作品库列表卡片加 PIP(右下角 34% 正方形 + 白边阴影)
- Gallery.vue 发现页卡片加同款 PIP
- mine/Favorites.vue 收藏列表加 PIP,type 加 originalImageUrl 字段
- components/WorkSelector.vue 作品选择器加更小尺寸 PIP(32%)
- works/Detail.vue 详情页新增「画作原图」独立卡片(左 84px 缩略图 + 右文字描述)
· 点击缩略图全屏 overlay 放大查看,背景毛玻璃 + 紫黑半透明
· hover 缩略图时显示放大镜图标
- _dev-mock.ts 5 条 mock 作品都加 originalImageUrl(不同 hue 区分),id=102 (draft) 的 coverUrl 设为 null 测试占位边界
兼容性:
- v-if 检查 originalImageUrl 不为空且与 coverUrl 不同,防止字段未拆分时显示重复
- 后端 originalImageUrl 字段为 null 时 PIP 不显示,老数据自动兼容
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-09 19:29:31 +08:00 |
|
aid
|
8638876fa9
|
style: 公众端剩余页面紫粉主题清理
- Gallery.vue 编辑推荐图标 FireOutlined → CrownFilled,#f59e0b → 主色
- mine/Index.vue 我的收藏菜单图标暖黄 + 橙 → 粉色
- mine/Registrations.vue 待审核 a-tag orange → gold(更柔和的状态色)
- mine/Children.vue 受限模式 a-tag orange → purple
- ActivityDetail.vue 成果区图标 #f59e0b → 主色
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-09 19:17:00 +08:00 |
|
aid
|
cd8de97f79
|
feat: 引入未发布作品状态与状态化操作面板(前端 UI 第一阶段)
- 新增 docs/design/public/ugc-work-status-redesign.md 完整设计方案与状态流转图
- UserWork.status 类型化为 WorkStatus 联合类型,加入 unpublished 中间状态
- 作品库 Index.vue 加「未发布」tab + 紫色标签样式 + emptyDescription + dev mock 兜底
- Detail.vue 完整重写:清 emoji + 紫粉化 + 根据 status 切换 5 套操作按钮
· draft → 继续创作
· unpublished → 公开发布 / 编辑信息
· pending_review → 撤回审核
· published → 下架
· rejected → 修改后重交(含拒绝原因卡片)
- EditInfoView 三按钮语义调整:「保存」→ unpublished、「直接发布」→ pending_review
- 删除独立 Publish.vue 与对应路由(发布功能并入 Detail.vue 公开发布按钮)
- 新建 _dev-mock.ts dev 模式数据共享文件,5 条覆盖全状态的 mock 作品 + 13 页详情
- 撤回 / 下架等接口与 leai workId 映射留 TODO,待后端第二阶段联调
详见 docs/design/public/ugc-work-status-redesign.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-09 18:48:14 +08:00 |
|
zhonghua
|
7384a0423c
|
feat: 工作台仪表盘补全、快捷操作与租户菜单优化
- TenantDashboard: 快捷操作去掉用户管理;最近活动依赖后端 recentContests
- ContestServiceImpl: getDashboard 返回最近活动、进行中、待审、今日报名及租户信息
- 机构管理: 子菜单全未选时剔除父菜单 ID(pruneOrphanParentMenuIds)
- 菜单管理: AntdIconPicker 与表单调整;设计文档同步
Made-with: Cursor
|
2026-04-09 18:25:13 +08:00 |
|
aid
|
951346a7a8
|
refactor: AI 创作流程 11 页界面全面重做与紫粉主题统一
- aicreate.scss 主题变量紫粉化,对齐 PublicLayout 设计语言
- 11 个创作流程 view 清理 emoji 改 antd 图标,文案去除"孩子/家长"等第三人称
- 路由调整:编排故事改到选画风之前(更顺的产品逻辑)
- WelcomeView 浮动 CTA + 完整 7 步流程引导
- CharactersView 单角色大图 / 多角色网格自适应
- StyleSelectView 预设路径 /aicreate/styles/{styleId}.jpg + SVG fallback
- CreatingView 改为异步任务式说明 + 去作品库入口
- PreviewView / DubbingView 缩略图统一为横向胶卷
- EditInfoView 底部三按钮(保存草稿 / 去配音 / 发布作品),配音改为可选
- BookReaderView 修复 dev 模式数据加载 + 紫粉封面
- DubbingView / BookReaderView 改用 page-fullscreen 布局类避免被 tabbar 遮挡
- store 新增 fillMockData / fillMockWorkDetail,支持 dev 无后端走通完整流程
- works/Index.vue 加 query.tab 双向同步,支持跳转携带 tab 参数
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-09 18:14:26 +08:00 |
|
zhonghua
|
4915f1ab6d
|
feat: 菜单管理左树右详情布局与左侧树区域滚动
Made-with: Cursor
|
2026-04-09 17:44:33 +08:00 |
|
zhonghua
|
e9ae6aeb7e
|
feat: 数据统计 API 与租户过滤对齐,补充 timeRange 与前端修复
Made-with: Cursor
|
2026-04-09 17:13:46 +08:00 |
|
zhonghua
|
7240c543fc
|
fix: 公众端广场推荐与超管统计Tab查询对齐设计文档
Made-with: Cursor
|
2026-04-09 16:29:42 +08:00 |
|
|
|
67de13c29a
|
feat: 公众端注册添加手机号必填——支持 AI 创作功能绑定手机号
后端 PublicRegisterDto phone 字段添加 @NotBlank + @Pattern 校验;
PublicAuthService 添加手机号唯一性检查(公众租户范围内);
前端 Login.vue 注册表单添加手机号输入框、验证规则、提交参数;
新增 10 条 E2E 测试用例覆盖前端校验、API 参数传递、完整注册流程。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-09 15:36:52 +08:00 |
|
|
|
f03991819d
|
feat: 管理端全功能 E2E 测试——40 用例覆盖登录、仪表盘、活动、报名、作品、评审、用户、导航
新增 10 个管理端 E2E 测试文件和 1 个 Mock fixture:
- admin.fixture.ts: Mock 数据 + 登录注入 + 组件预热 + 兜底 API 拦截
- login/contests/dashboard/navigation/registrations/works/reviews/users 等 9 个 spec
关键修复:route.fallback() 替代 route.continue() 修正 Mock 链式传递;
review-rules/select Mock + 兜底拦截器防止未 mock 请求到达真实后端。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-09 12:52:39 +08:00 |
|
zhonghua
|
f7f97c64e4
|
fix: 租户表单提交前去除字符串字段首尾空格
Made-with: Cursor
|
2026-04-09 12:05:46 +08:00 |
|
zhonghua
|
7a8d909df3
|
fix: 活动列表按阶段筛选未发布与已结束;已结束仅保留查看操作
Made-with: Cursor
|
2026-04-09 11:41:57 +08:00 |
|
zhonghua
|
d5657d8d23
|
feat: 表单提交前去除首尾空格;评委性别接口返回与持久化
Made-with: Cursor
|
2026-04-09 11:34:40 +08:00 |
|
zhonghua
|
b19acbd6d5
|
feat: 作品分配仅限活动评委、评委库仅启用及 UGC 调整
- 作品管理分配评委仅使用活动显式名单,assignWork 校验 t_biz_contest_judge
- 添加评委/评审进度选择评委时仅查询启用账号;接口文档与 API 注释
- UGC 作品分页与公开创作服务相关改动
Made-with: Cursor
|
2026-04-09 11:04:37 +08:00 |
|
zhonghua
|
937f0650f0
|
feat: 活动创建页报名审核开关与作品详情页图片布局优化
Made-with: Cursor
|
2026-04-09 10:16:23 +08:00 |
|
|
|
c1113c937c
|
feat: 赛事→活动术语统一,AI创作嵌套路由重构,前端依赖升级
后端:
- 全局将"赛事"统一为"活动"(Swagger注解、DTO、Entity、Controller、Service)
- 评审模块DTO/Entity/Service字段调整与优化
- 新增V9迁移脚本,修改V2/V4/V6迁移脚本注释
- PublicRegisterActivityDto字段对齐
前端:
- AI绘本创作路由重构为嵌套路由(11个子路由)
- 新增依赖:@stomp/stompjs、ali-oss、crypto-js
- 环境配置(.env)更新,vite配置调整
- API接口术语统一,PublicLayout与aicreate store优化
- 新增nginx部署文档
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-08 22:58:07 +08:00 |
|
|
|
6365dd8dd0
|
feat: AI绘本创作H5整合——引入aicreate.scss修复样式,修复checkQuota类型参数
- 在 main.ts 中引入 aicreate.scss,解决所有 CSS 变量和共享样式类缺失的根因问题
- Index.vue 从 iframe 嵌入模式重构为壳组件+子路由渲染模式
- 修复 aicreate.scss 布局适配:height:100% 填充 PublicLayout,page-fullscreen 使用 100% 而非 100dvh
- 修复 checkQuota() 的 type 参数:'A' → 'A3',对齐乐读派后端 V4.0 接口要求
- 迁移 lesingle-aicreate-client 全部 11 个视图、2 个组件、API 层、Store、工具函数
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-08 18:09:05 +08:00 |
|
zhonghua
|
88ca6264a1
|
feat: 赛事作品多页预览解析与抽屉分页展示
Made-with: Cursor
|
2026-04-08 17:35:05 +08:00 |
|
zhonghua
|
cc5a5fb4e3
|
fix: 我的收藏列表与后端扁平字段对齐,修复 coverUrl 报错
Made-with: Cursor
|
2026-04-08 17:16:13 +08:00 |
|
zhonghua
|
593f7977eb
|
feat: 公众端活动成果卡片展示与公开公示接口
Made-with: Cursor
|
2026-04-08 16:31:48 +08:00 |
|
zhonghua
|
328533e805
|
feat: C端活动详情返回公告与附件,子女账号简化报名弹窗
Made-with: Cursor
|
2026-04-08 16:00:59 +08:00 |
|
zhonghua
|
3fa1ef95ac
|
feat: 主站 /ai-web 嵌入 AI 创作子应用并修正路径与通信
Made-with: Cursor
|
2026-04-08 15:32:18 +08:00 |
|
|
|
b9ed5e17c6
|
feat: OSS 客户端直传改造(STS Token 签发 + 前端直传 + CORS 自动配置)
后端新增 OssUtils/OssTokenVo/OssCorsInitRunner,通过 STS 临时凭证实现客户端直传 OSS;
前端 upload API 适配直传流程,赛事创建/作品提交/作业/富文本编辑器均已切换;
多环境(dev/test/prod) OSS 配置补全;新增 oss-direct-upload-demo 示例项目及 E2E 测试。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-08 15:19:43 +08:00 |
|
zhonghua
|
9f036eb81f
|
fix: 成果详情搜索表单绑定 model 以触发查询
Made-with: Cursor
|
2026-04-08 14:47:19 +08:00 |
|
zhonghua
|
36cd01c585
|
feat: 作品编号 workNo 生成与回填(公开端/作业/Flyway V8)及评审与前端展示
Made-with: Cursor
|
2026-04-08 14:44:16 +08:00 |
|
zhonghua
|
430dce1f09
|
postMessage消息对接优化
|
2026-04-08 14:09:52 +08:00 |
|
zhonghua
|
7d7ef9820b
|
fix: 作品分配评委移除后同步数据库并允许清空评委
Made-with: Cursor
|
2026-04-08 11:30:54 +08:00 |
|
zhonghua
|
180c22fe49
|
feat: 作品列表终分回算、评审进度详情展示对齐及评委管理优化
Made-with: Cursor
|
2026-04-08 10:53:50 +08:00 |
|
|
|
9b5c24c49c
|
Merge remote-tracking branch 'origin/master_develop' into master_develop
|
2026-04-08 09:36:50 +08:00 |
|
|
|
922f650365
|
feat: 添加乐读派(leai)集成模块及E2E测试基础设施
后端:
- 新增 leai 模块:认证、Webhook、数据同步、定时对账
- 新增 LeaiConfig/RestTemplateConfig/SchedulingConfig 配置
- 新增 FlywayRepairConfig 处理迁移修复
- 新增 V5__leai_integration.sql 迁移脚本
- 扩展所有实体类添加 tenantId 等字段
- 更新 SecurityConfig 放行 leai 公开接口
- 添加 application-test.yml 测试环境配置
前端:
- 添加乐读派认证 API (public.ts)
- 优化 Generating.vue 生成页
- 添加 Playwright E2E 测试配置及依赖
- 添加测试 fixtures、utils、mock-h5.html
- 添加 leai 模块完整 E2E 测试套件
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-07 21:52:32 +08:00 |
|
|
|
9ad9f5b237
|
fix: 创作页 iframe tab 切换状态保持
使用 v-show 始终挂载方案替代 KeepAlive,解决 iframe 内 H5 状态
在 tab 切换后丢失的问题。Vue KeepAlive 会移动 DOM 导致浏览器
重新加载 iframe 内容,v-show 只切换 CSS display 不移动 DOM。
- PublicLayout 中将 PublicCreate 渲染在 router-view 外部
- v-if 懒挂载(首次访问创建),v-show 控制显隐
- 登出时销毁组件避免数据泄漏
- 添加 RouteMeta keepAlive 类型定义
- 添加 E2E 测试覆盖 5 个 tab 切换场景
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-07 21:50:08 +08:00 |
|
zhonghua
|
2f84ac16d3
|
fix:添加评委选择回显
|
2026-04-07 19:32:44 +08:00 |
|
zhonghua
|
1d43501983
|
fix:修复评委打分403
|
2026-04-07 17:48:48 +08:00 |
|
zhonghua
|
170d904081
|
feat: 作品管理分配状态/评委回显 + 评委管理租户隔离
Changes:
1. ContestWorkServiceImpl: findAll 返回 assignments、_count 数据 + assignStatus 搜索
2. ContestJudgeServiceImpl: 评委列表返回 assignedCount(已分配作品数)
3. JudgesManagementServiceImpl: 评委库租户隔离(查询当前租户+平台评委,创建在当前租户、平台评委只读)
4. judges/Index.vue: 增加"来源"列 + 平台评委操作限制
5. judges-management.ts: 类型增加 isPlatform/tenantId
6. WorksDetail.vue: 小修改
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-07 17:10:40 +08:00 |
|
zhonghua
|
1c63cb21e5
|
feat: 活动提交联动作品库+多租户数据对齐
1. P0-12 活动提交联动:替换文件上传为 WorkSelector 作品选择器
- 前端 ActivityDetail.vue 集成 WorkSelector 组件
- 后端 submitWork 支持 userWorkId 快照复制(title/description/coverUrl/pages)
- WorkSelector 支持 redirectUrl 创作后返回活动页
2. 多租户数据对齐:修复公众端报名/作品 tenantId 不一致
- register() 使用活动的 contestTenants[0] 作为 tenantId
- submitWork() 使用报名记录的 tenantId
- 管理端报名/作品统计、列表数据一致
3. 前端报名状态区分:pending/passed/rejected 显示不同按钮
4. submitWork 报名状态检查:区分未报名/审核中/已拒绝提示
5. 活动列表添加 _count(报名数/作品数)用于已交/应交展示
6. 修复 PublicCreationService.submit() title 默认值缺失
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-07 14:11:59 +08:00 |
|