fix: default intake sku sales status to 销售
This commit is contained in:
parent
30b1c5740d
commit
071021fe54
@ -24,6 +24,7 @@ import { isSeriesComponentStockLinkedSkuItem } from "./skuDerivationHelpers";
|
||||
import {
|
||||
getEditableInstallationMode,
|
||||
INSTALL_METHOD_OPTIONS,
|
||||
normalizeSkuSalesStatus,
|
||||
SKU_BOARD_MATERIAL_TYPE_OPTIONS,
|
||||
SKU_COLUMN_DEFAULT_WIDTHS,
|
||||
SKU_SALES_STATUS_OPTIONS,
|
||||
@ -469,7 +470,7 @@ export function SkuInfoRow({
|
||||
>
|
||||
<InlineSelect
|
||||
ariaLabel={`${item.model || `SKU ${index + 1}`} 销售状态`}
|
||||
value={item.salesStatus ?? ""}
|
||||
value={normalizeSkuSalesStatus(item.salesStatus)}
|
||||
options={SKU_SALES_STATUS_OPTIONS}
|
||||
placeholder="请选择"
|
||||
readOnly={skuRowReadOnly}
|
||||
|
||||
@ -19,6 +19,7 @@ import {
|
||||
DEFAULT_ASSET_SKU_SALES_STATUS,
|
||||
DEFAULT_STEEL_ASSET_SKU_EXECUTE_STANDARD,
|
||||
NON_BOARD_SKU_BOARD_MATERIAL_TYPE,
|
||||
normalizeSkuSalesStatus,
|
||||
normalizeSkuVersionNo,
|
||||
} from "@/app/intake/non-integrated/workspaces/basic-info/skuFieldConfig";
|
||||
import {
|
||||
@ -195,7 +196,7 @@ function createSkuItemFromSeriesDraftSku(
|
||||
skuFields?.nationalStandardCompliant?.trim() ?? "",
|
||||
manufacturer: skuFields?.manufacturer?.trim() ?? "",
|
||||
manufacturerCode: skuFields?.manufacturerCode?.trim().toUpperCase() ?? "",
|
||||
salesStatus: skuFields?.salesStatus?.trim() ?? "",
|
||||
salesStatus: normalizeSkuSalesStatus(skuFields?.salesStatus),
|
||||
tagMaterial: skuFields?.tagMaterial?.trim() ?? "",
|
||||
model3dFileName: skuFields?.model3dFileName?.trim() ?? "",
|
||||
model3dPreviewNodes: Array.isArray(option.model3dPreviewNodes)
|
||||
@ -945,7 +946,7 @@ export function mergeSeriesComponentAssetSkuItems(
|
||||
nationalStandardCompliant: assetItem.nationalStandardCompliant,
|
||||
manufacturer: assetItem.manufacturer,
|
||||
manufacturerCode: assetItem.manufacturerCode,
|
||||
salesStatus: assetItem.salesStatus,
|
||||
salesStatus: normalizeSkuSalesStatus(assetItem.salesStatus),
|
||||
tagMaterial: assetItem.tagMaterial,
|
||||
image: assetItem.image || matchedCurrent.image,
|
||||
imageName: assetItem.imageName || matchedCurrent.imageName,
|
||||
|
||||
@ -3,6 +3,7 @@ import {
|
||||
buildNonIntegratedSkuId,
|
||||
type NonIntegratedSkuItem,
|
||||
} from "../../nonIntegratedStorage";
|
||||
import { DEFAULT_ASSET_SKU_SALES_STATUS } from "./skuFieldConfig";
|
||||
import {
|
||||
EMPTY_PREVIEW_NODE_OFFSET_MAP,
|
||||
EMPTY_PREVIEW_NODE_ROTATION_MAP,
|
||||
@ -35,7 +36,7 @@ export function createEmptySkuItem(): NonIntegratedSkuItem {
|
||||
manufacturer: "",
|
||||
manufacturerCode: "",
|
||||
minimumOrderQuantity: "",
|
||||
salesStatus: "",
|
||||
salesStatus: DEFAULT_ASSET_SKU_SALES_STATUS,
|
||||
tagMaterial: "",
|
||||
model3dFileName: "",
|
||||
model3dDataUrl: "",
|
||||
|
||||
@ -28,6 +28,7 @@ import {
|
||||
import { isSeriesComponentAssetSkuItem } from "./seriesComponentAssetSkuHelpers";
|
||||
import { resolveExecutionStandardOption } from "./detailValueHelpers";
|
||||
import {
|
||||
normalizeSkuSalesStatus,
|
||||
normalizeNationalStandardCompliance,
|
||||
normalizeSetCountValue,
|
||||
normalizeSkuVersionNo,
|
||||
@ -124,7 +125,7 @@ export function deriveSkuItem(
|
||||
manufacturer: item.manufacturer.trim(),
|
||||
manufacturerCode: item.manufacturerCode.trim().toUpperCase(),
|
||||
minimumOrderQuantity: item.minimumOrderQuantity?.trim() ?? "",
|
||||
salesStatus: item.salesStatus?.trim() ?? "",
|
||||
salesStatus: normalizeSkuSalesStatus(item.salesStatus),
|
||||
boardMaterialType: item.boardMaterialType?.trim() ?? "",
|
||||
tagMaterial: formValues.tagMaterial.trim() || item.tagMaterial.trim(),
|
||||
};
|
||||
@ -180,7 +181,7 @@ export function buildSkuItemFromImportedRow(
|
||||
manufacturer,
|
||||
manufacturerCode,
|
||||
minimumOrderQuantity: row.minimumOrderQuantity.trim(),
|
||||
salesStatus: row.salesStatus.trim(),
|
||||
salesStatus: normalizeSkuSalesStatus(row.salesStatus),
|
||||
tagMaterial: formValues.tagMaterial.trim() || baseItem.tagMaterial,
|
||||
source: SKU_WORKBOOK_SOURCE,
|
||||
sourceTable: SKU_WORKBOOK_SOURCE,
|
||||
@ -222,7 +223,7 @@ export function buildSkuWorkbookExportRows({
|
||||
manufacturerCode: skuItems[index]?.manufacturerCode?.trim() ?? "",
|
||||
minimumOrderQuantity:
|
||||
skuItems[index]?.minimumOrderQuantity?.trim() ?? "",
|
||||
salesStatus: skuItems[index]?.salesStatus?.trim() ?? "",
|
||||
salesStatus: normalizeSkuSalesStatus(skuItems[index]?.salesStatus),
|
||||
batchNo: `批次${item.batchNo || 1}`,
|
||||
batchChangeType: skuBatchChangeTypes[String(item.batchNo || 1)] ?? "",
|
||||
dingTalkFlowNo: skuBatchFlowNos[String(item.batchNo || 1)] ?? "",
|
||||
|
||||
@ -104,6 +104,11 @@ export const DEFAULT_ASSET_SKU_NATIONAL_STANDARD_COMPLIANT = "是";
|
||||
export const DEFAULT_ASSET_SKU_SALES_STATUS = "销售";
|
||||
export const SKU_SALES_STATUS_OPTIONS = ["销售", "停产", "退市"] as const;
|
||||
|
||||
export function normalizeSkuSalesStatus(value: string | undefined | null) {
|
||||
const normalizedValue = value?.trim() ?? "";
|
||||
return normalizedValue || DEFAULT_ASSET_SKU_SALES_STATUS;
|
||||
}
|
||||
|
||||
export const SKU_COLUMN_DEFAULT_WIDTHS: Record<SkuColumnWidthKey, number> = {
|
||||
model: 96,
|
||||
skuCode: 96,
|
||||
|
||||
@ -1002,6 +1002,7 @@ describe('intakeNonIntegratedProductService', () => {
|
||||
)
|
||||
|
||||
expect(product?.productTag).toBe('模块化部件')
|
||||
expect(product?.skuItems?.[0]?.salesStatus).toBe('销售')
|
||||
expect(product?.pricingRows).toEqual([
|
||||
expect.objectContaining({
|
||||
skuId: 'sku-1',
|
||||
|
||||
@ -2288,7 +2288,7 @@ function buildStructuredSkuItemOverlay(
|
||||
manufacturerCode: readStructuredText(row.manufacturerCode),
|
||||
minimumOrderQuantity:
|
||||
readStructuredText(row.minimumOrderQuantity) || legacy?.minimumOrderQuantity || '',
|
||||
salesStatus: readStructuredText(row.salesStatus),
|
||||
salesStatus: normalizeSkuSalesStatusText(readStructuredText(row.salesStatus)),
|
||||
tagMaterial: readStructuredText(row.tagMaterial),
|
||||
model3dFileName: legacy?.model3dFileName ?? '',
|
||||
model3dDataUrl: readStructuredText(row.model3dDataUrl) || legacy?.model3dDataUrl || '',
|
||||
@ -3665,6 +3665,11 @@ const DEFAULT_STEEL_ASSET_VARIANT_EXECUTE_STANDARD = 'GB/T3325-2024'
|
||||
const DEFAULT_ASSET_VARIANT_NATIONAL_STANDARD_COMPLIANT = '是'
|
||||
const DEFAULT_ASSET_VARIANT_SALES_STATUS = '销售'
|
||||
|
||||
function normalizeSkuSalesStatusText(value: string | null | undefined) {
|
||||
const normalizedValue = value?.trim() ?? ''
|
||||
return normalizedValue || DEFAULT_ASSET_VARIANT_SALES_STATUS
|
||||
}
|
||||
|
||||
function normalizeSeriesDisplayPart(value: unknown) {
|
||||
return typeof value === 'string' ? value.trim().replace(/\s+/g, ' ') : ''
|
||||
}
|
||||
@ -4087,7 +4092,7 @@ function createEmptyAssetSeriesComponentSkuItem(
|
||||
manufacturer: '',
|
||||
manufacturerCode: '',
|
||||
minimumOrderQuantity: '',
|
||||
salesStatus: '',
|
||||
salesStatus: DEFAULT_ASSET_VARIANT_SALES_STATUS,
|
||||
tagMaterial: '',
|
||||
model3dFileName: '',
|
||||
model3dDataUrl: '',
|
||||
@ -4139,7 +4144,7 @@ function createEmptyAssetSeriesComponentSkuGroupItem(
|
||||
manufacturer: '',
|
||||
manufacturerCode: '',
|
||||
minimumOrderQuantity: '',
|
||||
salesStatus: '',
|
||||
salesStatus: DEFAULT_ASSET_VARIANT_SALES_STATUS,
|
||||
tagMaterial: '',
|
||||
model3dFileName: '',
|
||||
model3dDataUrl: '',
|
||||
@ -5011,7 +5016,7 @@ export function buildStructuredSkuItemInputs(
|
||||
manufacturerCode:
|
||||
trimSkuText(factoryRow?.supplierCode).toUpperCase() ||
|
||||
trimSkuText(item.manufacturerCode).toUpperCase(),
|
||||
salesStatus: trimSkuText(item.salesStatus),
|
||||
salesStatus: normalizeSkuSalesStatusText(item.salesStatus),
|
||||
tagMaterial: trimSkuText(item.tagMaterial),
|
||||
model3dDataUrl: trimSkuText(item.model3dDataUrl) || null,
|
||||
source: trimSkuText(item.source),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user