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

220 lines (219 loc) 7.94 kB
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 };