78ff060420
- 模板 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>
45 lines
1.1 KiB
HTML
45 lines
1.1 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<title>all-kefu 管理后台</title>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="description" content="all-kefu 管理后台——多租户 AI 客服平台控制台" />
|
|
<link rel="icon" type="image/png" href="/favicon.png" />
|
|
|
|
<style>
|
|
/* 防止页面刷新时白屏的初始样式 */
|
|
html {
|
|
background-color: #fafbfc;
|
|
}
|
|
|
|
html.dark {
|
|
background-color: #070707;
|
|
}
|
|
</style>
|
|
|
|
<script>
|
|
// 初始化 html class 主题属性
|
|
;(function () {
|
|
try {
|
|
if (typeof Storage === 'undefined' || !window.localStorage) {
|
|
return
|
|
}
|
|
|
|
const themeType = localStorage.getItem('sys-theme')
|
|
if (themeType === 'dark') {
|
|
document.documentElement.classList.add('dark')
|
|
}
|
|
} catch (e) {
|
|
console.warn('Failed to apply initial theme:', e)
|
|
}
|
|
})()
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="app"></div>
|
|
<script type="module" src="/src/main.ts"></script>
|
|
</body>
|
|
</html>
|