Commit Graph
10 Commits
Author SHA1 Message Date
DevOpsandClaude Opus 4.5 56c1320e40 Fix iOS Safari double-tap zoom issue with comprehensive solution
Implemented multiple layers of protection to prevent iOS Safari from zooming when users quickly tap the score adjustment buttons:

1. Enhanced touch event handling in modify-score.vue:
   - Changed from touchend to touchstart for immediate response
   - Added .stop.prevent modifiers to all touch events (touchstart, touchmove, touchend, touchcancel)
   - Added noop() handlers to absorb unwanted events
   - Replaced time-based debouncing with isProcessing flag using requestAnimationFrame
   - Ensured all child elements have pointer-events: none

2. Comprehensive index.html protection:
   - Added iOS-specific meta tags (apple-mobile-web-app-capable, format-detection)
   - Enhanced CSS with touch-action: pan-y for scrolling while preventing zoom
   - Implemented 7-layer JavaScript protection:
     * Layer 1: Intercept rapid touchstart events with counter
     * Layer 2: Block touchend events within 300ms
     * Layer 3: Completely disable dblclick events
     * Layer 4: Prevent gesture events (gesturestart/change/end)
     * Layer 5: Use Pointer Events API for additional blocking
     * Layer 6: Filter rapid click events
     * Layer 7: Add capture-phase listeners to buttons
   - All event listeners use { passive: false, capture: true } for maximum control

This multi-layered approach addresses the root cause: iOS Safari triggers zoom at the browser level before JavaScript can normally intercept it. By using capture phase and preventing events at multiple stages, we ensure the zoom behavior is blocked.

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:13:55 +08:00
DevOpsandClaude Opus 4.5 c5c31e8088 Fix iOS Safari double-tap zoom issue on score modification buttons
Problem:
- Rapid tapping on +0.001/-0.001 buttons triggered page zoom on iOS Safari
- Previous solutions (viewport meta, touch-action: manipulation) were ineffective

Solution implemented:
1. Enhanced global touch event handling in index.html:
   - Added comprehensive gesture event prevention (gesturestart/change/end)
   - Improved touchend debouncing with stopPropagation
   - Added specific CSS rules for button elements with touch-action: none

2. Modified button interaction in modify-score.vue:
   - Replaced @click events with @touchstart/@touchend handlers
   - Added preventDefault and stopPropagation on touch events
   - Implemented 100ms debounce to prevent rapid successive touches
   - Added pointer-events: none to child elements to ensure touch targets
   - Changed touch-action from 'manipulation' to 'none' for complete control

Technical details:
- touch-action: none completely disables browser touch gestures
- Event handlers use { passive: false } to allow preventDefault
- Debounce mechanism prevents accidental double-triggers
- Child elements have pointer-events: none to ensure parent handles all touches

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:01:54 +08:00
DevOpsandClaude Opus 4.5 c978a5bf64 fix: 修复 iOS Safari 快速点击按钮触发页面缩放问题
- 添加 touch-action: manipulation 禁用双击缩放
- 添加 -webkit-tap-highlight-color: transparent 移除点击高亮
- 在全局样式和修改评分页面按钮上应用

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 00:46:48 +08:00
DevOpsandClaude Opus 4.5 f9efd8baa8 fix: 优化总分显示逻辑,使用后端返回的 scoringComplete 字段
1. 总分显示条件改为使用 player.scoringComplete
2. 等待状态显示已评分/应评裁判数量
3. 移除前端计算逻辑,统一由后端控制

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 23:10:03 +08:00
DevOpsandClaude Opus 4.5 53c865a076 refactor: 优化评分列表页面UI和代码结构
- 重构场地和项目选择区域布局
- 优化选手卡片样式
- 添加日期时间格式化方法
- 改进分数显示格式
- 统一样式命名规范

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 17:26:34 +08:00
DevOpsandClaude 569f8a14d1 裁判长修改分数功能优化
1. 限制裁判长修改分数范围为±0.050
2. 优化评委评分展示样式,添加灰色边框背景块

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-21 15:22:03 +08:00
DevOpsandClaude bcf040bb15 fix: 修复评分列表总分显示问题
- 添加formatScore方法,将-1显示为'--'
- score-detail.vue: 提交评分时使用String()转换ID

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 18:29:54 +08:00
DevOpsandClaude 7620d9bf96 feat: 更新评分相关页面和API配置
- 更新环境配置文件
- 修改运动员和评分API
- 优化登录、评分详情、评分列表等页面
- 更新pages.json和vue.config.js配置

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 14:43:16 +08:00
DevOpsandClaude Opus 4.5 736aa08fba docs: 添加 Linux 命令行编译样式问题修复记录
详细记录了问题原因、解决方案和技术细节

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 17:46:28 +08:00
DevOpsandClaude Opus 4.5 e8a2a5cef6 fix: 修复 Linux/Mac 命令行编译样式异常问题
问题原因:
- 自定义 postcss.config.js 覆盖了 uni-app 默认配置
- 导致 rpx 单位没有被正确转换

修复方案:
- 在 postcss.config.js 中添加 uni-app 的 postcss 插件
- 降级 postcss 到版本 7 以兼容 postcss-loader 3.x
- 降级 sass 到 1.32.13 以提高兼容性

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 17:35:12 +08:00