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_LARAVEL_URL=https://llar.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_BASIC_AUTH_USER=adminlogin
|
||||
#VITE_BASIC_AUTH_PASS=adminpassword
|
||||
@ -88,6 +88,7 @@ const saveDealDoc = async () => {
|
||||
} catch (error) {
|
||||
console.error('Ошибка при загрузке документа:', error);
|
||||
alert('Произошла ошибка при загрузке документа');
|
||||
console.log('FormData entries:', [...formData.entries()]);
|
||||
}
|
||||
|
||||
// try {
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<img v-if="isImage" :src="fileUrl" alt="Превью документа" class="w-full h-full object-cover" />
|
||||
|
||||
<img v-else
|
||||
:src="require('@/shared/assets/images/deal/deal-doc-icon.png')"
|
||||
:src="defaultIconUrl"
|
||||
:alt="fileExtension + ' документ'"
|
||||
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 { computed } from "vue";
|
||||
|
||||
import defaultIconUrl from '@/shared/assets/images/deal/deal-doc-icon.png';
|
||||
|
||||
const props = defineProps({
|
||||
doc: {
|
||||
type: Object,
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { laravel_api_instance, get_user_id } from '@/shared/api';
|
||||
import axios from 'axios';
|
||||
|
||||
// Функция для получения куки по имени
|
||||
const getCookie = (name) => {
|
||||
@ -16,7 +17,6 @@ const fetchData = (endpoint, options = {}) => {
|
||||
const { method = 'GET', data, params = {}, headers = {} } = options;
|
||||
|
||||
// Получаем PHPSESSID
|
||||
//const sessionId = getCookie('PHPSESSID');
|
||||
const isDev = import.meta.env.MODE === 'development';
|
||||
|
||||
const sessionId = isDev
|
||||
@ -24,14 +24,9 @@ const fetchData = (endpoint, options = {}) => {
|
||||
: getCookie('PHPSESSID');
|
||||
|
||||
|
||||
//const sessionId = 'bfcf0cc168ec34cf8e26950cf1038dc2';
|
||||
|
||||
//const usernameDev = process.env.VUE_APP_BASIC_AUTH_USER;
|
||||
//const passwordDev = process.env.VUE_APP_BASIC_AUTH_PASS;
|
||||
//const authDev = btoa(`${usernameDev}:${passwordDev}`);
|
||||
|
||||
// Проверяем окружение
|
||||
//const isDev = process.env.NODE_ENV === 'development';
|
||||
//let authHeaders = {};
|
||||
|
||||
//Добавляем Basic Auth только в dev
|
||||
@ -45,24 +40,53 @@ const fetchData = (endpoint, options = {}) => {
|
||||
// }
|
||||
// }
|
||||
|
||||
// Извлекаем путь из endpoint: например "/clients"
|
||||
// Извлекаем путь из endpoint
|
||||
const path = endpoint.replace(/^\//, '');
|
||||
|
||||
const isFormData = data instanceof FormData;
|
||||
const finalHeaders = { ...headers };
|
||||
console.log('[laravelApiService] fetchData вызван с endpoint:', endpoint);
|
||||
console.log('[laravelApiService] Тип data:', data && data.constructor.name);
|
||||
console.log('[laravelApiService] data instanceof FormData:', data instanceof FormData);
|
||||
|
||||
const isFormData = data instanceof FormData;
|
||||
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({
|
||||
//url: isDev ? '/deal/index.php' : endpoint,
|
||||
url: '/deal/index.php',
|
||||
method,
|
||||
data,
|
||||
headers: finalHeaders,
|
||||
params: {
|
||||
//user_id: get_user_id(),
|
||||
path,
|
||||
...params,
|
||||
},
|
||||
@ -70,6 +94,10 @@ const fetchData = (endpoint, options = {}) => {
|
||||
});
|
||||
};
|
||||
|
||||
function logMessage(message) {
|
||||
console.log('[laravelApiService]', message);
|
||||
}
|
||||
|
||||
export default {
|
||||
fetchData,
|
||||
};
|
||||
@ -27,12 +27,14 @@ export const dealsApi = {
|
||||
* @returns {Promise} - Ответ сервера
|
||||
*/
|
||||
uploadDocument(formData) {
|
||||
console.log('[dealsApi] uploadDocument вызван с FormData:', formData);
|
||||
|
||||
return laravelApi.fetchData('/documents', {
|
||||
method: 'POST',
|
||||
data: formData,
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data', // Важно для FormData!
|
||||
},
|
||||
// headers: {
|
||||
// 'Content-Type': 'multipart/form-data', // Важно для FormData!
|
||||
// },
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user