import { ref } from "vue";
|
import { userListNoPageByTenantId } from "@/api/system/user.js";
|
|
function unwrapArray(payload) {
|
if (Array.isArray(payload)) return payload;
|
if (payload?.data && Array.isArray(payload.data)) return payload.data;
|
if (payload?.rows && Array.isArray(payload.rows)) return payload.rows;
|
return [];
|
}
|
|
function isActiveUser(u) {
|
if (u.delFlag === "2" || u.delFlag === 2) return false;
|
if (u.status == null) return true;
|
return String(u.status) === "0";
|
}
|
|
/** 审批流程选人下拉(模板/实例共用) */
|
export function useFlowUserOptions() {
|
const flowUserOptions = ref([]);
|
const loading = ref(false);
|
|
async function loadFlowUsers() {
|
loading.value = true;
|
try {
|
const res = await userListNoPageByTenantId();
|
flowUserOptions.value = unwrapArray(res).filter(isActiveUser);
|
} catch {
|
flowUserOptions.value = [];
|
} finally {
|
loading.value = false;
|
}
|
}
|
|
return { flowUserOptions, loading, loadFlowUsers };
|
}
|