fix: 退款申请
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 7m19s

This commit is contained in:
luo
2026-08-05 16:36:08 +08:00
parent db9aaa7920
commit 34455a9f18
3 changed files with 22 additions and 31 deletions

View File

@@ -46,16 +46,6 @@
placeholder="请输入退款原因" placeholder="请输入退款原因"
/> />
</ElFormItem> </ElFormItem>
<ElFormItem label="备注">
<ElInput
v-model="formData.remark"
type="textarea"
:rows="2"
maxlength="500"
show-word-limit
placeholder="请输入备注"
/>
</ElFormItem>
<ElFormItem label="退款凭证" prop="refund_voucher_key"> <ElFormItem label="退款凭证" prop="refund_voucher_key">
<VoucherUpload <VoucherUpload
ref="uploadRef" ref="uploadRef"
@@ -63,7 +53,6 @@
voucher-name="退款凭证" voucher-name="退款凭证"
@uploading-change="voucherUploading = $event" @uploading-change="voucherUploading = $event"
@change="formRef?.validateField('refund_voucher_key')" @change="formRef?.validateField('refund_voucher_key')"
@files-change="formData.attachments = $event"
/> />
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>
@@ -88,7 +77,7 @@
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import type { FormInstance, FormRules } from 'element-plus' import type { FormInstance, FormRules } from 'element-plus'
import { RefundService, OrderService } from '@/api/modules' import { RefundService, OrderService } from '@/api/modules'
import type { CreateRefundRequest, Order, RefundAttachment } from '@/types/api' import type { CreateRefundRequest, Order } from '@/types/api'
import { formatMoney, yuanToFen } from '@/utils/business/format' import { formatMoney, yuanToFen } from '@/utils/business/format'
import { getErrorMessage } from '@/utils/business' import { getErrorMessage } from '@/utils/business'
import VoucherUpload from '@/components/business/VoucherUpload.vue' import VoucherUpload from '@/components/business/VoucherUpload.vue'
@@ -124,18 +113,14 @@
requested_refund_amount?: number requested_refund_amount?: number
actual_received_amount: number actual_received_amount: number
refund_reason: string refund_reason: string
remark: string
refund_voucher_key: string[] refund_voucher_key: string[]
attachments: RefundAttachment[]
}>({ }>({
order_id: null, order_id: null,
package_usage_id: undefined, package_usage_id: undefined,
requested_refund_amount: undefined, requested_refund_amount: undefined,
actual_received_amount: 0, actual_received_amount: 0,
refund_reason: '', refund_reason: '',
remark: '', refund_voucher_key: []
refund_voucher_key: [],
attachments: []
}) })
const validateRefundAmount = (rule: any, value: number, callback: any) => { const validateRefundAmount = (rule: any, value: number, callback: any) => {
@@ -220,9 +205,7 @@
formData.requested_refund_amount = undefined formData.requested_refund_amount = undefined
formData.actual_received_amount = 0 formData.actual_received_amount = 0
formData.refund_reason = '' formData.refund_reason = ''
formData.remark = ''
formData.refund_voucher_key = [] formData.refund_voucher_key = []
formData.attachments = []
orderSearchOptions.value = [] orderSearchOptions.value = []
uploadRef.value?.clearFiles(false) uploadRef.value?.clearFiles(false)
} }
@@ -239,13 +222,12 @@
submitLoading.value = true submitLoading.value = true
try { try {
const data: CreateRefundRequest = { const data: CreateRefundRequest = {
order_id: formData.order_id!,
requested_refund_amount: yuanToFen(formData.requested_refund_amount) ?? 0,
actual_received_amount: formData.actual_received_amount, actual_received_amount: formData.actual_received_amount,
attachments: formData.attachments, order_id: formData.order_id!,
package_usage_id: formData.package_usage_id, package_usage_id: formData.package_usage_id ?? 0,
refund_reason: formData.refund_reason || undefined, refund_reason: formData.refund_reason,
remark: formData.remark || undefined refund_voucher_key: formData.refund_voucher_key,
requested_refund_amount: yuanToFen(formData.requested_refund_amount) ?? 0
} }
await RefundService.createRefund(data) await RefundService.createRefund(data)
ElMessage.success('退款申请创建成功') ElMessage.success('退款申请创建成功')

View File

@@ -112,10 +112,9 @@ export interface CreateRefundRequest {
order_id: number order_id: number
requested_refund_amount: number // 申请退款金额(分) requested_refund_amount: number // 申请退款金额(分)
actual_received_amount: number // 实收金额(分) actual_received_amount: number // 实收金额(分)
attachments: RefundAttachment[] package_usage_id: number // 关联套餐使用记录 ID无关联记录时传 0
package_usage_id?: number // 关联套餐使用记录 ID refund_reason: string
refund_reason?: string refund_voucher_key: string[]
remark?: string
} }
// 重新提交退款申请请求 // 重新提交退款申请请求

View File

@@ -395,8 +395,18 @@
const isAdminOrPlatform = computed( const isAdminOrPlatform = computed(
() => userInfo.value.user_type === 1 || userInfo.value.user_type === 2 () => userInfo.value.user_type === 1 || userInfo.value.user_type === 2
) )
const canUpdateUsedData = computed(() => hasAuth('package:update_used_data')) const isProductionMode = import.meta.env.MODE === 'production'
const canUpdateExpiresAt = computed(() => hasAuth('package:update_expires_at')) const canUseAdjustmentInCurrentEnv = (permission: string) => {
if (isProductionMode) {
return userInfo.value.user_type === 2 && hasAuth(permission)
}
return userInfo.value.user_type === 1
}
const canUpdateUsedData = computed(() => canUseAdjustmentInCurrentEnv('package:update_used_data'))
const canUpdateExpiresAt = computed(() =>
canUseAdjustmentInCurrentEnv('package:update_expires_at')
)
// 退款申请对话框 // 退款申请对话框
const createRefundDialogVisible = ref(false) const createRefundDialogVisible = ref(false)