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) {