-
-
-
-
-
-
-
+
+
+
-
@@ -29,7 +24,7 @@
// 获取路由参数
const id = route.params.slug as string;
- const { data: solution, pending, error } = await useSolution(id);
+ const { data: solution, error } = await useSolution(id);
const breadcrumbItems = computed(() => [
{ label: $t('navigation.home'), to: localePath('/') },
diff --git a/app/pages/solutions/index.vue b/app/pages/solutions/index.vue
index 3bff38e..25507e0 100644
--- a/app/pages/solutions/index.vue
+++ b/app/pages/solutions/index.vue
@@ -8,41 +8,59 @@
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -56,7 +74,9 @@
{ label: $t('navigation.solutions') },
];
- const { data: solutions, pending, error } = await useSolutionList();
+ const { data, pending, error } = useSolutionList();
+
+ const solutions = computed(() => data.value ?? []);
const activeName = ref
('all');
@@ -123,4 +143,34 @@
margin-bottom: 2rem;
gap: 40px;
}
+
+ .skeleton-group-list {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 20px;
+ justify-content: flex-start;
+ margin-bottom: 2rem;
+ }
+
+ .skeleton-card {
+ width: 30%;
+ height: 200px;
+ }
+
+ @media (max-width: 1200px) {
+ .skeleton-card {
+ width: 45%;
+ }
+ }
+
+ @media (max-width: 768px) {
+ .skeleton-group-list {
+ justify-content: center;
+ align-items: center;
+ }
+
+ .skeleton-card {
+ width: 90%;
+ }
+ }
diff --git a/app/pages/support/contact-us.vue b/app/pages/support/contact-us.vue
index 7812c9c..9927efe 100644
--- a/app/pages/support/contact-us.vue
+++ b/app/pages/support/contact-us.vue
@@ -6,19 +6,25 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -31,7 +37,9 @@
{ label: $t('navigation.support'), to: localePath('/support') },
{ label: $t('navigation.contact-info') },
];
- const { data: contactInfo, pending, error } = await useContactInfo();
+ const { data, pending, error } = useContactInfo();
+
+ const contactInfo = computed(() => data.value ?? null);
watch(error, (value) => {
if (value) {
diff --git a/app/pages/support/documents.vue b/app/pages/support/documents.vue
index 5bf8fd3..78322c0 100644
--- a/app/pages/support/documents.vue
+++ b/app/pages/support/documents.vue
@@ -1,9 +1,6 @@
-
-
-
-
@@ -56,7 +78,9 @@
const page = ref(1);
const documentsPerPage = 10;
- const { data: documents, pending, error } = await useDocumentList();
+ const { data, pending, error } = useDocumentList();
+
+ const documents = computed(() => data.value ?? []);
const documentTypeOptions = computed(() => {
const types: DocumentTypeView[] = [];
diff --git a/app/pages/support/faq.vue b/app/pages/support/faq.vue
index e403f68..372a4b7 100644
--- a/app/pages/support/faq.vue
+++ b/app/pages/support/faq.vue
@@ -1,34 +1,47 @@
-
-
+
+
-
@@ -57,7 +70,9 @@
{ label: $t('navigation.faq') },
];
- const { data: questions, pending, error } = await useQuestionList();
+ const { data, pending, error } = useQuestionList();
+
+ const questions = computed(() => data.value ?? []);
const questionTypeOptions = computed(() => {
const types: QuestionTypeView[] = [];
diff --git a/i18n/locales/en.json b/i18n/locales/en.json
index f800678..8f9c7be 100644
--- a/i18n/locales/en.json
+++ b/i18n/locales/en.json
@@ -127,5 +127,6 @@
"specs": "Specifications",
"faq": "FAQ",
"documents": "Documents"
- }
+ },
+ "redirecting": "Redirecting..."
}
diff --git a/i18n/locales/es.json b/i18n/locales/es.json
index e0a0095..5418311 100644
--- a/i18n/locales/es.json
+++ b/i18n/locales/es.json
@@ -126,5 +126,6 @@
"specs": "Especificaciones",
"faq": "FAQ",
"documents": "Documentos"
- }
+ },
+ "redirecting": "Redirigiendo..."
}
diff --git a/i18n/locales/ru.json b/i18n/locales/ru.json
index a8609ad..4b1bcab 100644
--- a/i18n/locales/ru.json
+++ b/i18n/locales/ru.json
@@ -126,5 +126,6 @@
"specs": "Технические спецификации",
"faq": "Часто задаваемые вопросы",
"documents": "Связанные документы"
- }
+ },
+ "redirecting": "Перенаправление..."
}
diff --git a/i18n/locales/zh.json b/i18n/locales/zh.json
index e0ced48..78c9ed9 100644
--- a/i18n/locales/zh.json
+++ b/i18n/locales/zh.json
@@ -126,5 +126,6 @@
"specs": "技术规格",
"faq": "常见问题",
"documents": "相关文档"
- }
+ },
+ "redirecting": "正在跳转..."
}