1010 <label v-if =" hasFiles" >
1111 <RequestTaskFileInputAfter
1212 :files =" modelValue"
13+ :isEdit
1314 :removeFile =" removeFile" />
1415 </label >
1516 <div
@@ -50,6 +51,7 @@ import RequestTaskFileInputAfter from './RequestTaskFileInputAfter.vue'
5051
5152const { modelValue } = defineProps <{
5253 modelValue: File [] | null
54+ isEdit? : boolean
5355}>()
5456const emit = defineEmits ([' update:modelValue' ])
5557
@@ -61,10 +63,21 @@ const handleModal = () => {
6163 isModalVisible .value = ! isModalVisible .value
6264}
6365
66+ const truncateFilename = (name : string , maxLength : number ) => {
67+ return [... name ].slice (0 , maxLength ).join (' ' )
68+ }
69+
6470const handleFileUpload = (event : Event ) => {
6571 const target = event .target as HTMLInputElement
6672 if (target .files && target .files .length > 0 ) {
67- const newFiles = Array .from (target .files ).filter (file => file .size <= 5 * 1024 * 1024 )
73+ const newFiles = Array .from (target .files )
74+ .map (file => {
75+ const truncatedName = truncateFilename (file .name , 35 )
76+ const newFile = new File ([file ], truncatedName , { type: file .type })
77+ return newFile .size <= 5 * 1024 * 1024 ? newFile : null
78+ })
79+ .filter (file => file !== null ) as File []
80+
6881 if (newFiles .length !== target .files .length ) {
6982 handleModal ()
7083 return
@@ -83,7 +96,13 @@ const handleDrop = (event: DragEvent) => {
8396 isDragging .value = false
8497 const files = event .dataTransfer ?.files
8598 if (files && files .length > 0 ) {
86- const newFiles = Array .from (files ).filter (file => file .size <= 5 * 1024 * 1024 )
99+ const newFiles = Array .from (files )
100+ .map (file => {
101+ const truncatedName = truncateFilename (file .name , 35 )
102+ const newFile = new File ([file ], truncatedName , { type: file .type })
103+ return newFile .size <= 5 * 1024 * 1024 ? newFile : null
104+ })
105+ .filter (file => file !== null ) as File []
87106 if (newFiles .length !== files .length ) {
88107 handleModal ()
89108 return
0 commit comments