All checks were successful
deploy to server / build-and-deploy (push) Successful in 3m8s
- subItem.value => subItem.key - 调整后端CMS的结构,将规格值移入translations中
111 lines
2.6 KiB
TypeScript
111 lines
2.6 KiB
TypeScript
import { readItem } from '@directus/sdk';
|
|
|
|
export const useProduct = (id: string) => {
|
|
const { $directus } = useNuxtApp();
|
|
|
|
const { getDirectusLocale } = useLocalizations();
|
|
const locale = getDirectusLocale();
|
|
|
|
return useAsyncData(`product-${id}-${locale}`, async () => {
|
|
return await $directus.request(
|
|
readItem('products', id, {
|
|
fields: [
|
|
'id',
|
|
{ translations: ['id', 'name', 'summary', 'description'] },
|
|
{
|
|
images: [
|
|
'id',
|
|
{
|
|
product_images_id: [
|
|
'id',
|
|
'image',
|
|
{ translations: ['id', 'caption'] },
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
specs: [
|
|
'id',
|
|
{
|
|
translations: ['*'],
|
|
},
|
|
{
|
|
specs: [
|
|
'id',
|
|
{
|
|
translations: ['id', 'key', 'value'],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
faqs: [
|
|
'id',
|
|
{
|
|
questions_id: [
|
|
'id',
|
|
{
|
|
translations: ['id', 'title', 'content'],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
documents: [
|
|
'id',
|
|
{
|
|
product_documents_id: [
|
|
'id',
|
|
{
|
|
file: ['id', 'filesize', 'filename_download'],
|
|
},
|
|
{
|
|
translations: ['id', 'title'],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
deep: {
|
|
translations: {
|
|
_filter: {
|
|
languages_code: { _eq: locale },
|
|
},
|
|
},
|
|
images: {
|
|
product_images_id: {
|
|
translations: {
|
|
_filter: {
|
|
languages_code: { _eq: locale },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
faqs: {
|
|
questions_id: {
|
|
translations: {
|
|
_filter: {
|
|
languages_code: { _eq: locale },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
documents: {
|
|
documents_id: {
|
|
translations: {
|
|
_filter: {
|
|
languages_code: { _eq: locale },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
})
|
|
);
|
|
});
|
|
};
|