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:
wuzilongandCursor committed 2026-09-13 11:45:43 +08:00
1 parent 7f9be18ab6
commit 74ed4ba534
7 files changed
+973 -14

No files matched your search

+91
View File
@@ -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