<script setup lang="tsx">
import { PropType, ref } from 'vue'
import { TableData } from '@/api/srdb/TableMaintenance/TableMaintenance/types'
import { Descriptions, DescriptionsSchema } from '@/components/Descriptions'
import {TAB_LEVEL_LIST,TAB_TYPE_LIST,TAB_STATUS_LIST,IS_REPORT_FILE_LIST} from "../constants"

const detailSchema = ref<DescriptionsSchema[]>([
  {
    field: 'collectingCode',
    label: '采集编号'
  },
  {
    field: 'regulationId',
    label: '制度编号'
  },
  {
    field: 'regulationName',
    label: '制度名称'
  },
  {
    field: 'regulationVersion',
    label: '制度版本'
  },
  {
    field: 'tabGuid',
    label: '表编号'
  },
  {
    field: 'tabName',
    label: '表中文名'
  },
  {
    field: 'tabNameEn',
    label: '表英文名'
  },
  {
    field: 'tabBelonging',
    label: '一级分类'
  },
  {
    field: 'tabLevel',
    label: '二级分类',
    slots:{
      default:(data:any)=>{
        return <span>{TAB_LEVEL_LIST[data.row.tabLevel]?.label}</span>
      }
    }

  },
  {
    field: 'tabType',
    label: '三级分类',
    slots:{
      default:(data:any)=>{
        return <span>{TAB_TYPE_LIST[data.row.tabType]?.label}</span>
      }
    }
  },
  {
    field: 'tabSchema',
    label: '数据库schema'
  },
  {
    field: 'databaseName',
    label: '数据库名称'
  },
  {
    field: 'databaseType',
    label: '数据库类型'
  },
  {
    field: 'databaseVer',
    label: '数据库版本'
  },
  {
    field: 'safetyLevel',
    label: '数据安全等级'
  },
  {
    field: 'preTableList',
    label: '数据来源表GUID列表'
  },
  {
    field: 'department',
    label: '该表所属管理部门'
  },
  {
    field: 'physicsStrategy',
    label: '物理化策略'
  },
  {
    field: 'dataLifeCycle',
    label: '数据生命周期'
  },
  {
    field: 'dataType',
    label: '数据表分类'
  },
  {
    field: 'dataTypeNo',
    label: '数据表分类编号'
  },
  {
    field: 'remark',
    label: '备注'
  },
  {
    field: 'tabStatus',
    label: '启用状态',
    slots:{
      default:(data:any)=>{
        return <span>{TAB_STATUS_LIST[data.row.tabStatus]?.label}</span>
      }
    }
  },
  {
    field: 'businessType',
    label: '业务类型'
  },
  {
    field: 'isReportFile',
    label: '是否上报文件',
    slots:{
      default:(data:any)=>{
        return <span>{IS_REPORT_FILE_LIST[data.row.isReportFile]?.label}</span>
      }
    }
  }
])

defineProps({
  currentRow: {
    type: Object as PropType<TableData>,
    default: () => {}
  }
})
</script>

<template>
  <Descriptions :schema="detailSchema" :data="currentRow || {}" />
</template>
