feat: 重构 IdentifyFace.vue 为 Hooks 架构
- 新增 hooks/ 目录,包含三个专用 Hook: * useVoiceGeneration - 语音生成和校验逻辑 * useDigitalHumanGeneration - 数字人视频生成逻辑 * useIdentifyFaceController - 协调两个子 Hook 的控制器 - 新增 types/identify-face.ts 完整类型定义 - 重构 IdentifyFace.vue 使用 hooks 架构: * 视图层与业务逻辑分离 * 状态管理清晰化 * 模块解耦,逻辑清晰 - 遵循单一职责原则,每个 Hook 只负责一个领域 - 提升代码可测试性和可维护性 - 支持两种视频素材来源:素材库选择和直接上传 - 实现语音生成优先校验的业务规则 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -201,7 +201,10 @@ export function createClientAxios(options = {}) {
|
||||
}
|
||||
|
||||
if (data.code === 403 && typeof on403 === 'function') {
|
||||
on403(error)
|
||||
// 使用通用的权限不足错误,不使用后端返回的 message
|
||||
const forbiddenError = new Error('权限不足,无法访问该资源')
|
||||
forbiddenError.code = 403
|
||||
on403(forbiddenError)
|
||||
}
|
||||
|
||||
// 抛出错误,业务代码可以捕获
|
||||
@@ -217,7 +220,9 @@ export function createClientAxios(options = {}) {
|
||||
}
|
||||
|
||||
if (error.response?.status === 403 && typeof on403 === 'function') {
|
||||
on403(error)
|
||||
const forbiddenError = new Error('权限不足,无法访问该资源')
|
||||
forbiddenError.code = 403
|
||||
on403(forbiddenError)
|
||||
}
|
||||
|
||||
return Promise.reject(error)
|
||||
|
||||
Reference in New Issue
Block a user