diff --git a/src/views/pages/Property/CreateProperty.vue b/src/views/pages/Property/CreateProperty.vue index ca3d5e2..c8f2296 100644 --- a/src/views/pages/Property/CreateProperty.vue +++ b/src/views/pages/Property/CreateProperty.vue @@ -862,7 +862,7 @@ const saveProperty = async () => { اسناد و مدارک تصویری / پی‌دی‌اف ملک - +
@@ -904,7 +904,7 @@ const saveProperty = async () => { تصاویر ملک
- +
diff --git a/src/views/uikit/ImageUploader.vue b/src/views/uikit/ImageUploader.vue index 1a8cb0e..6078760 100644 --- a/src/views/uikit/ImageUploader.vue +++ b/src/views/uikit/ImageUploader.vue @@ -54,7 +54,7 @@ import FilePondPluginImagePreview from 'filepond-plugin-image-preview'; const props = defineProps({ bucketName: { type: String, - default: 'properties' + default: 'temp' }, uploadEndpoint: { type: String, @@ -115,7 +115,7 @@ const authHeaders = computed(() => { const resolvedUploadUrl = computed(() => { let endpoint = props.uploadUrl || props.uploadEndpoint; if (!endpoint || endpoint === '/api/files/admin/upload-file') { - endpoint = `/api/files/bucket/upload-single-filepond/${props.bucketName}`; + endpoint = `/api/files/bucket/upload-single-filepond/${props.bucketName || 'temp'}`; } if (endpoint.startsWith('http://') || endpoint.startsWith('https://')) { return endpoint; @@ -127,7 +127,7 @@ const resolvedUploadUrl = computed(() => { const resolvedDeleteUrl = computed(() => { let endpoint = props.deleteUrl || props.deleteEndpoint; if (!endpoint) { - endpoint = `/api/files/bucket/delete-file/${props.bucketName}`; + endpoint = `/api/files/bucket/delete-file/${props.bucketName || 'temp'}`; } if (endpoint.startsWith('http://') || endpoint.startsWith('https://')) { return endpoint; @@ -136,21 +136,32 @@ const resolvedDeleteUrl = computed(() => { return `${API_URL}${cleanEndpoint}`; }); -const initialFiles = computed(() => { - if (!Array.isArray(props.modelValue)) return []; - return props.modelValue - .map((item) => { - const url = typeof item === 'string' ? item : item.url || item.source || ''; - if (!url) return null; - return { - source: url, - options: { - type: 'local' - } - }; - }) - .filter(Boolean); -}); +const initialFiles = ref([]); +let isInitialLoaded = false; + +watch( + () => props.modelValue, + (val) => { + // Only populate initialFiles on first load with existing items (e.g. edit mode) + // to avoid resetting active FilePond state during live uploads + if (!isInitialLoaded && Array.isArray(val) && val.length > 0) { + isInitialLoaded = true; + initialFiles.value = val + .map((item) => { + const url = typeof item === 'string' ? item : item.url || item.source || ''; + if (!url) return null; + return { + source: url, + options: { + type: 'local' + } + }; + }) + .filter(Boolean); + } + }, + { immediate: true } +); // Handle server responses for file processing function handleProcessResponse(response) {