| | |
| | | || isFenceEditWorkflow.value |
| | | || isStationEditWorkflow.value |
| | | ); |
| | | const isCreateWorkflowActive = computed( |
| | | () => |
| | | pointCreateMode.value || fenceCreateMode.value || stationCreateMode.value |
| | | ); |
| | | const shouldHideLeftPanel = computed( |
| | | () => |
| | | pointCreateMode.value |
| | |
| | | uploadedImages.value = workflowState.uploadedImages; |
| | | cleanupPointEditMapState(); |
| | | } |
| | | |
| | | |
| | | function abortActiveCreateWorkflow() { |
| | | if (pointCreateMode.value) { |
| | | exitPointCreateMode(); |
| | | pointPanelClosed.value = true; |
| | | selectedId.value = ""; |
| | | showCreateMenu.value = false; |
| | | return true; |
| | | } |
| | | if (fenceCreateMode.value) { |
| | | exitFenceCreateMode(); |
| | | fencePanelClosed.value = true; |
| | | selectedId.value = ""; |
| | | fenceDetailData.value = null; |
| | | showCreateMenu.value = false; |
| | | return true; |
| | | } |
| | | if (stationCreateMode.value) { |
| | | exitStationCreateMode(); |
| | | stationPanelClosed.value = true; |
| | | selectedId.value = ""; |
| | | showCreateMenu.value = false; |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | async function handleDisabledCreateToolTrigger() { |
| | | if (!isCreateWorkflowActive.value) { |
| | | showCreateMenu.value = false; |
| | | return; |
| | | } |
| | | const targetLabel = pointCreateMode.value |
| | | ? "点位" |
| | | : fenceCreateMode.value |
| | | ? "围栏" |
| | | : "场站"; |
| | | const shouldAbort = await openConfirmDialog( |
| | | "是否中止新建流程?", |
| | | `中止后将退出当前${targetLabel}新建流程,未保存内容不会保留。`, |
| | | { |
| | | positiveText: "确定", |
| | | negativeText: "取消", |
| | | } |
| | | ); |
| | | if (!shouldAbort) return; |
| | | abortActiveCreateWorkflow(); |
| | | } |
| | | |
| | | async function toggleCreateMenu() { |
| | | if (createToolDisabledReason.value) { |
| | | if (isCreateWorkflowActive.value) { |
| | | await handleDisabledCreateToolTrigger(); |
| | | return; |
| | | } |
| | | showCreateMenu.value = false; |
| | | return; |
| | | } |