✨ feat: 机组管理迁移l2代码
This commit is contained in:
191
klp-ui/src/api/l2/plan.js
Normal file
191
klp-ui/src/api/l2/plan.js
Normal 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
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user