feat(miniprogram): add driver-plan list and receipt pages
Wire workbench menu, login APIs, calendar list without plate search, and native receipt detail aligned with site-plan shell. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
7f9be18ab6
commit
74ed4ba534
7 files changed
+973
-14
No files matched your search
@@ -0,0 +1,91 @@
|
||||
/**
|
||||
* 运输加油登记 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: (payload) =>
|
||||
db.post('/transport/vehicle-fuel-register/', payload, {
|
||||
params: { mineOnly: true }
|
||||
}),
|
||||
update: (id, payload) =>
|
||||
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 : []
|
||||
}
|
||||
},
|
||||
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 : []
|
||||
}
|
||||
},
|
||||
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
|
||||
Reference in new issue
Block a user