191 lines
4.8 KiB
JavaScript
191 lines
4.8 KiB
JavaScript
|
|
import axios from 'axios'
|
|||
|
|
|
|||
|
|
// 格式化日期字段
|
|||
|
|
function formatDateFields(data) {
|
|||
|
|
const dateFields = ['timestamp', 'onlineDate', 'startDate', 'endDate', 'furInDate', 'furOutDate', 'createTime', 'updateTime'];
|
|||
|
|
|
|||
|
|
// 对每个日期字段进行格式化
|
|||
|
|
dateFields.forEach(field => {
|
|||
|
|
// 处理空值情况
|
|||
|
|
if (!data[field] || data[field] === '') {
|
|||
|
|
data[field] = null;
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 如果已经是ISO格式的日期字符串,保持不变
|
|||
|
|
if (typeof data[field] === 'string' && data[field].includes('T')) {
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 如果是日期对象,转换为ISO格式字符串
|
|||
|
|
if (data[field] instanceof Date) {
|
|||
|
|
data[field] = data[field].toISOString().slice(0, 19);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 如果是其他格式的日期字符串,转换为ISO格式
|
|||
|
|
if (typeof data[field] === 'string') {
|
|||
|
|
try {
|
|||
|
|
const date = new Date(data[field]);
|
|||
|
|
if (!isNaN(date.getTime())) {
|
|||
|
|
data[field] = date.toISOString().slice(0, 19);
|
|||
|
|
} else {
|
|||
|
|
data[field] = null;
|
|||
|
|
}
|
|||
|
|
} catch (e) {
|
|||
|
|
console.error(`日期格式化错误 (${field}):`, e);
|
|||
|
|
data[field] = null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
return data;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
export default function createFetch(url) {
|
|||
|
|
const l2Request = axios.create({
|
|||
|
|
baseURL: url,
|
|||
|
|
headers: {
|
|||
|
|
'Content-Type': 'application/json'
|
|||
|
|
},
|
|||
|
|
timeout: 10000,
|
|||
|
|
// 自定义响应数据转换,处理大整数ID精度问题
|
|||
|
|
transformResponse: [data => {
|
|||
|
|
// 在JSON解析前将所有id数值转换为字符串,避免大整数精度丢失
|
|||
|
|
const modifiedData = data.replace(/"id":\s*(\d+)/g, '"id": "$1"');
|
|||
|
|
return JSON.parse(modifiedData);
|
|||
|
|
}]
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
l2Request.interceptors.response.use(response => {
|
|||
|
|
return response.data
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
return {
|
|||
|
|
listPlan: (query) => {
|
|||
|
|
// 确保查询参数格式正确
|
|||
|
|
const params = {
|
|||
|
|
coilid: query.coilid || '',
|
|||
|
|
entryThick: query.entryThick || null,
|
|||
|
|
entryWidth: query.entryWidth || null,
|
|||
|
|
status: query.status || '',
|
|||
|
|
// 使用ISO格式的日期时间,不添加额外的时间部分
|
|||
|
|
startDate: query.startDate || '',
|
|||
|
|
endDate: query.endDate || ''
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/api/pdi/list',
|
|||
|
|
method: 'post',
|
|||
|
|
data: params
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
getPlan: (coilId) => l2Request({
|
|||
|
|
url: '/api/pdi/getByCoilId',
|
|||
|
|
method: 'get',
|
|||
|
|
params: {
|
|||
|
|
coilId: coilId
|
|||
|
|
}
|
|||
|
|
}),
|
|||
|
|
addPlan: (data) => {
|
|||
|
|
// 深拷贝数据,避免修改原始对象
|
|||
|
|
const formattedData = JSON.parse(JSON.stringify(data));
|
|||
|
|
|
|||
|
|
// 处理日期字段,确保格式正确
|
|||
|
|
formatDateFields(formattedData);
|
|||
|
|
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/api/pdi/add',
|
|||
|
|
method: 'post',
|
|||
|
|
data: formattedData
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
updatePlan: (data) => {
|
|||
|
|
// 深拷贝数据,避免修改原始对象
|
|||
|
|
const formattedData = JSON.parse(JSON.stringify(data));
|
|||
|
|
// 处理日期字段,确保格式正确
|
|||
|
|
formatDateFields(formattedData);
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/api/pdi/update',
|
|||
|
|
method: 'put',
|
|||
|
|
data: formattedData
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
delPlan: (data) => {
|
|||
|
|
// 确保ids是数组
|
|||
|
|
const idArray = Array.isArray(ids) ? ids : [ids];
|
|||
|
|
|
|||
|
|
// 始终保持ID为字符串类型,避免大整数精度问题
|
|||
|
|
const processedIds = idArray.map(id => String(id));
|
|||
|
|
|
|||
|
|
console.log('删除的ID:', processedIds);
|
|||
|
|
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/api/pdi/delete',
|
|||
|
|
method: 'post',
|
|||
|
|
data: processedIds
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
getSetup: (ID) => {
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/business/setup/' + ID,
|
|||
|
|
method: 'get',
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
addSetup: (data) => {
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/business/setup',
|
|||
|
|
method: 'post',
|
|||
|
|
data: data
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
listSetup: (query) => {
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/business/setup/list',
|
|||
|
|
method: 'post',
|
|||
|
|
data: query
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
getBendforce: (query) => {
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/business/bendforce',
|
|||
|
|
method: 'get',
|
|||
|
|
params: query
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
getFur: (steelGrade) => {
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/business/fur/' + steelGrade,
|
|||
|
|
method: 'get'
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
getMesh: (query) => {
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/business/mesh',
|
|||
|
|
method: 'get',
|
|||
|
|
params: query
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
getRollforce: (query) => {
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/business/rollforce',
|
|||
|
|
method: 'get',
|
|||
|
|
params: query
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
getTension: (query) => {
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/business/tension',
|
|||
|
|
method: 'get',
|
|||
|
|
params: query
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
getTl: (query) => {
|
|||
|
|
return l2Request({
|
|||
|
|
url: '/business/tl',
|
|||
|
|
method: 'get',
|
|||
|
|
params: query
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|