brand: 软件名称从"企业用工专家/TurboHR"统一改为"安职通"

- 登录/注册/忘记密码页标题
- 侧边栏和员工端布局默认名称
- 新手引导欢迎语
- 帮助中心问答
- 验收测试页面标题
- 后端 RAG 知识库
- 部署脚本日志输出

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
selfrelease
2026-08-15 15:29:13 +08:00
parent f523f84c18
commit 456cd91a83
14 changed files with 22 additions and 22 deletions
+2 -2
View File
@@ -296,7 +296,7 @@ const categories: HelpCategory[] = [
{
id: 'system-intro',
question: '本系统能帮企业做什么?',
answer: '「企业用工专家」是一站式人力资源管理平台,覆盖员工全生命周期管理,帮助企业高效管理人事业务的同时确保合规运营:\n• 员工管理:入职登记、合同签订、转正调岗、离职解聘\n• 薪税管理:工资计算、个税申报、社保公积金缴纳\n• 考勤管理:排班打卡、加班统计、休假记录、月度报表\n• 合同管理:电子合同、到期提醒、续签流程\n• 风险管控:自动扫描法律风险、合规预警、判赔预测\n• AI 助手:劳动法咨询、智能问答、文档生成',
answer: '「安职通」是一站式人力资源管理平台,覆盖员工全生命周期管理,帮助企业高效管理人事业务的同时确保合规运营:\n• 员工管理:入职登记、合同签订、转正调岗、离职解聘\n• 薪税管理:工资计算、个税申报、社保公积金缴纳\n• 考勤管理:排班打卡、加班统计、休假记录、月度报表\n• 合同管理:电子合同、到期提醒、续签流程\n• 风险管控:自动扫描法律风险、合规预警、判赔预测\n• AI 助手:劳动法咨询、智能问答、文档生成',
},
{
id: 'compliance',
@@ -330,7 +330,7 @@ const categories: HelpCategory[] = [
articles: [
{
id: 'what-is',
question: '「企业用工专家」是什么?',
question: '「安职通」是什么?',
answer: '这是一个帮您管理员工、合同、工资和社保的工具。您可以把它理解为一个「人事小助手」,帮您把繁琐的人事工作变得简单。比如:记录员工信息、提醒合同到期、计算工资社保、生成法律文档等。',
},
{
+1 -1
View File
@@ -95,7 +95,7 @@ export default function OnboardingGuide() {
<div className="fixed inset-0 z-50 flex items-center justify-center bg-black/40">
<div className="bg-white rounded-xl shadow-xl max-w-lg w-full mx-4 overflow-hidden">
<div className="flex items-center justify-between px-5 py-3 border-b border-gray-100">
<h2 className="text-base font-semibold">使</h2>
<h2 className="text-base font-semibold">使</h2>
<button onClick={close} className="text-gray-400 hover:text-gray-600">
<X className="w-5 h-5" />
</button>
@@ -36,7 +36,7 @@ export default function PortalLayout({ children }: { children: React.ReactNode }
<div className="max-w-md mx-auto h-14 flex items-center justify-between px-4">
<div className="flex items-center gap-2 min-w-0">
<Logo className="w-6 h-6 text-primary flex-shrink-0" />
<span className="text-sm font-bold text-gray-900 truncate"></span>
<span className="text-sm font-bold text-gray-900 truncate"></span>
</div>
<div className="flex items-center gap-2 flex-shrink-0">
{employee.name && (
@@ -150,7 +150,7 @@ export default function SidebarNav({ mobileOpen, onClose }: { mobileOpen: boolea
{/* Logo 区 */}
<div className="h-14 flex items-center gap-2 px-4 border-b border-gray-200 shrink-0">
<Logo className="w-5 h-5 text-primary" />
<span className="font-bold text-sm text-gray-900 truncate">{orgData?.name || '企业用工专家'}</span>
<span className="font-bold text-sm text-gray-900 truncate">{orgData?.name || '安职通'}</span>
</div>
{/* 导航菜单 */}
+2 -2
View File
@@ -655,7 +655,7 @@ function handleAcceptanceExport() {
}
const resultMap: Record<string, string> = { pass: '✅通过', fail: '❌失败', partial: '⚠️部分通过', untested: '🚫未测试' }
let md = `# TurboHR 验收测试结果\n\n`
let md = `# 安职通 验收测试结果\n\n`
md += `> **导出时间:** ${new Date().toLocaleString('zh-CN')}\n`
md += `> **验收人数:** ${keys.length}\n\n`
@@ -704,7 +704,7 @@ function handleAcceptanceExport() {
md += `\n`
}
md += `\n---\n*由企业用工专家系统自动生成*\n`
md += `\n---\n*由安职通系统自动生成*\n`
const blob = new Blob([md], { type: 'text/markdown;charset=utf-8' })
const url = URL.createObjectURL(blob)
+1 -1
View File
@@ -61,7 +61,7 @@ export default function ForgotPassword() {
<div className="w-full max-w-sm">
<div className="flex items-center justify-center gap-2 mb-8">
<Logo className="w-8 h-8 text-primary" />
<span className="text-xl font-bold"></span>
<span className="text-xl font-bold"></span>
</div>
<div className="card">
+4 -4
View File
@@ -94,8 +94,8 @@ export default function Login() {
<Logo className="w-7 h-7 text-white" />
</div>
<div>
<div className="text-xl font-bold tracking-tight"></div>
<div className="text-xs text-white/60 mt-0.5">TurboHR · </div>
<div className="text-xl font-bold tracking-tight"></div>
<div className="text-xs text-white/60 mt-0.5"> · </div>
</div>
</div>
@@ -126,7 +126,7 @@ export default function Login() {
{/* 底部版权 */}
<div className="text-xs text-white/40">
© 2026 TurboHR ·
© 2026
</div>
</div>
</div>
@@ -137,7 +137,7 @@ export default function Login() {
{/* 移动端 Logo */}
<div className="flex lg:hidden items-center justify-center gap-2 mb-8">
<Logo className="w-8 h-8 text-primary" />
<span className="text-xl font-bold"></span>
<span className="text-xl font-bold"></span>
</div>
{/* 欢迎语 */}
+1 -1
View File
@@ -52,7 +52,7 @@ export default function Register() {
<div className="w-full max-w-sm">
<div className="flex items-center justify-center gap-2 mb-8">
<Logo className="w-8 h-8 text-primary" />
<span className="text-xl font-bold"></span>
<span className="text-xl font-bold"></span>
</div>
<div className="card">
+1 -1
View File
@@ -42,7 +42,7 @@ export default function AutoLogin() {
<div className="max-w-sm w-full text-center">
<div className="flex flex-col items-center justify-center gap-2 mb-8">
<Logo className="w-10 h-10 text-primary" />
<span className="text-base font-bold text-center"> </span>
<span className="text-base font-bold text-center"> </span>
</div>
{status === 'loading' && (
+1 -1
View File
@@ -64,7 +64,7 @@ export default function PortalLogin() {
<div className="w-full max-w-sm">
<div className="flex flex-col items-center justify-center gap-2 mb-8">
<Logo className="w-10 h-10 text-primary" />
<span className="text-base font-bold text-center"> </span>
<span className="text-base font-bold text-center"> </span>
</div>
<div className="card">