提交
This commit is contained in:
1 parent
8be55c08e9
commit
a903fcf6d4
75 files changed
+9547
-124
No files matched your search
@@ -0,0 +1,124 @@
|
||||
/**
|
||||
* 运输模块 API(/transport/*)
|
||||
* 协议与报销侧 bx HTTP 一致:有信封时 code===0;直出 { list, total } 亦可。
|
||||
*/
|
||||
import { request, parseResponseJson } from '@/utils/request'
|
||||
|
||||
function unwrap(res) {
|
||||
const body = parseResponseJson(res)
|
||||
if (!body || typeof body !== 'object') {
|
||||
throw new Error('接口响应异常')
|
||||
}
|
||||
if (body.code != null && body.code !== 0) {
|
||||
throw new Error(body.msg || body.message || '请求失败')
|
||||
}
|
||||
return body.data != null ? body.data : body
|
||||
}
|
||||
|
||||
async function get(url, params = {}) {
|
||||
const res = await request({ url, method: 'GET', data: params, params })
|
||||
return unwrap(res)
|
||||
}
|
||||
|
||||
async function post(url, data = {}) {
|
||||
const res = await request({ url, method: 'POST', data })
|
||||
return unwrap(res)
|
||||
}
|
||||
|
||||
async function patch(url, data = {}) {
|
||||
const res = await request({ url, method: 'PATCH', data })
|
||||
return unwrap(res)
|
||||
}
|
||||
|
||||
function pageParams(query = {}) {
|
||||
const { pageNum, page, pageSize, ...rest } = query
|
||||
const params = {
|
||||
page: pageNum ?? page ?? 1,
|
||||
pageSize: pageSize ?? 20
|
||||
}
|
||||
Object.keys(rest).forEach((k) => {
|
||||
if (rest[k] != null && rest[k] !== '') params[k] = rest[k]
|
||||
})
|
||||
return params
|
||||
}
|
||||
|
||||
function normalizeList(data) {
|
||||
if (Array.isArray(data)) return { rows: data, total: data.length }
|
||||
const d = data || {}
|
||||
return {
|
||||
rows: d.rows || d.list || [],
|
||||
total: d.total ?? 0
|
||||
}
|
||||
}
|
||||
|
||||
// ── 运输计划 ──
|
||||
|
||||
export async function listPlans(query = {}) {
|
||||
return normalizeList(await get('/transport/plan/', pageParams(query)))
|
||||
}
|
||||
|
||||
export async function getPlan(id) {
|
||||
return get(`/transport/plan/${String(id)}`)
|
||||
}
|
||||
|
||||
export async function getPlanArrangeInfo(id) {
|
||||
return get(`/transport/plan/${String(id)}/arrange-info`)
|
||||
}
|
||||
|
||||
export async function updateProductCerts(id, products) {
|
||||
return patch(`/transport/plan/${String(id)}/product-certs`, { products })
|
||||
}
|
||||
|
||||
export async function setHazardCertReady(id, ready) {
|
||||
return patch(`/transport/plan/${String(id)}/hazard-cert-ready`, { ready: !!ready })
|
||||
}
|
||||
|
||||
export async function archivePlan(id, body) {
|
||||
return post(`/transport/plan/${String(id)}/archive`, body || {})
|
||||
}
|
||||
|
||||
export async function arrangeTransport(planId, data) {
|
||||
return post(`/transport/order/arrange/${String(planId)}`, data)
|
||||
}
|
||||
|
||||
// ── 车辆 / 驾押(安排运输选人)──
|
||||
|
||||
export async function listVehicles(query = {}) {
|
||||
return normalizeList(await get('/transport/vehicle', pageParams(query)))
|
||||
}
|
||||
|
||||
export async function listPersonnel(query = {}) {
|
||||
return normalizeList(await get('/transport/personnel', pageParams(query)))
|
||||
}
|
||||
|
||||
// ── 运费结算 ──
|
||||
|
||||
export async function listFreight(query = {}) {
|
||||
return normalizeList(await get('/transport/freight/', pageParams(query)))
|
||||
}
|
||||
|
||||
export async function getFreight(id) {
|
||||
return get(`/transport/freight/${String(id)}`)
|
||||
}
|
||||
|
||||
export async function listUnsettledPlans(query = {}) {
|
||||
return normalizeList(await get('/transport/freight/unsettled-plans', pageParams(query)))
|
||||
}
|
||||
|
||||
export async function createFreight(data) {
|
||||
return post('/transport/freight/', data)
|
||||
}
|
||||
|
||||
/** 提交审批(需审批人 ID,复杂选人建议 Web;小程序可传已选 ID) */
|
||||
export async function submitFreightApproval(id, data) {
|
||||
return post(`/transport/freight/${String(id)}/submit-approval`, data)
|
||||
}
|
||||
|
||||
export async function processFreightApproval(approvalId, data) {
|
||||
return post(`/transport/freight/approval/${String(approvalId)}`, data)
|
||||
}
|
||||
|
||||
export async function getFreightApprovalFlow(id) {
|
||||
const data = await get(`/transport/freight/${String(id)}/approval-flow`)
|
||||
return Array.isArray(data) ? data : []
|
||||
}
|
||||
Reference in new issue
Block a user