41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import { ref } from 'vue';
|
||
import { List as TenantList } from '@/api/imTenant';
|
||
|
||
export const policyTenantOptions = ref<any[]>([{ label: '全局默认', value: 0 }]);
|
||
|
||
export function getDefaultTenantValue(options: any[]) {
|
||
const defaultTenant = options.find(
|
||
(item) => item.code === 'default' || String(item.label || '').includes('(default)')
|
||
);
|
||
return defaultTenant?.value || options.find((item) => Number(item.value) > 0)?.value || 0;
|
||
}
|
||
|
||
export async function loadPolicyTenantOptions(includeGlobal = true) {
|
||
const res = await TenantList({ page: 1, perPage: 100 });
|
||
const tenants = (res?.list || []).map((item) => ({
|
||
label: `${item.name}(${item.code})`,
|
||
value: item.id,
|
||
code: item.code,
|
||
}));
|
||
policyTenantOptions.value = includeGlobal
|
||
? [{ label: '全局默认', value: 0 }, ...tenants]
|
||
: tenants;
|
||
return policyTenantOptions.value;
|
||
}
|
||
|
||
export function parseJSON(value: string, fallback: any) {
|
||
try {
|
||
return value ? JSON.parse(value) : fallback;
|
||
} catch {
|
||
return fallback;
|
||
}
|
||
}
|
||
|
||
export function stringifyJSON(value: any, fallback = '{}') {
|
||
try {
|
||
return JSON.stringify(value ?? JSON.parse(fallback));
|
||
} catch {
|
||
return fallback;
|
||
}
|
||
}
|