diff --git a/src/components/mediaSelector/MediaSelector.vue b/src/components/mediaSelector/MediaSelector.vue index f39939f..0cd7125 100644 --- a/src/components/mediaSelector/MediaSelector.vue +++ b/src/components/mediaSelector/MediaSelector.vue @@ -37,6 +37,7 @@ v-model:visible="photoViewerVisible" :images="photoViewerImages" :items="photoViewerItems" + :viewer-z-index="props.viewerZIndex" :show-actions="showViewerActions === true" :submitting="isSubmitting" @change-type="changePhotoType" @@ -75,6 +76,7 @@ interface Props { showTypeLabel?: boolean; submit?: (photoItems: PhotoItem[]) => Promise; title?: string; + viewerZIndex?: number; } const props = withDefaults(defineProps(), { diff --git a/src/components/mediaSelector/MediaSelectorViewer.vue b/src/components/mediaSelector/MediaSelectorViewer.vue index e81628a..8193fa5 100644 --- a/src/components/mediaSelector/MediaSelectorViewer.vue +++ b/src/components/mediaSelector/MediaSelectorViewer.vue @@ -3,6 +3,7 @@ (); diff --git a/src/pages/fulfillment/OrderFulfillmentCreate.vue b/src/pages/fulfillment/OrderFulfillmentCreate.vue index 4d1a076..1e211ce 100644 --- a/src/pages/fulfillment/OrderFulfillmentCreate.vue +++ b/src/pages/fulfillment/OrderFulfillmentCreate.vue @@ -87,7 +87,7 @@ variant="outline" size="extra-small" :content="deliveredAtText || '此刻'" - @click="pickerVisible = true" + @click="openDeliveredAtPicker" /> { gap: 1rem; display: flex; min-height: 70vh; - padding-top: 1rem; flex-direction: column; .items { diff --git a/src/pages/product/ProductStockRecordDetail.vue b/src/pages/product/ProductStockRecordDetail.vue index 40ca437..9038034 100644 --- a/src/pages/product/ProductStockRecordDetail.vue +++ b/src/pages/product/ProductStockRecordDetail.vue @@ -44,7 +44,7 @@ - 基础单位 + @@ -54,7 +54,7 @@ - 基础单位 + @@ -157,6 +157,7 @@ const navBarStore = useNavBarStore(); const router = useRouter(); const userStore = useUserStore(); const record = ref(); +const baseUnitName = ref(""); const isLoading = ref(false); const isOperating = ref(false); const revokeVisible = ref(false); @@ -299,6 +300,15 @@ async function loadData(): Promise { try { const result = await ProductAPI.recordDetail(id); record.value = result; + baseUnitName.value = ""; + if (result.skuId) { + try { + const sku = await ProductAPI.skuDetail(result.skuId); + baseUnitName.value = sku.unitList?.find(unit => unit.isBase)?.name || sku.unitList?.[0]?.name || ""; + } catch { + baseUnitName.value = ""; + } + } } catch (error) { Message.error(getErrorMessage(error, "库存流水加载失败")); } finally { diff --git a/src/pages/product/component/ProductSkuEditor.vue b/src/pages/product/component/ProductSkuEditor.vue index e6cc41e..ec82d6f 100644 --- a/src/pages/product/component/ProductSkuEditor.vue +++ b/src/pages/product/component/ProductSkuEditor.vue @@ -82,6 +82,7 @@ v-model:photo-items="sku.photoItemList" title="SKU 图片(选填)" :edit-mode="true" + :viewer-z-index="skuEditorZIndex + 1" :upload="uploadPhotoList" /> diff --git a/src/pages/salesOrder/SalesOrderList.vue b/src/pages/salesOrder/SalesOrderList.vue index e656694..ae0559e 100644 --- a/src/pages/salesOrder/SalesOrderList.vue +++ b/src/pages/salesOrder/SalesOrderList.vue @@ -577,7 +577,21 @@ async function handleCustomerChange(): Promise { } async function toDetail(item: SalesOrder): Promise { - if (item.id) await router.push(`/management/sales-orders/${item.id}`); + if (item.id) await router.push({ + path: `/management/sales-orders/${item.id}`, + query: { transitionDepth: String(getCurrentRouteDepth() + 1) } + }); +} + +function getCurrentRouteDepth(): number { + const transitionDepth = Array.isArray(route.query.transitionDepth) + ? route.query.transitionDepth[0] + : route.query.transitionDepth; + const depth = Number(transitionDepth); + if (transitionDepth && Number.isInteger(depth) && 0 <= depth && depth <= 20) { + return depth; + } + return Number(route.meta.depth ?? 0); } async function toPayment(item: SalesOrder): Promise { diff --git a/src/pages/tag/TagList.vue b/src/pages/tag/TagList.vue index ba6b05c..d28c902 100644 --- a/src/pages/tag/TagList.vue +++ b/src/pages/tag/TagList.vue @@ -277,7 +277,7 @@ onUnmounted(() => { .filters { top: var(--app-nav-height); z-index: 10; - padding: .5rem; + padding: .5rem 1rem; position: sticky; .search {