diff --git a/src/pages/product/ProductDetail.vue b/src/pages/product/ProductDetail.vue
index 1e2e931..8d862c4 100644
--- a/src/pages/product/ProductDetail.vue
+++ b/src/pages/product/ProductDetail.vue
@@ -114,63 +114,7 @@
销售单位
采购、销售和库存操作共用
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -185,14 +129,14 @@ import ProductAPI from "@/api/ProductAPI";
import NavBarActionMenu from "@/components/NavBarActionMenu.vue";
import MediaSelector from "@/components/mediaSelector/MediaSelector.vue";
import ProductProfile from "@/pages/product/component/ProductProfile.vue";
+import ProductSkuUnitList from "@/pages/product/component/ProductSkuUnitList.vue";
import { useNavBarStore } from "@/store/navBarStore";
import type { NavBarAction } from "@/types/NavBarAction";
import type { PhotoItem } from "@/types/Photo";
-import type { Product, ProductSku, ProductSkuUnit } from "@/types/Product";
+import type { Product, ProductSku } from "@/types/Product";
import { getAttachmentReadURL } from "@/utils/attachment";
import { getErrorMessage } from "@/utils/error";
import {
- formatProductAmount,
getProductPhotoURL,
getProductQuantityText,
getProductStatusText
@@ -286,14 +230,6 @@ function closeSkuDetail(): void {
skuDetailVisible.value = false;
}
-function getUnitDescription(unit: ProductSkuUnit, sku: ProductSku): string {
- if (unit.isBase) {
- return "";
- }
- const baseUnitName = sku.unitList?.find(item => item.isBase)?.name || "基础单位";
- return `1 ${unit.name || "单位"} = ${getProductQuantityText(unit.baseQuantityPerUnit)} ${baseUnitName}`;
-}
-
function getCurrentRouteDepth(): number {
const transitionDepth = Array.isArray(route.query.transitionDepth)
? route.query.transitionDepth[0]
@@ -380,7 +316,7 @@ onUnmounted(() => navBarStore.clearRight());
}
.sku-popup {
- padding: 1rem 0 calc(1rem + env(safe-area-inset-bottom, 0px));
+ padding: 0 0 calc(1rem + env(safe-area-inset-bottom, 0px));
max-height: 100%;
overflow-y: auto;
@@ -406,40 +342,6 @@ onUnmounted(() => navBarStore.clearRight());
}
}
- .items {
-
- :deep(.t-cell-group) {
- margin: 0;
- }
-
- .item {
-
- .title {
- gap: .5rem;
- display: flex;
- align-items: center;
-
- .transfer {
- color: var(--td-text-color-secondary);
- font-size: .75rem;
- line-height: 1.5;
- }
- }
- }
-
- .note {
-
- .price {
- color: var(--td-error-color);
- font-weight: 600;
- }
- }
-
- .description {
- gap: .5rem;
- display: flex;
- }
- }
}
}
diff --git a/src/pages/product/component/ProductSkuEditor.vue b/src/pages/product/component/ProductSkuEditor.vue
index e02fe83..e6cc41e 100644
--- a/src/pages/product/component/ProductSkuEditor.vue
+++ b/src/pages/product/component/ProductSkuEditor.vue
@@ -1,30 +1,14 @@
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
@@ -59,28 +51,7 @@
@right-button-click="closeEditor"
>
-
+
import { BottomPopup } from "timi-tdesign-mobile";
import type { ProductType } from "@/types/Product";
-import type { ProductSkuForm, ProductSpecForm, ProductSkuUnitForm } from "@/types/ProductEditor";
+import type { ProductSkuForm, ProductSpecForm } from "@/types/ProductEditor";
import MediaSelector from "@/components/mediaSelector/MediaSelector.vue";
-import { formatProductAmount, getProductSkuSpecEntries, parseProductAmount } from "@/utils/product";
+import ProductSkuUnitList from "@/pages/product/component/ProductSkuUnitList.vue";
import { uploadPhotoList } from "@/utils/photo";
defineOptions({ name: "ProductSkuEditor" });
@@ -168,7 +130,6 @@ const emit = defineEmits<{
const editorVisible = ref(false);
const skuEditorZIndex = 12000;
const photoUrlList = computed(() => sku.value.photoItemList.map(item => item.url));
-const skuSpecEntries = computed(() => getProductSkuSpecEntries(sku.value, props.specList));
const skuTitle = computed(() => sku.value.name?.trim() || sku.value.specSummary?.trim() || (props.specList.length ? `SKU 明细 ${props.skuIndex + 1}` : "默认 SKU"));
function openEditor(): void {
@@ -193,14 +154,6 @@ function setSkuStatus(value: boolean | string | number): void {
sku.value.status = active ? "ACTIVE" : "INACTIVE";
}
-function getUnitSummary(unit: ProductSkuUnitForm): string {
- const quantityText = unit.isBase ? "基础单位" : `1 ${unit.name || "单位"} = ${unit.baseQuantityPerUnit || "?"} 基础单位`;
- const salePrice = parseProductAmount(unit.salePriceText);
- const priceText = salePrice === undefined ? "未定价" : `¥${formatProductAmount(salePrice)}`;
- const saleText = unit.allowSale ? "可销售" : "停售";
- const purchaseText = unit.allowPurchase ? "可采购" : "禁采购";
- return `${quantityText} · ${priceText} · ${saleText} · ${purchaseText}`;
-}