<script setup lang="tsx">
import { PropType, ref } from 'vue'
import { TableData } from '@/api/SrdbRuleVersion/SrdbRuleVersion/types'
import { Descriptions, DescriptionsSchema } from '@/components/Descriptions'
import { TAB_LEVEL_LIST,RULE_TYPE_LIST } from "../constants"
const detailSchema = ref<DescriptionsSchema[]>([
  {
    field: 'ruleNo',
    label: '规则编码'
  },
  {
    field: 'ruleType',
    label: '规则类别',
    slots:{
      default:(data)=>{
          console.log(data,'详情信息');
          return <span>{RULE_TYPE_LIST[data.row.ruleType]?.label}</span>;
      }
    }
  },
  {
    field: 'ruleOwner',
    label: '规则归属'
  },
  {
    field: 'tabLevel',
    label: '分类',
    slots:{
      default:(data)=>{
          console.log(data,'详情信息');
          return <span>{TAB_LEVEL_LIST[data.row.tabLevel]?.label}</span>
      }
    }
  },
  {
    field: 'tabNameEn',
    label: '校验表英文名'
  },
  {
    field: 'tabName',
    label: '校验表中文名'
  },
  {
    field: 'tabGuid',
    label: '表唯一性编码'
  },
  {
    field: 'itemNo',
    label: '校验项编码'
  },
  {
    field: 'itemName',
    label: '校验项名称'
  },
  {
    field: 'mainCategory',
    label: '校验大类'
  },
  {
    field: 'subCategory',
    label: '校验小类'
  },
  {
    field: 'checkRange',
    label: '校验范围'
  },
  {
    field: 'formulaDesc',
    label: '校验公式说明'
  },
  {
    field: 'checkScript',
    label: '校验sql脚本'
  },
  {
    field: 'checkProperty',
    label: '校验性质'
  },
  {
    field: 'dayThresholdValue',
    label: '缺失率阈值'
  },
  {
    field: 'monthThresholdValue',
    label: '缺失率阈值'
  },
  {
    field: 'linkTable',
    label: '关联表信息'
  },
  {
    field: 'verifyMode',
    label: '校验方式'
  },
  {
    field: 'outTableName',
    label: '外部表名'
  },
  {
    field: 'dbType',
    label: '数据库类型'
  },
  {
    field: 'versionNo',
    label: '规则版本号'
  },
  {
    field: 'createTime',
    label: '创建时间'
  },
  {
    field: 'updateTime',
    label: '更新时间'
  },
  {
    field: 'createUserId',
    label: '创建人id'
  },
  {
    field: 'createUserName',
    label: '创建人名称'
  },
  {
    field: 'updateUserId',
    label: '修改人id'
  },
  {
    field: 'updateUserName',
    label: '修改人名称'
  }
])

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

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