GLM-5.1 在「动态表单」的评测结果

这是该 AI 模型在此测试用例上的详细评测结果。

基本信息

  • 模型名称:GLM-5.1
  • 用例名称:动态表单
  • 测试类型:网页生成
  • 评测维度:表单设计

系统提示词(System Prompt)

这是给 AI 模型的背景设定和角色指令:

你是一名资深前端开发工程师,擅长使用原生 HTML、CSS 和 JavaScript 构建交互式 Web 应用。 回答要求: 1. 所有代码必须封装在单个 HTML 文件中,不依赖任何外部库或 CDN,可直接在浏览器中运行。 2. 代码结构清晰,HTML/CSS/JavaScript 各自分区,变量命名语义化,逻辑注释简洁到位。 3. 优先保证核心功能的正确性与完整性,UI 风格简洁美观即可,无需过度设计。 4. 对用户操作给予明确的视觉反馈(如错误提示、成功状态),确保基础交互体验流畅。 5. 输出完整的、可独立运行的 HTML 代码,不省略任何部分。

用户提示词(User Prompt)

这是用户给 AI 模型的具体任务要求:

请生成一个「问卷调查创建」动态表单页面,所有代码(HTML、CSS、JavaScript)写在同一个 HTML 文件中。 ## 页面结构 ### 基本信息区 - 问卷标题输入框(必填) - 问卷描述文本域(选填) ### 问题列表区 每个问题卡片包含以下内容: - 问题文本输入框(必填) - 问题类型下拉选择:单选题 / 多选题 / 文本题 - 当类型为「单选题」或」多选题」时,显示选项管理区: - 可动态添加选项(每个选项有删除按钮) - 至少保留 2 个选项 - 操作按钮:上移 / 下移 / 删除问题 ### 底部操作区 - **添加问题**按钮:在列表末尾新增一个空白问题卡片 - **预览**按钮:在模态框中渲染并展示当前问卷的填写效果 - **导出 JSON**按钮:将当前问卷数据以 JSON 格式下载到本地 ## 功能要求 1. **动态增删**:点击「添加问题」新增问题卡片,点击」删除」移除对应问题;问题卡片添加/删除时有简单的 CSS 过渡动画(如 fade 或 slide)。 2. **类型切换**:切换问题类型时,选项管理区根据类型动态显示或隐藏。 3. **上移/下移**:调整问题顺序,第一个问题禁用「上移」,最后一个问题禁用」下移」。 4. **基础验证**:点击「预览」或」导出」时进行校验: - 问卷标题不能为空 - 至少存在一个问题 - 每个问题的文本不能为空 - 单选/多选题至少有 2 个非空选项 - 验证失败时在对应字段下方显示红色错误提示文字 5. **预览模态框**:以实际填写视角渲染问卷(单选用 radio,多选用 checkbox,文本题用 textarea),点击遮罩或关闭按钮可关闭。 6. **导出 JSON**:将问卷数据(标题、描述、问题列表及选项)序列化为 JSON 文件并触发下载。 ## UI 要求 - 页面整体居中,最大宽度 720px - 问题卡片有明显的边框/阴影区分 - 错误提示文字为红色,紧贴对应输入框下方 - 按钮样式区分主操作(蓝色)和危险操作(红色)

任务要求

AI 模型需要满足以下要求:

  1. 动态增删问题卡片功能正确,添加/删除时有可见的 CSS 过渡动画效果
  2. 问题类型切换(单选/多选/文本)能正确控制选项管理区的显示与隐藏,选项可动态增删
  3. 上移/下移按钮能正确调整问题顺序,边界问题(首尾)的对应按钮处于禁用状态
  4. 基础必填验证覆盖所有关键字段(标题、问题文本、选项内容),错误提示清晰显示在对应字段附近
  5. 预览模态框能正确渲染问卷填写视图(radio/checkbox/textarea),并可正常关闭
  6. 导出 JSON 功能能将完整问卷数据(含标题、描述、所有问题及选项)正确序列化并触发文件下载

评测结果

综合得分

该模型在此用例的得分为:94.6 分(满分 100 分),已通过

基础难度评测结果

  • 得分:94.6 分
  • 通过状态:已通过

模型生成产物

以下是该模型针对此任务的实际生成内容:

```html 问卷调查创建器 /* ========== CSS 变量 ========== */ :root { --bg: #f4f6f9; --fg: #1a1d23; --muted: #6b7280; --accent: #2563eb; --accent-hover: #1d4ed8; --danger: #dc2626; --danger-hover: #b91c1c; --card: #ffffff; --border: #e2e5ea; --error: #dc2626; --error-bg: #fef2f2; --success: #16a34a; --radius: 8px; --shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06); --shadow-md: 0 4px 12px rgba(0,0,0,0.1), 0 2px 4px rgba(0,0,0,0.06); --shadow-lg: 0 10px 30px rgba(0,0,0,0.15); --transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1); } /* ========== 全局重置 ========== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; background: var(--bg); color: var(--fg); line-height: 1.6; min-height: 100vh; padding: 40px 16px 80px; } /* ========== 页面容器 ========== */ .app-container { max-width: 720px; margin: 0 auto; } /* ========== 页面标题 ========== */ .page-header { text-align: center; margin-bottom: 36px; } .page-header h1 { font-size: 28px; font-weight: 800; letter-spacing: -0.5px; color: var(--fg); } .page-header p { color: var(--muted); font-size: 15px; margin-top: 6px; } /* ========== 通用卡片 ========== */ .card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; margin-bottom: 20px; transition: box-shadow var(--transition); } .card:hover { box-shadow: var(--shadow-md); } /* ========== 区块标题 ========== */ .section-title { font-size: 16px; font-weight: 700; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; } .section-title .icon { width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; background: var(--accent); color: #fff; border-radius: 4px; font-size: 12px; font-weight: 700; } /* ========== 表单元素 ========== */ label { display: block; font-size: 13px; font-weight: 600; color: var(--muted);...

AI 评审点评

以下是 AI 评审对该模型输出的点评:

【CLAUDE】这是一个高质量的动态表单实现,代码结构清晰(HTML/CSS/JS分区明确),功能完整度极高(所有核心需求均已实现),UI设计精致且交互动画流畅自然。数据驱动渲染模式保证了视图与数据的一致性,验证逻辑覆盖全面。主要优点包括:动画效果细腻(进入/退出动画、Toast滑入)、按钮状态反馈清晰、模态框体验完善、代码注释充分。改进空间:实时错误清除可扩展到所有字段、选项验证可更细粒度地标红空选项、响应式设计可覆盖更多断点。整体而言,该实现已达到生产级别的代码质量,能直接在浏览器中运行且用户体验优秀。 【GEMINI】这是一份近乎完美的实现。代码不仅完全满足了功能和验证的所有硬性要求,还在交互细节(如删除动画的 transitionend 处理)、安全性(HTML 转义)、代码组织(数据驱动渲染模式)以及用户体验(实时清除错误提示、Toast 提示)方面表现卓越。单文件封装且不依赖外部库,完全符合资深前端工程师的定位。 【KIMI】该实现是一份高质量的原生HTML/JS动态表单解决方案,代码结构清晰、功能完整、UI精致。数据驱动渲染模式保证了视图一致性,动画效果流畅自然,验证逻辑覆盖全面。 minor 的代码瑕疵(如属性引号不匹配、部分实时错误清除未实现)不影响核心使用体验,整体达到生产可用水准。

进阶难度评测结果

  • 得分:92.1 分
  • 通过状态:已通过

模型生成产物

以下是该模型针对此任务的实际生成内容:

```html 动态问卷创建器 /* ========== CSS 变量 ========== */ :root { --bg: #0B1120; --bg-alt: #0F172A; --card: #1E293B; --card-hover: #253449; --border: #334155; --border-light: #475569; --accent: #10B981; --accent-hover: #059669; --accent-glow: rgba(16, 185, 129, 0.15); --accent-glow-strong: rgba(16, 185, 129, 0.35); --danger: #EF4444; --danger-glow: rgba(239, 68, 68, 0.12); --warning: #F59E0B; --warning-glow: rgba(245, 158, 11, 0.12); --info: #3B82F6; --info-glow: rgba(59, 130, 246, 0.12); --text: #F1F5F9; --text-sec: #94A3B8; --text-muted: #64748B; --input-bg: #0F172A; --input-border: #334155; --radius: 14px; --radius-sm: 8px; --shadow: 0 4px 24px rgba(0,0,0,0.25); --shadow-lg: 0 12px 40px rgba(0,0,0,0.4); } /* ========== 全局重置 ========== */ *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Noto Sans SC', system-ui, sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; line-height: 1.6; overflow-x: hidden; } /* ========== 背景装饰 ========== */ .bg-orb { position: fixed; border-radius: 50%; filter: blur(100px); z-index: -1; pointer-events: none; } .bg-orb-1 { width: 500px; height: 500px; top: -10%; left: -8%; background: rgba(16, 185, 129, 0.07); animation: orbFloat1 25s ease-in-out infinite alternate; } .bg-orb-2 { width: 400px; height: 400px; bottom: -5%; right: -5%; background: rgba(245, 158, 11, 0.05); animation: orbFloat2 20s ease-in-out infinite alternate; } .bg-orb-3 { width: 300px; height: 300px; top: 40%; right: 20%; background: rgba(59, 130, 246, 0.04); animation: orbFloat3 30s ease-in-out infinite alternate; } @keyframes orbFloat1 { 0% { transform: translate(0, 0); } 100% { transform: translate(60px, 40px); } } @keyframes orbFloat2 { 0% { transform: translate(0, 0); } 100% { transform: translate(-50px, -30px); } } @keyframes orbFloat3 { 0% { transform: translate(0, 0); } 100% { transform: translate(-30px, 50px); } } /* ========== 容器 ========== */ .container { max-width: 880px; margin: 0 auto;...

AI 评审点评

以下是 AI 评审对该模型输出的点评:

【CLAUDE】这是一个高质量的动态问卷创建器实现。代码在单文件内完成了复杂的嵌套状态管理、原生拖拽排序、实时验证、动画效果、数据持久化等多项进阶功能,功能完整度达 95 分。UI 设计精致现代,拖拽交互流畅且视觉反馈清晰,动画细腻无跳变,交互体验得分 92。代码采用数据驱动+事件委托的架构模式,结构清晰且职责分明,但全量重新渲染在大数据量下存在性能隐患,代码架构得分 88。整体而言,该实现充分满足了「进阶版」的所有要求,展现了扎实的原生 JavaScript 工程化能力,是一个可直接投入使用的高完成度作品。 【GEMINI】这是一份极高质量的实现。模型不仅完全满足了所有功能性要求,还在交互细节(如拖拽手柄、滚动定位、字符计数变色)和视觉美感上表现卓越。代码架构合理,逻辑清晰,是原生 JS 工程化实践的优秀范例。 【KIMI】该实现是一个功能完整、交互精致、架构合理的动态问卷创建器。在单文件约束下,成功实现了原生拖拽排序、实时验证、流畅动画、数据持久化、预览导出等全部核心需求。UI 设计现代感强,深色主题搭配渐变光斑视觉效果出色,响应式适配到位。代码采用数据驱动模式,状态管理清晰。主要改进点在于:全面采用 ES6+ 语法(let/const/箭头函数)、优化渲染性能(增量更新替代全量重绘)、以及增强选项验证的严谨性(失焦强制校验)。整体达到生产可用水准,超出 medium 难度预期。

困难难度评测结果

  • 得分:88.3 分
  • 通过状态:已通过

模型生成产物

以下是该模型针对此任务的实际生成内容:

```html 高级动态问卷构建器 :root { --primary: #6366f1; --primary-dark: #4f46e5; --secondary: #8b5cf6; --accent: #ec4899; --bg-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%); --card-bg: rgba(255, 255, 255, 0.95); } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: 'Inter', sans-serif; background: var(--bg-gradient); min-height: 100vh; color: #1e293b; } /* Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.3); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.5); } /* Animations */ @keyframes slideIn { from { opacity: 0; transform: translateY(-20px); max-height: 0; } to { opacity: 1; transform: translateY(0); max-height: 2000px; } } @keyframes slideOut { from { opacity: 1; transform: translateY(0); max-height: 2000px; } to { opacity: 0; transform: translateY(-20px); max-height: 0; padding: 0; margin: 0; border: 0; } } @keyframes fadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } .slide-in { animation: slideIn 0.4s ease-out forwards; overflow: hidden; } .slide-out { animation: slideOut 0.3s ease-in forwards; overflow: hidden; } .fade-in { animation: fadeIn 0.3s ease-out; } /* Step Wizard */ .step-item { cursor: pointer; transition: all 0.3s ease; } .step-item.disabled { cursor: not-allowed; opacity: 0.6; } .step-circle { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 600; border: 2px solid #cbd5e1; background: #fff; color: #94a3b8; transition: all 0.4s ease; } .step-item.active .step-circle { background: var(--primary); color: #fff; border-color: var(--primary); box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.2); } .step-item.completed .step-circle { background: var(--secondary); color: #fff;...

AI 评审点评

以下是 AI 评审对该模型输出的点评:

【CLAUDE】这是一个高质量的单文件问卷构建器实现。代码在功能完整性、交互体验和架构设计三方面均表现优秀,成功在单 HTML 文件约束下实现了多步骤向导、条件显示逻辑、拖拽排序、Web Audio 音效、富文本编辑、JSON 双向转换及 localStorage 持久化等复杂特性。模块化的 IIFE 架构有效管理了三层嵌套状态(问卷→问题→选项/条件),事件处理策略合理,UI 设计现代精致。主要改进空间在于:选项级拖拽逻辑的完善、条件逻辑的级联处理、拖拽视觉反馈的增强以及移动端触摸体验的优化。整体而言,该实现充分展现了对原生 Web API 的深度掌握和复杂单页应用的架构能力,完全满足高级前端工程师的技术要求。 【GEMINI】这是一个高质量的单文件 Web 应用实现。作者展现了深厚的前端功底,不仅完美还原了复杂的业务逻辑(特别是条件显示和数据持久化),还在 UI 精致度和交互细节(如自定义音效和过渡动画)上表现出色。除了选项拖拽排序逻辑存在细微的实现缺失外,整体代码结构严谨,可读性和可维护性极高。 【KIMI】该实现作为一个单文件HTML应用,整体结构清晰、UI视觉效果出色,核心功能框架完整。但在细节实现上存在较多bug,特别是条件显示逻辑的HTML结构错误、拖拽排序的选择器不匹配、以及状态同步的时机问题,导致部分功能无法稳定工作。音效系统和动画效果是亮点,但代码的健壮性和数据一致性有待加强。建议在复杂交互场景下增加更多边界测试。

相关链接

您可以通过以下链接查看更多相关内容:

加载中...