Fix document upload
This commit is contained in:
parent
1d78a3e864
commit
5e591eaea9
@ -2,7 +2,7 @@ NODE_ENV=development
|
|||||||
VITE_API_URL=https://joyworkdev.ru
|
VITE_API_URL=https://joyworkdev.ru
|
||||||
VITE_LARAVEL_URL=https://llar.joyworkdev.ru
|
VITE_LARAVEL_URL=https://llar.joyworkdev.ru
|
||||||
VITE_LARAVEL_API_URL=https://joyworkdev.ru
|
VITE_LARAVEL_API_URL=https://joyworkdev.ru
|
||||||
VITE_DEV_SESSION_ID=e74fad113507355529accbf75227afb8
|
VITE_DEV_SESSION_ID=e140a9d56a24f47046b9ab0953e5a9ee
|
||||||
VITE_DEV_REQUISITION_ID=17539
|
VITE_DEV_REQUISITION_ID=17539
|
||||||
#VITE_BASIC_AUTH_USER=adminlogin
|
#VITE_BASIC_AUTH_USER=adminlogin
|
||||||
#VITE_BASIC_AUTH_PASS=adminpassword
|
#VITE_BASIC_AUTH_PASS=adminpassword
|
||||||
@ -88,6 +88,7 @@ const saveDealDoc = async () => {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Ошибка при загрузке документа:', error);
|
console.error('Ошибка при загрузке документа:', error);
|
||||||
alert('Произошла ошибка при загрузке документа');
|
alert('Произошла ошибка при загрузке документа');
|
||||||
|
console.log('FormData entries:', [...formData.entries()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// try {
|
// try {
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<img v-if="isImage" :src="fileUrl" alt="Превью документа" class="w-full h-full object-cover" />
|
<img v-if="isImage" :src="fileUrl" alt="Превью документа" class="w-full h-full object-cover" />
|
||||||
|
|
||||||
<img v-else
|
<img v-else
|
||||||
:src="require('@/shared/assets/images/deal/deal-doc-icon.png')"
|
:src="defaultIconUrl"
|
||||||
:alt="fileExtension + ' документ'"
|
:alt="fileExtension + ' документ'"
|
||||||
class="w-full h-full object-contain bg-gray-100" />
|
class="w-full h-full object-contain bg-gray-100" />
|
||||||
|
|
||||||
@ -34,6 +34,8 @@ import { useConfirm } from 'primevue/useconfirm';
|
|||||||
import { useToast } from 'primevue/usetoast';
|
import { useToast } from 'primevue/usetoast';
|
||||||
import { computed } from "vue";
|
import { computed } from "vue";
|
||||||
|
|
||||||
|
import defaultIconUrl from '@/shared/assets/images/deal/deal-doc-icon.png';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
doc: {
|
doc: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { laravel_api_instance, get_user_id } from '@/shared/api';
|
import { laravel_api_instance, get_user_id } from '@/shared/api';
|
||||||
|
import axios from 'axios';
|
||||||
|
|
||||||
// Функция для получения куки по имени
|
// Функция для получения куки по имени
|
||||||
const getCookie = (name) => {
|
const getCookie = (name) => {
|
||||||
@ -16,7 +17,6 @@ const fetchData = (endpoint, options = {}) => {
|
|||||||
const { method = 'GET', data, params = {}, headers = {} } = options;
|
const { method = 'GET', data, params = {}, headers = {} } = options;
|
||||||
|
|
||||||
// Получаем PHPSESSID
|
// Получаем PHPSESSID
|
||||||
//const sessionId = getCookie('PHPSESSID');
|
|
||||||
const isDev = import.meta.env.MODE === 'development';
|
const isDev = import.meta.env.MODE === 'development';
|
||||||
|
|
||||||
const sessionId = isDev
|
const sessionId = isDev
|
||||||
@ -24,14 +24,9 @@ const fetchData = (endpoint, options = {}) => {
|
|||||||
: getCookie('PHPSESSID');
|
: getCookie('PHPSESSID');
|
||||||
|
|
||||||
|
|
||||||
//const sessionId = 'bfcf0cc168ec34cf8e26950cf1038dc2';
|
|
||||||
|
|
||||||
//const usernameDev = process.env.VUE_APP_BASIC_AUTH_USER;
|
//const usernameDev = process.env.VUE_APP_BASIC_AUTH_USER;
|
||||||
//const passwordDev = process.env.VUE_APP_BASIC_AUTH_PASS;
|
//const passwordDev = process.env.VUE_APP_BASIC_AUTH_PASS;
|
||||||
//const authDev = btoa(`${usernameDev}:${passwordDev}`);
|
//const authDev = btoa(`${usernameDev}:${passwordDev}`);
|
||||||
|
|
||||||
// Проверяем окружение
|
|
||||||
//const isDev = process.env.NODE_ENV === 'development';
|
|
||||||
//let authHeaders = {};
|
//let authHeaders = {};
|
||||||
|
|
||||||
//Добавляем Basic Auth только в dev
|
//Добавляем Basic Auth только в dev
|
||||||
@ -45,24 +40,53 @@ const fetchData = (endpoint, options = {}) => {
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// Извлекаем путь из endpoint: например "/clients"
|
// Извлекаем путь из endpoint
|
||||||
const path = endpoint.replace(/^\//, '');
|
const path = endpoint.replace(/^\//, '');
|
||||||
|
|
||||||
const isFormData = data instanceof FormData;
|
console.log('[laravelApiService] fetchData вызван с endpoint:', endpoint);
|
||||||
const finalHeaders = { ...headers };
|
console.log('[laravelApiService] Тип data:', data && data.constructor.name);
|
||||||
|
console.log('[laravelApiService] data instanceof FormData:', data instanceof FormData);
|
||||||
|
|
||||||
|
const isFormData = data instanceof FormData;
|
||||||
if (isFormData) {
|
if (isFormData) {
|
||||||
delete finalHeaders['Content-Type'];
|
console.log('[laravelApiService] Используем directAxiosInstance для FormData');
|
||||||
|
|
||||||
|
const laravelApiUrl = 'http://llar.joyworkdev.ru/api';
|
||||||
|
|
||||||
|
// временный инстанс axios без Content-Type
|
||||||
|
const directAxiosInstance = axios.create({
|
||||||
|
baseURL: laravelApiUrl,
|
||||||
|
withCredentials: laravel_api_instance.defaults.withCredentials,
|
||||||
|
});
|
||||||
|
|
||||||
|
const finalHeaders = { ...headers };
|
||||||
|
if (sessionId) {
|
||||||
|
finalHeaders['X-Session-ID'] = sessionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
logMessage("Sending FormData directly to Laravel API: " + laravelApiUrl + endpoint);
|
||||||
|
return directAxiosInstance({
|
||||||
|
url: endpoint,
|
||||||
|
method,
|
||||||
|
data,
|
||||||
|
headers: finalHeaders,
|
||||||
|
params,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('[laravelApiService] Используем laravel_api_instance через deal/index.php');
|
||||||
|
|
||||||
|
const finalHeaders = { ...headers };
|
||||||
|
if (sessionId) {
|
||||||
|
finalHeaders['X-Session-ID'] = sessionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
return laravel_api_instance({
|
return laravel_api_instance({
|
||||||
//url: isDev ? '/deal/index.php' : endpoint,
|
|
||||||
url: '/deal/index.php',
|
url: '/deal/index.php',
|
||||||
method,
|
method,
|
||||||
data,
|
data,
|
||||||
headers: finalHeaders,
|
headers: finalHeaders,
|
||||||
params: {
|
params: {
|
||||||
//user_id: get_user_id(),
|
|
||||||
path,
|
path,
|
||||||
...params,
|
...params,
|
||||||
},
|
},
|
||||||
@ -70,6 +94,10 @@ const fetchData = (endpoint, options = {}) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function logMessage(message) {
|
||||||
|
console.log('[laravelApiService]', message);
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
fetchData,
|
fetchData,
|
||||||
};
|
};
|
||||||
@ -27,12 +27,14 @@ export const dealsApi = {
|
|||||||
* @returns {Promise} - Ответ сервера
|
* @returns {Promise} - Ответ сервера
|
||||||
*/
|
*/
|
||||||
uploadDocument(formData) {
|
uploadDocument(formData) {
|
||||||
|
console.log('[dealsApi] uploadDocument вызван с FormData:', formData);
|
||||||
|
|
||||||
return laravelApi.fetchData('/documents', {
|
return laravelApi.fetchData('/documents', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
data: formData,
|
data: formData,
|
||||||
headers: {
|
// headers: {
|
||||||
'Content-Type': 'multipart/form-data', // Важно для FormData!
|
// 'Content-Type': 'multipart/form-data', // Важно для FormData!
|
||||||
},
|
// },
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user