feat(M08-B): 补微信预检导出
This commit is contained in:
@@ -331,6 +331,13 @@
|
||||
</el-table>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button
|
||||
:icon="Download"
|
||||
:disabled="!preflightDialog.result"
|
||||
@click="exportPreflight"
|
||||
>
|
||||
导出预检
|
||||
</el-button>
|
||||
<el-button @click="preflightDialog.open = false">关闭</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
@@ -731,6 +738,36 @@ function exportCandidates() {
|
||||
]);
|
||||
}
|
||||
|
||||
function exportPreflight() {
|
||||
const result = preflightDialog.result;
|
||||
if (!result) return;
|
||||
downloadCsv(`cleaning-transfer-preflight-${result.settlement.settlementNo}-${Date.now()}.csv`, [
|
||||
['类别', '字段', '值'],
|
||||
['summary', 'ready', result.ready ? 'PASS' : 'BLOCKED'],
|
||||
['settlement', 'settlementNo', result.settlement.settlementNo],
|
||||
['settlement', 'status', result.settlement.status],
|
||||
['settlement', 'amount', money(result.settlement.totalRewardCents)],
|
||||
['settlement', 'cleanerUserId', result.settlement.cleanerUserId],
|
||||
['settlement', 'storeId', result.settlement.storeId || ''],
|
||||
['account', 'merchantId', compactText(result.account.merchantIdMasked)],
|
||||
['account', 'credentialRef', compactText(result.account.credentialRefMasked)],
|
||||
['account', 'authorizationStatus', compactText(result.account.authorizationStatus)],
|
||||
['account', 'scope', result.account.storeScoped ? 'STORE' : 'TENANT'],
|
||||
['credential', 'appId', configuredText(result.credential.appIdPresent)],
|
||||
['credential', 'serialNo', configuredText(result.credential.serialNoPresent)],
|
||||
['credential', 'transferSceneId', compactText(result.credential.transferSceneId)],
|
||||
['credential', 'reportInfoCount', String(result.credential.reportInfoCount ?? 0)],
|
||||
['credential', 'transferNotifyUrl', configuredText(result.credential.transferNotifyUrlConfigured)],
|
||||
['credential', 'platformCertificateCount', String(result.credential.platformCertificateCount ?? 0)],
|
||||
['cleaner', 'openid', result.cleaner.openidConfigured ? 'BOUND' : 'MISSING'],
|
||||
...result.checks.map((check) => [
|
||||
'check',
|
||||
`${check.key}:${check.status}`,
|
||||
check.message
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
function downloadCsv(filename: string, rows: string[][]) {
|
||||
const content = rows.map((row) => row.map(csvCell).join(',')).join('\r\n');
|
||||
const blob = new Blob([`\uFEFF${content}`], { type: 'text/csv;charset=utf-8' });
|
||||
|
||||
Reference in New Issue
Block a user