m2pool_web_frontend/mining-pool/README_SplitEditor.md

321 lines
9.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 分屏编辑器使用说明
## 📌 概述
分屏编辑器是一个支持实时预览的富文本编辑器组件,完美解决了您需要边编辑边查看效果的需求。支持三种显示模式:编辑、预览、分屏。
## 🚀 快速开始
### 1. 访问演示页面
在浏览器中访问:`http://localhost:8080/zh/splitEditorDemo` 假设您的项目运行在8080端口
### 2. 三种显示模式
#### 📝 编辑模式
- 只显示编辑器,专注于内容编写
- 点击工具栏中的"编辑"按钮激活
#### 👀 预览模式
- 只显示预览效果,方便查看最终结果
- 点击工具栏中的"预览"按钮激活
#### 🔀 分屏模式(推荐)
- **左边编辑,右边实时预览**
- 所见即所得,完美解决圆点在预览时才显示的问题
- 点击工具栏中的"分屏"按钮激活
## ✨ 圆点功能使用
### 方法一:使用专用按钮
1. 在分屏模式下,点击编辑器面板头部的"插入圆点"按钮
2. 或者在富文本编辑器的工具栏中找到"• 圆点"按钮
3. 圆点将自动插入到光标位置
### 方法二:直接输入
在编辑器中直接输入:`• 您的内容`
### 方法三:列表功能
使用编辑器的无序列表功能,会自动生成带圆点的列表
## 🎯 圆点列表示例
```
• ALEO矿工必须质押一定数量的ALEO代币
• 否则将无法提交PoW工作量证明(即算力)
• 质押金额直接影响挖矿收益
```
## 📋 组件使用方法
### 在Vue页面中使用
```vue
<template>
<div>
<!-- 使用分屏编辑器组件 -->
<SplitScreenEditor
ref="splitEditor"
v-model="content"
:height="500"
:options="editorOptions"
@change="handleContentChange"
/>
</div>
</template>
<script>
import SplitScreenEditor from '@/components/SplitScreenEditor.vue'
export default {
components: {
SplitScreenEditor
},
data() {
return {
content: '',
editorOptions: {
height: 500,
// 其他TinyMCE配置选项
}
}
},
methods: {
handleContentChange(content) {
console.log('内容变化:', content);
}
}
}
</script>
```
### 组件属性
| 属性 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `value` | String | '' | 编辑器内容支持v-model |
| `height` | String/Number | 500 | 编辑器高度 |
| `options` | Object | {} | TinyMCE配置选项 |
### 组件事件
| 事件 | 参数 | 说明 |
|------|------|------|
| `input` | content | 内容变化时触发v-model |
| `change` | content | 内容变化时触发 |
| `publish` | publishResult | 发布操作完成时触发,包含发布结果 |
#### publish 事件参数详解
**发布成功时:**
```javascript
{
success: true,
documentId: 123, // 后端返回的文档ID
title: "文档标题",
content: "文档内容",
wordCount: 1250,
timestamp: "2024-01-01T12:00:00Z",
response: { /* 后端完整响应数据 */ }
}
```
**发布失败时:**
```javascript
{
success: false,
error: "错误信息",
title: "文档标题",
content: "文档内容"
}
```
### 组件方法
| 方法 | 参数 | 说明 |
|------|------|------|
| `getContent()` | - | 获取编辑器内容 |
| `setContent(content)` | content | 设置编辑器内容 |
| `clear()` | - | 清空编辑器内容 |
## 🛠️ 高级功能
### 全屏编辑
- 点击"全屏"按钮进入全屏编辑模式
- 按ESC键退出全屏
### 字数统计
- 实时显示当前内容的字符数量
- 自动排除HTML标签
### 复制HTML
- 在预览区域点击"复制HTML"按钮
- 将生成的HTML代码复制到剪贴板
### 使用指南
- 点击工具栏中的"使用指南"按钮
- 展开详细的TinyMCE功能说明
- 包含快捷键、操作步骤、专用功能介绍
- 支持展开/收起切换
### 发布功能
- 点击工具栏中的"发布"按钮
- 自动验证内容是否为空
- **两步式发布流程**
1. 输入文档标题(自动生成默认标题)
2. 选择文档类型其他、服务条款、API文档、挖矿教程
- **直接调用后端接口**:使用 `addDocument` API 发布到文档管理系统
- **完整的状态反馈**:发布中状态、成功通知、错误处理
- **自动清理**:发布成功后自动清空本地草稿
- **事件回调**:触发 `publish` 事件返回发布结果和文档ID
### 自动保存
- 演示页面包含2秒防抖的自动保存功能
- 自动保存到浏览器本地存储
- 页面刷新后自动恢复草稿
## 🎨 自定义样式
### 编辑器样式
可以通过`options.content_style`自定义编辑器内容区域的样式:
```javascript
editorOptions: {
content_style: `
body {
font-family: 'Arial', sans-serif;
font-size: 16px;
line-height: 1.6;
}
ul, ol {
padding-left: 24px;
}
li {
margin: 6px 0;
}
`
}
```
### 预览区域样式
预览区域的样式已经过优化,确保与编辑器样式保持一致。
## 🔧 配置选项
### 推荐的TinyMCE配置
```javascript
editorOptions: {
height: 500,
menubar: false,
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap',
'preview', 'anchor', 'searchreplace', 'visualblocks', 'code',
'fullscreen', 'insertdatetime', 'media', 'table', 'help', 'wordcount'
],
toolbar: [
'undo redo | formatselect | bold italic underline strikethrough',
'forecolor backcolor | alignleft aligncenter alignright alignjustify',
'bullist numlist outdent indent | link image table',
'code preview fullscreen | removeformat help'
].join(' | '),
language: 'zh_CN',
branding: false,
resize: false
}
```
## 📱 响应式支持
组件完全支持响应式设计:
- 移动设备上工具栏自动调整布局
- 分屏模式在小屏幕上自动变为垂直布局
- 字体大小和间距自动适配
## 🐛 常见问题
### Q: 圆点在编辑时看不到?
A: 这是正常现象,请切换到分屏模式,右侧预览区域会实时显示圆点效果。
### Q: 如何自定义编辑器工具栏?
A: 通过`options.toolbar`配置项自定义工具栏按钮。
### Q: 支持哪些文件格式?
A: 组件输出标准HTML格式支持所有富文本编辑器的常见功能。
### Q: 如何集成到现有项目?
A: 复制`SplitScreenEditor.vue`组件到您的项目中,然后按照上述方法使用即可。
## 📚 TinyMCE 功能详解
### 📝 基础文本编辑
- **撤销/重做**: `Ctrl + Z` / `Ctrl + Y` - 快速回退或恢复编辑操作
- **字体样式**: `Ctrl + B` 粗体 | `Ctrl + I` 斜体 | `Ctrl + U` 下划线
### 🎨 格式与样式
- **段落格式**: 标题1-6、段落、预格式化文本
- **颜色设置**: 字体颜色和背景颜色选择
- **文本对齐**: 左对齐、居中、右对齐、两端对齐
### 📋 列表与缩进
- **无序列表(圆点)**: 创建带圆点的项目列表
- **有序列表(数字)**: 创建带数字编号的项目列表
- **缩进控制**: `Tab` 增加缩进 | `Shift + Tab` 减少缩进
### 🔗 插入与媒体
- **链接插入**: `Ctrl + K` - 插入超链接
- **图片插入**: 支持上传图片或插入图片链接
- **表格插入**: 创建和编辑表格数据
### 🛠️ 高级功能
- **搜索替换**: `Ctrl + F` 查找 | `Ctrl + H` 替换
- **源码编辑**: 查看和编辑HTML源代码
- **全屏编辑**: `F11` 或点击全屏按钮
### ⌨️ 快捷键汇总
| 功能 | 快捷键 | 说明 |
|------|--------|------|
| 撤销 | `Ctrl + Z` | 撤销上一步操作 |
| 重做 | `Ctrl + Y` | 重做操作 |
| 粗体 | `Ctrl + B` | 加粗选中文字 |
| 斜体 | `Ctrl + I` | 倾斜选中文字 |
| 下划线 | `Ctrl + U` | 给选中文字加下划线 |
| 插入链接 | `Ctrl + K` | 为选中文字插入超链接 |
| 全屏 | `F11` | 进入/退出全屏模式 |
| 查找 | `Ctrl + F` | 搜索文本内容 |
| 替换 | `Ctrl + H` | 查找并替换文本 |
## 🔄 更新日志
### v1.2.0 (LATEST!)
-**完整发布功能** - 直接调用 addDocument 接口发布文档
-**文档类型选择** - 支持4种文档类型分类其他、服务条款、API文档、挖矿教程
-**两步式发布流程** - 标题输入 + 类型选择
-**发布状态管理** - 加载中、成功、失败状态处理
-**智能默认值** - 自动生成文档标题和时间戳
-**演示编辑器** - 在使用指南中直接体验功能
### v1.1.0
-**使用指南功能** - 点击显示详细的TinyMCE功能说明
-**发布按钮** - 一键发布内容,支持事件回调
-**完整快捷键说明** - 涵盖所有常用快捷键
-**功能分类展示** - 按类别组织功能说明
-**响应式指南面板** - 适配各种屏幕尺寸
### v1.0.0
- ✅ 支持三种显示模式(编辑/预览/分屏)
- ✅ 专用圆点插入功能
- ✅ 实时预览效果
- ✅ 全屏编辑支持
- ✅ 字数统计功能
- ✅ HTML复制功能
- ✅ 响应式设计
- ✅ 自动保存机制
## 📞 技术支持
如有任何问题或建议,请联系开发团队。
---
> **提示**: 建议在分屏模式下使用编辑器,这样可以实时看到圆点和其他格式化效果,大大提升编辑体验!