| | |
| | | // 转换后的下拉框选项,value 为围栏 id 字符串,label 为“围栏名称(主运营区名)”。 |
| | | const draftFenceOptions = computed(() => |
| | | draftFenceList.value |
| | | .filter((item) => item && (item.primaryAreaId || item.primaryAreaId === 0)) |
| | | .filter((item) => !!item) |
| | | .map((item) => ({ |
| | | label: item.primaryAreaName |
| | | ? `${item.electronicName}(${item.primaryAreaName})` |
| | |
| | | lng?: number |
| | | lat?: number |
| | | }) { |
| | | if (!draftFenceList.value || draftFenceList.value.length === 0) { |
| | | await loadDraftFenceList() |
| | | } |
| | | if ( |
| | | activeTab.value === 'point' |
| | | && isPointFormMode.value |
| | |
| | | async function handleEnterPointEdit() { |
| | | if (activeTab.value !== 'point') |
| | | return |
| | | // 兜底:进入点位编辑时若草稿围栏列表尚未加载,主动触发一次,避免下拉框为空。 |
| | | if (!draftFenceList.value || draftFenceList.value.length === 0) { |
| | | await loadDraftFenceList() |
| | | } |
| | | const targetId = String(selectedId.value || selectedItem.value?.id || '') |
| | | if (!targetId) |
| | | return |
| | |
| | | const selectedFence = selectedFenceId |
| | | ? draftFenceList.value.find(item => String(item.id) === selectedFenceId) |
| | | : null |
| | | if (selectedFence && selectedFence.primaryAreaId) { |
| | | electronicAreaId = String(selectedFence.primaryAreaId) |
| | | if (selectedFence) { |
| | | fenceId = String(selectedFence.id) |
| | | if (selectedFence.primaryAreaId) { |
| | | electronicAreaId = String(selectedFence.primaryAreaId) |
| | | } |
| | | else if (operationArea) { |
| | | electronicAreaId = operationArea.id?.toString() || '' |
| | | } |
| | | else { |
| | | electronicAreaId = '0' |
| | | } |
| | | } |
| | | else if (operationArea) { |
| | | electronicAreaId = operationArea.id?.toString() || '' |
| | |
| | | // 加载草稿 / 待启用围栏列表,用于点位关联围栏下拉框。 |
| | | async function loadDraftFenceList() { |
| | | try { |
| | | console.log('[draftFence] begin loadDraftFenceList, cityCode=', cityValue.value) |
| | | const res = await fetchDraftFenceList(cityValue.value || undefined) |
| | | console.log('[draftFence] fetchDraftFenceList response:', res) |
| | | if (res.code === 200 && Array.isArray(res.data)) { |
| | | draftFenceList.value = res.data |
| | | console.log('[draftFence] draftFenceList updated, count=', res.data.length, 'options=', draftFenceOptions.value.length) |
| | | return |
| | | } |
| | | console.warn('[draftFence] unexpected response, fallback to empty', res) |
| | | draftFenceList.value = [] |
| | | } |
| | | catch (error) { |
| | | console.error('加载草稿围栏列表失败:', error) |
| | | console.error('[draftFence] 加载草稿围栏列表失败:', error) |
| | | draftFenceList.value = [] |
| | | } |
| | | } |