【bpmn.js 使用總結】指定 Palette 容器
指定 Palette 容器
開始之前需要瞭解一下自定義 Palette
開始
- 去除預設工具欄
// 去除預設工具欄
const modules = BpmnModeler.prototype._modules
const index = modules.findIndex(it => it.paletteProvider)
modules.splice(index, 1)
this.bpmnModeler = new BpmnModeler({..})
- 宣告容器
<div ref="palette"></div>
<div class="canvas" ref="canvas"></div>
const canvas = this.$refs.canvas
const palette = this.$refs.palette
// 建模
this.bpmnModeler = new BpmnModeler({
// 主要容器
container: canvas,
// 工具欄容器
paletteContainer: palette
// ...
})
- 讓 bpmn 使用指定的容器
// 注入需要的資料,其中有指定的容器
Palette.$inject = [
'eventBus',
'canvas',
'elementFactory',
'create',
'config.paletteContainer', // canvas 容器
'config.paletteEntries' // palette 容器
]
// 拿到容器
function Palette(
// ...
paletteContainer,
paletteEntries
) {
this._entries = paletteEntries
this._paletteContainer = paletteContainer
// ..
}
// 使用指定的容器
Palette.prototype._init = function() {
// ...
// var parentContainer = this._getParentContainer()
// 獲取傳入的工具欄容器
var container = (this._container = this._paletteContainer)
// 未找到 使用預設
if (!container) {
container = this._container = domify(Palette.HTML_MARKUP)
} else {
// 為傳入的工具欄容器 建立子元素
addClasses(container, 'custom-palette')
const entries = domQuery('.custom-palette-entries', container)
const toggle = domQuery('.custom-palette-toggle', container)
if (!entries) {
container.appendChild(
domify('<div class="custom-palette-entries"></div>')
)
}
if (!toggle) {
container.appendChild(domify('<div class="custom-palette-toggle"></div>'))
}
}
// parentContainer.appendChild(container) // 這句會將 palette 加入 canvas
// ...
}
Palette.HTML_MARKUP =
'<div class="custom-palette">' +
'<div class="custom-palette-entries"></div>' +
'<div class="custom-palette-toggle"></div>' +
'</div>'
其中容器的樣式隨便寫,我修改成了 custom-palette
這個類名,需要自己去修改 css
這裡我為了簡單,直接找到 原始碼 css 直接全域性替換 成我的類名修改後的 diagram-js.less
強烈建議拿官方原始碼直接改 Palette.js
以下是原始碼,是短短的兩句,可以對比一下
Palette.prototype._init = function() {
// ...
var container = (this._container = domify(Palette.HTML_MARKUP))
parentContainer.appendChild(container)
// ...
}
最後
程式碼 CustomPalette.js
建議直接取官方程式碼修改,安全又保險!:Palette.js
完整目錄: ? 點選這裡
相關文章
- Java 容器系列總結Java
- android Palette簡介Android
- 通俗易懂,JDK 併發容器總結JDK
- Java知識點總結(Java容器-List)Java
- Java知識點總結(Java容器-Vector)Java
- Java知識點總結(Java容器-Set)Java
- 關於STL容器的簡單總結
- 服務容器(自己總結)依賴注入依賴注入
- 開源容器 Podman 常用命令總結!
- templatejs使用總結JS
- VideoJs使用總結IDEJS
- VUE 使用總結Vue
- Audio使用總結
- HelloCharts 使用總結
- Git 使用總結Git
- ProgressDialog使用總結
- swagger使用總結Swagger
- npm使用總結NPM
- Supervisor 使用總結
- IDEA使用總結Idea
- SVN使用總結
- kvm使用總結
- jmeter 使用總結JMeter
- Vuex使用總結Vue
- Gson使用總結
- Toolbar使用總結
- Ajax使用總結
- Nginx使用總結Nginx
- sqlserver 使用總結SQLServer
- CompletableFuture 使用總結
- Eureka使用總結
- 前端this使用總結前端
- iOS 點選推送訊息跳轉指定介面 —總結篇iOS
- SACC 2018:容器專場的回顧與總結
- Pod和容器的LimitRange原理和實踐總結MIT
- dorado 7 使用總結
- Rust Cargo使用總結RustCargo
- iconfonts使用的總結