feat(web): 创作者中心「当前创作者」代看下拉 + 未绑定引导页
为什么:超管点进创作者中心原本是一片"未绑定创作者主体"的报错,既没说明原因也没有出路。 这批把两件事做出来:超管能在顶部选一个创作者只读代看;没有创作者身份的账号看到明确的引导页而不是白屏。 - 新增 useCreatorAccess(身份三态:granted / need-target / unbound)+ ImpersonationBar + CreatorAccessGuide, 四个页面用 CreatorCenterPage 统一套壳;身份不满足时不打业务接口,避免一串无意义的报错提示 - 代看目标存 localStorage,由 axios.request 统一给 /admin/creator-center 的请求加 X-Creator-Id 头 (不做查询参数;后端只对具备 impersonate 权限的账号认这个头) - axios 支持 silent 请求:业务码非 0 时不弹全局提示、把 Result 交给调用方判断(引导页据此分流) - 代看只读体验:代看态下「新建作品 / 编辑 / 提交审核 / 撤回」不渲染,编辑页整页禁用并提示原因 - 顶部下拉只在有 impersonate 权限时显示;无权限账号看不到、也不会请求 targets 接口
This commit is contained in:
1 parent
0a2e3e0b81
commit
685c912313
19 files changed
+995
-658
No files matched your search
@@ -19,6 +19,15 @@ export interface CreatorProfile {
|
||||
dramaTotal: number
|
||||
}
|
||||
|
||||
/** 代看目标下拉项(后端只给 id / 名称 / 状态) */
|
||||
export interface CreatorCenterTarget {
|
||||
id: number
|
||||
code: string
|
||||
name: string
|
||||
status: string
|
||||
statusText: string
|
||||
}
|
||||
|
||||
/** 我的作品 + 最近一次提交的审核进度 */
|
||||
export interface CreatorDrama {
|
||||
id: number
|
||||
@@ -132,6 +141,19 @@ export const getCreatorProfileApi = () => {
|
||||
return request.get<CreatorProfile>({ url: '/admin/creator-center/profile' })
|
||||
}
|
||||
|
||||
/**
|
||||
* 静默探测当前账号的创作者身份:不弹全局提示,直接把 Result 交给调用方判断。
|
||||
* 用于「已绑定 / 可代看但没选目标 / 未绑定」三态分流,渲染引导页。
|
||||
*/
|
||||
export const probeCreatorAccessApi = () => {
|
||||
return request.get<CreatorProfile>({ url: '/admin/creator-center/profile', silent: true })
|
||||
}
|
||||
|
||||
/** 代看目标下拉的数据源(仅 impersonate 权限可调) */
|
||||
export const listImpersonationTargetsApi = () => {
|
||||
return request.get<CreatorCenterTarget[]>({ url: '/admin/creator-center/impersonation/targets' })
|
||||
}
|
||||
|
||||
export const pageMyDramasApi = (params: Record<string, unknown>) => {
|
||||
return request.get<PageResult<CreatorDrama>>({ url: '/admin/creator-center/dramas/page', params })
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user