This commit is contained in:
@@ -162,6 +162,34 @@
|
||||
return `¥${(amount / 100).toFixed(2)}`
|
||||
}
|
||||
|
||||
const getApprovalProviderText = (item: Refund) => {
|
||||
const provider = item.approval_provider || item.approval_source || item.approval?.source
|
||||
if (provider === 'wecom') return '企微'
|
||||
if (provider === 'legacy') return '历史审批'
|
||||
if (provider === 'none') return '无'
|
||||
return provider || '-'
|
||||
}
|
||||
|
||||
const getRefundApprovalStatusText = (item: Refund) => {
|
||||
return item.approval_status_name || item.approval?.status_name || item.approval?.status || '-'
|
||||
}
|
||||
|
||||
const isHiddenIdKey = (key: string) => {
|
||||
const normalizedKey = key.toLowerCase()
|
||||
return normalizedKey === 'id' || normalizedKey === 'userid' || normalizedKey.endsWith('_id')
|
||||
}
|
||||
|
||||
const sanitizeStructuredValue = (value: unknown): unknown => {
|
||||
if (Array.isArray(value)) return value.map((item) => sanitizeStructuredValue(item))
|
||||
if (!value || typeof value !== 'object') return value
|
||||
|
||||
return Object.fromEntries(
|
||||
Object.entries(value)
|
||||
.filter(([key]) => !isHiddenIdKey(key))
|
||||
.map(([key, item]) => [key, sanitizeStructuredValue(item)])
|
||||
)
|
||||
}
|
||||
|
||||
const formatStructuredValue = (value: unknown) => {
|
||||
if (value === undefined || value === null || value === '') return '-'
|
||||
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
||||
@@ -171,7 +199,7 @@
|
||||
}
|
||||
|
||||
const renderStructuredValue = (value: unknown) =>
|
||||
h('pre', { class: 'structured-value' }, formatStructuredValue(value))
|
||||
h('pre', { class: 'structured-value' }, formatStructuredValue(sanitizeStructuredValue(value)))
|
||||
|
||||
const renderTimeline = (timeline: unknown) => {
|
||||
if (!Array.isArray(timeline) || timeline.length === 0) return h('span', '-')
|
||||
@@ -181,7 +209,7 @@
|
||||
{ class: 'approval-timeline' },
|
||||
timeline.map((item: any) => {
|
||||
const title = item.status_name || item.status || item.content || '审批节点'
|
||||
const operator = item.operator_name || item.operator || ''
|
||||
const operator = item.operator_name || ''
|
||||
const time = item.time || item.timestamp || ''
|
||||
const comment = item.comment || item.content || ''
|
||||
return h('div', { class: 'approval-timeline__item' }, [
|
||||
@@ -207,6 +235,8 @@
|
||||
{ label: '订单号', prop: 'order_no' },
|
||||
{ label: '资产标识符', prop: 'asset_identifier' },
|
||||
{ label: '资产类型', prop: 'asset_type' },
|
||||
{ label: '退款状态', prop: 'status_name', formatter: (value) => value || '-' },
|
||||
{ label: '提交人', prop: 'submitter_name', formatter: (value) => value || '-' },
|
||||
{
|
||||
label: '申请退款金额',
|
||||
formatter: (_, data) => formatCurrency(data.requested_refund_amount)
|
||||
@@ -225,6 +255,12 @@
|
||||
formatter: (value) => value || '-',
|
||||
fullWidth: true
|
||||
},
|
||||
{
|
||||
label: '拒绝原因',
|
||||
prop: 'reject_reason',
|
||||
formatter: (value) => value || '-',
|
||||
fullWidth: true
|
||||
},
|
||||
{
|
||||
label: '备注',
|
||||
prop: 'remark',
|
||||
@@ -258,17 +294,30 @@
|
||||
formatter: (_, data) => (data.commission_deducted ? '是' : '否')
|
||||
},
|
||||
{ label: '创建时间', prop: 'created_at', formatter: (value) => formatDateTime(value) },
|
||||
{
|
||||
label: '审批时间',
|
||||
prop: 'processed_at',
|
||||
formatter: (value) => (value ? formatDateTime(value) : '-')
|
||||
},
|
||||
{ label: '更新时间', prop: 'updated_at', formatter: (value) => formatDateTime(value) }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '企微审批信息',
|
||||
fields: [
|
||||
{ label: '审批来源', prop: 'approval.source' },
|
||||
{ label: '审批渠道', formatter: (_, data) => getApprovalProviderText(data) },
|
||||
{
|
||||
label: '审批来源',
|
||||
formatter: (_, data) => data.approval?.source || data.approval_source || '-'
|
||||
},
|
||||
{ label: '审批单号', prop: 'approval.sp_no' },
|
||||
{
|
||||
label: '审批状态',
|
||||
formatter: (_, data) => data.approval?.status_name || data.approval?.status || '-'
|
||||
formatter: (_, data) => getRefundApprovalStatusText(data)
|
||||
},
|
||||
{
|
||||
label: '当前审批人摘要',
|
||||
formatter: (_, data) => data.current_approver_summary || '-'
|
||||
},
|
||||
{ label: '模板版本', prop: 'approval.template_version' },
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user