This commit is contained in:
@@ -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('退款申请创建成功')
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 重新提交退款申请请求
|
// 重新提交退款申请请求
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user