说明

  • 模板应当预设当前类型文档需要使用的源数据,以供编辑模板过程中设置元素使用
  • 文档实体(病历)-不需要预设源数据,而是采用[动态][按需]加载的模式

模板预设源数据示例

更多代码可参考demo程序

        thinkEditor.SetSource("机构", "机构名", ""); 
        /********************病人基础资料*************************/
        thinkEditor.SetSource("基本资料", "姓名", ""); 

文档实体(病历) -[动态][按需]加载源数据示例

在事件setElementContent.request中设置需要的源数据。

step1: 设置监听

 async mounted () {  
     ThinkEditor.addEventListener("setElementContent", this.setElemetnContentListener);
}

step2: 按需设置源数据

methods: {
  setElemetnContentListener(e){
        console.log(e);
        var allow=true;
        var data = e.data;
        if(data.handle=="request")
        {//请求设置元素内容
            /* 提取元素信息 */
            var id = data.id;
            var name = data.name;

            var source_class = data["source-class"];
            var source_id = data["source-id"];

            let thinkEditorDemo = new ThinkEditorDemo();

            if(source_class != "" && source_id != "" //该元素需要源
                    && data.has_source == false)//该元素没有加载源
            {
                 /*
                ProduceEntitySourceData、HasEntitySourceExist、GetEntitySource
                三个方法都是演示方法,第三方应用应当使用source_class、source_id去自己的业务系统中找是否存在源
                最终调用ThinkEditor.SetSource()实现按需设置源数据
                */
                thinkEditorDemo.ProduceEntitySourceData();//构造文档实体使用的测试源数据
                if(thinkEditorDemo.HasEntitySourceExist(source_class, source_id))
                {
                    var fragment = thinkEditorDemo.GetEntitySource(source_class, source_id);
                    ThinkEditor.SetSource(source_class, source_id, fragment);
                }
            }
        }

        return allow;
    }
}
文档更新时间: 2025-02-07 10:35   作者:admin