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 || "";
+}