UNPKG

troy-flow-engine

Version:

<!-- * @Descripttion: * @version: * @Author: wangmin * @Date: 2025-04-27 15:03:16 * @LastEditors: wangmin * @LastEditTime: 2025-05-14 16:43:12 -->

614 lines (613 loc) 23.7 kB
import { ref as i, watch as $, resolveComponent as u, createElementBlock as D, openBlock as d, createVNode as e, withCtx as o, unref as q, createElementVNode as v, withDirectives as W, vShow as X, createTextVNode as w, computed as Y, reactive as Z, renderSlot as c, Fragment as K, renderList as B, createBlock as L, createCommentVNode as M } from "vue"; import { User as h, InfoFilled as G } from "@element-plus/icons-vue"; import { _ as H } from "./index-B-BfLKSm.js"; const ee = { class: "select-user-container" }, te = { class: "dialog-content" }, le = { class: "pagination-container" }, oe = { class: "dialog-footer" }, ae = { __name: "selectUser", props: { value: { type: [String, Array], default: "" }, approverText: { type: String, default: "" }, getDeptTree: { type: Function, required: !0 }, getUserList: { type: Function, required: !0 } }, emits: ["update:value", "update:approverText"], setup(_, { emit: F }) { const g = _, k = F, y = i([]), I = i([]), t = i(""); $( () => g.approverText, (p) => { t.value = p || ""; }, { immediate: !0 } ); const b = i(!1), V = i([]), z = { children: "children", label: "label" }, r = i({ pageNum: 1, pageSize: 10 }), l = i(0), x = async () => { b.value = !0, await s(); }, s = async () => { try { V.value = await g.getDeptTree(); } catch (p) { console.error("获取部门树数据失败:", p); } }, N = async (p, n) => { try { const m = await g.getUserList( p.id, n || { pageNum: 1, pageSize: 10 } ); l.value = m.total, y.value = m.rows; } catch (m) { console.error("获取用户列表失败:", m); } }, j = (p) => { I.value = p, t.value = p.map((n) => n.realName).join(", "); }, C = async (p) => { if (r.value.pageNum = p, treeRef.value) { const n = treeRef.value.getCurrentNode(); n && await N(n, r.value); } }, E = () => { b.value = !1, k( "update:value", I.value.map((p) => p.userId).join(",") ), k("update:approverText", t.value); }; return (p, n) => { const m = u("el-icon"), T = u("el-button"), A = u("el-input"), S = u("el-tree"), U = u("el-card"), O = u("el-col"), R = u("el-table-column"), P = u("el-table"), a = u("el-pagination"), J = u("el-row"), Q = u("el-dialog"); return d(), D("div", ee, [ e(A, { modelValue: t.value, "onUpdate:modelValue": n[0] || (n[0] = (f) => t.value = f), placeholder: "请选择用户", readonly: "", class: "input-with-button" }, { append: o(() => [ e(T, { onClick: x }, { default: o(() => [ e(m, { size: 16, class: "el-icon--left" }, { default: o(() => [ e(q(h)) ]), _: 1 }) ]), _: 1 }) ]), _: 1 }, 8, ["modelValue"]), e(Q, { modelValue: b.value, "onUpdate:modelValue": n[4] || (n[4] = (f) => b.value = f), title: "选择用户", width: "1000px" }, { footer: o(() => [ v("span", oe, [ e(T, { onClick: n[3] || (n[3] = (f) => b.value = !1) }, { default: o(() => n[7] || (n[7] = [ w("取消") ])), _: 1 }), e(T, { type: "primary", onClick: E }, { default: o(() => n[8] || (n[8] = [ w("确认") ])), _: 1 }) ]) ]), default: o(() => [ v("div", te, [ e(J, { gutter: 24 }, { default: o(() => [ e(O, { span: 6 }, { default: o(() => [ e(U, null, { header: o(() => n[5] || (n[5] = [ v("div", { class: "department-tree-header" }, [ v("span", null, "选择部门") ], -1) ])), default: o(() => [ e(S, { ref: "treeRef", data: V.value, props: z, onNodeClick: N, "node-key": "id" }, null, 8, ["data"]) ]), _: 1 }) ]), _: 1 }), e(O, { span: 18 }, { default: o(() => [ e(U, null, { header: o(() => n[6] || (n[6] = [ v("div", { class: "user-list-header" }, [ v("span", null, "选择用户") ], -1) ])), default: o(() => [ e(P, { data: y.value, onSelectionChange: j }, { default: o(() => [ e(R, { type: "selection", width: "55" }), e(R, { prop: "realName", label: "姓名" }), e(R, { prop: "dept.deptName", label: "部门" }) ]), _: 1 }, 8, ["data"]), v("div", le, [ W(e(a, { total: l.value, background: "", layout: "prev, pager, next", "current-page": r.value.pageNum, "onUpdate:currentPage": n[1] || (n[1] = (f) => r.value.pageNum = f), "page-size": r.value.pageSize, "onUpdate:pageSize": n[2] || (n[2] = (f) => r.value.pageSize = f), onChange: C }, null, 8, ["total", "current-page", "page-size"]), [ [X, l.value > 0] ]) ]) ]), _: 1 }) ]), _: 1 }) ]), _: 1 }) ]) ]), _: 1 }, 8, ["modelValue"]) ]); }; } }, re = /* @__PURE__ */ H(ae, [["__scopeId", "data-v-86699fd3"]]), ne = { __name: "index", props: { value: { type: Object }, getDeptTree: { type: Function, default: async () => { } }, getUserList: { type: Function, default: async () => { } }, getRoleList: { type: Function, default: async () => { } }, getFormList: { type: Function, default: async () => { } }, formList: { type: Array, default: () => [] }, currentNodeData: { type: Array, default: () => [] } }, emits: ["change"], setup(_, { emit: F }) { const g = i([]), k = i([]), y = i("basic"), I = Y(() => t.rejectNodeList.join(",")), t = Z({ // 名称 displayName: "", // 前置拦截器 preInterceptors: "", // 后置拦截器 postInterceptors: "", // 选择表单 formKey: "", // 审批人方式 approverType: "USER", // 审批人 approverValue: "", // 审批人名称: approverText: "", // 参与类型 performType: "NORMAL", // 期望完成时间 expireTime: 0, // 按钮配置 buttons: [], // 驳回节点 rejectNodeList: [], // 驳回节点 rejectNode: "" }), b = F, V = _; $( () => V.value, (r) => { r && (Object.keys(r).length > 0 ? Object.keys(r).forEach((l) => { l in t && (t[l] = r[l], l === "rejectNode" && r[l] ? t.rejectNodeList = r[l].split(",") : t.rejectNodeList = []); }) : (t.displayName = "", t.formKey = "", t.preInterceptors = "", t.postInterceptors = "", t.approverType = "USER", t.approverValue = "", t.approverText = "", t.performType = "NORMAL", t.expireTime = 0, t.buttons = [], t.rejectNodeList = [], t.rejectNode = "")); }, { deep: !0, immediate: !0 } ), $( () => t.approverType, (r) => { r === "ROLE" && V.getRoleList().then((l) => { g.value = l; }), r === "DEPT" && V.getDeptTree().then((l) => { k.value = l; }); } ), $( () => t, (r) => { b("change", { ...r, rejectNode: I.value }); }, { deep: !0 } ); const z = (r, l) => { y.value = r.name; }; return (r, l) => { const x = u("el-input"), s = u("el-form-item"), N = u("el-option"), j = u("el-select"), C = u("el-radio-button"), E = u("el-radio-group"), p = u("el-tree-select"), n = u("el-icon"), m = u("el-tooltip"), T = u("el-radio"), A = u("el-input-number"), S = u("el-tab-pane"), U = u("el-checkbox"), O = u("el-checkbox-group"), R = u("el-tabs"), P = u("el-form"); return d(), D("div", null, [ e(P, { model: t, "label-width": "100px" }, { default: o(() => [ e(R, { modelValue: y.value, "onUpdate:modelValue": l[13] || (l[13] = (a) => y.value = a), onTabClick: z, type: "border-card" }, { default: o(() => [ e(S, { label: "基础配置", name: "basic" }, { default: o(() => [ e(s, { label: "节点名称" }, { default: o(() => [ e(x, { modelValue: t.displayName, "onUpdate:modelValue": l[0] || (l[0] = (a) => t.displayName = a), placeholder: "请输入节点名称" }, null, 8, ["modelValue"]) ]), _: 1 }), c(r.$slots, "form-item-task-form-key", {}, () => [ e(s, { label: "节点表单" }, { default: o(() => [ e(j, { modelValue: t.formKey, "onUpdate:modelValue": l[1] || (l[1] = (a) => t.formKey = a), placeholder: "请选择节点表单" }, { default: o(() => [ (d(!0), D(K, null, B(_.formList, (a) => (d(), L(N, { key: a.id, label: a.name, value: a.id }, null, 8, ["label", "value"]))), 128)) ]), _: 1 }, 8, ["modelValue"]) ]), _: 1 }) ], !0), c(r.$slots, "form-item-task-approver-type", {}, () => [ e(s, { label: "审批人方式" }, { default: o(() => [ e(E, { modelValue: t.approverType, "onUpdate:modelValue": l[2] || (l[2] = (a) => t.approverType = a) }, { default: o(() => [ e(C, { label: "指定用户", value: "USER" }), e(C, { label: "角色", value: "ROLE" }), e(C, { label: "部门", value: "DEPT" }) ]), _: 1 }, 8, ["modelValue"]) ]), _: 1 }) ], !0), c(r.$slots, "form-item-task-approver-value", {}, () => [ t.approverType === "USER" ? (d(), L(s, { key: 0, label: "选择用户" }, { default: o(() => [ e(re, { value: t.approverValue, "onUpdate:value": l[3] || (l[3] = (a) => t.approverValue = a), approverText: t.approverText, "onUpdate:approverText": l[4] || (l[4] = (a) => t.approverText = a), getDeptTree: _.getDeptTree, getUserList: _.getUserList }, null, 8, ["value", "approverText", "getDeptTree", "getUserList"]) ]), _: 1 })) : M("", !0), t.approverType === "ROLE" ? (d(), L(s, { key: 1, label: "选择角色" }, { default: o(() => [ e(j, { modelValue: t.approverValue, "onUpdate:modelValue": l[5] || (l[5] = (a) => t.approverValue = a), placeholder: "请选择角色", multiple: "" }, { default: o(() => [ (d(!0), D(K, null, B(g.value, (a) => (d(), L(N, { key: a.roleId, label: a.roleName, value: a.roleId }, null, 8, ["label", "value"]))), 128)) ]), _: 1 }, 8, ["modelValue"]) ]), _: 1 })) : M("", !0), t.approverType === "DEPT" ? (d(), L(s, { key: 2, label: "选择部门" }, { default: o(() => [ e(p, { placeholder: "请选择部门", modelValue: t.approverValue, "onUpdate:modelValue": l[6] || (l[6] = (a) => t.approverValue = a), data: k.value, props: { label: "label", value: "id" } }, null, 8, ["modelValue", "data"]) ]), _: 1 })) : M("", !0) ], !0), c(r.$slots, "form-item-task-perform-type", {}, () => [ e(s, { label: "协作类型" }, { default: o(() => [ e(E, { modelValue: t.performType, "onUpdate:modelValue": l[7] || (l[7] = (a) => t.performType = a) }, { default: o(() => [ e(T, { value: "NORMAL" }, { default: o(() => [ l[14] || (l[14] = w(" 普通 ")), e(m, { content: "普通模式下,任务只需要一个人处理即可", placement: "top" }, { default: o(() => [ e(n, { class: "tooltip-icon" }, { default: o(() => [ e(q(G)) ]), _: 1 }) ]), _: 1 }) ]), _: 1 }), e(T, { value: "COUNTERSIGN" }, { default: o(() => [ l[15] || (l[15] = w(" 会签 ")), e(m, { content: "所有办理都需要审批,建议选择用户;如果选择角色或者部门等,需自行通过办理人表达式或者监听器,转成具体办理用户", placement: "top" }, { default: o(() => [ e(n, { class: "tooltip-icon" }, { default: o(() => [ e(q(G)) ]), _: 1 }) ]), _: 1 }) ]), _: 1 }) ]), _: 1 }, 8, ["modelValue"]) ]), _: 1 }) ], !0), c(r.$slots, "form-item-task-expire-time", {}, () => [ e(s, { label: "期望完成时间" }, { default: o(() => [ e(A, { modelValue: t.expireTime, "onUpdate:modelValue": l[8] || (l[8] = (a) => t.expireTime = a), placeholder: "请输入期望完成时间" }, { suffix: o(() => l[16] || (l[16] = [ v("span", null, "分钟", -1) ])), _: 1 }, 8, ["modelValue"]) ]), _: 1 }) ], !0), c(r.$slots, "form-item-task-reject-node", {}, () => [ e(s, { label: "驳回节点" }, { default: o(() => [ e(j, { modelValue: t.rejectNodeList, "onUpdate:modelValue": l[9] || (l[9] = (a) => t.rejectNodeList = a), placeholder: "请选择驳回节点", multiple: "" }, { default: o(() => [ (d(!0), D(K, null, B(_.currentNodeData, (a) => (d(), L(N, { key: a.id, label: a.text.value, value: a.id }, null, 8, ["label", "value"]))), 128)) ]), _: 1 }, 8, ["modelValue"]) ]), _: 1 }) ], !0) ]), _: 3 }), e(S, { label: "监听器", name: "listener" }, { default: o(() => [ c(r.$slots, "form-item-task-pre-interceptors", {}, () => [ e(s, { label: "前置拦截器" }, { default: o(() => [ e(x, { modelValue: t.preInterceptors, "onUpdate:modelValue": l[10] || (l[10] = (a) => t.preInterceptors = a), placeholder: "请输入前置拦截器" }, null, 8, ["modelValue"]) ]), _: 1 }) ], !0), c(r.$slots, "form-item-task-post-interceptors", {}, () => [ e(s, { label: "后置拦截器" }, { default: o(() => [ e(x, { modelValue: t.postInterceptors, "onUpdate:modelValue": l[11] || (l[11] = (a) => t.postInterceptors = a), placeholder: "请输入后置拦截器" }, null, 8, ["modelValue"]) ]), _: 1 }) ], !0) ]), _: 3 }), e(S, { label: "按钮配置", name: "btn" }, { default: o(() => [ c(r.$slots, "form-item-task-buttons", {}, () => [ e(s, { label: "按钮配置" }, { default: o(() => [ e(O, { modelValue: t.buttons, "onUpdate:modelValue": l[12] || (l[12] = (a) => t.buttons = a) }, { default: o(() => [ e(U, { label: "同意", value: "agree" }), e(U, { label: "驳回", value: "reject" }), e(U, { label: "转办", value: "transfer" }) ]), _: 1 }, 8, ["modelValue"]) ]), _: 1 }) ], !0) ]), _: 3 }) ]), _: 3 }, 8, ["modelValue"]) ]), _: 3 }, 8, ["model"]) ]); }; } }, de = /* @__PURE__ */ H(ne, [["__scopeId", "data-v-c646236b"]]); export { de as default };