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
JavaScript
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
};