20260706001

This commit is contained in:
xiaojibeier
2026-07-06 12:46:54 +08:00
parent 67d1da71a8
commit fcf6aa2df6
10 changed files with 938 additions and 38 deletions
+23 -6
View File
@@ -5,6 +5,7 @@ import { loadGoodsInScenes, sceneValuesObjectFromRaw } from '@/utils/rfSceneGood
import {
pickGoodsCategoryEntry,
pickGoodsDisplayName,
pickGoodsNameFromListedRow,
resolveGoodsCategoryCode,
} from '@/utils/goodsCategorys'
@@ -571,7 +572,15 @@ function parseStableSupply(v) {
/** @param {unknown} row */
export function normalizeCollectionGoodsRow(row) {
if (!row || typeof row !== 'object') return null
const r = row
const embedded = row.raw && typeof row.raw === 'object' ? row.raw : null
const r = embedded
? {
...embedded,
...row,
goods_categorys: row.goods_categorys ?? embedded.goods_categorys,
goods: row.goods ?? embedded.goods,
}
: row
const nested = r.goods && typeof r.goods === 'object' ? r.goods : null
const goods_code = String(
r.goods_code
@@ -600,7 +609,8 @@ export function normalizeCollectionGoodsRow(row) {
).trim()
const name = pickGoodsDisplayName(r, category_code, { allowTopLevelName: true })
|| String(
r.goods_name
r.name
|| r.goods_name
|| r.goodsName
|| r.product_name
|| r.material_name
@@ -671,15 +681,22 @@ export function pickCollectionGoodsPreferredTax(row) {
export function pickCollectionGoodsPickFields(row) {
const normalized = normalizeCollectionGoodsRow(row) || (row && typeof row === 'object' ? row : null)
if (!normalized) return null
const raw = normalized.raw || row
const sourceRow = normalized.raw || row
const goods_code = String(normalized.goods_code || '').trim()
if (!goods_code) return null
const payRaw = raw?.payment_price ?? ''
const payRaw = sourceRow?.payment_price ?? row?.payment_price ?? ''
const payment_price = payRaw !== '' && payRaw != null ? Number(payRaw) : null
const bill_tax = pickCollectionGoodsPreferredTax(row)
const bill_tax = pickCollectionGoodsPreferredTax(sourceRow)
const nameCandidates = [
String(row?.name || '').trim(),
String(normalized.name || '').trim(),
pickGoodsNameFromListedRow(sourceRow),
pickGoodsNameFromListedRow(row),
].filter(Boolean)
const name = nameCandidates.find((n) => n !== goods_code) || nameCandidates[0] || goods_code
return {
goods_code,
name: String(normalized.name || goods_code).trim(),
name,
payment_price: Number.isFinite(payment_price) ? payment_price : null,
bill_tax,
raw: normalized,