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 buildOutStatisticPageParams(params = {}) {
|
return {
|
current: params.current || 1,
|
pageSize: params.pageSize || params.size || 20,
|
taskType: normalizeNumber(params.taskType, 101),
|
taskStatus: normalizeNumber(params.taskStatus, 200),
|
...filterParams(params, ['current', 'pageSize', 'size', 'taskType', 'taskStatus'])
|
}
|
}
|
|
export function fetchOutStatisticPage(params = {}) {
|
return request.post({
|
url: '/outStatistic/page',
|
params: buildOutStatisticPageParams(params)
|
})
|
}
|