123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- import { register } from "@antv/x6-react-shape";
- import { NodeType } from "@/enum";
- import Start from "./Start";
- import And from "./And";
- import AutoHandle from "./AutoHandle";
- import Decision from "./Decision";
- import End from "./End";
- import Handle from "./Handle";
- import Link from "./Link";
- import PopoverNode from "./PopoverNode";
- // 通用连接桩
- const ports = {
- groups: {
- top: {
- position: 'top',
- attrs: {
- circle: {
- r: 4,
- magnet: true,
- stroke: '#5F95FF',
- strokeWidth: 1,
- fill: '#fff',
- style: {
- visibility: 'hidden',
- },
- },
- },
- },
- right: {
- position: 'right',
- attrs: {
- circle: {
- r: 4,
- magnet: true,
- stroke: '#5F95FF',
- strokeWidth: 1,
- fill: '#fff',
- style: {
- visibility: 'hidden',
- },
- },
- },
- },
- bottom: {
- position: 'bottom',
- attrs: {
- circle: {
- r: 4,
- magnet: true,
- stroke: '#5F95FF',
- strokeWidth: 1,
- fill: '#fff',
- style: {
- visibility: 'hidden',
- },
- },
- },
- },
- left: {
- position: 'left',
- attrs: {
- circle: {
- r: 4,
- magnet: true,
- stroke: '#5F95FF',
- strokeWidth: 1,
- fill: '#fff',
- style: {
- visibility: 'hidden',
- },
- },
- },
- },
- },
- items: [
- {
- group: 'top',
- },
- {
- group: 'right',
- },
- {
- group: 'bottom',
- },
- {
- group: 'left',
- },
- ],
- }
- export const nodes = [
- { name: "start-node", component: Start, type: NodeType.START, data: { name: '开始'} },
- { name: "and-node", component: And, type: NodeType.AND, data: { name: '与'} },
- { name: "autohandle-node", component: AutoHandle, type: NodeType.AUTO_PROCESS, data: { name: '自动处理'} },
- { name: "decision-node", component: Decision, type: NodeType.DECISION, data: { name: '判断'} },
- { name: "end-node", component: End, type: NodeType.END, data: { name: '结束'} },
- { name: "handle-node", component: Handle, type: NodeType.PROCESS, data: { name: '处理'} },
- { name: "link-node", component: Link, type: NodeType.LINK, data: { name: '连接'} },
- ];
- nodes.forEach((node) => {
- register({
- shape: node.name,
- width: 300,
- height: 108,
- effect: ["data"],
- component: node.component,
- ports: {...ports}
- });
- });
- register({
- shape: 'menu-popover',
- width: 304,
- height: 184,
- component: PopoverNode
- });
|