| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- /**
- * 运输模块 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 : []
- }
|