@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
158 lines (157 loc) • 6.53 kB
JavaScript
import { defineComponent as I, getCurrentInstance as B, ref as E, computed as U, inject as _, openBlock as n, createBlock as i, unref as a, withCtx as l, createVNode as s, createElementBlock as R, Fragment as S, renderList as j, createElementVNode as u, toDisplayString as m, createCommentVNode as v } from "vue";
import "../../style/approver.css";
import { pluginManager as C, deepClone as G, getId as K } from "@javaguns/utils";
import { IconDeleteOutline as w, IconPlusOutline as O } from "@javaguns/icon";
import { GunsSpace as k } from "@javaguns/ui";
import P from "../../../hooks/useDrawer.mjs";
import { ApproverMultiKey as L, ApproverDisabledKey as q } from "../../../utils/injection-key.mjs";
import H from "../../common/flowDrawerContent.vue.mjs";
import J from "../../common/flowRadioGroup.vue.mjs";
import Q from "./flowApproverRule.vue.mjs";
const W = { class: "flow-approver-group-title" }, X = I({ name: "flow-approver-group" }), se = /* @__PURE__ */ I({
...X,
props: {
node: {},
multiple: { type: Boolean, default: !0 },
title: { default: "审批人" },
attribute: { default: "approverGroups" },
approverTypes: { default: () => [] }
},
setup(M, { expose: A }) {
const N = C.getComponent("Form"), g = C.getComponent("Card"), e = M, { appContext: V } = B(), y = V.app.config.globalProperties.$flowUI, c = E(), { approvals: p } = P(), $ = U(() => G(p).filter((r) => e.approverTypes.length == 0 ? !0 : e.approverTypes.includes(r.value)).map((r) => (e.node.nodeType == 30 || r.value == 9 ? r.disabled = !0 : r.disabled = r.disabled && e.node[e.attribute] && e.node[e.attribute].length > 1, r))), D = () => {
e.node[e.attribute] && e.node[e.attribute].push({
id: K(),
// 审批人模式
approverType: 8,
// 审批名称
approverTypeName: "指定成员",
// 层级模式
levelMode: 1,
// 控件ID(人员控件、部门控件)
controlIds: [],
// 控件名称(人员控件、部门控件)
controlNames: [],
// 人员类型
assigneeType: 1,
// 选择方式
selectMode: 1,
// 选择范围
selectRange: 1,
// 审批人ID
approverIds: [],
// 审批人名称
approverNames: []
}), f(null);
}, b = (t) => {
e.node[e.attribute] && e.node[e.attribute].forEach((r, o) => {
r.id == t.id && e.node[e.attribute] && e.node[e.attribute].splice(o, 1);
}), f(null);
}, F = _(L, () => {
}), h = _(q, () => {
}), x = (t, r) => {
p.forEach((o) => {
o.approvalMode && o.value == t.approverType && (r && o.approvalMode == 1 ? e.node.attr.approvalMode = 2 : e.node.attr.approvalMode = o.approvalMode);
});
}, z = (t) => {
t.approverIds = [], t.approverNames = [], t.controlIds = [], t.controlNames = [];
const r = f(t);
x(t, r), t.approverTypeName = p.filter((o) => o.value == t.approverType).map((o) => o.name)[0], t.approverType == 12 ? h(!0) : h(!1), t.approverType == 17 && (t.approverIds.push(t.approverType), t.approverNames.push("所有成员"));
}, f = (t) => {
let r = !1;
return e.node[e.attribute].length > 1 ? r = !0 : e.node[e.attribute].length == 1 ? (t = e.node[e.attribute][0], r = p.filter((o) => o.value == t.approverType)[0].multiple, t.approverIds.length > 1 && (r = !0), (t.approverType == 9 || t.approverType == 20) && t.selectMode == 1 && (r = !0)) : t && (r = p.filter((o) => o.value == t.approverType)[0].multiple), F(r), r;
};
return A({
valid: async () => {
try {
let t = null;
return y == "element-plus" || y == "arco-design" ? t = await c.value.validate() : t = await c.value.validateFields(), console.log("Success:", t), !0;
} catch (t) {
return console.log("Failed:", t), !1;
}
}
}), (t, r) => (n(), i(a(N), {
ref_key: "formRef",
ref: c,
model: e.node,
class: "flow-drawer-approver-group"
}, {
default: l(() => [
s(a(k), {
dir: "vertical",
size: "s"
}, {
default: l(() => [
(n(!0), R(S, null, j(e.node[e.attribute], (o, T) => (n(), i(a(g), {
key: T,
class: "w-fill flow-drawer-approver-card"
}, {
header: l(() => [
u("div", W, [
u("span", null, m(e.title), 1),
t.multiple && e.node[e.attribute] && e.node[e.attribute].length > 1 ? (n(), i(a(w), {
key: 0,
class: "flow-approver-group-del",
size: "20",
onClick: (d) => b(o)
}, null, 8, ["onClick"])) : v("", !0)
])
]),
title: l(() => [
u("span", null, m(e.title), 1)
]),
extra: l(() => [
t.multiple ? (n(), i(a(w), {
key: 0,
class: "flow-approver-group-del",
size: "20",
onClick: (d) => b(o)
}, null, 8, ["onClick"])) : v("", !0)
]),
default: l(() => [
s(H, {
name: e.title,
prefix: "选择"
}, {
default: l(() => [
s(J, {
modelValue: o.approverType,
"onUpdate:modelValue": (d) => o.approverType = d,
datas: $.value,
row: !0,
span: 8,
onChange: (d) => z(o)
}, null, 8, ["modelValue", "onUpdate:modelValue", "datas", "onChange"])
]),
_: 2
}, 1032, ["name"]),
s(Q, {
node: e.node,
group: o,
k: T
}, null, 8, ["node", "group", "k"])
]),
_: 2
}, 1024))), 128))
]),
_: 1
}),
t.multiple ? (n(), i(a(k), {
key: 0,
justify: "center",
class: "cursor-pointer padding-top10-bottom10",
onClick: D
}, {
default: l(() => [
s(a(O), { size: "20" }),
u("span", null, "添加" + m(e.title), 1)
]),
_: 1
})) : v("", !0)
]),
_: 1
}, 8, ["model"]));
}
});
export {
se as default
};