@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
114 lines (113 loc) • 4.8 kB
JavaScript
import { computed as U } from "vue";
import { deepClone as _, getId as D } from "@javaguns/utils";
import { NodeType as n } from "../types/node.mjs";
import F from "./useData.mjs";
import V from "./useNodeRecord.mjs";
function Y(E) {
const { approverNode: A, copyerNode: u, routerNode: L, branchNode: R, jumpNode: I, noticeNode: g, suggestNode: C, parallelNode: P, subFlowNode: y } = F(), { recordPush: d, recordDel: c } = V(E), T = U(() => (e, i, o, t = !1) => {
if (o != "circle" && e && !(t && !i))
return t && i ? {
"guns-flow-node-branch": i
} : {
"guns-flow-node-branch": i,
"guns-flow-item-active": e.active,
"guns-flow-item-hover": !e.active && !e.deletable,
"has-error": e.error
};
}), B = (e, i) => !e && i ? i.canDelete : !0, v = (e, i) => e && e.nodeType == i, S = (e) => e && e.childNode && e.childNode.hasOwnProperty("nodeName"), w = (e) => {
const i = { value: 0 };
return f(e, i), i.value == 0;
}, f = (e, i) => {
e.content || [4, 7, 8, 9, 11].includes(Number(e.nodeType)) == !1 && (e.error = !0, i.value++);
const o = e.childNode;
o && f(o, i);
const t = e.conditionNodes;
t && t.forEach((s) => {
f(s, i);
});
}, H = (e) => {
if (e == n.APPROVER)
return A();
if (e == n.COPYER)
return u();
if (e == n.ROUTER)
return L();
if (e != n.BRANCH) {
if (e == n.JUMP)
return I();
if (e == n.NOTICE)
return g();
if (e == n.SUGGEST)
return C();
if (e == n.PARALLEL)
return P();
if (e == n.SUB_FLOW)
return y();
}
return A();
}, m = (e, i) => (e == n.BRANCH || e == n.BRANCH, R(i)), b = (e, i) => {
const o = i.currNode, t = i.item, s = H(t.nodeType);
l(e, o, s), d(s);
}, l = (e, i, o) => {
var t;
if (e && e.nodeId == i.nodeId) {
const s = i.childNode;
s && (s.nodePid = o.nodeId), o.nodeType == 9 ? (s && (s.nodePid = (t = o.childNode) == null ? void 0 : t.nodeId), o.childNode.childNode = s) : o.childNode = s, o.nodePid = i.nodeId, e.childNode = o;
} else
e && (l(e.childNode, i, o), e.conditionNodes && e.conditionNodes.forEach((s, p) => {
l(s, i, o);
}));
}, G = (e) => {
let i = e.conditionNodes.length, o = e.conditionNodes[i - 1];
if (o.attr.priorityLevel = i + 1, o.nodeType == n.BRANCH) {
const t = m(n.BRANCH, i);
e.conditionNodes.splice(i - 1, 0, t), d(t);
} else {
const t = m(n.PARALLEL_BRANCH, i + 1);
t.nodeName = "并行" + (i + 1), t.nodeType = n.PARALLEL_BRANCH, t.attr = {
showPriorityLevel: !1,
priorityLevel: i + 1,
branchType: 3,
emptyApproverIds: [],
emptyApproverNames: [],
rate: 100
}, t.content = "任意(默认)", t.color1 = "rgb(43, 170, 177)", t.color2 = "rgb(43, 170, 177)", t.color3 = "rgb(43, 170, 177)", e.conditionNodes.push(t), d(t);
}
}, O = (e, i) => {
i.nodeType == n.BRANCH || i.nodeType == n.SUGGEST_BRANCH || i.nodeType == n.PARALLEL_BRANCH ? N(e, e.childNode, i) : r(e, e.childNode, i), c(i), i.update && d(i);
}, r = (e, i, o) => {
if (i && o && i.nodeId == o.nodeId) {
let t = o.childNode;
t && o.nodeType == n.APPROVER && t.nodeType == n.SUGGEST ? e.childNode = t.childNode : e.childNode = t;
} else
i && o && (r(i, i.childNode, o), i.conditionNodes && i.conditionNodes.forEach((t) => {
r(i, t, o);
}));
}, N = (e, i, o) => {
var t;
i && (i.nodeType == n.ROUTER || i.nodeType == n.SUGGEST || i.nodeType == n.PARALLEL) ? i.conditionNodes && i.conditionNodes.length == 2 && i.conditionNodes.filter((s) => s.nodeId == o.nodeId).length > 0 ? (e.childNode = i.childNode, o.nodeType == n.PARALLEL_BRANCH && (e.childNode = (t = i.childNode) == null ? void 0 : t.childNode), c(i)) : e.childNode.conditionNodes.forEach((s, p) => {
s.nodeId == o.nodeId ? (e.childNode.conditionNodes.splice(p, 1), c(o)) : N(s, s.childNode, o);
}) : e.childNode && N(e.childNode, i.childNode, o);
}, h = (e, i) => {
if (e && i && e.nodeId == i.nodeId) {
const o = e.childNode, t = _(i);
t.nodeId = D(), t.childNode = o, e.childNode = t;
} else
e && i && (h(e.childNode, i), e.conditionNodes && e.conditionNodes.forEach((o) => {
h(o, i);
}));
}, a = (e, i) => {
e.nodeType == 1 && (e.originalId && (e.nodeId = e.originalId), i.push(e));
const o = e.childNode;
o && a(o, i);
const t = e.conditionNodes;
t && t.forEach((s, p) => {
a(s, i);
});
};
return { isShow: B, itemClass: T, showNode: v, showSubNode: S, validate: w, addNode: b, addSimpleNode: l, addBranch: G, delNode: O, copyNode: h, getApproveNodes: a };
}
export {
Y as default,
Y as useNode
};