zhou zhou
昨天 0d93ec4c10d146ffe287e7f4430ee66ad5832a17
rsf-design/src/views/basic-info/bas-station/basStationPage.helpers.js
@@ -91,9 +91,14 @@
    stationId: '',
    type: '',
    useStatus: '',
    inAble: '',
    outAble: '',
    area: '',
    isCrossZone: '',
    crossZoneArea: '',
    isWcs: '',
    wcsData: '',
    containerType: '',
    barcode: '',
    autoTransfer: '',
    status: '',
@@ -122,6 +127,25 @@
    outAble: 0,
    status: 1,
    memo: ''
  }
}
export function createBasStationInitState() {
  return {
    type: 0,
    useStatus: '',
    areaIds: [],
    containerTypes: [],
    inAble: 0,
    outAble: 0,
    rows: [createBasStationInitRow()]
  }
}
export function createBasStationInitRow() {
  return {
    stationName: '',
    stationId: ''
  }
}
@@ -203,6 +227,14 @@
        ? Number(params.type)
        : void 0,
    useStatus: normalizeText(params.useStatus),
    inAble:
      params.inAble !== undefined && params.inAble !== null && params.inAble !== ''
        ? Number(params.inAble)
        : void 0,
    outAble:
      params.outAble !== undefined && params.outAble !== null && params.outAble !== ''
        ? Number(params.outAble)
        : void 0,
    area:
      params.area !== undefined && params.area !== null && params.area !== ''
        ? Number(params.area)
@@ -211,13 +243,23 @@
      params.isCrossZone !== undefined && params.isCrossZone !== null && params.isCrossZone !== ''
        ? Number(params.isCrossZone)
        : void 0,
    crossZoneArea: normalizeText(params.crossZoneArea),
    isWcs:
      params.isWcs !== undefined && params.isWcs !== null && params.isWcs !== ''
        ? Number(params.isWcs)
        : void 0,
    wcsData: normalizeText(params.wcsData),
    containerType:
      params.containerType !== undefined &&
      params.containerType !== null &&
      params.containerType !== ''
        ? Number(params.containerType)
        : void 0,
    barcode: normalizeText(params.barcode),
    autoTransfer:
      params.autoTransfer !== undefined && params.autoTransfer !== null && params.autoTransfer !== ''
      params.autoTransfer !== undefined &&
      params.autoTransfer !== null &&
      params.autoTransfer !== ''
        ? Number(params.autoTransfer)
        : void 0,
    status:
@@ -230,7 +272,9 @@
  }
  return Object.fromEntries(
    Object.entries(searchParams).filter(([, value]) => value !== '' && value !== void 0 && value !== null)
    Object.entries(searchParams).filter(
      ([, value]) => value !== '' && value !== void 0 && value !== null
    )
  )
}
@@ -238,6 +282,7 @@
  return {
    current: params.current || 1,
    pageSize: params.pageSize || params.size || 20,
    orderBy: normalizeText(params.orderBy) || 'create_time desc',
    ...buildBasStationSearchParams(params)
  }
}
@@ -256,10 +301,14 @@
      ? { area: Number(formData.area) }
      : {}),
    useStatus: normalizeText(formData.useStatus) || '',
    ...(formData.isCrossZone !== void 0 && formData.isCrossZone !== null && formData.isCrossZone !== ''
    ...(formData.isCrossZone !== void 0 &&
    formData.isCrossZone !== null &&
    formData.isCrossZone !== ''
      ? { isCrossZone: Number(formData.isCrossZone) }
      : {}),
    ...(normalizeIdArray(formData.areaIds).length ? { areaIds: normalizeIdArray(formData.areaIds).map((item) => item.id) } : {}),
    ...(normalizeIdArray(formData.areaIds).length
      ? { areaIds: normalizeIdArray(formData.areaIds).map((item) => item.id) }
      : {}),
    ...(formData.isWcs !== void 0 && formData.isWcs !== null && formData.isWcs !== ''
      ? { isWcs: Number(formData.isWcs) }
      : {}),
@@ -268,7 +317,9 @@
      ? { containerTypes: normalizePlainIdArray(formData.containerTypes) }
      : {}),
    barcode: normalizeText(formData.barcode) || '',
    ...(formData.autoTransfer !== void 0 && formData.autoTransfer !== null && formData.autoTransfer !== ''
    ...(formData.autoTransfer !== void 0 &&
    formData.autoTransfer !== null &&
    formData.autoTransfer !== ''
      ? { autoTransfer: Number(formData.autoTransfer) }
      : {}),
    ...(formData.inAble !== void 0 && formData.inAble !== null && formData.inAble !== ''
@@ -288,7 +339,9 @@
export function createBasStationDialogModel(record = {}) {
  return {
    ...createBasStationFormState(),
    ...(record.id !== void 0 && record.id !== null && record.id !== '' ? { id: Number(record.id) } : {}),
    ...(record.id !== void 0 && record.id !== null && record.id !== ''
      ? { id: Number(record.id) }
      : {}),
    stationName: normalizeText(record.stationName || ''),
    stationId: normalizeText(record.stationId || ''),
    type:
@@ -310,13 +363,18 @@
        ? Number(record.isWcs)
        : 0,
    wcsData: normalizeText(record.wcsData || ''),
    containerTypes: normalizePlainIdArray(record.containerTypes ?? record.containerType ?? record.containerTypes$ ?? []),
    containerTypes: normalizePlainIdArray(
      record.containerTypes ?? record.containerType ?? record.containerTypes$ ?? []
    ),
    barcode: normalizeText(record.barcode || ''),
    autoTransfer:
      record.autoTransfer !== void 0 && record.autoTransfer !== null && record.autoTransfer !== ''
        ? Number(record.autoTransfer)
        : 0,
    inAble: record.inAble !== void 0 && record.inAble !== null && record.inAble !== '' ? Number(record.inAble) : 0,
    inAble:
      record.inAble !== void 0 && record.inAble !== null && record.inAble !== ''
        ? Number(record.inAble)
        : 0,
    outAble:
      record.outAble !== void 0 && record.outAble !== null && record.outAble !== ''
        ? Number(record.outAble)
@@ -327,6 +385,74 @@
}
export const buildBasStationDialogModel = createBasStationDialogModel
export function buildBasStationInitModel(record = {}) {
  const initialRows = Array.isArray(record.rows) ? record.rows : record.pairs
  const rows =
    Array.isArray(initialRows) && initialRows.length
      ? initialRows
          .map((item) => ({
            stationName: normalizeText(item?.stationName || ''),
            stationId: normalizeText(item?.stationId || '')
          }))
          .filter((item) => item.stationName || item.stationId)
      : [createBasStationInitRow()]
  return {
    ...createBasStationInitState(),
    type:
      record.type !== void 0 && record.type !== null && record.type !== ''
        ? Number(record.type)
        : 0,
    useStatus: normalizeText(record.useStatus || ''),
    areaIds: normalizePlainIdArray(record.areaIds || []),
    containerTypes: normalizePlainIdArray(record.containerTypes || []),
    inAble:
      record.inAble !== void 0 && record.inAble !== null && record.inAble !== ''
        ? Number(record.inAble)
        : 0,
    outAble:
      record.outAble !== void 0 && record.outAble !== null && record.outAble !== ''
        ? Number(record.outAble)
        : 0,
    rows
  }
}
export function buildBasStationInitPayloadList(formData = {}) {
  const useStatus = normalizeText(formData.useStatus)
  const basePayload = {
    ...(formData.type !== void 0 && formData.type !== null && formData.type !== ''
      ? { type: Number(formData.type) }
      : {}),
    ...(useStatus ? { useStatus } : {}),
    ...(normalizePlainIdArray(formData.areaIds).length
      ? { areaIds: normalizePlainIdArray(formData.areaIds) }
      : {}),
    ...(normalizePlainIdArray(formData.containerTypes).length
      ? { containerTypes: normalizePlainIdArray(formData.containerTypes) }
      : {}),
    ...(formData.inAble !== void 0 && formData.inAble !== null && formData.inAble !== ''
      ? { inAble: Number(formData.inAble) }
      : {}),
    ...(formData.outAble !== void 0 && formData.outAble !== null && formData.outAble !== ''
      ? { outAble: Number(formData.outAble) }
      : {})
  }
  const rows = Array.isArray(formData.rows) ? formData.rows : []
  return rows
    .map((item) => ({
      stationName: normalizeText(item?.stationName || ''),
      stationId: normalizeText(item?.stationId || '')
    }))
    .filter((item) => item.stationName && item.stationId)
    .map((item) => ({
      ...basePayload,
      stationName: item.stationName,
      stationId: item.stationId
    }))
}
export function resolveBasStationAreaOptions(records = []) {
  if (!Array.isArray(records)) {
@@ -344,7 +470,9 @@
      }
      return {
        value: Number(value),
        label: normalizeText(item.name || item.areaName || item.code || item.areaCode || `库区 ${value}`)
        label: normalizeText(
          item.name || item.areaName || item.code || item.areaCode || `库区 ${value}`
        )
      }
    })
    .filter(Boolean)
@@ -403,7 +531,7 @@
      if (item === null || item === undefined || item === '') {
        return ''
      }
      const id = typeof item === 'object' ? item.id ?? item.areaId ?? item.value : item
      const id = typeof item === 'object' ? (item.id ?? item.areaId ?? item.value) : item
      if (typeof resolveLabel === 'function') {
        const resolvedLabel = normalizeText(resolveLabel(id))
        if (resolvedLabel) {
@@ -411,7 +539,9 @@
        }
      }
      if (typeof item === 'object') {
        return normalizeText(item.name || item.areaName || item.label || item.code || item.areaCode || id)
        return normalizeText(
          item.name || item.areaName || item.label || item.code || item.areaCode || id
        )
      }
      return normalizeText(`${fallbackPrefix} ${id}`)
    })
@@ -425,7 +555,7 @@
  }
  return records
    .map((item) => {
      const id = typeof item === 'object' ? item.id ?? item.value : item
      const id = typeof item === 'object' ? (item.id ?? item.value) : item
      if (typeof resolveLabel === 'function') {
        const resolved = normalizeText(resolveLabel(id))
        if (resolved) {
@@ -441,55 +571,108 @@
    .join('、')
}
export function normalizeBasStationDetailRecord(record = {}, resolveAreaLabel, resolveContainerTypeLabel) {
export function normalizeBasStationDetailRecord(
  record = {},
  resolveAreaLabel,
  resolveContainerTypeLabel
) {
  const areaIds = normalizeIdArray(record.areaIds ?? record.crossZoneArea ?? [])
  const containerTypes = normalizePlainIdArray(record.containerTypes ?? record.containerType ?? record.containerTypes$ ?? [])
  const containerTypes = normalizePlainIdArray(
    record.containerTypes ?? record.containerType ?? record.containerTypes$ ?? []
  )
  const statusMeta = getBasStationStatusMeta(record.statusBool ?? record.status)
  const typeMeta = getBasStationTypeMeta(record.type)
  const useStatusMeta = getBasStationUseStatusMeta(record.useStatus$ || record.useStatus)
  const crossZoneAreaItems = areaIds
    .map((item, index) => {
      const label = normalizeText(
        resolveAreaLabel?.(item.id) ||
          item.name ||
          item.areaName ||
          item.label ||
          item.code ||
          item.areaCode ||
          ''
      )
      return {
        id: item.id,
        sort: item.sort ?? index + 1,
        label: label || `库区 ${item.id}`
      }
    })
    .filter((item) => item.id !== void 0 && item.id !== null && item.id !== '')
  const containerTypeItems = containerTypes
    .map((item) => {
      const label = normalizeText(resolveContainerTypeLabel?.(item) || '')
      return {
        value: item,
        label: label || `容器类型 ${item}`
      }
    })
    .filter((item) => item.value !== void 0 && item.value !== null && item.value !== '')
  return {
    ...record,
    stationName: normalizeText(record.stationName || ''),
    stationId: normalizeText(record.stationId || ''),
    type: record.type !== void 0 && record.type !== null && record.type !== '' ? Number(record.type) : void 0,
    type:
      record.type !== void 0 && record.type !== null && record.type !== ''
        ? Number(record.type)
        : void 0,
    typeText: typeMeta.text,
    useStatus: normalizeText(record.useStatus || record.useStatus$ || ''),
    useStatusText: useStatusMeta.text,
    area: record.area !== void 0 && record.area !== null && record.area !== '' ? Number(record.area) : void 0,
    areaText: normalizeText(resolveAreaLabel?.(record.area) || record.area$ || record.areaName || ''),
    area:
      record.area !== void 0 && record.area !== null && record.area !== ''
        ? Number(record.area)
        : void 0,
    areaText: normalizeText(
      resolveAreaLabel?.(record.area) || record.area$ || record.areaName || ''
    ),
    areaIds,
    crossZoneAreaItems,
    crossZoneAreaText: buildIdLabelText(areaIds, resolveAreaLabel, '库区'),
    isCrossZone: record.isCrossZone !== void 0 && record.isCrossZone !== null && record.isCrossZone !== ''
      ? Number(record.isCrossZone)
      : void 0,
    isCrossZone:
      record.isCrossZone !== void 0 && record.isCrossZone !== null && record.isCrossZone !== ''
        ? Number(record.isCrossZone)
        : void 0,
    isCrossZoneText: getBasStationBooleanMeta(record.isCrossZone).text,
    isWcs: record.isWcs !== void 0 && record.isWcs !== null && record.isWcs !== ''
      ? Number(record.isWcs)
      : void 0,
    isWcs:
      record.isWcs !== void 0 && record.isWcs !== null && record.isWcs !== ''
        ? Number(record.isWcs)
        : void 0,
    isWcsText: getBasStationBooleanMeta(record.isWcs).text,
    wcsData: normalizeText(record.wcsData || ''),
    containerTypes,
    containerTypeItems,
    containerTypesText: buildArrayText(containerTypes, resolveContainerTypeLabel, '容器类型'),
    barcode: normalizeText(record.barcode || ''),
    autoTransfer: record.autoTransfer !== void 0 && record.autoTransfer !== null && record.autoTransfer !== ''
      ? Number(record.autoTransfer)
      : void 0,
    autoTransfer:
      record.autoTransfer !== void 0 && record.autoTransfer !== null && record.autoTransfer !== ''
        ? Number(record.autoTransfer)
        : void 0,
    autoTransferText: getBasStationBooleanMeta(record.autoTransfer).text,
    inAble: record.inAble !== void 0 && record.inAble !== null && record.inAble !== ''
      ? Number(record.inAble)
      : void 0,
    inAble:
      record.inAble !== void 0 && record.inAble !== null && record.inAble !== ''
        ? Number(record.inAble)
        : void 0,
    inAbleText: getBasStationBooleanMeta(record.inAble).text,
    outAble: record.outAble !== void 0 && record.outAble !== null && record.outAble !== ''
      ? Number(record.outAble)
      : void 0,
    outAble:
      record.outAble !== void 0 && record.outAble !== null && record.outAble !== ''
        ? Number(record.outAble)
        : void 0,
    outAbleText: getBasStationBooleanMeta(record.outAble).text,
    statusText: statusMeta.text,
    statusType: statusMeta.type,
    statusBool: record.statusBool !== void 0 ? Boolean(record.statusBool) : statusMeta.bool,
    stationAlias: Array.isArray(record.stationAlias) ? [...record.stationAlias] : record.stationAlias,
    stationAlias: Array.isArray(record.stationAlias)
      ? [...record.stationAlias]
      : record.stationAlias,
    stationAliasText: Array.isArray(record.stationAlias)
      ? record.stationAlias.map((item) => normalizeText(item)).filter(Boolean).join('、')
      ? record.stationAlias
          .map((item) => normalizeText(item))
          .filter(Boolean)
          .join('、')
      : normalizeText(record.stationAlias || record.stationAlias$ || ''),
    productionLineCode: normalizeText(record.productionLineCode || ''),
    productionLineName: normalizeText(record.productionLineName || ''),
@@ -501,15 +684,25 @@
  }
}
export function normalizeBasStationListRow(record = {}, resolveAreaLabel, resolveContainerTypeLabel) {
export function normalizeBasStationListRow(
  record = {},
  resolveAreaLabel,
  resolveContainerTypeLabel
) {
  return normalizeBasStationDetailRecord(record, resolveAreaLabel, resolveContainerTypeLabel)
}
export function buildBasStationPrintRows(records = [], resolveAreaLabel, resolveContainerTypeLabel) {
export function buildBasStationPrintRows(
  records = [],
  resolveAreaLabel,
  resolveContainerTypeLabel
) {
  if (!Array.isArray(records)) {
    return []
  }
  return records.map((record) => normalizeBasStationListRow(record, resolveAreaLabel, resolveContainerTypeLabel))
  return records.map((record) =>
    normalizeBasStationListRow(record, resolveAreaLabel, resolveContainerTypeLabel)
  )
}
export function buildBasStationReportMeta({