pl.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /**
  2. * 运输加油登记 API(复用门户 /transport/vehicle-fuel-register)
  3. */
  4. import db from '@/utils/dbRequest'
  5. import { fetchVehicleOptions } from '@/api/dbOptions'
  6. function unwrapList(data) {
  7. if (!data || typeof data !== 'object') {
  8. return { items: [], total: 0 }
  9. }
  10. // 兼容门户信封 { code, data: { items, total } }
  11. const payload =
  12. data.data && typeof data.data === 'object' && data.items == null
  13. ? data.data
  14. : data
  15. const items = payload.items || payload.rows || payload.list || []
  16. const total = Number(payload.total || 0)
  17. return { items: Array.isArray(items) ? items : [], total }
  18. }
  19. function unwrapEntity(data) {
  20. if (!data || typeof data !== 'object') return data
  21. if (data.data && typeof data.data === 'object' && data.id == null && data.registerNo == null) {
  22. return data.data
  23. }
  24. return data
  25. }
  26. export const fuelRegisterApi = {
  27. list: async (params = {}) => {
  28. const data = await db.get('/transport/vehicle-fuel-register/', {
  29. mineOnly: true,
  30. ...params
  31. })
  32. return unwrapList(data)
  33. },
  34. get: async (id) => unwrapEntity(await db.get(`/transport/vehicle-fuel-register/${id}`)),
  35. create: (payload) =>
  36. db.post('/transport/vehicle-fuel-register/', payload, {
  37. params: { mineOnly: true }
  38. }),
  39. update: (id, payload) =>
  40. db.put(`/transport/vehicle-fuel-register/${id}`, payload, {
  41. params: { mineOnly: true }
  42. }),
  43. cancel: (id) =>
  44. db.post(
  45. `/transport/vehicle-fuel-register/${id}/cancel`,
  46. {},
  47. { params: { mineOnly: true } }
  48. )
  49. }
  50. function unwrapData(data) {
  51. if (!data || typeof data !== 'object') return data
  52. if (data.code != null && data.data !== undefined) return data.data
  53. return data
  54. }
  55. export const sitePlanApi = {
  56. history: async (params = {}) => {
  57. const data = unwrapData(await db.get('/transport/site-plan/history', params))
  58. return {
  59. date: data?.date || params.date,
  60. keyword: data?.keyword || '',
  61. records: Array.isArray(data?.records) ? data.records : []
  62. }
  63. },
  64. get: async (planId) => unwrapData(await db.get(`/transport/site-plan/${planId}`)),
  65. saveFeedback: (planId, payload) =>
  66. db.post(`/transport/site-plan/${planId}/feedback`, payload)
  67. }
  68. export const driverPlanApi = {
  69. history: async (params = {}) => {
  70. const data = unwrapData(await db.get('/transport/driver-plan/history', params))
  71. return {
  72. date: data?.date || params.date,
  73. records: Array.isArray(data?.records) ? data.records : []
  74. }
  75. },
  76. get: async (planId) => unwrapData(await db.get(`/transport/driver-plan/${planId}`)),
  77. saveFeedback: (planId, payload) =>
  78. db.post(`/transport/driver-plan/${planId}/feedback`, payload),
  79. saveDriverFeedback: (planId, payload) =>
  80. db.post(`/transport/driver-plan/${planId}/driver-feedback`, payload)
  81. }
  82. export { fetchVehicleOptions }
  83. export default fuelRegisterApi