适用场景

适用于基于浏览器使用javascript和html开发web应用的场景。
适用于VUE2、VUE3、React等各类web开发框架。
支持360浏览器、QQ浏览器、Chrome、firefox、Edge等主流浏览器。

说明

试一试
HTML
|
运行代码
var thinkEditor = new ThinkEditor(editorParam);

await thinkEditor.InitAsync();

/********************************************************************/
thinkEditor.ParseDoc(docName, docXml, E_DOCS_ORGANIZE_MODE.Single);
/********************************************************************/

thinkEditor.SetViewMode(E_VIEW_MODE.Edit);

thinkEditor.Load(document.querySelector("#container"));

在前端框架中设计编辑器显示位置

基于element-ui tabs组件的参考代码。

  • 完整代码参考VUE demo 工程
<template>
  <el-main>
    <div class="Instance">
      <!--Instance是依赖内部大小的,所以预设1个空间 指定长宽尺寸-->
      <div @contextmenu.prevent="handleContextMenu" class="main-box">
        <el-tabs style="width: 100%; height: 100%" :closable="true" v-model="selectedDocName" type="card" @tab-click="tabSelected" @tab-remove="tabRemove" @tab-add="tabAdd">
          <el-tab-pane style="width: 100%; height: 100%" :label="item.showName" :name="item.docName" :key="item.docName" v-for="(item, index) in this.instanceHelper.docEditors">
            <component :is="item.editorView" :docEditor="item" />
          </el-tab-pane>
        </el-tabs>
        <RightClick />
      </div>
    </div>
  </el-main>
</template>

打开文档

//新建文档编辑器
var thinkEditor = new ThinkEditor({
        lib: '/js/', //库文件在服务器上路径
        editorId: docName + '_' + GetRandStr() //文档编辑器Id,用于区分不同的文档编辑器
      });
/**************************
 * 用户可以不使用DocEditor,可结合自己的应用系统 直接在thinkEditor上附加文档信息、用户信息等业务信息
 *示例:
  thinkEditor.userDefined = {
  docName:'文档名',
  docShowName:'文档UI tab显示名',
  docNo:'文档在业务系统标识',
  userNo:'用户、患者标识'
  };
  * ****************************/

//初始化编辑器
await thinkEditor.Init();

//显示文档-指定编辑器在containerDiv中显示
thinkEditor.Load(containerDiv);

//获取文档数据 note:第三方应用应当是从数据库中获取的docData
var docData = await fetch("/static/system/emr/AdmissionRecord.xml").then((res) => res.arrayBuffer());

var docName='新文档';
//创建文档
thinkEditor.CreateDoc(docName);

//解析文档
thinkEditor.ParseDoc(docName, docData, { organizeMode: E_DOCS_ORGANIZE_MODE.Single });

//设置显示模式
thinkEditor.SetViewMode(E_VIEW_MODE.Edit);

隐藏文档

  • 文档不直接在浏览器显示时调用,比如父级containerDiv隐藏或关闭时
  • 编辑器不再与containerDiv关联
  • 文档不再实时绘制
thinkEditor.UnLoad();

显示文档

  • 文档恢复在浏览器显示时调用
  • 编辑器再次和containerDiv关联(每次Load的containerDiv可以不同)
  • 文档恢复实时绘制
thinkEditor.Load(containerDiv);

关闭文档

  • 关闭文档,编辑器停止工作,内存即刻释放。比如UI文档tab页签被关闭,或点击了文档关闭按钮
  • 该thinkEditor一般不再给其他新文档使用
//关闭文档
thinkEditor.CloseDoc(docName);
或
thinkEditor.CloseAllDoc();

//释放编辑器
thinkEditor.UnInit();
文档更新时间: 2025-04-16 19:49   作者:admin