pl.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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: async (payload) =>
  36. unwrapEntity(
  37. await db.post('/transport/vehicle-fuel-register/', payload, {
  38. params: { mineOnly: true }
  39. })
  40. ),
  41. update: async (id, payload) =>
  42. unwrapEntity(
  43. await db.put(`/transport/vehicle-fuel-register/${id}`, payload, {
  44. params: { mineOnly: true }
  45. })
  46. ),
  47. cancel: (id) =>
  48. db.post(
  49. `/transport/vehicle-fuel-register/${id}/cancel`,
  50. {},
  51. { params: { mineOnly: true } }
  52. )
  53. }
  54. function unwrapData(data) {
  55. if (!data || typeof data !== 'object') return data
  56. if (data.code != null && data.data !== undefined) return data.data
  57. return data
  58. }
  59. export const sitePlanApi = {
  60. history: async (params = {}) => {
  61. const data = unwrapData(await db.get('/transport/site-plan/history', params))
  62. return {
  63. date: data?.date || params.date,
  64. keyword: data?.keyword || '',
  65. records: Array.isArray(data?.records) ? data.records : []
  66. }
  67. },
  68. calendarCounts: async (month) => {
  69. const data = unwrapData(
  70. await db.get('/transport/site-plan/calendar-counts', { month })
  71. )
  72. return data?.counts && typeof data.counts === 'object' ? data.counts : {}
  73. },
  74. get: async (planId) => unwrapData(await db.get(`/transport/site-plan/${planId}`)),
  75. saveFeedback: (planId, payload) =>
  76. db.post(`/transport/site-plan/${planId}/feedback`, payload)
  77. }
  78. export const driverPlanApi = {
  79. history: async (params = {}) => {
  80. const data = unwrapData(await db.get('/transport/driver-plan/history', params))
  81. return {
  82. date: data?.date || params.date,
  83. records: Array.isArray(data?.records) ? data.records : []
  84. }
  85. },
  86. calendarCounts: async (month) => {
  87. const data = unwrapData(
  88. await db.get('/transport/driver-plan/calendar-counts', { month })
  89. )
  90. return data?.counts && typeof data.counts === 'object' ? data.counts : {}
  91. },
  92. get: async (planId) => unwrapData(await db.get(`/transport/driver-plan/${planId}`)),
  93. saveFeedback: (planId, payload) =>
  94. db.post(`/transport/driver-plan/${planId}/feedback`, payload),
  95. saveDriverFeedback: (planId, payload) =>
  96. db.post(`/transport/driver-plan/${planId}/driver-feedback`, payload)
  97. }
  98. export { fetchVehicleOptions }
  99. export default fuelRegisterApi