zhou zhou
10 小时以前 a49845f424ae5b1e43e391837a55c43ce07ea62d
rsf-design/src/api/loc.js
@@ -4,6 +4,10 @@
  return typeof value === 'string' ? value.trim() : value
}
function hasValue(value) {
  return value !== '' && value !== null && value !== undefined
}
function normalizeIds(ids) {
  if (Array.isArray(ids)) {
    return ids
@@ -18,11 +22,23 @@
}
function normalizeNumber(value, fallback = void 0) {
  if (value === '' || value === null || value === undefined) {
  if (!hasValue(value)) {
    return fallback
  }
  const parsed = Number(value)
  return Number.isNaN(parsed) ? fallback : parsed
}
function toOptionalNumber(value) {
  return hasValue(value) ? Number(value) : void 0
}
function toNumberOr(value, fallback) {
  return hasValue(value) ? Number(value) : fallback
}
function buildNumberField(key, value) {
  return hasValue(value) ? { [key]: Number(value) } : {}
}
function normalizeTypeIds(typeIds = []) {
@@ -66,103 +82,47 @@
export function buildLocSearchParams(params = {}) {
  const searchParams = {
    condition: normalizeText(params.condition),
    warehouseId:
      params.warehouseId !== undefined && params.warehouseId !== null && params.warehouseId !== ''
        ? Number(params.warehouseId)
        : void 0,
    areaId:
      params.areaId !== undefined && params.areaId !== null && params.areaId !== ''
        ? Number(params.areaId)
        : void 0,
    warehouseId: toOptionalNumber(params.warehouseId),
    areaId: toOptionalNumber(params.areaId),
    code: normalizeText(params.code),
    useStatus: normalizeText(params.useStatus),
    row:
      params.row !== undefined && params.row !== null && params.row !== ''
        ? Number(params.row)
        : void 0,
    col:
      params.col !== undefined && params.col !== null && params.col !== ''
        ? Number(params.col)
        : void 0,
    lev:
      params.lev !== undefined && params.lev !== null && params.lev !== ''
        ? Number(params.lev)
        : void 0,
    channel:
      params.channel !== undefined && params.channel !== null && params.channel !== ''
        ? Number(params.channel)
        : void 0,
    status:
      params.status !== undefined && params.status !== null && params.status !== ''
        ? Number(params.status)
        : void 0,
    row: toOptionalNumber(params.row),
    col: toOptionalNumber(params.col),
    lev: toOptionalNumber(params.lev),
    channel: toOptionalNumber(params.channel),
    status: toOptionalNumber(params.status),
    barcode: normalizeText(params.barcode),
    memo: normalizeText(params.memo)
  }
  return Object.fromEntries(
    Object.entries(searchParams).filter(([, value]) => value !== '' && value !== void 0 && value !== null)
  )
  return Object.fromEntries(Object.entries(searchParams).filter(([, value]) => hasValue(value)))
}
export function buildLocSavePayload(formData = {}) {
  return {
    ...(formData.id !== undefined && formData.id !== null && formData.id !== ''
      ? { id: Number(formData.id) }
      : {}),
    ...(formData.version !== undefined && formData.version !== null && formData.version !== ''
      ? { version: Number(formData.version) }
      : {}),
    ...(formData.warehouseId !== undefined && formData.warehouseId !== null && formData.warehouseId !== ''
      ? { warehouseId: Number(formData.warehouseId) }
      : {}),
    ...(formData.areaId !== undefined && formData.areaId !== null && formData.areaId !== ''
      ? { areaId: Number(formData.areaId) }
      : {}),
    ...buildNumberField('id', formData.id),
    ...buildNumberField('version', formData.version),
    ...buildNumberField('warehouseId', formData.warehouseId),
    ...buildNumberField('areaId', formData.areaId),
    code: normalizeText(formData.code) || '',
    typeIds: normalizeTypeIds(formData.typeIds),
    ...(formData.flagLogic !== undefined && formData.flagLogic !== null && formData.flagLogic !== ''
      ? { flagLogic: Number(formData.flagLogic) }
      : {}),
    ...buildNumberField('flagLogic', formData.flagLogic),
    fucAtrrs: normalizeText(formData.fucAtrrs) || '',
    barcode: normalizeText(formData.barcode) || '',
    unit: normalizeText(formData.unit) || '',
    ...(formData.length !== undefined && formData.length !== null && formData.length !== ''
      ? { length: Number(formData.length) }
      : {}),
    ...(formData.height !== undefined && formData.height !== null && formData.height !== ''
      ? { height: Number(formData.height) }
      : {}),
    ...(formData.width !== undefined && formData.width !== null && formData.width !== ''
      ? { width: Number(formData.width) }
      : {}),
    ...(formData.row !== undefined && formData.row !== null && formData.row !== ''
      ? { row: Number(formData.row) }
      : {}),
    ...(formData.col !== undefined && formData.col !== null && formData.col !== ''
      ? { col: Number(formData.col) }
      : {}),
    ...(formData.lev !== undefined && formData.lev !== null && formData.lev !== ''
      ? { lev: Number(formData.lev) }
      : {}),
    ...(formData.channel !== undefined && formData.channel !== null && formData.channel !== ''
      ? { channel: Number(formData.channel) }
      : {}),
    ...(formData.maxParts !== undefined && formData.maxParts !== null && formData.maxParts !== ''
      ? { maxParts: Number(formData.maxParts) }
      : {}),
    ...(formData.maxPack !== undefined && formData.maxPack !== null && formData.maxPack !== ''
      ? { maxPack: Number(formData.maxPack) }
      : {}),
    ...buildNumberField('length', formData.length),
    ...buildNumberField('height', formData.height),
    ...buildNumberField('width', formData.width),
    ...buildNumberField('row', formData.row),
    ...buildNumberField('col', formData.col),
    ...buildNumberField('lev', formData.lev),
    ...buildNumberField('channel', formData.channel),
    ...buildNumberField('maxParts', formData.maxParts),
    ...buildNumberField('maxPack', formData.maxPack),
    useStatus: normalizeText(formData.useStatus) || 'O',
    ...(formData.flagLabelMange !== undefined && formData.flagLabelMange !== null && formData.flagLabelMange !== ''
      ? { flagLabelMange: Number(formData.flagLabelMange) }
      : {}),
    ...buildNumberField('flagLabelMange', formData.flagLabelMange),
    locAttrs: normalizeText(formData.locAttrs) || '',
    status:
      formData.status !== undefined && formData.status !== null && formData.status !== ''
        ? Number(formData.status)
        : 1,
    status: toNumberOr(formData.status, 1),
    memo: normalizeText(formData.memo) || ''
  }
}