@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
220 lines (219 loc) • 7.94 kB
JavaScript
import { defineComponent as O, ref as s, toRefs as H, computed as J, onMounted as Q, openBlock as n, createBlock as d, unref as v, normalizeStyle as X, withCtx as y, createElementVNode as k, createVNode as C, createTextVNode as S, toDisplayString as Y, createElementBlock as B, Fragment as Z, renderList as I, createCommentVNode as c, withDirectives as h, vShow as b } from "vue";
import { pluginManager as w } from "@javaguns/utils";
import ee from "./select-user.vue.mjs";
import te from "./select-dept-post.vue.mjs";
import oe from "./select-role.vue.mjs";
import le from "./select-post.vue.mjs";
import se from "./select-dept.vue.mjs";
const ae = { class: "select-common-box" }, ne = { class: "select-common-box-header" }, ie = {
key: 0,
class: "select-common-box-tab"
}, ue = { class: "select-common-box-content" }, de = { class: "dialog-footer" }, re = O({ name: "flow-selection-collection" }), be = /* @__PURE__ */ O({
...re,
props: {
modelValue: {},
label: {},
title: { default: "请选择" },
open: { type: Boolean },
dialogWidth: { default: "80%" },
type: { default: "user" },
styleType: { default: "default" },
isRadio: { type: Boolean, default: !0 },
showTab: { default: () => [] },
min: { default: 1 },
max: { default: 100 },
selectData: { default: () => [] }
},
emits: ["cancel", "done"],
setup(G, { expose: U, emit: E }) {
const K = w.getComponent("Dialog"), W = w.getComponent("Tabs"), M = w.getComponent("TabPane"), _ = w.getComponent("Button"), e = G, z = s(null), { selectData: F } = H(e), p = s(F.value), R = s([]), x = s([]), L = s([]), V = s([]), P = s([]);
s(!1);
const i = s("");
s(!1);
const a = s("user"), f = s([]), D = s([
{
key: "user",
name: "人员"
},
{
key: "deptPost",
name: "部门/岗位"
},
{
key: "post",
name: "岗位"
},
{
key: "role",
name: "角色"
},
{
key: "dept",
name: "部门"
}
]), j = J(() => `width: ${e.dialogWidth};`), q = (o) => {
a.value = o.name;
}, A = () => {
if (e.showTab) {
if (e.showTab.length === 0)
f.value = D.value;
else if (e.showTab.length > 0) {
let o = [];
D.value.forEach((t) => {
var l;
(l = e.showTab) != null && l.find((u) => u == t.key) && o.push(t);
}), f.value = o;
}
a.value = f.value[0].key;
}
}, m = (o, t) => {
let l = "";
if (o && o.length > 0) {
o.forEach((g) => {
g.subValueName && (t == "position" || t == "user" || t == "dept") ? l += g.subValueName + "#" + g.name + ";" : l += g.name + ";";
});
let u = "";
t === "user" ? u = "【用户】" : t === "deptPost" ? u = "【部门/岗位】" : t === "post" ? u = "【岗位】" : t === "dept" ? u = "【部门】" : t === "role" && (u = "【角色】"), l = u + l;
}
return l;
}, r = (o) => {
o && o.length > 0 && o[0].id ? (i.value = "", e.type == "user" ? (R.value = o, i.value += m(o, "user")) : e.type == "deptPost" ? (x.value = o, i.value += m(o, "deptPost")) : e.type == "post" ? (L.value = o, i.value += m(o, "post")) : e.type == "role" ? (V.value = o, i.value += m(o, "role")) : e.type == "dept" && (P.value = o, i.value += m(o, "dept"))) : (R.value = [], i.value = "");
}, N = E, T = () => {
N("cancel", !1);
}, $ = () => {
let o = {
//选中的用户列表
selectUserList: R.value,
//选中的部门/岗位列表
selectDeptPostList: x.value,
// 选中的岗位列表
selectPostList: L.value,
// 选中的角色列表
selectRoleList: V.value,
// 选中的部门列表
selectDeptList: P.value
};
N("done", o);
};
return Q(() => {
A(), r(e.selectData);
}), U({}), (o, t) => (n(), d(v(K), {
modal: !1,
title: e.title,
width: e.dialogWidth,
style: X(j.value),
top: "50px",
"append-to-body": !0,
"destroy-on-close": !0,
"close-on-press-escape": !1,
"close-on-click-modal": !1,
preset: "dialog",
modelValue: e.open,
"onUpdate:modelValue": t[2] || (t[2] = (l) => e.open = l),
open: e.open,
show: e.open,
visible: e.open,
"onUpdate:visible": t[3] || (t[3] = (l) => e.open = l),
onClose: t[4] || (t[4] = (l) => T()),
onCancel: t[5] || (t[5] = (l) => T()),
onOk: t[6] || (t[6] = (l) => $())
}, {
footer: y(() => [
k("span", de, [
C(v(_), { onClick: T }, {
default: y(() => [
S("取 消")
]),
_: 1
}),
C(v(_), {
type: "primary",
onClick: $
}, {
default: y(() => [
S("确 定")
]),
_: 1
})
])
]),
default: y(() => [
k("div", ae, [
k("div", ne, "已选:" + Y(i.value), 1),
f.value.length >= 2 ? (n(), B("div", ie, [
C(v(W), {
modelValue: a.value,
"onUpdate:modelValue": t[0] || (t[0] = (l) => a.value = l),
activeKey: a.value,
"onUpdate:activeKey": t[1] || (t[1] = (l) => a.value = l),
onTabClick: q
}, {
default: y(() => [
(n(!0), B(Z, null, I(f.value, (l) => (n(), d(v(M), {
key: l.key,
label: l.name,
name: l.key,
tab: l.name,
forceRender: ""
}, null, 8, ["label", "name", "tab"]))), 128))
]),
_: 1
}, 8, ["modelValue", "activeKey"])
])) : c("", !0),
k("div", ue, [
e.showTab.length === 0 || e.showTab.indexOf("user") !== -1 ? h((n(), d(ee, {
key: 0,
ref_key: "userRef",
ref: z,
isRadio: e.isRadio,
"select-data": p.value,
onSelectedChange: r
}, null, 8, ["isRadio", "select-data"])), [
[b, a.value === "user"]
]) : c("", !0),
e.showTab.length === 0 || e.showTab.indexOf("deptPost") !== -1 ? h((n(), d(te, {
key: 1,
ref: "deptPostRef",
isRadio: e.isRadio,
"select-data": p.value,
onSelectedChange: r
}, null, 8, ["isRadio", "select-data"])), [
[b, a.value === "deptPost"]
]) : c("", !0),
e.showTab.length === 0 || e.showTab.indexOf("role") !== -1 ? h((n(), d(oe, {
key: 2,
ref: "roleRef",
isRadio: e.isRadio,
"select-data": p.value,
onSelectedChange: r
}, null, 8, ["isRadio", "select-data"])), [
[b, a.value === "role"]
]) : c("", !0),
e.showTab.length === 0 || e.showTab.indexOf("post") !== -1 ? h((n(), d(le, {
key: 3,
ref: "postRef",
isRadio: e.isRadio,
"select-data": p.value,
onSelectedChange: r
}, null, 8, ["isRadio", "select-data"])), [
[b, a.value === "post"]
]) : c("", !0),
e.showTab.length === 0 || e.showTab.indexOf("dept") !== -1 ? h((n(), d(se, {
key: 4,
ref: "deptRef",
isRadio: e.isRadio,
"select-data": p.value,
onSelectedChange: r
}, null, 8, ["isRadio", "select-data"])), [
[b, a.value === "dept"]
]) : c("", !0)
])
])
]),
_: 1
}, 8, ["title", "width", "style", "modelValue", "open", "show", "visible"]));
}
});
export {
be as default
};