如下爲github中內容:javascript
建議給病歷模板設計者(開發人員,或者科主任)使用。 可用來設計電子病歷模板,也能夠當作電子病歷編輯器使用。 此時輸入的值可利用SDE對象暴露出的接口獲取。
建議給醫生使用。 此時醫生能夠在原有模板中添加已有的控件,也能夠給科主任用來設計模板。 亦可經過SDE對象暴露出來的接口獲取數據。
建議該模式給醫生查看使用,在該模式下電子病歷中全部控件均不可編輯。
按鈕經過事件控制!
建議給醫生使用,此模式下醫生只能編輯控件中的值,其他均不可修改。
該模式只容許查看,控件不可被編輯。
按鈕經過事件控制!
本次更新如下內容:css
編輯 i. 剪切板 1. 複製、粘貼、切剪 ii. 字體 1. 字體、字號、增大字體、縮小字體 插入 i. 字符 ii. 連接 1. 取消連接 iii. 圖片 1. 圖片、塗鴉(蠻好用的你能夠試試) iv. 表格 表格 i. 表格 1. 插入表格
data 模擬異步請求的數據,正式項目中可忽略
dialogs 擴展百度ueditor的dialogs
dist 核心js文件
js
sde.design.js SoDiaoEditor設計器核心js
sde.editor.js SoDiaoEditor編輯器核心js
example 一些demo
ueditor 百度ueditor庫,可替換成本身版本
sde.config.js 核心配置文件
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>設計模式--電子病歷設計器</title> <!-- 注意如下各腳本之間的加載順序! --> <script type="text/javascript" src="sde.config.js"></script> <link rel="stylesheet" href="ueditor/themes/default/css/ueditor.css" /> <script type="text/javascript" src="ueditor/ueditor.all.js"></script> <script type="text/javascript" src="ueditor/lang/zh-cn/zh-cn.js"></script> <script type="text/javascript" src="dist/js/sde.design.js"></script> </head> <body> <script id="myEditor" type="text/plain" style="width:680px;height:1000px;"> 病歷模板... </script> <script type="text/javascript"> window.onload = function() { var sde = new SDE({ id: "myEditor", title: '<div style="height: 45px;overflow: hidden;">' + '<div class="left" style="position:absolute;top:0;left:0;">' + '<img src="../data/img/SoDiaoL.png" style="height:35px;margin:5px;border:none;" />' + '</div>' + '<h1 style="font-size: 14px;height: 45px;line-height: 45px;margin: 0 auto;text-align: center;font-weight: normal;color:#fff;" >SoDiaoEditor電子病歷編輯器</h1>' + '</div>', //自定義title
toolbars: {
}); }; </script> </body> </html>
各個腳本之間的加載順序,已本例爲準。 配置項(sde.config.js):html
/* 默認配置項 */ (function() { var URL = window.UEDITOR_HOME_URL || getUEBasePath(); /* SDE_CONFIG 配置項 */ window.SDE_CONFIG = { HOME_URL: URL, HOME_URL_DIALOGS: URL + 'dialogs/',//SoDiaoEditor擴展ueditor的dialogs位置 EDITOR_URL: URL + 'dist/js/sde.editor.js', MODE: "DESIGN", //DESIGN:設計|EDITOR:編輯|READONLY:只讀(全部節點都不可編輯) CONTROL_TEMPLATES: []//控件模板 }; /** * 配置項主體。注意,此處全部涉及到路徑的配置別遺漏URL變量。 */ window.UEDITOR_CONFIG = { UEDITOR_HOME_URL: URL + 'ueditor/', //爲編輯器實例添加一個路徑,這個不能被註釋 serverUrl: URL + "data/config.json", //URL + "net/controller.ashx", // 服務器統一請求接口路徑 toolbars: [], //工具欄上的全部的功能按鈕和下拉框,能夠在new編輯器的實例時選擇本身須要的從新定義 autoClearinitialContent: false, //是否自動清除編輯器初始內容,注意:若是focus屬性設置爲true,這個也爲真,那麼編輯器一上來就會觸發致使初始化的內容看不到了 //iframeJsUrl: URL + window.SDE_CONFIG.EDITOR_URL + '?temp=' + new Date().getTime(), //給編輯區域的iframe引入一個js文件 // iframeCssUrl: URL + 'EMR/css/default.css?temp=' + new Date().getTime(), //給編輯區域的iframe引入一個css文件 allowDivTransToP: false, //容許進入編輯器的div標籤自動變成p標籤 wordCount: false, //關閉字數統計 elementPathEnabled: false, //關閉elementPath autoClearinitialContent: false }; function getUEBasePath(docUrl, confUrl) { return getBasePath(docUrl || self.document.URL || self.location.href, confUrl || getConfigFilePath()); } function getConfigFilePath() { var configPath = document.getElementsByTagName('script'); return configPath[configPath.length - 1].src; } function getBasePath(docUrl, confUrl) { var basePath = confUrl; if (/^(\/|\\\\)/.test(confUrl)) { basePath = /^.+?\w(\/|\\\\)/.exec(docUrl)[0] + confUrl.replace(/^(\/|\\\\)/, ''); } else if (!/^[a-z]+:/i.test(confUrl)) { docUrl = docUrl.split("#")[0].split("?")[0].replace(/[^\\\/]+$/, ''); basePath = docUrl + "" + confUrl; } return optimizationPath(basePath); } function optimizationPath(path) { var protocol = /^[a-z]+:\/\//.exec(path)[0], tmp = null, res = []; path = path.replace(protocol, "").split("?")[0].split("#")[0]; path = path.replace(/\\/g, '/').split(/\//); path[path.length - 1] = ""; while (path.length) { if ((tmp = path.shift()) === "..") { res.pop(); } else if (tmp !== ".") { res.push(tmp); } } return protocol + res.join("/"); } window.UE = { getUEBasePath: getUEBasePath }; })();
注意:java
請重點關注window.SDE_CONFIG 和 window.UEDITOR_CONFIG 。 建議window.UEDITOR_CONFIG不要修改,可根據需求該window.SDE_CONFIG對象git
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>編輯模式--電子病歷編輯器</title> <script type="text/javascript" src="dist/js/sde.editor.js"></script> </head> <body> <div id="myEditor" style="width:680px;height:1000px;margin:0 auto;"> 病歷內容... </div> <script type="text/javascript"> window.onload = function() { var sde = new SDE({ id: "myEditor", title: '<div style="height: 45px;overflow: hidden;">' + '<div class="left" style="position:absolute;top:0;left:0;">' + '<img src="../data/img/SoDiaoL.png" style="height:35px;margin:5px;border:none;" />' + '</div>' + '<h1 style="font-size: 14px;height: 45px;line-height: 45px;margin: 0 auto;text-align: center;font-weight: normal;color:#fff;" >SoDiaoEditor電子病歷編輯器</h1>' + '</div>', //自定義title mode: 'EDITOR'//配置模式 }); }; </script> </body> </html>
方法 | 說明 | 描述 |
---|---|---|
ready(function(){}) | 編輯器加載完成 | (以後的全部方法必須在ready加載完成後使用) |
html([html]) | 獲取/設置全部編輯器中的html模板 | 若是html不傳遞,則爲獲取,有值則爲設置 |
getControl([id]) | 獲取編輯器中的控件 | id爲可選,若爲無則是獲取全部控件 |
setControl(ctl) | 設置編輯器中指定id的控件值 | ctl:{ID:'',VALUE:''}若是是select控件類型ctl:{ID:'',VALUE:'',TEXT:''}。ctl能夠爲數組也能夠爲對象,設置凍結REQUIRED:1爲凍結,只讀不可操做 |
setMode(mode) | 設置編輯器模式 | mode可選:DESIGN(設計)、EDITOR(編輯)、READONLY(只讀) |
方法 | 說明 | 描述 |
---|---|---|
getControl([id]) | 獲取編輯器中的控件 | id爲可選,若爲無則是獲取全部控件 |
setControl(ctl) | 設置編輯器中指定id的控件值 | ctl:{ID:'',VALUE:''}若是是select控件類型ctl:{ID:'',VALUE:'',TEXT:''}。ctl能夠爲數組也能夠爲對象,設置凍結REQUIRED:1爲凍結,只讀不可操做 |
setMode(mode) | 設置編輯器模式 | mode可選:DESIGN(設計)、EDITOR(編輯)、READONLY(只讀) |
後續~~github
本次框架調整相對合理,後續會持續跟進,toolbar也會相對完善。json
最後 設計模式
謹以此,獻給那些還在醫療行業奮鬥的小夥伴們數組
相關連接:瀏覽器