README_webpage.md 4.2 KB

插入网页功能实现总结

根据 doc/CustomElement.md 文档的指导,我已经成功实现了插入网页功能。以下是实现的详细内容:

1. 类型定义扩展

src/types/slides.ts 中:

  • ElementTypes 枚举中添加了 FRAME = 'frame'
  • 定义了 PPTFrameElement 接口,继承自 PPTBaseElement,包含 url 字段
  • PPTElement 联合类型中添加了 PPTFrameElement

2. 配置文件更新

src/configs/element.ts 中:

  • ELEMENT_TYPE_ZH 中添加了 frame: '网页'
  • MIN_SIZE 中添加了 frame: 200

3. 元素组件创建

创建了 src/views/components/element/FrameElement/index.vue

  • 可编辑的网页元素组件
  • 包含 iframe 元素显示网页内容
  • 支持拖拽手柄和遮罩层
  • 支持右键菜单和元素选择

创建了 src/views/components/element/FrameElement/BaseFrameElement.vue

  • 基础版网页元素组件,用于缩略图和放映模式
  • 简化版本,不包含编辑功能

4. 创建元素功能

src/hooks/useCreateElement.ts 中:

  • 添加了 createFrameElement 方法
  • 默认创建 800x480 像素的网页元素
  • 居中放置在画布上

5. 组件集成

在各个组件中添加了网页元素支持:

  • src/views/Editor/CanvasTool/index.vue - 画布工具栏,添加"插入网页"按钮
  • src/views/Editor/Canvas/EditableElement.vue - 可编辑元素组件
  • src/views/Editor/Canvas/Operate/index.vue - 操作节点组件
  • src/views/components/ThumbnailSlide/ThumbnailElement.vue - 缩略图元素组件
  • src/views/Screen/ScreenElement.vue - 放映元素组件
  • src/views/Mobile/MobileEditor/MobileEditableElement.vue - 移动端可编辑元素组件

6. 样式面板

创建了 src/views/Editor/Toolbar/ElementStylePanel/FrameStylePanel.vue

  • 网页元素的样式编辑面板
  • 提供网页链接输入和更新功能
  • 集成到主样式面板系统中

使用方法

  1. 在画布工具栏中点击"插入网页"图标(链接图标)
  2. 在弹出的输入框中输入要嵌入的网页链接地址
  3. 点击"确认"按钮,系统会创建一个网页元素
  4. 选中网页元素后,右侧样式面板可以修改网页链接
  5. 网页元素支持拖拽、缩放、旋转等基本操作

弹窗功能

  • 使用与插入音视频相同的弹窗设计风格
  • 提供网页链接输入框,支持URL格式验证
  • 默认提供示例链接(Vue.js官网)
  • 支持取消和确认操作

右键菜单功能

网页元素支持完整的右键菜单功能,包括:

通用菜单项

  • 编辑操作: 剪切、复制、粘贴
  • 对齐功能: 水平居中、垂直居中、左对齐、右对齐、顶部对齐、底部对齐
  • 层级管理: 置于顶层、上移一层、置于底层、下移一层
  • 组合功能: 组合、取消组合
  • 其他功能: 设置链接、全选、锁定、删除

网页元素特有菜单项

  • 修改链接: 使用与"设置链接"相同样式的弹窗修改网页链接,支持URL格式验证
  • 在新窗口打开: 在新标签页中打开网页链接
  • 复制链接: 将网页链接复制到剪贴板

注意: 网页元素不显示"设置链接"功能,因为"修改链接"已经提供了相同的功能。

右侧样式面板功能

  • 链接显示: 自动显示当前网页元素的链接地址
  • 链接编辑: 可以直接在样式面板中修改网页链接
  • 实时更新: 修改后立即更新网页元素内容
  • 历史记录: 支持撤销/重做操作

这些菜单项让用户可以方便地管理网页元素的各种属性和操作。

注意事项

  • 由于跨域限制,某些网站可能无法在 iframe 中正常显示
  • 建议使用支持 iframe 嵌入的网站链接
  • 网页元素的大小和位置可以自由调整
  • 支持导出和放映模式
  • 放映模式交互: 在幻灯片放映时,用户可以正常点击和交互 iframe 内的网页内容

技术特点

  • 完全遵循现有代码架构和设计模式
  • 使用 TypeScript 提供类型安全
  • 支持响应式设计和移动端
  • 集成历史记录和撤销/重做功能
  • 支持主题和样式系统

这个实现完全按照文档要求进行,提供了完整的网页元素插入和管理功能。