1.slate.js + slate-react初始化项目
2.keydown事件绑定
command指令
特点的选择域
当前的选择域
选择操作
在特定节点上
在顶级节点上
历史记录
执行命令
在slate事件中:onKeyDown onPaste
自定义node的事件中
自定义规则中
slate编辑器最外层,通过ref获取editor执行
查询命令
查询与命令类似,但是它们不操纵编辑器的当前值,而是返回有关当前值或特定节点等的信息。
复用及组合命令
'use strict';const Controller = require('egg').Controller;const fs = require('fs');const path = require('path');const puppeteer = require('puppeteer');const moment = require('moment');class ReportController extends Controller {async index() {const { ctx } = this;// 启动pupeteer,加载页面const browser = await puppeteer.launch();const page = await browser.newPage();await page.setViewport({width: 1920,height: 1080});// 打开页面await page.goto('http://localhost:8080', {waitUntil: 'networkidle0'});// 生成pdflet pdfFileName = `体检报告_${moment(new Date()).format('YYYYMMDDHHmm') + '.pdf'}`let pdfFilePath = path.join(__dirname, '../../temp/', pdfFileName);await page.pdf({path: pdfFilePath,format: 'A4',scale: 1,printBackground: true,landscape: false,displayHeaderFooter: false});browser.close();// 返回文件路径ctx.status = 200ctx.body = {url: `${ctx.request.protocol}://${ctx.request.host}/resource/${pdfFileName}`}}}module.exports = ReportController;
