145 lines
5.1 KiB
JavaScript
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
|