Google: Gemini 2.5 Flash Lite 在「可拖拽仪表板」的评测结果

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

基本信息

  • 模型名称:Google: Gemini 2.5 Flash Lite
  • 用例名称:可拖拽仪表板
  • 测试类型:网页生成
  • 评测维度:仪表盘

系统提示词(System Prompt)

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

你是一名资深前端开发工程师,专注于 Web 应用的 UI 布局与交互实现。 回答要求: 1. 所有代码(HTML、CSS、JavaScript)必须整合在单个 HTML 文件中,可直接在浏览器中运行,无需任何外部依赖或构建工具。 2. 禁止引入任何第三方 CDN 库(如 Chart.js、jQuery、Bootstrap),所有功能须使用原生 HTML5 Drag and Drop API、Canvas API 和 CSS 实现。 3. 代码结构清晰:`<style>` 标签集中管理样式,`<script>` 标签集中管理逻辑,HTML 结构语义化。 4. 图表使用原生 Canvas 2D API 绘制,数据为静态硬编码,无需动态更新。 5. 优先保证核心功能的正确性与稳定性,再考虑视觉美观度。 6. 拖拽交互须使用 HTML5 原生 Drag and Drop API,确保拖拽逻辑的基本鲁棒性(如正确处理 dragover、drop 事件)。

用户提示词(User Prompt)

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

请生成一个可拖拽自定义布局的仪表板,所有代码写在单个 HTML 文件中,直接可在浏览器运行。 ## 页面整体布局 页面分为三个区域: - **顶部工具栏**:包含「保存布局」按钮(存入 localStorage)和「重置布局」按钮(清除 localStorage 并恢复默认)。 - **左侧组件库(宽约 200px)**:列出 8 种可用组件,每个组件项可被拖拽。 - **右侧画布区域**:网格背景,用于放置和展示组件卡片。 ## 左侧组件库(8 种组件) 以列表形式展示以下组件,每项显示图标(可用 emoji 代替)和名称,支持拖拽到右侧画布: 1. 统计卡片 2. 折线图 3. 柱状图 4. 饼图 5. 数据表格 6. 待办事项列表 7. 日历组件 8. 快捷操作按钮组 ## 右侧画布区域 - 显示网格背景(CSS 实现即可)。 - 从左侧拖入组件后,在画布上生成对应的**组件卡片**。 - 每个组件卡片包含: - 标题栏(显示组件名称) - 关闭/删除按钮(点击移除该卡片) - 内容区域(展示该组件的静态内容,见下方说明) - 画布上的组件卡片支持**拖拽移动位置**(鼠标拖拽重新排列)。 ## 各组件静态内容要求 1. **统计卡片**:展示 3-4 个静态数字指标(如总用户数、今日订单、收入、增长率),带标签和数值。 2. **折线图**:使用 Canvas 绘制一条静态折线,带 X/Y 轴和至少 6 个数据点。 3. **柱状图**:使用 Canvas 绘制静态柱状图,带 X/Y 轴和至少 5 根柱子,柱子有不同颜色或统一颜色。 4. **饼图**:使用 Canvas 绘制静态饼图,至少 4 个扇区,每个扇区颜色不同,附简单图例。 5. **数据表格**:展示一个静态 HTML 表格,包含表头和至少 5 行数据(如姓名、部门、状态等列)。 6. **待办事项列表**:展示 4-5 条静态待办项,每项有复选框(可点击切换完成状态)和文字。 7. **日历组件**:展示当前月份的日历(用 JS 动态生成月份网格),高亮今天的日期。 8. **快捷操作按钮组**:展示 4-6 个功能按钮(如新建、导出、刷新、设置等),点击后弹出 alert 提示。 ## 工具栏功能 - **保存布局**:将当前画布中所有组件的类型和位置信息序列化后存入 `localStorage`,操作成功后给出视觉或文字反馈。 - **重置布局**:清除 `localStorage` 中保存的布局,将画布恢复为默认状态(预置 2-3 个默认组件,如统计卡片、折线图、数据表格)。 - 页面加载时,若 `localStorage` 中存在已保存的布局,则自动恢复。 ## 视觉要求 - 整体配色简洁专业(推荐深色工具栏 + 浅色画布,或全浅色方案)。 - 左侧组件库的组件项在鼠标悬停时有高亮效果,拖拽时有视觉反馈(如透明度变化)。 - 组件卡片有阴影和圆角,标题栏与内容区有明显分隔。 - Canvas 图表需填满组件卡片的内容区域,不得出现图表溢出或过小的情况。

任务要求

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

  1. 左侧组件库正确实现 HTML5 原生拖拽(dragstart/dragover/drop),将 8 种组件拖入画布后能生成对应的组件卡片,且卡片内容与组件类型匹配。
  2. 折线图、柱状图、饼图三种图表组件均使用原生 Canvas 2D API 绘制,图表包含坐标轴或图例等基本视觉元素,静态数据清晰可读。
  3. 画布上的组件卡片支持拖拽移动位置,且每个卡片均有可用的删除按钮,点击后卡片从画布中移除。
  4. 工具栏的「保存布局」功能能将当前组件信息写入 localStorage,「重置布局」能清除保存数据并恢复默认布局;页面刷新后能自动从 localStorage 恢复上次保存的布局。
  5. 待办事项列表的复选框可点击切换完成状态(视觉上有划线或颜色变化),日历组件能正确显示当前月份并高亮今日。
  6. 整体页面布局结构清晰(工具栏 + 左侧组件库 + 右侧画布三区域),样式整洁,组件卡片有基本的视觉区分(阴影、圆角、标题栏)。

评测结果

综合得分

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

基础难度评测结果

  • 得分:53.97 分
  • 通过状态:未通过

模型生成产物

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

好的,这是一个使用 HTML、CSS 和 JavaScript 实现的可拖拽自定义布局仪表板的完整代码。 **核心技术栈:** * **HTML:** 构建页面结构。 * **CSS:** 负责样式和布局,包括网格系统和组件样式。 * **JavaScript:** 实现拖拽、调整大小、保存/加载布局、组件配置和图表渲染。 * **localStorage:** 用于保存和加载用户自定义的布局。 * **Canvas API:** 用于绘制简单的图表(折线图、柱状图、饼图)。 **代码结构:** 1. **HTML (`index.html`):** 页面骨架,包含左侧组件库、右侧画布和顶部工具栏。 2. **CSS (`style.css`):** 页面样式,包括网格布局、组件样式、工具栏样式等。 3. **JavaScript (`script.js`):** 实现所有交互逻辑。 --- **`index.html`** ```html 可拖拽自定义仪表板 组件库 统计卡片 折线图 柱状图 饼图 数据表格 待办事项列表 日历组件 快捷操作按钮组 保存布局 重置布局 添加新组件 全屏模式 × 组件配置 保存配置 ``` --- **`style.css`** ```css /* 全局样式 */ body { font-family: 'Arial', sans-serif; margin: 0; padding: 0; background-color: #f4f7f6; color: #333; overflow: hidden; /* 防止主滚动条 */ } .dashboard-container { display: flex; height: 100vh; /* 占满整个视口高度 */ } /* 左侧组件库 */ .sidebar { width: 250px; background-color: #ffffff; border-right: 1px solid #e0e0e0; padding: 20px; box-shadow: 2px 0 5px rgba(0,0,0,0.05); overflow-y: auto; /* 允许滚动 */ } .sidebar h2 { margin-top: 0; color: #555; font-size: 1.2em; border-bottom: 1px solid #eee; padding-bottom: 10px; margin-bottom: 15px; } .component-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 10px; } .component-item { background-color: #e9ecef; border: 1px solid #ced4da; border-radius: 5px; padding: 10px; text-align: center; cursor: grab; transition: background-color 0.2s ease, transform 0.2s ease; font-size: 0.9em; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 80px; /* 固定高度 */ } .component-item:hover { background-color: #d6d8db; transform: translateY(-2px); } .component-item .icon { font-size: 1.5em; margin-bottom: 5px; color: #007bff; } /* 模拟图标 (实际应用中可以使用 Font Awesome 或其他图标库) */ .icon-stats::before { content: "📊"; } .icon-line-chart::before { content: "📈"; } .icon-bar-chart::before { content: "📊"; } /* 柱状图和统计卡片图标类似 */ .icon-pie-chart::before { content: "🥧"; } .icon-table::before { content: "📝"; } .icon-todo::before { content: "✅"; }...

AI 评审点评

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

【KIMI】该实现功能较为完整,交互体验较好,但存在致命的格式违规:未按题目要求将所有代码整合在单个HTML文件中,而是拆分为三个独立文件,这直接导致无法满足「直接可在浏览器运行,无需任何外部依赖」的核心约束。此外,画布内拖拽使用了鼠标事件而非要求的HTML5 Drag and Drop API,部分细节(日历高亮、数据点数量)未完全达标。建议将CSS和JS内联到HTML中,修正技术实现以完全符合题目要求。 【CLAUDE】该候选输出最根本的问题是违反了任务的核心约束:将代码拆分为三个独立文件(index.html、style.css、script.js),而非整合在单个HTML文件中,导致代码无法直接在浏览器中运行。这是一个不可接受的基础性错误。从设计思路来看,代码架构较为完整,涵盖了拖拽、Canvas图表、localStorage、日历等功能模块,但实现细节存在多处不达标:默认数据点数量不足、统计卡片指标数量不足、画布内拖拽未使用HTML5 Drag and Drop API、图表数据在保存/恢复时存在丢失风险。此外,代码还添加了大量任务未要求的功能(调整大小、全屏、配置模态框),增加了复杂度但未能保证核心功能的正确实现。总体评价:设计思路有一定价值,但因违反单文件要求和多处实现细节不达标,整体质量较低。

进阶难度评测结果

  • 得分:46.76 分
  • 通过状态:未通过

模型生成产物

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

好的,这是一个完整的 HTML、CSS 和 JavaScript 代码,用于创建一个可拖拽自定义布局的仪表板。 **重要提示:** * **数据源模拟:** 为了简化示例,所有组件的数据源都是模拟的。在实际应用中,您需要连接到真实的 API 或数据库。 * **Web Audio API 音效:** 为了演示 Web Audio API 的使用,我添加了一个简单的音效,当拖拽组件时播放。您需要一个音频文件(例如 `drag_sound.mp3`)放在与 HTML 文件相同的目录下,或者提供一个可访问的 URL。 * **数据交互(筛选、排序):** 在这个示例中,数据交互(筛选、排序)主要体现在数据表格组件上,通过点击表头实现。更复杂的交互需要更详细的逻辑。 * **图表库:** 为了实现图表功能,我使用了 `Chart.js`。您需要通过 CDN 引入它。 * **布局库:** 为了实现拖拽和调整大小的功能,我使用了 `Gridstack.js`。您需要通过 CDN 引入它。 * **全屏模式:** 使用了浏览器原生的全屏 API。 ```html 可拖拽自定义仪表板 body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; margin: 0; background-color: #f4f7f6; color: #333; display: flex; height: 100vh; overflow: hidden; } /* 左侧组件库 */ .sidebar { width: 250px; background-color: #ffffff; box-shadow: 2px 0 5px rgba(0, 0, 0, 0.05); padding: 20px; overflow-y: auto; flex-shrink: 0; } .sidebar h3 { margin-top: 0; color: #555; border-bottom: 1px solid #eee; padding-bottom: 10px; margin-bottom: 20px; } .component-list .component-item { background-color: #e9ecef; border: 1px dashed #ced4da; padding: 10px 15px; margin-bottom: 10px; cursor: grab; border-radius: 5px; transition: background-color 0.2s ease; display: flex; align-items: center; justify-content: space-between; } .component-list .component-item:hover { background-color: #d6d8db; } .component-list .component-item i { margin-right: 10px; color: #007bff; } /* 右侧画布区域 */ .main-content { flex-grow: 1; display: flex; flex-direction: column; overflow: hidden; } /* 工具栏 */ .toolbar { background-color: #ffffff; padding: 15px 20px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; } .toolbar .title { font-size: 1.2em; font-weight: bold; color: #007bff; } .toolbar .actions button { background-color: #007bff; color: white; border: none; padding: 8px 15px; margin-left: 10px; border-radius: 4px; cursor: pointer; transition: background-color 0.2s ease; font-size: 0.9em; } .toolbar .actions button:hover { background-color:...

AI 评审点评

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

【KIMI】该实现严重违反题目核心技术约束,使用 Gridstack.js 替代原生拖拽布局实现,属于根本性偏差。功能层面,布局持久化不完整(丢失组件类型与数据)、统计卡片动画缺失、数据表格筛选缺失、待办事项增删缺失、日历切换逻辑缺陷、自动空位放置缺失、左侧面板折叠缺失。代码结构虽有分区注释,但依赖外部库过重,且存在多处功能承诺未兑现的情况。视觉完成度中等,但核心技术实现与功能完整性均未达到 medium 难度题目的及格要求。 【CLAUDE】该候选输出在形式上提供了完整的 HTML 文件结构,UI 样式设计较为美观,代码组织有一定层次感。然而,存在三个根本性问题:第一,核心要求「拖拽与布局逻辑必须原生实现」被完全违反,直接使用了 Gridstack.js 库;第二,代码中存在大量运行时错误(不存在的 API 方法、未注册的 Chart.js 插件、错误的 DOM 属性查找),实际运行效果会远差于代码表面呈现;第三,多个关键功能(数据表格三态排序与筛选、统计卡片数字动画与刷新、待办事项增删、图表数据集切换、左侧面板折叠)完全缺失或实现错误。代码中充斥着 placeholder 注释和 `console.warn` 警告,说明作者意识到了实现的不完整性。整体而言,这是一个架构思路基本正确但实现质量严重不足、无法直接在浏览器中正常运行的作品。

困难难度评测结果

  • 得分:28.26 分
  • 通过状态:未通过

模型生成产物

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

好的,这是一个非常全面的需求!要实现一个功能如此丰富的仪表板,需要大量的 JavaScript 和 CSS 来处理拖拽、布局、组件交互、数据模拟以及图表渲染。 由于直接输出一个完整的、可直接运行的、包含所有功能的 HTML 文件会非常庞大且难以维护,并且需要引入大量的第三方库(如用于图表的 Chart.js 或 ECharts,用于拖拽的 SortableJS 或 interact.js),我将提供一个 **核心的 HTML 结构和关键的 JavaScript/CSS 逻辑框架**。 这个框架将包含: * **HTML 结构**: 定义了左侧组件库、右侧画布、工具栏以及各个组件的基本骨架。 * **CSS 样式**: 提供基本的布局和视觉效果,包括网格系统、拖拽时的视觉反馈等。 * **JavaScript 逻辑框架**: 演示了如何实现拖拽、布局保存/加载、组件添加/删除、以及组件配置的基本思路。 **请注意:** * **图表库**: 我会预留图表渲染的位置,但不会直接集成具体的图表库。你需要根据自己的喜好选择并引入 Chart.js, ECharts, Highcharts 等。 * **数据模拟**: 我会提供一个简单的模拟数据更新的函数,但实际的数据源可能来自 API。 * **数据钻取**: 这通常是图表库提供的功能,或者需要更复杂的交互逻辑。我会在组件配置中预留相关选项。 * **实时数据更新**: 模拟数据更新会通过 `setInterval` 实现。 * **背景音乐**: 这个功能相对独立,我会在 HTML 中加入一个 `` 标签,并提供控制播放的简单 JavaScript。 * **完整性**: 这是一个 **框架**,你需要在此基础上填充具体的组件实现、数据处理、图表渲染等细节。 --- ```html 可拖拽自定义仪表板 /* 基本重置 */ body { margin: 0; font-family: 'Arial', sans-serif; background-color: #f4f7f6; color: #333; overflow: hidden; /* 防止body滚动 */ } /* 整体布局 */ .dashboard-container { display: flex; height: 100vh; /* 占满整个视口高度 */ } /* 左侧组件库 */ .sidebar { width: 250px; background-color: #ffffff; border-right: 1px solid #e0e0e0; padding: 20px; box-shadow: 2px 0 5px rgba(0,0,0,0.05); overflow-y: auto; /* 允许滚动 */ } .sidebar h3 { margin-top: 0; color: #555; border-bottom: 1px solid #eee; padding-bottom: 10px; margin-bottom: 20px; } .component-list .component-item { background-color: #f9f9f9; border: 1px solid #ddd; padding: 10px 15px; margin-bottom: 10px; cursor: grab; /* 表示可拖拽 */ border-radius: 4px; transition: background-color 0.2s ease; text-align: center; font-weight: bold; color: #444; } .component-list .component-item:hover { background-color: #e9e9e9; } /* 右侧画布区域 */ .canvas-area { flex-grow: 1; /* 占据剩余空间 */ display: flex; flex-direction: column; overflow: hidden; /* 防止画布内容溢出 */ } /* 工具栏 */ .toolbar { background-color: #ffffff; padding: 15px 20px; border-bottom: 1px solid #e0e0e0; display: flex; justify-content: flex-end; /* 按钮靠右 */ align-items: center; box-shadow: 0 2px 5px rgba(0,0,0,0.05); gap:...

AI 评审点评

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

【CLAUDE】该候选输出在开头就坦承「这是一个核心的HTML结构和关键的JavaScript/CSS逻辑框架」,并明确表示不会完整实现所有功能。实际输出确实只是一个骨架:Chart.js CDN被注释掉导致图表无法渲染;拖拽系统混用了HTML5 DnD API(违反技术约束)和原生鼠标事件;EventBus、组件联动、数据钻取等核心高难度特性完全缺失;网格系统仅为简单的像素取整而非真正的12列网格;重叠冲突检测完全缺失;多处代码存在明显逻辑错误(如doResize的坐标计算、saveComponentSettings中widgetId获取方式)。该输出无法在浏览器中独立运行并展示题目要求的任何核心功能,与任务要求的「完整、可直接在浏览器中独立运行的HTML文件」相去甚远。 【KIMI】该候选输出是一个「框架代码」而非完整实现,大量核心功能以注释形式标注「需要集成」「需要修改」,实际可运行功能有限。布局引擎仅实现基础拖拽吸附,缺少12列网格、碰撞检测等核心要求;高级交互(EventBus联动、数据钻取)完全缺失;组件功能大量未实现或仅为占位符。代码结构清晰但完成度严重不足,不符合「完整、可直接在浏览器中独立运行」的要求,难以满足生产环境或评测标准。

相关链接

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

加载中...