Files
klp-oa/klp-ui/src/api/l2/plan.js
2025-10-10 14:40:29 +08:00

191 lines
4.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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