pl.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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 (
  22. data.data &&
  23. typeof data.data === 'object' &&
  24. data.id == null &&
  25. data.registerNo == null &&
  26. data.applyNo == null
  27. ) {
  28. return data.data
  29. }
  30. return data
  31. }
  32. export const fuelRegisterApi = {
  33. list: async (params = {}) => {
  34. const data = await db.get('/transport/vehicle-fuel-register/', {
  35. mineOnly: true,
  36. ...params
  37. })
  38. return unwrapList(data)
  39. },
  40. get: async (id) => unwrapEntity(await db.get(`/transport/vehicle-fuel-register/${id}`)),
  41. create: async (payload) =>
  42. unwrapEntity(
  43. await db.post('/transport/vehicle-fuel-register/', payload, {
  44. params: { mineOnly: true }
  45. })
  46. ),
  47. update: async (id, payload) =>
  48. unwrapEntity(
  49. await db.put(`/transport/vehicle-fuel-register/${id}`, payload, {
  50. params: { mineOnly: true }
  51. })
  52. ),
  53. cancel: (id, data = {}) =>
  54. db.post(`/transport/vehicle-fuel-register/${id}/cancel`, data, {
  55. params: { mineOnly: true }
  56. }),
  57. restore: (id) =>
  58. db.post(`/transport/vehicle-fuel-register/${id}/restore`, {}, {
  59. params: { mineOnly: true }
  60. })
  61. }
  62. function unwrapData(data) {
  63. if (!data || typeof data !== 'object') return data
  64. if (data.code != null && data.data !== undefined) return data.data
  65. return data
  66. }
  67. export const sitePlanApi = {
  68. history: async (params = {}) => {
  69. const data = unwrapData(await db.get('/transport/site-plan/history', params))
  70. return {
  71. date: data?.date || params.date,
  72. keyword: data?.keyword || '',
  73. records: Array.isArray(data?.records) ? data.records : []
  74. }
  75. },
  76. calendarCounts: async (month) => {
  77. const data = unwrapData(
  78. await db.get('/transport/site-plan/calendar-counts', { month })
  79. )
  80. return data?.counts && typeof data.counts === 'object' ? data.counts : {}
  81. },
  82. get: async (planId) => unwrapData(await db.get(`/transport/site-plan/${planId}`)),
  83. saveFeedback: (planId, payload) =>
  84. db.post(`/transport/site-plan/${planId}/feedback`, payload)
  85. }
  86. export const vehicleRechargeApplyApi = {
  87. lookupFuelCard: async (licensePlate) =>
  88. unwrapData(
  89. await db.get('/transport/vehicle-recharge-apply/fuel-card', {
  90. licensePlate,
  91. mineVehicles: true
  92. })
  93. ),
  94. list: async (params = {}) => {
  95. const data = await db.get('/transport/vehicle-recharge-apply/', {
  96. mineVehicles: true,
  97. ...params
  98. })
  99. return unwrapList(data)
  100. },
  101. get: async (id) =>
  102. unwrapEntity(
  103. await db.get(`/transport/vehicle-recharge-apply/${id}`, {
  104. mineVehicles: true
  105. })
  106. ),
  107. create: async (payload) =>
  108. unwrapEntity(
  109. await db.post('/transport/vehicle-recharge-apply/', payload, {
  110. params: { mineVehicles: true }
  111. })
  112. ),
  113. update: async (id, payload) =>
  114. unwrapEntity(
  115. await db.put(`/transport/vehicle-recharge-apply/${id}`, payload, {
  116. params: { mineVehicles: true }
  117. })
  118. ),
  119. submit: (id) =>
  120. db.post(
  121. `/transport/vehicle-recharge-apply/${id}/submit`,
  122. {},
  123. { params: { mineVehicles: true } }
  124. ),
  125. cancel: (id, data = {}) =>
  126. db.post(`/transport/vehicle-recharge-apply/${id}/cancel`, data, {
  127. params: { mineVehicles: true }
  128. }),
  129. withdraw: (id) =>
  130. db.post(
  131. `/transport/vehicle-recharge-apply/${id}/withdraw`,
  132. {},
  133. { params: { mineVehicles: true } }
  134. )
  135. }
  136. export const driverPlanApi = {
  137. history: async (params = {}) => {
  138. const data = unwrapData(await db.get('/transport/driver-plan/history', params))
  139. return {
  140. date: data?.date || params.date,
  141. records: Array.isArray(data?.records) ? data.records : []
  142. }
  143. },
  144. calendarCounts: async (month) => {
  145. const data = unwrapData(
  146. await db.get('/transport/driver-plan/calendar-counts', { month })
  147. )
  148. return data?.counts && typeof data.counts === 'object' ? data.counts : {}
  149. },
  150. get: async (planId) => unwrapData(await db.get(`/transport/driver-plan/${planId}`)),
  151. ensureCopySeq: async (planId) =>
  152. unwrapData(await db.post(`/transport/driver-plan/${planId}/ensure-copy-seq`, {})),
  153. saveFeedback: (planId, payload) =>
  154. db.post(`/transport/driver-plan/${planId}/feedback`, payload),
  155. saveDriverFeedback: (planId, payload) =>
  156. db.post(`/transport/driver-plan/${planId}/driver-feedback`, payload)
  157. }
  158. export { fetchVehicleOptions }
  159. export default fuelRegisterApi