feat: art-design-pro 脚手架落地与品牌化(八页骨架/代理配置/权限菜单)
- 模板 art-design-pro(MIT)GitHub 直连克隆后裁剪落地 admin/:删除演示页面/示例数据/mock/未用组件,保留构建与依赖清单 - 品牌化:应用名/标题/侧栏与登录页 logo/浏览器 favicon 全部替换为 all-kefu 自有资源(static/kefu-small.png),中文界面 - 八页骨架:login / force-change-password / dashboard / tenants / conversations / config / stats / settings 占位页 + 6 组路由模块 - 权限菜单:meta.roles 前端过滤,super 全量,tenant 隐藏 租户管理/平台设置(角色值与后端一致) - 开发代理:/api 直转 + /api/public 与 /static 携带租户 Host 改写(VITE_TENANT_PREVIEW_HOST),适配后端 TenantHostMiddleware - 认证 API 为开发桩(角色调试开关),Task 3 对接真实登录 Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
* 认证 API——脚手架阶段(Phase 3 Task 2)的开发桩。
|
||||
*
|
||||
* 后端真实端点为 /api/platform/auth/*(登录 / 用户信息 / 改密),
|
||||
* Task 3 对接真实登录时将本文件替换为真实请求。
|
||||
*
|
||||
* 桩行为:
|
||||
* - fetchLogin:开发态直接发放本地会话令牌,不发起网络请求;
|
||||
* - fetchGetUserInfo:按登录页的角色调试开关(sessionStorage
|
||||
* `all-kefu-dev-role`:super | tenant)返回用户信息,用于演示
|
||||
* 纯前端菜单权限控制——super 全量菜单,tenant 隐藏
|
||||
* 租户管理 / 平台设置(见 router/modules/*.ts 的 meta.roles);
|
||||
* - 生产构建(非 DEV)下调用将抛出显式错误,避免带桩上线。
|
||||
*/
|
||||
const DEV_ROLE_KEY = 'all-kefu-dev-role'
|
||||
export type DevStubRole = 'super' | 'tenant'
|
||||
|
||||
export function setDevStubRole(role: DevStubRole) {
|
||||
sessionStorage.setItem(DEV_ROLE_KEY, role)
|
||||
}
|
||||
|
||||
export function getDevStubRole(): DevStubRole {
|
||||
return sessionStorage.getItem(DEV_ROLE_KEY) === 'tenant' ? 'tenant' : 'super'
|
||||
}
|
||||
|
||||
function assertStubAllowed(): void {
|
||||
if (!import.meta.env.DEV) {
|
||||
throw new Error('认证 API 尚未对接真实后端(Task 3 实现),生产构建不可用')
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录(开发桩:任意账号密码直接获得开发会话)
|
||||
* @param params 登录参数
|
||||
* @returns 登录响应
|
||||
*/
|
||||
export function fetchLogin(params: Api.Auth.LoginParams) {
|
||||
assertStubAllowed()
|
||||
void params
|
||||
return Promise.resolve<Api.Auth.LoginResponse>({
|
||||
token: 'dev-stub-token',
|
||||
refreshToken: ''
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户信息(开发桩:角色取自登录页调试开关)
|
||||
* @returns 用户信息
|
||||
*/
|
||||
export function fetchGetUserInfo() {
|
||||
assertStubAllowed()
|
||||
const role = getDevStubRole()
|
||||
return Promise.resolve<Api.Auth.UserInfo>({
|
||||
buttons: [],
|
||||
roles: [role],
|
||||
userId: 1,
|
||||
userName: role === 'super' ? '平台超管(调试)' : '租户管理员(调试)',
|
||||
email: 'dev@all-kefu.local'
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user