feat: 机组管理迁移l2代码

This commit is contained in:
砂糖
2025-10-10 14:40:29 +08:00
parent b0b8416e2f
commit 0a366b054c
32 changed files with 5133 additions and 11 deletions

191
klp-ui/src/api/l2/plan.js Normal file
View File

@@ -0,0 +1,191 @@
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
})
}
}
}