diff --git a/src/modules/first-leg/views/FirstLegOrdersView.vue b/src/modules/first-leg/views/FirstLegOrdersView.vue index b4ac165..cadadc5 100644 --- a/src/modules/first-leg/views/FirstLegOrdersView.vue +++ b/src/modules/first-leg/views/FirstLegOrdersView.vue @@ -28,6 +28,7 @@ import { useFirstLegOrdersStore } from '@/modules/first-leg/store/firstLegOrders import { useTenantAdministrationStore } from '@/modules/tenant-management/public' import { useAuthStore } from '@/modules/auth/public' import { useUnsavedWorkRegistration } from '@/navigation/workspace-tabs/unsavedWork' +import { useWorkspaceTabsStore } from '@/navigation/workspace-tabs/workspaceTabs' import type { FirstLegPartyRole, FirstLegPartySnapshot } from '@/modules/first-leg/data/firstLegParties' import type { FirstLegCargoItem, FirstLegOrder, FirstLegOrderDraft } from '@/modules/first-leg/types/firstLegOrder' import type { MerchantInboundBilling } from '@/modules/first-leg/types/inboundBilling' @@ -45,6 +46,7 @@ import { createPriceEstimateBreakdown } from '@/modules/first-leg/utils/priceEst const store = useFirstLegOrdersStore() const tenantStore = useTenantAdministrationStore() +const workspace = useWorkspaceTabsStore() const auth = useAuthStore() const route = useRoute() const router = useRouter() @@ -581,6 +583,10 @@ onMounted(() => { void loadPageData() }) +watch(() => auth.isAuthenticated, (authenticated, wasAuthenticated) => { + if (authenticated && !wasAuthenticated && !isCreatePage.value) void loadPageData() +}) + watch(isCreatePage, (isCreate, wasCreate) => { if (!isCreate || wasCreate) return if (routeDraftId.value) return @@ -1500,7 +1506,12 @@ async function submitOrder() { const order = await store.submitSaved(savedOrder.id, knownCompanyAuditStatus) markEditorClean() editorOpen.value = false - if (isCreatePage.value) await router.push({ name: 'first-leg-orders' }) + if (isCreatePage.value) { + workspace.close(['first-leg-order-create', 'first-leg-order-edit']) + await router.push({ name: 'first-leg-orders' }) + ElMessage.success('订单已提交,等待平台审核') + return + } detailId.value = order.id detailOpen.value = true ElMessage.success('订单已提交,等待平台审核') diff --git a/src/modules/first-leg/views/QuickOrderView.vue b/src/modules/first-leg/views/QuickOrderView.vue index 38893b5..c877891 100644 --- a/src/modules/first-leg/views/QuickOrderView.vue +++ b/src/modules/first-leg/views/QuickOrderView.vue @@ -11,6 +11,7 @@ import { type MerchantPricingChannel, } from '@/modules/first-leg/api/firstLeg' import { useFirstLegOrdersStore } from '@/modules/first-leg/store/firstLegOrders' +import { useWorkspaceTabsStore } from '@/navigation/workspace-tabs/workspaceTabs' import type { FirstLegOrderDraft } from '@/modules/first-leg/types/firstLegOrder' import { createEmptyCargoItem } from '@/modules/first-leg/utils/firstLegOrder' @@ -55,6 +56,7 @@ interface QuickDraftResult { const router = useRouter() const auth = useAuthStore() const store = useFirstLegOrdersStore() +const workspace = useWorkspaceTabsStore() const loading = ref(false) const submitting = ref(false) const loadError = ref('') @@ -389,6 +391,8 @@ async function submitQuickOrder() { if (failures.length) ElMessage.error(`${failures.length} 张草稿生成失败:${failures[0].errorMessage || '草稿单生成失败'}`) else { activeBatchKey.value = '' + workspace.close(['first-leg-quick-order']) + await router.push({ name: 'first-leg-orders' }) ElMessage.success(`已生成 ${successes.length} 张草稿单`) } } catch (error) {