<template>
  <Dialog :title="dialogTitle" v-model="dialogVisible" width="900px">
    <Descriptions
      title="申请详情"
      :data="orderInfo"
      :schema="applySchema"
      :columns="2"
      labelWidth="130px"
    />
    <Descriptions
      title="审核详情"
      :data="orderInfo"
      :schema="orderInfo.state == 2 ? cancelSchema : auditSchema"
      :columns="orderInfo.state == 2 ? 2 : 3"
      labelWidth="100px"
    />
  </Dialog>
</template>
<script name="DialogFeebackDetail" setup>
import { getPaymentDetail } from '@/api/clue/payment'

const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // 弹窗的标题

const applySchema = [
  {
    field: 'name',
    label: '线索名称',
    span: 1
  },
  {
    field: 'phone',
    label: '联系方式',
    span: 1
  },
  {
    field: 'signUserName',
    label: '登记人',
    span: 1
  },
  {
    field: 'dealDate',
    label: '登记时间',
    dateFormat: 'YYYY-MM-DD HH:mm:ss',
    span: 1
  },
  {
    field: 'money',
    label: '回款金额',
    span: 1
  },
  {
    field: 'isPayoff',
    label: '是否结清',
    span: 1
  },
  {
    field: 'applyUserName',
    label: '申请人',
    span: 1
  },
  {
    field: 'applyTime',
    label: '申请时间',
    dateFormat: 'YYYY-MM-DD HH:mm:ss',
    span: 1
  },
  {
    field: 'remark',
    label: '备注',
    span: 2,
    isEditor: true
  }
]

const auditSchema = [
  {
    field: 'stateName',
    label: '审核状态',
    span: 1
  },
  {
    field: 'checkUser',
    label: '审核人',
    span: 1
  },
  {
    field: 'checkTime',
    label: '审核时间',
    dateFormat: 'YYYY-MM-DD HH:mm:ss',
    span: 1
  },
  {
    field: 'checkRemark',
    label: '备注',
    span: 3,
    isEditor: true
  }
]

const cancelSchema = [
  {
    field: 'stateName',
    label: '审核状态',
    span: 1
  },
  {
    field: 'revokeTime',
    label: '撤销时间',
    dateFormat: 'YYYY-MM-DD HH:mm:ss',
    span: 1
  }
]

const orderInfo = ref({})
/** 打开弹窗 */
const open = async (id) => {
  dialogVisible.value = true
  dialogTitle.value = '回款申请详情'
  try {
    orderInfo.value = await getPaymentDetail({ id })
  } catch (error) {
    console.log(error)
  }
}
defineExpose({ open }) // 提供 open 方法，用于打开弹窗
</script>
