色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 審批流 圖

周雨萌1年前6瀏覽0評論
JavaScript 審批流圖是一個十分常見的應用場景,無論是在企業內部還是外部,審批流都是必不可少的。而 JavaScript 作為一門解釋型語言,為審批流圖的實現帶來了很大的便利。今天我們就來探討一下 JavaScript 審批流圖的實現。 首先,我們需要明確一下審批流圖的基本要素,也就是流程節點和節點之間的連線。每個節點需要有一個名稱、狀態和處理人等信息,同時需要記錄其在流程中的位置。對于連線,也需要明確其起點、終點和條件等信息。接下來我們就按照這些要素來完成 JavaScript 實現。 1.節點的實現 節點的實現相對來說較為簡單,我們可以定義一個數組來存儲所有節點的信息,每個節點可以使用一個對象來表示,其中每個對象需要有一個 name 屬性來存儲節點名稱、一個 status 屬性來存儲節點狀態、一個 position 屬性來存儲節點所處的位置等信息。
const nodes = [
{
name: '發起人',
status: 'completed',
position: {x: 100, y: 100}, //節點位置
handler: '張三' //處理人
},
{
name: '部門經理',
status: 'processing',
position: {x: 200, y: 100},
handler: '李四'
},
{
name: '財務經理',
status: 'waiting',
position: {x: 300, y: 100},
handler: '王五'
}
]
我們可以使用 pre 標簽來展示這段代碼,方便用戶查看和復制。 2.連線的實現 連線的實現需要明確每條連線的起點和終點,同時需要記錄連線的條件等信息。我們可以定義一個數組來存儲所有連線的信息,每個連線可以使用一個對象來表示,其中每個對象需要有一個 from 屬性來存儲連線的起點、一個 to 屬性來存儲連線的終點、一個 condition 屬性來存儲連線的條件等信息。
const edges = [
{
from: '發起人',
to: '部門經理',
condition: '請部門經理審批'
},
{
from: '部門經理',
to: '財務經理',
condition: '請財務經理審核'
}
]
3.審批流圖的繪制 有了節點和連線的信息,我們就可以開始繪制審批流圖了。我們可以使用 Canvas 或者 SVG 來實現審批流圖的繪制。這里我們以 Canvas 為例,首先需要在 HTML 頁面中添加一個 Canvas 元素。
然后,可以按照以下步驟來繪制審批流圖: 1) 獲取 Canvas 元素對象。
const canvas = document.getElementById('myCanvas')
2) 獲取繪圖環境對象。
const ctx = canvas.getContext('2d')
3) 設置繪圖樣式。
//設置節點樣式
ctx.fillStyle = 'white'
ctx.strokeStyle = 'black'
ctx.lineWidth = 1
//設置文字樣式
ctx.font = '16px Arial'
ctx.textAlign = 'center'
ctx.textBaseline = 'middle'
//設置連線樣式
ctx.lineWidth = 2
ctx.strokeStyle = 'black'
ctx.beginPath()
4) 根據節點和連線信息進行繪圖。
//繪制節點
nodes.forEach(node =>{
ctx.beginPath()
ctx.arc(node.position.x, node.position.y, 30, 0, 2 * Math.PI)
ctx.fill()
ctx.stroke()
ctx.fillText(node.name, node.position.x, node.position.y + 40)
})
//繪制連線
edges.forEach(edge =>{
const fromNode = nodes.find(node =>node.name === edge.from)
const toNode = nodes.find(node =>node.name === edge.to)
ctx.moveTo(fromNode.position.x, fromNode.position.y + 30)
ctx.lineTo(toNode.position.x, toNode.position.y - 30)
ctx.stroke()
ctx.fillText(edge.condition, (fromNode.position.x + toNode.position.x) / 2, (fromNode.position.y + toNode.position.y) / 2)
})
最終,我們就可以看到繪制好的審批流圖了。 通過這篇文章,我們了解了 JavaScript 審批流圖的基本要素和實現方法,同時還講解了如何使用 Canvas 繪制審批流圖。希望能對大家有所幫助。