feat: 退款企微审批详情与业务处理状态
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 7m2s
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 7m2s
This commit is contained in:
@@ -57,6 +57,7 @@
|
||||
import { Close, Document, UploadFilled } from '@element-plus/icons-vue'
|
||||
import type { UploadFile, UploadInstance, UploadRawFile } from 'element-plus'
|
||||
import { StorageService } from '@/api/modules'
|
||||
import type { RefundAttachment } from '@/types/api/refund'
|
||||
|
||||
interface Props {
|
||||
modelValue?: string[] | string
|
||||
@@ -77,12 +78,14 @@
|
||||
'update:modelValue': [value: string[]]
|
||||
'uploading-change': [value: boolean]
|
||||
change: [value: string[]]
|
||||
'files-change': [value: RefundAttachment[]]
|
||||
}>()
|
||||
|
||||
const rootRef = ref<HTMLElement>()
|
||||
const uploadRef = ref<UploadInstance>()
|
||||
const uploadingCount = ref(0)
|
||||
const voucherFileKeyMap = new Map<number, string>()
|
||||
const voucherFileMetadataMap = new Map<number, RefundAttachment>()
|
||||
const removedUploadUids = new Set<number>()
|
||||
const fileObjectUrlMap = new Map<number, string>()
|
||||
const selectedUploadUids = new Set<number>()
|
||||
@@ -100,6 +103,10 @@
|
||||
emit('change', keys)
|
||||
}
|
||||
|
||||
const emitFileMetadata = () => {
|
||||
emit('files-change', Array.from(voucherFileMetadataMap.values()))
|
||||
}
|
||||
|
||||
const setUploadingCount = (count: number) => {
|
||||
uploadingCount.value = Math.max(0, count)
|
||||
emit('uploading-change', uploadingCount.value > 0)
|
||||
@@ -109,12 +116,14 @@
|
||||
activeUploadBatch += 1
|
||||
setUploadingCount(0)
|
||||
voucherFileKeyMap.clear()
|
||||
voucherFileMetadataMap.clear()
|
||||
removedUploadUids.clear()
|
||||
selectedUploadUids.clear()
|
||||
revokeAllFileObjectUrls()
|
||||
uploadRef.value?.clearFiles()
|
||||
if (emitValue) {
|
||||
emitVoucherKeys()
|
||||
emitFileMetadata()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,7 +237,13 @@
|
||||
}
|
||||
|
||||
voucherFileKeyMap.set(uploadFile.uid, file_key)
|
||||
voucherFileMetadataMap.set(uploadFile.uid, {
|
||||
file_key,
|
||||
file_name: file.name,
|
||||
file_size: file.size
|
||||
})
|
||||
emitVoucherKeys()
|
||||
emitFileMetadata()
|
||||
ElMessage.success('上传成功')
|
||||
} catch (error: any) {
|
||||
if (uploadBatch !== activeUploadBatch) return
|
||||
@@ -236,7 +251,9 @@
|
||||
console.error(`上传${props.voucherName}失败:`, error)
|
||||
ElMessage.error(error?.message || '上传失败,请重试')
|
||||
voucherFileKeyMap.delete(uploadFile.uid)
|
||||
voucherFileMetadataMap.delete(uploadFile.uid)
|
||||
emitVoucherKeys()
|
||||
emitFileMetadata()
|
||||
removeUploadFile(uploadFile)
|
||||
} finally {
|
||||
if (uploadBatch === activeUploadBatch) {
|
||||
@@ -250,7 +267,9 @@
|
||||
selectedUploadUids.delete(uploadFile.uid)
|
||||
revokeFileObjectUrl(uploadFile.uid)
|
||||
voucherFileKeyMap.delete(uploadFile.uid)
|
||||
voucherFileMetadataMap.delete(uploadFile.uid)
|
||||
emitVoucherKeys()
|
||||
emitFileMetadata()
|
||||
}
|
||||
|
||||
const focusUploadArea = () => {
|
||||
|
||||
Reference in New Issue
Block a user