yyb
6 小时以前 0a58164ce2ea3f1a2b46781757d78b94b212883b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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 };
}