该区域正在建设中
+「{wip}」暂未开放,敬请期待。
+ +diff --git a/apps/web/.env.development b/apps/web/.env.development new file mode 100644 index 0000000..bb474fd --- /dev/null +++ b/apps/web/.env.development @@ -0,0 +1,6 @@ +# 统一鉴权中心(ADR-012)—— 本端 = 用户端 web-portal(keycloak-frontend-guide §3) +# 前端是 public client,没有也不需要 client secret;安全性来自 redirect_uri 精确匹配 + PKCE +VITE_KEYCLOAK_URL=https://keycloak.akhr-ai.com +VITE_KEYCLOAK_REALM=corp +VITE_KEYCLOAK_CLIENT_ID=web-portal +VITE_REQUIRED_ROLE=user diff --git a/apps/web/.env.production b/apps/web/.env.production new file mode 100644 index 0000000..bb474fd --- /dev/null +++ b/apps/web/.env.production @@ -0,0 +1,6 @@ +# 统一鉴权中心(ADR-012)—— 本端 = 用户端 web-portal(keycloak-frontend-guide §3) +# 前端是 public client,没有也不需要 client secret;安全性来自 redirect_uri 精确匹配 + PKCE +VITE_KEYCLOAK_URL=https://keycloak.akhr-ai.com +VITE_KEYCLOAK_REALM=corp +VITE_KEYCLOAK_CLIENT_ID=web-portal +VITE_REQUIRED_ROLE=user diff --git a/apps/web/package.json b/apps/web/package.json index 7aaf2c2..6e85068 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -12,6 +12,7 @@ "@tanstack/react-query": "^5.101.4", "@tanstack/react-router": "^1.170.18", "diagram-js": "^15.23.0", + "keycloak-js": "26.2.4", "react": "^19.2.0", "react-dom": "^19.2.0" }, diff --git a/apps/web/public/sandbox-demo/activity-view.html b/apps/web/public/sandbox-demo/activity-view.html new file mode 100644 index 0000000..7850cc9 --- /dev/null +++ b/apps/web/public/sandbox-demo/activity-view.html @@ -0,0 +1,99 @@ + + +
+ + +quote-intake · 活动视图(服务器返回 HTML · 沙箱隔离渲染)
+| 来源 | 物料数 | 接收时间 | 结构化结果 |
|---|---|---|---|
| Itelma 采购部 · 邮件 | 3 项 | 10:12 | 待补全 |
| 伏尔加集团 · 聊天记录 | 12 项 | 09:40 | 已结构化 |
| GAZ 采购 · 邮件附件 | 7 项 | 昨天 17:03 | 已结构化 |
「{wip}」暂未开放,敬请期待。
+ +{desc}
+ {/* 角色不够时跳登录页没用(还是同一个人)—— 给的是登出,换账号再来(手册 §4.3) */} ++ {position.name} · {position.code} +
+ )} + {staff !== undefined && ( ++ 账号 {staff.account} · 编号 {staff.id} ·{' '} + {staff.state === 'active' ? '在职' : '停用'} +
+ )} + {position?.note !== undefined &&{position.note}
} +