✨ 完善配载确认、承运商组织过滤司机与地址展示

配载草稿确认生成正式单并优化详情/列表地址市区展示;运单调度等按承运商联系人所属组织筛选司机车辆;统一地图搜索结果与登录默认账号清理。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-23 18:35:27 +08:00
parent 694fe1a433
commit a919781d4f
19 changed files with 1701 additions and 309 deletions
+39
View File
@@ -0,0 +1,39 @@
/**
* 将高德 Geocoder 结果规范化为地图选址浮层列表数据。
* @param {Array|Object} geocodesOrResult geocodes 数组,或含 geocodes/location 的结果对象
* @param {string} keyword 搜索关键词兜底文案
* @returns {Array<{id: string|number, name: string, address: string, location: any, photo: string}>}
*/
export function normalizeMapSearchResults(geocodesOrResult, keyword = '') {
const fallback = String(keyword || '').trim();
let list = [];
if (Array.isArray(geocodesOrResult)) {
list = geocodesOrResult;
} else if (geocodesOrResult && typeof geocodesOrResult === 'object') {
if (Array.isArray(geocodesOrResult.geocodes)) {
list = geocodesOrResult.geocodes;
} else if (geocodesOrResult.location) {
list = [geocodesOrResult];
}
}
return list.map((item, index) => {
const buildingName = pickNamedField(item?.building);
const neighborhoodName = pickNamedField(item?.neighborhood);
const address = item?.formattedAddress || item?.address || fallback || '-';
return {
id: item?.id || index,
name: buildingName || neighborhoodName || address,
address,
location: item?.location,
photo: item?.photo || item?.image || '',
};
});
}
function pickNamedField(value) {
if (!value) return '';
if (typeof value === 'string') return value.trim();
if (typeof value === 'object' && value.name) return String(value.name).trim();
return '';
}