import request from '@/utils/http'
|
|
function normalizeText(value) {
|
return typeof value === 'string' ? value.trim() : value
|
}
|
|
function normalizeNumber(value, fallback = void 0) {
|
if (value === '' || value === null || value === undefined) {
|
return fallback
|
}
|
const numericValue = Number(value)
|
return Number.isFinite(numericValue) ? numericValue : fallback
|
}
|
|
function filterParams(params = {}, ignoredKeys = []) {
|
return Object.fromEntries(
|
Object.entries(params)
|
.filter(([key, value]) => {
|
if (ignoredKeys.includes(key)) return false
|
if (value === undefined || value === null) return false
|
if (typeof value === 'string' && value.trim() === '') return false
|
return true
|
})
|
.map(([key, value]) => [key, normalizeText(value)])
|
)
|
}
|
|
export function buildInStatisticItemPageParams(params = {}) {
|
return {
|
current: params.current || 1,
|
pageSize: params.pageSize || params.size || 20,
|
taskType: normalizeNumber(params.taskType, 1),
|
taskStatus: normalizeNumber(params.taskStatus, 100),
|
...filterParams(params, ['current', 'pageSize', 'size', 'taskType', 'taskStatus'])
|
}
|
}
|
|
export function fetchInStatisticItemPage(params = {}) {
|
return request.post({
|
url: '/inStatisticItem/page',
|
params: buildInStatisticItemPageParams(params)
|
})
|
}
|
|
export function fetchGetInStatisticItemDetail(id) {
|
return request.get({
|
url: `/stockStatistic/${id}`
|
})
|
}
|