refactor: 重构项目的数据获取方法 #72

Manually merged
remilia merged 13 commits from refactor/graphql into master 2025-11-11 17:07:41 +08:00
22 changed files with 349 additions and 227 deletions
Showing only changes of commit 706b754905 - Show all commits

View File

@ -1,4 +1,4 @@
import { readItems } from '@directus/sdk';
import GetSolutionList from '@/graphql/solutionList.graphql?raw';
export const useSolutionList = () => {
const { $directus } = useNuxtApp();
@ -6,33 +6,8 @@ export const useSolutionList = () => {
const locale = getDirectusLocale();
return useAsyncData(`solution-list-${locale}`, async () => {
return await $directus.request(
readItems('solutions', {
fields: [
'id',
'cover',
{
type: ['id', { translations: ['id', 'name'] }, 'sort'],
},
{
translations: ['id', 'title', 'summary'],
},
],
deep: {
type: {
translations: {
_filter: {
languages_code: { _eq: locale },
},
},
},
translations: {
_filter: {
languages_code: { _eq: locale },
},
},
},
})
);
return await $directus.query<{ solutions: Solution[] }>(GetSolutionList, {
locale: locale,
});
});
};

View File

@ -0,0 +1,21 @@
query GetSolutionList($locale: String!) {
solutions {
id
cover {
id
}
type {
id
translations(filter: { languages_code: { code: { _eq: $locale } } }) {
id
name
}
sort
}
translations(filter: { languages_code: { code: { _eq: $locale } } }) {
id
title
summary
}
}
}

View File

@ -54,7 +54,7 @@
const { data, pending, error } = await useSolutionList();
const solutionsRaw = computed(() => data.value ?? []);
const solutionsRaw = computed(() => data.value.solutions ?? []);
const solutions = computed(() =>
solutionsRaw.value.map((item) => toSolutionListView(item))
);