This commit is contained in:
@@ -46,16 +46,6 @@
|
||||
placeholder="请输入退款原因"
|
||||
/>
|
||||
</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">
|
||||
<VoucherUpload
|
||||
ref="uploadRef"
|
||||
@@ -63,7 +53,6 @@
|
||||
voucher-name="退款凭证"
|
||||
@uploading-change="voucherUploading = $event"
|
||||
@change="formRef?.validateField('refund_voucher_key')"
|
||||
@files-change="formData.attachments = $event"
|
||||
/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
@@ -88,7 +77,7 @@
|
||||
import { ElMessage } from 'element-plus'
|
||||
import type { FormInstance, FormRules } from 'element-plus'
|
||||
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 { getErrorMessage } from '@/utils/business'
|
||||
import VoucherUpload from '@/components/business/VoucherUpload.vue'
|
||||
@@ -124,18 +113,14 @@
|
||||
requested_refund_amount?: number
|
||||
actual_received_amount: number
|
||||
refund_reason: string
|
||||
remark: string
|
||||
refund_voucher_key: string[]
|
||||
attachments: RefundAttachment[]
|
||||
}>({
|
||||
order_id: null,
|
||||
package_usage_id: undefined,
|
||||
requested_refund_amount: undefined,
|
||||
actual_received_amount: 0,
|
||||
refund_reason: '',
|
||||
remark: '',
|
||||
refund_voucher_key: [],
|
||||
attachments: []
|
||||
refund_voucher_key: []
|
||||
})
|
||||
|
||||
const validateRefundAmount = (rule: any, value: number, callback: any) => {
|
||||
@@ -220,9 +205,7 @@
|
||||
formData.requested_refund_amount = undefined
|
||||
formData.actual_received_amount = 0
|
||||
formData.refund_reason = ''
|
||||
formData.remark = ''
|
||||
formData.refund_voucher_key = []
|
||||
formData.attachments = []
|
||||
orderSearchOptions.value = []
|
||||
uploadRef.value?.clearFiles(false)
|
||||
}
|
||||
@@ -239,13 +222,12 @@
|
||||
submitLoading.value = true
|
||||
try {
|
||||
const data: CreateRefundRequest = {
|
||||
order_id: formData.order_id!,
|
||||
requested_refund_amount: yuanToFen(formData.requested_refund_amount) ?? 0,
|
||||
actual_received_amount: formData.actual_received_amount,
|
||||
attachments: formData.attachments,
|
||||
package_usage_id: formData.package_usage_id,
|
||||
refund_reason: formData.refund_reason || undefined,
|
||||
remark: formData.remark || undefined
|
||||
order_id: formData.order_id!,
|
||||
package_usage_id: formData.package_usage_id ?? 0,
|
||||
refund_reason: formData.refund_reason,
|
||||
refund_voucher_key: formData.refund_voucher_key,
|
||||
requested_refund_amount: yuanToFen(formData.requested_refund_amount) ?? 0
|
||||
}
|
||||
await RefundService.createRefund(data)
|
||||
ElMessage.success('退款申请创建成功')
|
||||
|
||||
@@ -112,10 +112,9 @@ export interface CreateRefundRequest {
|
||||
order_id: number
|
||||
requested_refund_amount: number // 申请退款金额(分)
|
||||
actual_received_amount: number // 实收金额(分)
|
||||
attachments: RefundAttachment[]
|
||||
package_usage_id?: number // 关联套餐使用记录 ID
|
||||
refund_reason?: string
|
||||
remark?: string
|
||||
package_usage_id: number // 关联套餐使用记录 ID,无关联记录时传 0
|
||||
refund_reason: string
|
||||
refund_voucher_key: string[]
|
||||
}
|
||||
|
||||
// 重新提交退款申请请求
|
||||
|
||||
@@ -395,8 +395,18 @@
|
||||
const isAdminOrPlatform = computed(
|
||||
() => userInfo.value.user_type === 1 || userInfo.value.user_type === 2
|
||||
)
|
||||
const canUpdateUsedData = computed(() => hasAuth('package:update_used_data'))
|
||||
const canUpdateExpiresAt = computed(() => hasAuth('package:update_expires_at'))
|
||||
const isProductionMode = import.meta.env.MODE === 'production'
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user