refactor: 将各个界面的notfound提示提取为单独的组件NotFoundResult
All checks were successful
deploy to server / build-and-deploy (push) Successful in 2m56s

This commit is contained in:
2025-10-28 16:32:00 +08:00
parent c6e0ea2a47
commit 300266d32c
6 changed files with 53 additions and 37 deletions

View File

@ -0,0 +1,33 @@
<template>
<el-result icon="warning" :title="title" :sub-title="subTitle">
<template #extra>
<el-button type="primary" @click="onBack">
{{ backText || $t('back') }}
</el-button>
</template>
</el-result>
</template>
<script setup lang="ts">
defineProps({
title: {
type: String,
required: true,
},
subTitle: {
type: String,
required: false,
default: '',
},
backText: {
type: String,
required: false,
default: '',
},
onBack: {
type: Function as () => unknown,
required: false,
default: undefined,
},
});
</script>

View File

@ -1,17 +1,10 @@
<template>
<main p="x4 y10" text="center teal-700 dark:gray-200">
<div text4xl>
<div i-ep-warning inline-block />
</div>
<div>{{ $t('not-found') }}</div>
<div>
<button text-sm btn m="3 t8" @click="router.back()">
{{ $t('back') }}
</button>
</div>
<not-found-result
:title="$t('page-not-found')"
:sub-title="$t('page-not-found-desc')"
:back-text="$t('back-to-home')"
:on-back="() => $router.push($localePath('/'))"
/>
</main>
</template>
<script setup lang="ts">
const router = useRouter();
</script>

View File

@ -67,20 +67,12 @@
</div>
<!-- 未找到产品 -->
<div v-else class="not-found">
<el-result
icon="warning"
<not-found-result
:title="$t('product-not-found')"
:sub-title="$t('product-not-found-desc')"
>
<template #extra>
<el-button
type="primary"
@click="$router.push($localePath('/products'))"
>
{{ $t('back-to-products') }}
</el-button>
</template>
</el-result>
:back-text="$t('back-to-products')"
:on-back="() => $router.push($localePath('/products'))"
/>
</div>
</div>
<div v-else class="loading">

View File

@ -22,20 +22,12 @@
</div>
</div>
<div v-else class="not-found">
<el-result
icon="warning"
<not-found-result
:title="$t('solution-not-found')"
:sub-title="$t('solution-not-found-desc')"
>
<template #extra>
<el-button
type="primary"
@click="$router.push($localePath('/solutions'))"
>
{{ $t('back-to-solutions') }}
</el-button>
</template>
</el-result>
:back-text="$t('back-to-solutions')"
:on-back="() => $router.push($localePath('/solutions'))"
/>
</div>
</div>
<div v-else class="loading">