108 lines
3.3 KiB
JavaScript
108 lines
3.3 KiB
JavaScript
/**
|
||
* 运输加油登记 API(复用门户 /transport/vehicle-fuel-register)
|
||
*/
|
||
import db from '@/utils/dbRequest'
|
||
import { fetchVehicleOptions } from '@/api/dbOptions'
|
||
|
||
function unwrapList(data) {
|
||
if (!data || typeof data !== 'object') {
|
||
return { items: [], total: 0 }
|
||
}
|
||
// 兼容门户信封 { code, data: { items, total } }
|
||
const payload =
|
||
data.data && typeof data.data === 'object' && data.items == null
|
||
? data.data
|
||
: data
|
||
const items = payload.items || payload.rows || payload.list || []
|
||
const total = Number(payload.total || 0)
|
||
return { items: Array.isArray(items) ? items : [], total }
|
||
}
|
||
|
||
function unwrapEntity(data) {
|
||
if (!data || typeof data !== 'object') return data
|
||
if (data.data && typeof data.data === 'object' && data.id == null && data.registerNo == null) {
|
||
return data.data
|
||
}
|
||
return data
|
||
}
|
||
|
||
export const fuelRegisterApi = {
|
||
list: async (params = {}) => {
|
||
const data = await db.get('/transport/vehicle-fuel-register/', {
|
||
mineOnly: true,
|
||
...params
|
||
})
|
||
return unwrapList(data)
|
||
},
|
||
get: async (id) => unwrapEntity(await db.get(`/transport/vehicle-fuel-register/${id}`)),
|
||
create: async (payload) =>
|
||
unwrapEntity(
|
||
await db.post('/transport/vehicle-fuel-register/', payload, {
|
||
params: { mineOnly: true }
|
||
})
|
||
),
|
||
update: async (id, payload) =>
|
||
unwrapEntity(
|
||
await db.put(`/transport/vehicle-fuel-register/${id}`, payload, {
|
||
params: { mineOnly: true }
|
||
})
|
||
),
|
||
cancel: (id) =>
|
||
db.post(
|
||
`/transport/vehicle-fuel-register/${id}/cancel`,
|
||
{},
|
||
{ params: { mineOnly: true } }
|
||
)
|
||
}
|
||
|
||
function unwrapData(data) {
|
||
if (!data || typeof data !== 'object') return data
|
||
if (data.code != null && data.data !== undefined) return data.data
|
||
return data
|
||
}
|
||
|
||
export const sitePlanApi = {
|
||
history: async (params = {}) => {
|
||
const data = unwrapData(await db.get('/transport/site-plan/history', params))
|
||
return {
|
||
date: data?.date || params.date,
|
||
keyword: data?.keyword || '',
|
||
records: Array.isArray(data?.records) ? data.records : []
|
||
}
|
||
},
|
||
calendarCounts: async (month) => {
|
||
const data = unwrapData(
|
||
await db.get('/transport/site-plan/calendar-counts', { month })
|
||
)
|
||
return data?.counts && typeof data.counts === 'object' ? data.counts : {}
|
||
},
|
||
get: async (planId) => unwrapData(await db.get(`/transport/site-plan/${planId}`)),
|
||
saveFeedback: (planId, payload) =>
|
||
db.post(`/transport/site-plan/${planId}/feedback`, payload)
|
||
}
|
||
|
||
export const driverPlanApi = {
|
||
history: async (params = {}) => {
|
||
const data = unwrapData(await db.get('/transport/driver-plan/history', params))
|
||
return {
|
||
date: data?.date || params.date,
|
||
records: Array.isArray(data?.records) ? data.records : []
|
||
}
|
||
},
|
||
calendarCounts: async (month) => {
|
||
const data = unwrapData(
|
||
await db.get('/transport/driver-plan/calendar-counts', { month })
|
||
)
|
||
return data?.counts && typeof data.counts === 'object' ? data.counts : {}
|
||
},
|
||
get: async (planId) => unwrapData(await db.get(`/transport/driver-plan/${planId}`)),
|
||
saveFeedback: (planId, payload) =>
|
||
db.post(`/transport/driver-plan/${planId}/feedback`, payload),
|
||
saveDriverFeedback: (planId, payload) =>
|
||
db.post(`/transport/driver-plan/${planId}/driver-feedback`, payload)
|
||
}
|
||
|
||
export { fetchVehicleOptions }
|
||
|
||
export default fuelRegisterApi
|