From d23eb6d53cb10362de2b961e77f45c27ec38196d Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期三, 04 二月 2026 15:03:46 +0800
Subject: [PATCH] #页面持久化
---
rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx | 48 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 42 insertions(+), 6 deletions(-)
diff --git a/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx b/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx
index 97b0746..f81d839 100644
--- a/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx
+++ b/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx
@@ -20,13 +20,48 @@
};
const fetchAreaNames = async () => {
- if (!record?.areas || record.areas.length === 0) return;
+ const areasData = record?.areaIds || record?.areas;
+ if (!areasData || areasData.length === 0) return;
setLoading(true);
try {
- const res = await request.post(`/warehouseAreas/many/${record.areas.join(',')}`);
+ // 鎻愬彇鎺掑簭淇℃伅鍜孖D
+ // Old format: [1, 2, 3] (array of integers)
+ // New format: [{id: 1, sort: 1}, {id: 2, sort: 2}] (array of objects)
+ const isObjectArray = areasData.length > 0 &&
+ typeof areasData[0] === 'object' &&
+ areasData[0] !== null &&
+ 'id' in areasData[0];
+
+ let areaIds = [];
+ let sortMap = new Map(); // 瀛樺偍 id -> sort 鐨勬槧灏�
+
+ if (isObjectArray) {
+ // 瀵硅薄鏁扮粍鏍煎紡锛屾彁鍙朓D鍜屾帓搴忎俊鎭�
+ areaIds = areasData.map(area => {
+ const id = area.id;
+ sortMap.set(id, area.sort || 0);
+ return id;
+ });
+ } else {
+ // 绾疘D鏁扮粍鏍煎紡
+ areaIds = areasData.map(id => Number(id));
+ }
+
+ const res = await request.post(`/warehouseAreas/many/${areaIds.join(',')}`);
if (res?.data?.code === 200) {
- setAreaNames(res.data.data || []);
+ let areas = res.data.data || [];
+
+ // 濡傛灉鏈夋帓搴忎俊鎭紝鎸夋帓搴忓�兼帓搴�
+ if (sortMap.size > 0) {
+ areas = areas.sort((a, b) => {
+ const sortA = sortMap.get(a.id) || 0;
+ const sortB = sortMap.get(b.id) || 0;
+ return sortA - sortB;
+ });
+ }
+
+ setAreaNames(areas);
}
} catch (error) {
console.error('鑾峰彇鍖哄煙鍚嶇О澶辫触:', error);
@@ -36,7 +71,8 @@
};
useEffect(() => {
- if (record?.areas && record.areas.length !== 0 && record.areas.length > 0) {
+ const areasData = record?.areaIds || record?.areas;
+ if (areasData && areasData.length > 0) {
fetchAreaNames();
}
}, [record]);
@@ -67,10 +103,10 @@
label={`+${areaNames.length - 1}`}
/>
)}
- {areaNames.length === 0 && record.areas && record.areas.length > 0 && (
+ {areaNames.length === 0 && (record?.areaIds || record?.areas) && (record?.areaIds || record?.areas).length > 0 && (
<Chip
size="small"
- label={`${record.areas.length} 涓尯鍩焋}
+ label={`${(record?.areaIds || record?.areas).length} 涓尯鍩焋}
/>
)}
</Stack>
--
Gitblit v1.9.1