42 lines
1.6 KiB
Vue
42 lines
1.6 KiB
Vue
<script setup lang="ts">
|
|||
|
|
import { ArrowLeft } from '@lucide/vue'
|
||
|
|
import AdminPage from '@/shared/components/AdminPage.vue'
|
||
|
|
import ContractPendingNotice from './ContractPendingNotice.vue'
|
||
|
|
|
||
|
|
defineProps<{
|
||
|
|
title: string
|
||
|
|
referenceLabel: string
|
||
|
|
referenceValue: string
|
||
|
|
backLabel: string
|
||
|
|
domain: string
|
||
|
|
}>()
|
||
|
|
|
||
|
|
defineEmits<{ back: [] }>()
|
||
|
|
</script>
|
||
|
|
|
||
|
|
<template>
|
||
|
|
<AdminPage as="div" class="overseas-detail-page">
|
||
|
|
<header class="overseas-detail-head">
|
||
|
|
<el-button :aria-label="backLabel" @click="$emit('back')"><ArrowLeft :size="16" />返回</el-button>
|
||
|
|
<div class="overseas-detail-title">
|
||
|
|
<h1>{{ title }}</h1>
|
||
|
|
<p>{{ referenceLabel }} <strong>{{ referenceValue }}</strong></p>
|
||
|
|
</div>
|
||
|
|
<span class="overseas-detail-status" role="status">接口待接入</span>
|
||
|
|
</header>
|
||
|
|
|
||
|
|
<ContractPendingNotice :domain="domain" />
|
||
|
|
<slot />
|
||
|
|
</AdminPage>
|
||
|
|
</template>
|
||
|
|
|
||
|
|
<style scoped>
|
||
|
|
.overseas-detail-page { min-width: 0; }
|
||
|
|
.overseas-detail-head { display: flex; min-height: 44px; align-items: center; gap: 12px; }
|
||
|
|
.overseas-detail-title { min-width: 0; flex: 1; }
|
||
|
|
.overseas-detail-title h1 { margin: 0; color: var(--cc-text); font-size: 20px; line-height: 1.35; }
|
||
|
|
.overseas-detail-title p { margin: 3px 0 0; color: var(--cc-muted); font-size: 12px; line-height: 1.5; }
|
||
|
|
.overseas-detail-title strong { color: var(--cc-text); overflow-wrap: anywhere; }
|
||
|
|
.overseas-detail-status { display: inline-flex; min-height: 26px; align-items: center; padding: 3px 10px; border: 1px solid #f3d19e; border-radius: 999px; background: #fdf6ec; color: #b88230; font-size: 12px; font-weight: 600; white-space: nowrap; }
|
||
|
|
</style>
|