Commit Graph

467 Commits

Author SHA1 Message Date
张翔 ec3e89f591 refactor(fonts): Google Fonts 改为本地字体文件
- 移除 next/font/google 依赖,改用 next/font/local 加载本地 woff2 字体
- 新增 Geist Sans/Mono、Noto Sans SC、Ma Shan Zheng 本地字体文件
- 解决国内网络环境下 fonts.gstatic.com 不可达导致构建失败的问题
- 移除未使用的 image-filters.ts (WASM 模块声明导致 TS 编译错误)
2026-04-29 14:21:42 +08:00
张翔 fb888a673f fix(analytics): 系统性修复 Google Analytics 数据采集问题
- 修复城市 (not set): 移除 allow_google_signals: false,启用 Google 信号补充地理数据
- 修复 Consent Mode v2: 补充 ad_user_data / ad_personalization 参数
- 修复 wait_for_update 与横幅延迟不匹配: 500ms → 3000ms
- 修复 static export 兼容性: GA 初始化脚本从 client component 移至 layout.tsx head 原生 script 标签
- 修复 pageview 追踪: GA3 风格 gtag('config') → GA4 风格 gtag('event', 'page_view')
- 修复 CookieConsent: 横幅延迟 2000ms → 500ms,同意后补发 pageview
- 修复 PerformanceTracker: FID → INP (Core Web Vitals 2024 更新)
- 修复环境变量命名: NEXT_PUBLIC_GA_ID → NEXT_PUBLIC_GA_MEASUREMENT_ID
- 清理 deploy-dist.sh 冗余 server/app 分支逻辑
- 新增部署产物 GA 脚本嵌入验证
2026-04-29 13:44:44 +08:00
张翔 5d14a0780c fix(fonts): 优化AoyagiReisho字体回退链,移除歧义系统字体名称
- 修复字体显示问题:移除可能导致歧义的'Aoyagi Reisho'系统字体名称
- 优化字体回退链:var(--font-aoyagi-reisho) → 'Ma Shan Zheng' → 'ZCOOL XiaoWei' → ...
- 统一修复3个相关文件中的字体配置
- 增强部署脚本对Next.js静态导出的处理逻辑
2026-04-27 21:56:30 +08:00
张翔 6cda0bfd3d style: 优化联系页面视觉设计
- 改进联系页面背景渐变效果
- 优化联系组件布局和样式
- 提升用户体验和视觉一致性
2026-04-27 21:21:46 +08:00
张翔 1f591fe2b4 feat: 完成网站功能开发与优化
- 完善产品页面布局与交互
- 优化服务详情页用户体验
- 增强新闻模块内容展示
- 改进团队页面设计
- 优化全局样式和响应式布局
- 添加分页组件支持
- 提升性能与SEO优化
- 修复已知问题与改进代码质量
2026-04-27 20:53:39 +08:00
张翔 1832640e8f fix(buttons): 修复 RippleButton 文字显示问题并解决 ESLint 错误
修复了 RippleButton 组件因 CVA 默认样式与自定义 className 冲突导致的文字不可见问题。
同时修复了项目中的 TypeScript 类型错误和 ESLint 规范问题。

主要修改:
1. 按钮显示修复:为使用红色文字的按钮添加 variant=outline,
   为使用白色背景的按钮添加 variant=secondary
2. TypeScript 类型修复:修复 subtle-dots.tsx 中的类型定义错误,
   删除不必要的 jest-dom.d.ts 文件
3. ESLint 规范修复:修复 React Hooks 使用规范问题,
   将 useRef+forceUpdate 反模式改为 useState,
   使用 eslint-disable 注释处理合理的 setState in effect 场景
4. 测试增强:添加按钮显示验证脚本和全面的页面按钮检查脚本
2026-04-27 16:27:35 +08:00
张翔 e83ecddfe5 refactor(project): 全面清理项目代码并重命名项目
- 移除无用文件和空文件夹,清理 effects 和 scripts 目录
- 将项目从 ruixin-website-react 重命名为 novalon-website-react
- 修复所有测试用例,确保 731 个测试全部通过
- 优化组件导入路径和测试 mock 设置
- 更新项目配置文件和依赖管理

关联任务:项目清理与重构
2026-04-27 12:56:22 +08:00
张翔 8fa15cf60e refactor: 移除电话咨询按钮并更新 Logo 字体
- 移除 service-cta-section 中的电话咨询按钮
- 移除 product-cta-section 中的电话咨询按钮
- 移除 solution-detail-client 中的电话咨询按钮
- 使用青柳隶书字体重新生成 Logo SVG
- 公司暂无对外联系电话
2026-04-25 09:50:32 +08:00
张翔 0258b8d39a fix: 修复 E2E 测试失败问题
- 修复 Logo alt 属性,使用繁体字"睿新致遠"
- 修复关于我们页面电话测试选择器
- 修复表单验证测试,改用 blur 触发验证
- 修复无障碍访问测试,处理多个 nav 元素情况
- 所有测试通过(42/42)
2026-04-25 09:01:12 +08:00
张翔 40384ec024 refactor: 优化网站页面结构和数据展示
- 增强服务数据模型,添加 challenges 和 outcomes 字段
- 简化统计数据配置,改为静态定义
- 重构多个页面组件,优化代码结构
- 新增产品、服务、解决方案相关的布局和组件
- 更新样式和动画配置
- 优化测试用例和类型定义
- 修复 ESLint 错误:移除不必要的 useEffect 和未使用的导入
2026-04-25 08:44:23 +08:00
张翔 9650e56dcf refactor(hero-section): 替换SealButton为Button组件并简化点击追踪
移除SealButton组件,使用更通用的Button组件替代
删除冗余的trackServiceInterest调用,简化点击事件追踪
2026-04-23 21:30:52 +08:00
张翔 5ed6ee4c76 fix(about): 修复运营时长计算 - 显示剩余天数而非总天数
根因:
运营时长计算逻辑错误,days 显示的是总天数而非剩余天数
- 原代码: days = 总天数 (98)
- 显示结果: 0年 3个月 98天 

修复:
- totalDays = 总天数
- years = totalDays / 365
- months = (totalDays % 365) / 30
- days = totalDays % 30 (剩余天数)
- 显示结果: 0年 3个月 8天 

验证:
- 成立日期: 2026-01-15
- 当前日期: 2026-04-23
- 总天数: 98天
- 正确显示: 0年 3个月 8天
2026-04-23 17:15:16 +08:00
张翔 e4d420829c fix(products): 修复产品页筛选功能 - 分类名称与数据一致
根因:
产品页筛选按钮分类名称与产品数据分类不匹配
- 页面按钮: ['软件产品', '云服务', '数据分析', '信息安全']
- 产品数据: ['企业软件', '数据产品']

修复:
修改筛选按钮分类为 ['全部', '企业软件', '数据产品']

验证:
- 全部: 4个产品
- 企业软件: 3个产品 (erp, crm, cms)
- 数据产品: 1个产品 (bi)
2026-04-23 16:53:02 +08:00
张翔 3d8d23affa fix(breadcrumb): 终极修复 - 覆盖全局min-height:44px + 扁平化结构
根因(通过Playwright Chromium+WebKit双引擎测量确认):
globals.css 第1148行 a,button { min-height:44px; min-width:44px }
在移动端强制所有链接最小44px,导致:
- Home链接容器44px,SVG仅14px → SVG贴容器顶部
- 文字链接容器44px,文字仅12px → 文字贴容器顶部
- 箭头SVG不受影响(不是<a>标签) → 保持自然大小
→ 三者center差异高达16px

修复:
1. 面包屑链接添加 style={{ minHeight:0, minWidth:0 }} 覆盖全局规则
2. 扁平化结构:所有元素直接作为nav的flex子元素
3. 移除嵌套的span容器,用Fragment替代

验证结果(Chromium + WebKit 双引擎):
- Home SVG center=83
- 箭头 SVG center=83
- 文字 center=82.5
- 差异仅0.5px 
2026-04-23 14:44:37 +08:00
张翔 751d37af6e fix(breadcrumb): 第10次修复 - 统一alignItems对齐策略
根因(通过Playwright精确测量确认):
- Home SVG top=76, 箭头 SVG top=92, 差异16px
- Home链接没有 alignItems:'center'
- 箭头容器有 alignItems:'center' → 导致SVG被居中

修复:
- 给Home链接添加 alignItems:'center', justifyContent:'center'
- 移除无效的 verticalAlign:'middle'
- 所有SVG统一使用 display:'block'

验证结果:
- Home SVG top=91, 箭头 SVG top=92, 差异1px 
2026-04-23 13:43:00 +08:00
张翔 60d61cd5c6 fix(breadcrumb): 第9次尝试 - 强制inline-flex + vertical-align:middle
新策略:不再依赖Tailwind工具类,直接用style属性强制控制
- nav: lineHeight=1 消除行高差异
- 所有元素: display:inline-flex + verticalAlign:middle
- SVG图标: display:block 防止inline布局干扰
2026-04-23 13:25:16 +08:00
张翔 89ca8ae392 fix(breadcrumb): 基于浏览器实测数据修复对齐问题
根因(通过浏览器精确测量确认):
- w-5 h-5 使 Home 容器高度为 23px,而文字容器仅 16px
- 高度差 7px 导致 items-center 无法正确对齐

修复(基于实测数据):
- 移除 Home 的 w-5 h-5 固定尺寸容器
- Home 图标缩小为 w-[14px] h-[14px] 匹配文字尺寸
- 箭头缩小为 w-3 h-3
- div 改为 span 减少块级布局影响
- gap 调整为 gap-1.5/gap-0.5 更紧凑
2026-04-23 13:05:58 +08:00
张翔 3804f227f4 fix(breadcrumb+page-header): 面包屑三元素水平中心对齐 + 缩小间距
Breadcrumb 修改:
- items-baseline → items-center(水平中心线对齐)
- Home 图标外层添加 w-5 h-5 + justify-center(固定尺寸确保居中)
- 箭头添加 shrink-0 防止被压缩
- 确保 🏠 / > / 文字 三者视觉中心在同一水平线

PageHeader 修改:
- pt-16 pb-16 → pt-8 pb-12(进一步缩小与面包屑的间距)
2026-04-23 12:56:06 +08:00
张翔 19e058116b style(page-header): 减小面包屑与页面标题的间距
根因:PageHeader 的 pt-32 (128px) 导致面包屑和标题距离过远
- pt-32 pb-20 → pt-16 pb-16
- 顶部间距: 128px → 64px (减少64px)
- 底部间距: 80px → 64px (减少16px)
- 保持 breadcrumb 的 items-baseline 垂直对齐修复不变
2026-04-23 12:46:30 +08:00
张翔 c5a7796306 Revert "style(breadcrumb): 减小面包屑上下间距,拉近与标题距离"
This reverts commit 3b21774493.
2026-04-23 12:40:21 +08:00
张翔 3b21774493 style(breadcrumb): 减小面包屑上下间距,拉近与标题距离
- py-3 md:py-4 → py-1.5 md:py-2
- 移动端: 12px → 6px
- 桌面端: 16px → 8px
2026-04-23 12:31:34 +08:00
张翔 13a5a02005 fix(breadcrumb): 修复图标与文字垂直不对齐问题(第4次尝试)
根本原因:SVG图标和文字的baseline不同
- items-center 按中心对齐,但SVG和文字的"中心"定义不同
- 导致视觉上图标和文字不在同一水平线

修复方案:
- 使用 items-baseline 替代 items-center(按基线对齐)
- 添加 leading-none 移除额外行高
- 确保所有元素使用相同的基线对齐方式
2026-04-23 12:25:38 +08:00
张翔 22842843a2 fix(breadcrumb): 修复移动端面包屑垂直对齐问题
根本原因:元素padding不一致导致高度差异
- Home图标: p-1.5 → 高度28px
- 文字链接: py-1 → 高度22px
- 结果:垂直不对齐,看起来"歪"

修复内容:
- 移除所有不对称的padding
- 统一使用gap-2间距
- 箭头颜色从#E5E5E5改为#CCCCCC(更可见)
- 箭头大小调整为w-3.5 h-3.5
2026-04-23 12:12:13 +08:00
张翔 ed780e5762 fix(breadcrumb): 修复移动端面包屑偏移问题
根本原因:负边距(-ml-1/-mr-1)和不对称样式导致视觉偏移

修复内容:
- 移除所有负边距
- 统一图标大小为 w-4 h-4 (16px)
- 使用一致的间距系统 gap-1.5
- 对称的点击区域 p-1.5 rounded
2026-04-23 11:51:51 +08:00
张翔 05452b7dcf fix(breadcrumb): 优化移动端面包屑样式
- 响应式间距:移动端 gap-1,桌面端 gap-2
- 响应式文字:移动端 text-xs,桌面端 text-sm
- 响应式图标:移动端 w-3.5 h-3.5,桌面端 w-4 h-4
- 增加点击区域:添加 p-1 扩大可点击范围
- 防止布局错位:使用 shrink-0 防止元素被压缩
- 支持横向滚动:overflow-x-auto 处理内容溢出
2026-04-23 11:30:34 +08:00
张翔 7484512252 refactor(导航): 将哈希路由改为标准路径路由
重构导航系统,将原有的哈希路由(#section)改为标准路径路由(/path)
修改相关组件和测试用例以适应新的路由方式
移除不必要的滚动和哈希监听逻辑
2026-04-23 08:07:48 +08:00
张翔 95f246fa36 feat(analytics): 增强 Google Analytics 隐私合规与追踪功能
- 修复 allow_google_signals 配置为 false,禁用跨设备追踪
- 升级 Cookie 同意组件,支持三级偏好控制(必要/分析/营销)
- 新增滚动深度追踪组件,追踪 25%/50%/75%/100% 里程碑
- 更新隐私政策,新增 Cookie 和网站分析工具章节
- 新增细化同意管理函数,支持 PIPL 合规
2026-04-22 22:09:38 +08:00
张翔 96dddeb20b chore: 上线前测试修复与部署配置更新
- fix(test): 添加 useSearchParams mock,修正联系链接断言
- style(nav): 将"联系我们"改为"联系"
- chore(deploy): 更新 Nginx 配置和部署文档
- style(logo): 更新 Logo SVG 文件
- feat(scripts): 添加字体处理和站点配置脚本
2026-04-22 20:17:13 +08:00
张翔 84f488a253 fix(types): 修复 16 个 TypeScript 类型检查错误
- 修复 animations.test.tsx 中的 Variant 类型访问问题
- 清理 9 个测试文件中的未使用导入
- 使用可选链操作符处理可能为 undefined 的属性访问
- 修复 mock 组件缺少 displayName 的 ESLint 错误
2026-04-22 19:47:52 +08:00
张翔 92ab2a83d5 fix: 修复部署脚本,部署到正确的静态文件目录
- 部署到 /home/novalon/docker-app/novalon-static/
- 添加 Nginx 缓存清除步骤
- 添加生产环境验证步骤
2026-04-22 17:20:46 +08:00
张翔 cc1c42a648 feat: 添加简化部署脚本 deploy-dist.sh
- 仅上传 dist 目录到生产服务器
- 自动备份旧版本
- 支持清理旧备份(保留最近3个)
- 无需重构 Docker 容器
2026-04-22 16:18:28 +08:00
张翔 2b7efb23ec fix: 修复字体加载警告和Logo图片宽高比问题
## 修复内容

### 字体优化
- 创建 AoyagiReisho-subset.ttf 子集字体,仅包含"睿新致远"4个字符
- 文件大小从 4.4MB 减小到 5KB(99.9% 减少)
- 修复 vmtx 表解析错误导致的 48 个控制台警告

### Logo 图片修复
- 修复 Logo SVG 宽高比问题(原始 480x120,4:1 比例)
- Header: width=128 height=32
- Footer: width=192 height=48
- 消除 Next.js Image 组件警告

### 其他优化
- 简化字体加载逻辑
- 更新部署配置

## 测试结果
- 32 个回归测试全部通过
- 0 个控制台警告
- 0 个错误
2026-04-22 16:00:49 +08:00
张翔 4066c82939 fix: 系统性解决青柳隶书体'份'字不显示的问题
根本原因:
- 青柳隶书体字体文件中'份'字(U+4EFD)的绘制指令数量为0
- 虽然字符映射表包含该字符,但字形数据为空,导致无法渲染

解决方案:
- 修改CSS字体回退链,添加Ma Shan Zheng作为主要回退字体
- 当青柳隶书体无法渲染'份'字时,浏览器自动使用Ma Shan Zheng字体
- 保持青柳隶书体的整体风格,同时确保所有字符都能正常显示

修改文件:
- src/app/globals.css: 更新.font-calligraphy类的字体回退链
- src/components/sections/home-solutions-section.tsx: 恢复使用font-calligraphy类

验证结果:
- 字体文件分析确认'份'字绘制指令数量为0
- Ma Shan Zheng字体包含完整的'身'和'份'字绘制数据
- 本地测试验证'身份'两个字都能正常显示
2026-04-22 07:49:09 +08:00
张翔 9be474b06b fix: 暂时移除'身份'的书法字体,使用普通字体确保完整显示
- 由于书法字体渲染问题,暂时使用普通字体
- 确保'身份'两个字都能完整显示
- 后续可以尝试其他书法字体方案
2026-04-22 07:38:26 +08:00
张翔 40b698ff01 fix: 修复'身份'书法字体显示问题
- 确认AoyagiReisho.ttf字体包含完整的'身份'两个字
- 优化font-calligraphy类的字体加载顺序
- 将var(--font-aoyagi-reisho)放在最前面确保优先使用
- 确保书法字体能够正确加载和显示
2026-04-22 07:29:27 +08:00
张翔 7873bcf089 fix: 移除'身份'的书法字体样式,确保完整显示
- 移除可能导致字符缺失的书法字体样式
- 改用普通加粗样式突出显示'身份'
- 确保所有字符都能正常显示
2026-04-22 07:27:45 +08:00
张翔 f952f61d6a fix: 修复首页解决方案部分'身份'字体显示问题
- 将'身份'的字体样式从CSS类改为内联样式
- 确保书法字体'Aoyagi Reisho'能够正确加载
- 提高字体加载的可靠性
2026-04-22 07:23:51 +08:00
张翔 2f45818724 feat(analytics): enhance Google Analytics with privacy compliance and comprehensive tracking
- Add automatic route change tracking for SPA navigation
- Implement Cookie consent banner for GDPR compliance
- Add performance tracking (LCP, FID, CLS Web Vitals)
- Add outbound link click tracking
- Integrate contact form submission tracking with conversion events
- Add CTA button click tracking in hero section
- Integrate error tracking in ErrorBoundary component
- Extend analytics utility library with 15+ tracking functions
- Configure IP anonymization and privacy settings
- Remove unused test files and deployment scripts
- Update case studies to include only specified cases
- Fix mobile navigation active state issues
- Fix lint errors in test files and components

BREAKING CHANGE: Google Analytics now requires user consent before tracking
2026-04-22 07:19:29 +08:00
张翔 b117372b03 refactor: 重构首页布局并新增团队页面
- 删除 insights-section 和 testimonials-section 组件
- 新增团队页面 (team/) 及相关组件
- 添加"解决方案"导航项
- 新增 home-solutions-section、methodology-section、team-section 组件
- 优化首页内容结构和产品区块
2026-04-21 17:42:51 +08:00
张翔 3ea5cf849e feat(cases): 新增智慧农业案例并优化政府案例数据
- 新增农业种植灌溉信息化建设咨询项目案例
- 更新政府案例:添加关键成果数据、优化客户评价
- 同步更新测试用例和页面组件
2026-04-21 16:57:20 +08:00
张翔 de94e931af feat(deploy): 添加 Docker 部署配置与 SSR 优化
- 添加 Dockerfile.static、docker-compose.server.yml 和 nginx-internal.conf
- 优化 Hero 统计数据为 SSR 渲染,提升首屏性能
- 更新案例数据为政府单位数字化解决方案
- 统计数据改为动态计算,基于案例数据和当前年份
- 修复计数器动画初始状态问题
2026-04-21 15:51:03 +08:00
张翔 933a831ab3 feat: 添加 AoyagiReisho 书法字体并优化表单反馈
- 使用 next/font/local 加载 AoyagiReisho.ttf 字体
- 为标题红色高亮文字应用书法字体样式
- 优化联系表单提交反馈,添加成功/失败提示
- 修复 section 参数滚动定位的时序问题
2026-04-21 11:18:29 +08:00
张翔 2fc1a586f8 fix(contact): 修复静态导出时 useSearchParams 需要 Suspense 的问题
- 将 ContactFormContent 组件用 Suspense 包裹
- 添加加载中 fallback 状态
- 确保静态导出兼容性
2026-04-21 08:38:17 +08:00
张翔 46cff87f27 fix(contact): 切换表单服务到 FormSubmit 并改进错误处理
- 将表单提交服务从 Formspree 切换到 FormSubmit(无需 API Key)
- 添加成功状态 URL 参数处理(?success=true)
- 改进错误提示,区分开发环境和生产环境
- 添加 _next 参数支持成功后重定向
- 重构状态初始化避免 useEffect 中同步调用 setState
2026-04-21 08:31:35 +08:00
张翔 6403489954 refactor: 完成静态网站转换,移除所有 CMS 和动态功能
- 删除数据库相关代码 (src/db/)
- 删除 API 路由 (src/app/api/)
- 删除认证相关代码 (src/lib/auth/, src/providers/)
- 删除监控和安全中间件 (src/lib/security/, src/lib/monitoring/)
- 删除 hooks (use-news, use-products, use-services)
- 更新组件为静态数据源
- 添加 nginx 静态配置和部署脚本
- 添加 static-link 组件
2026-04-21 07:53:56 +08:00
张翔 cd1d6aa28a chore: 清理过时的计划文档,保留最新优化计划 2026-04-21 07:51:27 +08:00
张翔 6e09bcf33e refactor: 拆分 constants.ts 为多个模块文件 2026-04-21 07:49:36 +08:00
张翔 78090d1f15 fix: 修正 Jest 配置中的文件路径,移除 next-auth mock 2026-04-21 07:43:28 +08:00
张翔 a88466965b fix: E2E 测试支持环境变量 URL,可在本地运行 2026-04-21 07:41:14 +08:00
张翔 da0d1d21ea chore: 清理无效的 npm 脚本命令 2026-04-21 07:40:04 +08:00