Skip to content

ProDetail 详情页脚手架

概述

ProDetail 是详情页脚手架组件,提供标题区(标题 + 副标题 + 标签 + 额外操作) → 描述列表 → 标签页三段式布局。内部使用 ProDescriptions 渲染描述区域,通过具名插槽提供各标签页的内容。

基本用法

vue
<script setup lang="ts">
import { ref } from 'vue'
import ProDetail from '@/components/Pro/ProDetail/index.vue'
import type { ProDescriptionItem, ProDetailTab } from '@/types/pro'

const descriptions: ProDescriptionItem[] = [
  { label: '标题', dataIndex: 'title' },
  { label: '负责人', dataIndex: 'owner' },
  { label: '创建时间', dataIndex: 'createdAt' },
]

const tabs: ProDetailTab[] = [
  { key: 'detail', label: '详情' },
  { key: 'logs', label: '操作记录' },
]

const data = ref({
  title: '工单 #001',
  owner: '张三',
  createdAt: '2024-01-01 12:00:00',
})
</script>

<template>
  <ProDetail
    title="#001"
    sub-title="工单编号"
    :tags="[{ text: '处理中', color: 'blue' }]"
    :descriptions="descriptions"
    :data="data"
    :tabs="tabs"
  >
    <template #tab-detail>
      <p>详情内容</p>
    </template>
    <template #tab-logs>
      <p>操作记录</p>
    </template>
  </ProDetail>
</template>

Props

属性类型默认值说明
titlestring标题
subTitlestring副标题
tagsArray<{ text: string; color?: string }>标签列表
descriptionsProDescriptionItem[]描述列表配置
dataRecord<string, any>数据对象
descriptionColumnnumber2描述列表每行列数
tabsProDetailTab[]标签页配置
activeTabstring当前激活标签页(v-model)

ProDetailTab

typescript
interface ProDetailTab {
  key: string    // 标签页唯一标识,对应插槽名 #tab-{key}
  label: string  // 标签页标题
}

Slots

插槽名说明
extra标题栏右侧的额外内容(如操作按钮)
tab-{key}各标签页的内容,key 对应 ProDetailTab.key
default当没有配置 tabs 时的默认内容

Events

事件说明
update:activeTab标签页切换

基于 MIT 许可发布