1.1.0 • Published 12 months ago

processnodeh5 v1.1.0

Weekly downloads
-
License
ISC
Repository
github
Last release
12 months ago

欢迎使用 processnodeh5 (web Component组件)

processnodeh5 是使用Svelte开发,rollup打包打出来的web Component组件 是一款 节点流转图,功能简单,所以场景受限,适合做一些有顺序节点的展示需要

processnodeh5 仓库和预览

git地址

预览地址

props

props解释type默认值是否必须
nodelist节点流程数组string[]
w流程图整体宽度string1000
nodewidth单个节点+箭头icon的宽度string160
iconwidth单个箭头icon的宽度string20
iconcolor箭头的颜色string#1890ff
rowspacing两行节点间的间隙string3

nodelist要求

nodelist数组中每一项应该包含两个字段 name 和 nodename; nodename: 节点显示的名称字段 name: 如果节点使用插槽替换,每个节点的插槽名称就是该项数据的name字段,并且每项数据的name字段应该保持唯一

slot

每个节点的插槽name就是该项数据的name字段所指定的 所以完全可以自定义的使用slot循环节点,而不必理会排序和显示的问题 例如vue中

<body>
    <process-node-diagram>
			<button v-for="item in nodeList" :key="item.id" :slot="item.name">{{item.nodename}}</button>
	</process-node-diagram>
</body>

event --> node-click-event

组件的自定义事件为了兼容性是绑定在window上,所以可以使用事件监听来监听节点的点击事件 例如

window.addEventListener('node-click-event', function(e){
		console.log(e.detail)
	}, false)

使用示例

使用es包

<body>
    <process-node-diagram>
			<button slot="node-1">你好</button>
	</process-node-diagram>
</body>
<script src="../build/ProcessNodeDiagram.es.js"></script>
<script>
    const nodeList = [
			{
				name: 'node-1',
				nodename: '节点一',
				id: 1
			},
			{
				name: 'node-2',
				nodename: '节点二',
				id: 2
			},
			{
				name: 'node-3',
				nodename: '节点三',
				id: 3
			},
			{
				name: 'node-4',
				nodename: '节点四',
				id: 4
			},
			{
				name: 'node-5',
				nodename: '节点五',
				id: 5
			},
			{
				name: 'node-6',
				nodename: '节点六',
				id: 6
			},
			{
				name: 'node-7',
				nodename: '节点七',
				id: 7
			},
			{
				name: 'node-8',
				nodename: '节点八',
				id: 8
			},
			{
				name: 'node-9',
				nodename: '节点九',
				id: 9
			}
		]
	// 由于原生无法绑定数组,所以可以使用js手动将数组转换成字符串进行绑定
	document.querySelector('process-node-diagram').setAttribute('nodelist', JSON.stringify(nodeList))

	window.addEventListener('node-click-event', function(e){
	// 节点数据
		console.log(e.detail)
	}, false)
</script>

使用umd包(或者使用npm包)

<script setup lang="ts">
import "processnodeh5"
const nodeList = [
			{
				name: 'node-1',
				nodename: '节点一',
				id: 1
			},
			{
				name: 'node-2',
				nodename: '节点二',
				id: 2
			},
			{
				name: 'node-3',
				nodename: '节点三',
				id: 3
			},
			{
				name: 'node-4',
				nodename: '节点四',
				id: 4
			},
			{
				name: 'node-5',
				nodename: '节点五',
				id: 5
			},
			{
				name: 'node-6',
				nodename: '节点六',
				id: 6
			},
			{
				name: 'node-7',
				nodename: '节点七',
				id: 7
			},
			{
				name: 'node-8',
				nodename: '节点八',
				id: 8
			},
			{
				name: 'node-9',
				nodename: '节点九',
				id: 9
			}
		]
// 模拟请求数据
setTimeout(() => {
  document.querySelector('process-node-diagram')?.setAttribute('nodelist', JSON.stringify(nodeList))
}, 1000)

window.addEventListener('node-click-event', function(e:any){
		console.log(e.detail)
	}, false)
</script>

<template>
  <process-node-diagram></process-node-diagram>
</template>

新增置灰状态(添加 disabled 属性)

使用umd包(或者使用npm包)

<script setup lang="ts">
import "processnodeh5"
const nodeList = [
			{
				name: 'node-1',
				nodename: '节点一',
				disabled: false,
				id: 1
			},
			{
				name: 'node-2',
				nodename: '节点二',
				disabled: false,
				id: 2
			},
			{
				name: 'node-3',
				nodename: '节点三',
				disabled: true,
				id: 3
			},
			{
				name: 'node-4',
				nodename: '节点四',
				disabled: true,
				id: 4
			},
			{
				name: 'node-5',
				nodename: '节点五',
				disabled: false,
				id: 5
			}
		]
// 模拟请求数据
setTimeout(() => {
  document.querySelector('process-node-diagram')?.setAttribute('nodelist', JSON.stringify(nodeList))
}, 1000)

window.addEventListener('node-click-event', function(e:any){
		console.log(e.detail)
	}, false)
</script>
1.1.0

12 months ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago