Files
threeonecheck_web/unpackage/dist/dev/mp-weixin/components/flow/FlowAssigneePickerPopup.js
2026-07-27 09:27:22 +08:00

145 lines
5.1 KiB
JavaScript

"use strict";
const common_vendor = require("../../common/vendor.js");
const request_api = require("../../request/api.js");
const components_flow_flowAssigneeUtils = require("./flowAssigneeUtils.js");
if (!Array) {
const _easycom_u_popup2 = common_vendor.resolveComponent("u-popup");
_easycom_u_popup2();
}
const _easycom_u_popup = () => "../../uni_modules/uview-plus/components/u-popup/u-popup.js";
if (!Math) {
(FlowAssigneeTree + _easycom_u_popup)();
}
const FlowAssigneeTree = () => "./FlowAssigneeTree.js";
const _sfc_main = {
__name: "FlowAssigneePickerPopup",
props: {
show: {
type: Boolean,
default: false
},
taskId: {
type: String,
default: ""
},
pickerIdentityId: {
type: String,
default: ""
},
pickerName: {
type: String,
default: ""
}
},
emits: ["update:pickerIdentityId", "update:pickerName", "cancel", "confirm"],
setup(__props, { emit: __emit }) {
const props = __props;
const emit = __emit;
const loading = common_vendor.ref(false);
const deptTree = common_vendor.ref([]);
const localPickerIdentityId = common_vendor.ref("");
const localPickerName = common_vendor.ref("");
const pickerDisplayName = common_vendor.computed(() => {
const user = components_flow_flowAssigneeUtils.findAssigneeUserInDeptTree(deptTree.value, localPickerIdentityId.value);
return user ? components_flow_flowAssigneeUtils.formatAssigneeDisplayName(user) : localPickerName.value;
});
const syncLocalPicker = () => {
localPickerIdentityId.value = props.pickerIdentityId || "";
localPickerName.value = props.pickerName || "";
};
const fetchAssigneeTree = async () => {
if (!props.taskId) {
deptTree.value = [];
return;
}
loading.value = true;
try {
const res = await request_api.getFlowApproverCandidates(props.taskId);
if (res.code === 0) {
deptTree.value = components_flow_flowAssigneeUtils.normalizeApproverDeptTree(res.data);
} else {
deptTree.value = [];
common_vendor.index.showToast({ title: res.msg || "获取处理人失败", icon: "none" });
}
} catch (error) {
common_vendor.index.__f__("error", "at components/flow/FlowAssigneePickerPopup.vue:93", "获取处理人失败:", error);
deptTree.value = [];
common_vendor.index.showToast({ title: "获取处理人失败", icon: "none" });
} finally {
loading.value = false;
}
};
common_vendor.watch(
() => props.show,
async (visible) => {
if (!visible)
return;
syncLocalPicker();
await fetchAssigneeTree();
}
);
const handleUserSelect = (user) => {
const identityId = components_flow_flowAssigneeUtils.resolveAssigneeIdentityId(user);
if (!identityId)
return;
localPickerIdentityId.value = identityId;
localPickerName.value = components_flow_flowAssigneeUtils.formatAssigneeDisplayName(user);
emit("update:pickerIdentityId", identityId);
emit("update:pickerName", localPickerName.value);
};
const handleCancel = () => {
emit("cancel");
};
const handleConfirm = () => {
if (!localPickerIdentityId.value) {
common_vendor.index.showToast({ title: "请选择下一步处理人", icon: "none" });
return;
}
const user = components_flow_flowAssigneeUtils.findAssigneeUserInDeptTree(deptTree.value, localPickerIdentityId.value);
if (!user) {
common_vendor.index.showToast({ title: "所选身份无效,请重新选择", icon: "none" });
return;
}
const name = components_flow_flowAssigneeUtils.formatAssigneeDisplayName(user);
emit("update:pickerIdentityId", localPickerIdentityId.value);
emit("update:pickerName", name);
emit("confirm", {
identityId: localPickerIdentityId.value,
name,
user
});
};
return (_ctx, _cache) => {
return common_vendor.e({
a: common_vendor.o(handleCancel),
b: __props.pickerIdentityId
}, __props.pickerIdentityId ? {
c: common_vendor.t(pickerDisplayName.value)
} : {}, {
d: loading.value
}, loading.value ? {} : !__props.taskId ? {} : deptTree.value.length === 0 ? {} : {
g: common_vendor.o(handleUserSelect),
h: common_vendor.p({
depts: deptTree.value,
["selected-identity-id"]: __props.pickerIdentityId
})
}, {
e: !__props.taskId,
f: deptTree.value.length === 0,
i: common_vendor.o(handleCancel),
j: common_vendor.o(handleConfirm),
k: common_vendor.o(handleCancel),
l: common_vendor.p({
show: __props.show,
mode: "bottom",
round: "20"
}),
m: common_vendor.gei(_ctx, "")
});
};
}
};
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2685d664"]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/flow/FlowAssigneePickerPopup.js.map