chore: 调整目录结构
- 将Directus相关的组合式API移入composables/direcuts
This commit is contained in:
2
app/composables/directus/index.ts
Normal file
2
app/composables/directus/index.ts
Normal file
@ -0,0 +1,2 @@
|
||||
export * from './useDirectusImage';
|
||||
export * from './useDirectusFiles';
|
||||
22
app/composables/directus/useDirectusFiles.ts
Normal file
22
app/composables/directus/useDirectusFiles.ts
Normal file
@ -0,0 +1,22 @@
|
||||
export const useDirectusFiles = () => {
|
||||
const config = useRuntimeConfig();
|
||||
const baseUrl = config.public.directus.url;
|
||||
|
||||
const getFileUrl = (
|
||||
id?: string | null,
|
||||
options?: Record<string, string | number | boolean>
|
||||
): string => {
|
||||
if (!id) return '';
|
||||
const query = options
|
||||
? '?' +
|
||||
new URLSearchParams(
|
||||
Object.entries(options).map(([key, value]) => [key, String(value)])
|
||||
).toString()
|
||||
: '';
|
||||
return `${baseUrl}/assets/${id}${query}`;
|
||||
};
|
||||
|
||||
return {
|
||||
getFileUrl,
|
||||
};
|
||||
};
|
||||
32
app/composables/directus/useDirectusImage.ts
Normal file
32
app/composables/directus/useDirectusImage.ts
Normal file
@ -0,0 +1,32 @@
|
||||
export const useDirectusImage = () => {
|
||||
const config = useRuntimeConfig();
|
||||
const baseUrl = config.public.directus.url;
|
||||
const token = config.public.directus.token;
|
||||
|
||||
type DirectusAssetParams = {
|
||||
width?: number;
|
||||
height?: number;
|
||||
fit?: 'cover' | 'contain' | 'inside' | 'outside';
|
||||
quality?: number;
|
||||
format?: 'webp' | 'jpg' | 'png' | 'auto';
|
||||
} & Record<string, string | number | boolean>;
|
||||
|
||||
const getImageUrl = (id?: string | null, options?: DirectusAssetParams) => {
|
||||
if (!id) return '';
|
||||
const queryToken = token ? 'access_token=' + token : '';
|
||||
const queryOptions = options
|
||||
? new URLSearchParams(
|
||||
Object.fromEntries(
|
||||
Object.entries(options).map(([key, value]) => [key, String(value)])
|
||||
)
|
||||
).toString
|
||||
: '';
|
||||
const query =
|
||||
queryToken || queryOptions
|
||||
? `?${[queryToken, queryOptions].filter(Boolean).join('&')}`
|
||||
: '';
|
||||
return `${baseUrl}/assets/${id}${query}`;
|
||||
};
|
||||
|
||||
return { getImageUrl };
|
||||
};
|
||||
Reference in New Issue
Block a user