/** * 运输加油登记 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 && data.applyNo == 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 vehicleRechargeApplyApi = { list: async (params = {}) => { const data = await db.get('/transport/vehicle-recharge-apply/', { mineVehicles: true, ...params }) return unwrapList(data) }, get: async (id) => unwrapEntity( await db.get(`/transport/vehicle-recharge-apply/${id}`, { mineVehicles: true }) ), create: async (payload) => unwrapEntity( await db.post('/transport/vehicle-recharge-apply/', payload, { params: { mineVehicles: true } }) ), update: async (id, payload) => unwrapEntity( await db.put(`/transport/vehicle-recharge-apply/${id}`, payload, { params: { mineVehicles: true } }) ), submit: (id) => db.post( `/transport/vehicle-recharge-apply/${id}/submit`, {}, { params: { mineVehicles: true } } ), cancel: (id) => db.post( `/transport/vehicle-recharge-apply/${id}/cancel`, {}, { params: { mineVehicles: true } } ), withdraw: (id) => db.post( `/transport/vehicle-recharge-apply/${id}/withdraw`, {}, { params: { mineVehicles: true } } ) } 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