UNPKG

@javaguns/flow-ui

Version:

``` <template> <a-spin :spinning="loading"> <FlowDesigner ref="flowDesigner" top="50px"> </FlowDesigner> </a-spin> </template> <script lang="ts" setup> import { ref, provide, onMounted } from 'vue'; import { FlowDesigner, LoadingKey } from '@j

216 lines (215 loc) 4.88 kB
.flow-chart-container { width: 100%; height: 100%; overflow: hidden; box-sizing: border-box; } .flow-chart-container.showScrollBar { overflow: auto; } .flow-chart-container /deep/ * { box-sizing: border-box; margin: 0; padding: 0; } .flow-chart-container .flow-chart-content { display: flex; align-items: center; padding: 20px; min-width: 100%; min-height: 100%; width: -moz-max-content; width: max-content; height: -moz-max-content; height: max-content; transform-origin: left top; } .flow-chart-container .flow-chart-content.transformOriginCenter { transform-origin: center center; } .flow-chart-container .flow-chart-content.vertical { flex-direction: column; justify-content: center; } /* 节点容器 */ .flow-chart-node-container { position: relative; } /* 开始节点容器 */ .flow-chart-start-node-container { display: flex; align-items: center; } .flow-chart-start-node-container.vertical { flex-direction: column; } .flow-chart-start-node-container .flow-chart-start-node-content { width: 90px; height: 40px; border-radius: 30px; box-shadow: 0 1px 5px 0 rgba(10, 30, 65, 0.08); color: #fff; line-height: 40px; text-align: center; background: #2c2c2c; } .flow-chart-end-node-container { width: 90px; height: 40px; border-radius: 30px; box-shadow: 0 1px 5px 0 rgba(10, 30, 65, 0.08); color: #fff; line-height: 40px; text-align: center; background: #6e6e6e; } .flow-chart-normal-node-container { position: relative; display: flex; flex-shrink: 0; align-items: center; } .flow-chart-normal-node-container.vertical { flex-direction: column; } .flow-chart-normal-node-container.vertical .flow-chart-normal-node-wrap { flex-direction: column; } .flow-chart-normal-node-container .flow-chart-normal-node-wrap { position: relative; display: flex; align-items: center; } .flow-chart-normal-node-container .flow-chart-normal-node-wrap .flow-chart-normal-node-content-wrap { position: relative; } .flow-chart-arrow-line { position: relative; width: 65px; -webkit-user-select: none; -moz-user-select: none; user-select: none; } .flow-chart-arrow-line.vertical { width: auto; height: 65px; } .flow-chart-arrow-line.vertical::before { width: 2px; height: 100%; transform: translateX(-50%); } .flow-chart-arrow-line.vertical.showArrow::after { right: auto; bottom: 0; top: auto; border-top: 10px solid #dedede; border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: none; transform: translateX(-50%); } .flow-chart-arrow-line::before { position: absolute; z-index: 0; top: 0; left: 0; transform: translateY(-50%); height: 2px; width: 100%; background-color: #dedede; content: ''; } .flow-chart-arrow-line.showArrow::after { position: absolute; width: 0; height: 0; border-left: 10px solid #dedede; border-top: 6px solid transparent; border-bottom: 6px solid transparent; content: ''; right: 0; top: 0; transform: translateY(-50%); } .flow-chart-add-node { position: absolute; right: 0; top: 0; width: 65px; height: 100%; display: flex; justify-content: center; align-items: center; } .flow-chart-add-node.vertical { right: auto; top: auto; left: 0; bottom: 0; width: 100%; height: 65px; } .flow-chart-add-node .flow-chart-add-node-btn { position: relative; background: #0089ff; width: 30px; height: 30px; border-radius: 50%; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1); display: flex; justify-content: center; align-items: center; cursor: pointer; transform: scale(0); transition: all 0.3s; z-index: 2; } .flow-chart-add-node .flow-chart-add-node-btn:hover { z-index: 3; } .flow-chart-add-node .flow-chart-add-node-btn.dot { transform: scale(0.3); } .flow-chart-add-node .flow-chart-add-node-btn.dot svg { transform: scale(0); } .flow-chart-add-node .flow-chart-add-node-btn.normal { transform: scale(1); } .flow-chart-add-node .flow-chart-add-node-btn.normal svg { transform: scale(1); } .flow-chart-add-node .flow-chart-add-node-btn svg { fill: #fff; width: 24px; height: 24px; transform: scale(0); } .flow-chart-add-node .flow-chart-add-node-popover { position: absolute; visibility: hidden; transform: scale(0); transition: all 0.3s; } .flow-chart-add-node .flow-chart-add-node-popover::before, .flow-chart-add-node .flow-chart-add-node-popover::after { content: ''; position: absolute; top: 0; width: 20px; height: 100%; } .flow-chart-add-node .flow-chart-add-node-popover::before { left: -20px; } .flow-chart-add-node .flow-chart-add-node-popover::after { right: -20px; } .flow-chart-add-node .flow-chart-add-node-popover.show { visibility: visible; transform: scale(1); } .flow-chart-container .guns-flow-node .guns-flow-node-box { padding: 0 0 !important; }