feat: add admin risk actions and arbitration settlement

This commit is contained in:
yml
2026-05-22 18:11:01 +08:00
parent dfe686ce0e
commit 55477d0ac6
26 changed files with 888 additions and 23 deletions
@@ -10,6 +10,7 @@ const disputes = ref<Dispute[]>([])
const activeDispute = ref<Dispute | null>(null)
const result = ref('release_deposit')
const remark = ref('')
const amount = ref<number | undefined>()
onMounted(loadDisputes)
@@ -26,6 +27,7 @@ function openArbitration(row: Dispute) {
activeDispute.value = row
result.value = row.arbitration_result || 'release_deposit'
remark.value = row.arbitration_remark || ''
amount.value = undefined
}
async function handleArbitrate() {
@@ -35,6 +37,7 @@ async function handleArbitrate() {
await arbitrateDispute(activeDispute.value.id, {
result: result.value,
remark: remark.value,
amount: amount.value,
})
ElMessage.success('仲裁结果已保存,双方已收到通知')
activeDispute.value = null
@@ -90,6 +93,17 @@ function readError(error: unknown, fallback: string) {
<el-option label="赔付号主" value="compensate_owner" />
<el-option label="关闭订单" value="order_close" />
</el-select>
<el-input-number
v-if="['partial_refund', 'deduct_deposit', 'compensate_owner'].includes(result)"
v-model="amount"
class="full-control panel-action"
:min="0"
:precision="2"
:step="10"
placeholder="裁决金额"
/>
<p v-if="result === 'partial_refund'">部分退款金额表示退给租客的金额剩余冻结金额结算给号主</p>
<p v-if="['deduct_deposit', 'compensate_owner'].includes(result)">金额表示从押金中赔付给号主的部分不填则默认处理全额押金</p>
<el-input v-model="remark" class="panel-action" type="textarea" :rows="4" placeholder="填写客服裁决说明" />
</div>
<template #footer>