2026-04-01 00:58:42 +08:00
|
|
|
<script setup lang="ts">
|
2026-05-01 20:39:09 +08:00
|
|
|
import { computed } from 'vue'
|
|
|
|
|
import { useI18n } from 'vue-i18n'
|
|
|
|
|
import { useRoute } from 'vue-router'
|
2026-04-01 00:58:42 +08:00
|
|
|
|
2026-05-01 20:39:09 +08:00
|
|
|
const route = useRoute()
|
|
|
|
|
const { t } = useI18n()
|
2026-04-01 00:58:42 +08:00
|
|
|
|
2026-05-01 20:39:09 +08:00
|
|
|
const title = computed(() => t(String(route.meta.titleKey ?? 'common.details')))
|
|
|
|
|
const description = computed(() => t(String(route.meta.descriptionKey ?? 'common.noData')))
|
2026-04-01 00:58:42 +08:00
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<template>
|
|
|
|
|
<section class="stub-view">
|
|
|
|
|
<div class="stub-view__hero">
|
2026-05-01 20:39:09 +08:00
|
|
|
<p class="eyebrow">{{ t('featureStub.eyebrow') }}</p>
|
2026-04-01 00:58:42 +08:00
|
|
|
<h2>{{ title }}</h2>
|
|
|
|
|
<p>{{ description }}</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="stub-view__grid">
|
|
|
|
|
<article class="stub-card">
|
2026-05-01 20:39:09 +08:00
|
|
|
<h3>{{ t('featureStub.currentStatus') }}</h3>
|
|
|
|
|
<p>{{ t('featureStub.currentStatusText') }}</p>
|
2026-04-01 00:58:42 +08:00
|
|
|
</article>
|
|
|
|
|
|
|
|
|
|
<article class="stub-card">
|
2026-05-01 20:39:09 +08:00
|
|
|
<h3>{{ t('featureStub.nextPriority') }}</h3>
|
2026-04-01 00:58:42 +08:00
|
|
|
<p>{{ description }}</p>
|
|
|
|
|
</article>
|
|
|
|
|
|
|
|
|
|
<article class="stub-card">
|
2026-05-01 20:39:09 +08:00
|
|
|
<h3>{{ t('featureStub.integrationStrategy') }}</h3>
|
|
|
|
|
<p>{{ t('featureStub.integrationStrategyText') }}</p>
|
2026-04-01 00:58:42 +08:00
|
|
|
</article>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
</template>
|