|
|
@@ -76,6 +76,19 @@ const selectedOrder = computed(() => store.selectedOrder);
|
|
|
const allOrders = computed(() => store.allOrders);
|
|
|
|
|
|
const selectedOrderNos = ref<string[]>([]);
|
|
|
+
|
|
|
+// 筛选切到单一订单时同步 store.selectedOrderNo,让既有 watch(store.selectedOrderNo)
|
|
|
+// 触发 loadChainFromDomain + sessionStorage 写入 + selectedOrderNos 自洽。
|
|
|
+// length === 0 / >= 2 时保留 store.selectedOrderNo 作为入口订单偏好,不主动加载。
|
|
|
+watch(
|
|
|
+ () => selectedOrderNos.value,
|
|
|
+ (next) => {
|
|
|
+ if (next.length === 1 && next[0] !== store.selectedOrderNo) {
|
|
|
+ store.selectOrderForChainByCode(next[0]);
|
|
|
+ }
|
|
|
+ },
|
|
|
+);
|
|
|
+
|
|
|
const selectedCustomerTypes = ref<string[]>([]);
|
|
|
const selectedRegions = ref<string[]>([]);
|
|
|
const selectedProductLines = ref<string[]>([]);
|
|
|
@@ -106,6 +119,11 @@ const visibleStageKeys = computed<OrderNodeKey[]>(() => {
|
|
|
});
|
|
|
|
|
|
const detailOrder = computed<SalesOrderExecution | null>(() => {
|
|
|
+ // 单订单态:直接返回筛选命中的那一单,确保顶部 summary / L1 矩阵 / 各阶段面板与 chip 一致。
|
|
|
+ if (filteredChainOrders.value.length === 1) {
|
|
|
+ return filteredChainOrders.value[0];
|
|
|
+ }
|
|
|
+ // 多订单态:若入口订单仍在筛选中则作为摘要锚点;否则 fallback 到第 1 单。
|
|
|
if (selectedOrder.value && filteredChainOrders.value.some((o) => o.soNo === selectedOrder.value!.soNo)) {
|
|
|
return selectedOrder.value;
|
|
|
}
|