diff --git a/frontend/mini-app/pages/manager/approve-detail/approve-detail.js b/frontend/mini-app/pages/manager/approve-detail/approve-detail.js index 3ec939b..a956638 100644 --- a/frontend/mini-app/pages/manager/approve-detail/approve-detail.js +++ b/frontend/mini-app/pages/manager/approve-detail/approve-detail.js @@ -60,6 +60,28 @@ function getStatusBadge(status) { return map[status] || "badge-gray"; } +var LOGISTICS_STATUS_MAP = { + pending: '待接单', accepted: '已接单', picked_up: '已揾货', + canceled: '已取消', +}; + +var SOURCE_PLATFORM_MAP = { + driver: '司机上报', backend: '后台录入', kuaidi100: '快递100', + third_party: '第三方', manual: '手动录入', +}; + +function mapLogisticsStatus(value) { return LOGISTICS_STATUS_MAP[value] || value || '-'; } +function mapSourcePlatform(value) { return SOURCE_PLATFORM_MAP[value] || value || ''; } + +function getExpressCompanyName(value) { + var raw = (value || "").toString().trim(); + if (!raw) return ""; + for (var i = 0; i < EXPRESS_COMPANY_OPTIONS.length; i++) { + if (EXPRESS_COMPANY_OPTIONS[i].code === raw || EXPRESS_COMPANY_OPTIONS[i].name === raw) return EXPRESS_COMPANY_OPTIONS[i].name; + } + return raw; +} + function fmt(v) { return Number(v || 0).toFixed(2); } /** 计算总需求面积:0.35m × 0.55m × 500 = 96.25 m² */ @@ -87,6 +109,8 @@ Page({ products: [], approveLogs: [], logistics: null, + logisticsStatusText: "", + logisticsExpressName: "", traceList: [], factoryList: [], selectedFactoryIndex: -1, @@ -232,17 +256,17 @@ Page({ profitArrow: profit >= 0 ? "↑" : "↓", feeItems: feeItems, rawItems: data.items || [], + expressCompanyName: getExpressCompanyName(data.express_company), }), products: products, approveLogs: approveLogs, logistics: logistics, - traceList: [], + logisticsStatusText: logistics ? mapLogisticsStatus(logistics.status) : "", + logisticsExpressName: logistics ? getExpressCompanyName(logistics.express_company) : "", + traceList: (data.logistics_info && data.logistics_info.trace_list || []).map(function(item) { + return Object.assign({}, item, { source_platform_text: mapSourcePlatform(item.source_platform) }); + }), }); - - // 加载物流轨迹:有物流任务单号或订单单号都加载 - if ((logistics && logistics.tracking_number) || (data && data.tracking_number)) { - this.loadTrace(); - } } catch (error) { this.setData({ message: error.message || "加载失败" }); } finally { diff --git a/frontend/mini-app/pages/manager/approve-detail/approve-detail.wxml b/frontend/mini-app/pages/manager/approve-detail/approve-detail.wxml index ffcd67d..09826ee 100644 --- a/frontend/mini-app/pages/manager/approve-detail/approve-detail.wxml +++ b/frontend/mini-app/pages/manager/approve-detail/approve-detail.wxml @@ -148,23 +148,23 @@ 填写快递单号 - + 物流信息 修改单号 - + 快递公司 - {{logistics.express_company}} + {{logisticsExpressName}} 快递单号 {{logistics.tracking_number}} - + 任务状态 - {{logistics.task_status}} + {{logisticsStatusText}} @@ -173,13 +173,38 @@ {{item.node_time}} {{item.node_desc}} - {{item.source_platform}} + {{item.source_platform_text}} 暂无物流轨迹 + + + 快递信息 + + 快递公司 + {{orderInfo.expressCompanyName}} + + + 快递单号 + {{orderInfo.tracking_number}} + + + + + + + {{item.node_time}} + {{item.node_desc}} + {{item.source_platform_text}} + + + + 暂无物流轨迹 + + 马甸工厂自发 — 已填写快递单号({{orderInfo.tracking_number}}),审批通过后跳过工厂下发 diff --git a/frontend/mini-app/pages/manager/approve-detail/approve-detail.wxss b/frontend/mini-app/pages/manager/approve-detail/approve-detail.wxss index fb29443..9f3f5f1 100644 --- a/frontend/mini-app/pages/manager/approve-detail/approve-detail.wxss +++ b/frontend/mini-app/pages/manager/approve-detail/approve-detail.wxss @@ -191,9 +191,9 @@ .field-group:last-child { margin-bottom: 0; } .field-label { font-size: 24rpx; color: #64748b; font-weight: 600; margin-bottom: 8rpx; } .field-input { - width: 100%; padding: 16rpx 20rpx; background: #f8fafc; + width: 100%; height: 72rpx; padding: 0 20rpx; background: #f8fafc; border: 1rpx solid #d1d5db; border-radius: 12rpx; - font-size: 28rpx; color: #0f172a; box-sizing: border-box; + font-size: 28rpx; color: #0f172a; line-height: 72rpx; box-sizing: border-box; } /* 取消按钮 */ @@ -299,7 +299,8 @@ } .edit-items-scroll { - max-height: 60vh; + flex: 1; + overflow-y: auto; margin-top: 16rpx; } diff --git a/frontend/web-sales/src/utils/expressCompanyOptions.js b/frontend/web-sales/src/utils/expressCompanyOptions.js index 5f28270..ec24a49 100644 --- a/frontend/web-sales/src/utils/expressCompanyOptions.js +++ b/frontend/web-sales/src/utils/expressCompanyOptions.js @@ -1 +1,35 @@ - \ No newline at end of file +export const expressCompanyOptions = [ + { name: "顺丰速运", code: "shunfeng" }, + { name: "顺丰快运", code: "shunfengkuaiyun" }, + { name: "圆通速递", code: "yuantong" }, + { name: "中通快递", code: "zhongtong" }, + { name: "中通快运", code: "zhongtongkuaiyun" }, + { name: "韵达快递", code: "yunda" }, + { name: "韵达快运", code: "yundakuaiyun" }, + { name: "申通快递", code: "shentong" }, + { name: "极兔速递", code: "jtexpress" }, + { name: "安能物流", code: "annengwuliu" }, + { name: "德邦快递", code: "debangwuliu" }, + { name: "德邦物流", code: "debangwuliu" }, + { name: "壹米滴答", code: "yimidida" }, + { name: "百世快运", code: "baishiwuliu" }, + { name: "跨越速运", code: "kuayue" }, + { name: "京东快运", code: "jingdongkuaiyun" }, + { name: "天地华宇", code: "tiandihuayu" }, + { name: "顺心捷达", code: "sxjdfreight" }, + { name: "优速快递", code: "yousuwuliu" }, + { name: "佳怡物流", code: "jiayiwuliu" }, + { name: "佳运美物流", code: "jiayunmeiwuliu" }, + { name: "信丰物流", code: "xinfengwuliu" }, + { name: "速尔快递", code: "suer" }, + { name: "品骏快递", code: "pjbest" }, + { name: "龙邦快递", code: "lbex" }, + { name: "京东物流", code: "jd" }, + { name: "EMS", code: "ems" }, + { name: "宅急送", code: "zhaijisong" }, +]; + +export function getExpressCompanyName(value) { + const option = expressCompanyOptions.find((item) => item.code === value || item.name === value); + return option?.name || value || ""; +}